OSDN Git Service

2009-07-16 Sandra Loosemore <sandra@codesourcery.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>
2
3         * doc/extend.texi (Nested Functions): Replace broken link with
4         textual reference.
5         * doc/service.texi (Service): Remove broken link.
6
7 2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
8
9         PR bootstrap/40781
10         * builtins.c (expand_builtin_memcmp): Use loc instead of
11         EXPR_LOCATION (exp).
12         (expand_builtin_strncmp): Likewise.
13
14 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
15             Manuel López-Ibáñez  <manu@gcc.gnu.org>
16
17         PR 40435 
18         * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
19         builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
20         tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
21         c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
22         calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
23         tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
24         tree-inline.c, c-common.c, c-common.h, gimple.c,
25         tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
26         convert.c: Add location argument to fold_{unary,binary,ternary},
27         fold_build[123], build_call_expr, build_size_arg,
28         build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
29         fold_build1_initializer, fold_build2_initializer,
30         fold_build3_initializer, fold_build_call_array,
31         fold_build_call_array_initializer, fold_single_bit_test,
32         omit_one_operand, omit_two_operands, invert_truthvalue,
33         fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
34         combine_comparisons, fold_builtin_*, fold_call_expr,
35         build_range_check, maybe_fold_offset_to_address, round_up,
36         round_down.
37
38 2009-07-16  Jason Merrill  <jason@redhat.com>
39
40         PR libstdc++/37907
41         * c-common.c (c_common_reswords): Add __is_standard_layout
42         and __is_trivial.
43         * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
44         * doc/implement-cxx.texi: New.
45         * doc/gcc.texi: Include it.
46
47 2009-07-16  DJ Delorie  <dj@redhat.com>
48
49         * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
50         compares that may be indirectly affected by previous instructions.
51
52 2009-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
53
54         * builtins.c (do_mpc_arg2): New.
55         (fold_builtin_2): Fold builtin cpow.
56         * real.h (HAVE_mpc_pow): New.
57
58 2009-07-16  Bingfeng Mei  <bmei@broadcom.com>
59
60         * modulo-sched.c (sms_schedule): stage_count <= 1 as correct comparison
61         to skip unprofitable schedule
62         
63 2009-07-16  Simon Baldwin  <simonb@google.com>
64
65         * gcc.c (option_map): New flag -no-canonical-prefixes.
66         * (display_help): Print help text for new flag.
67         * (process_command): Move options translation and language specifics
68         and handle new flag early.  Use it to set a function pointer to a
69         prefix builder.  Replace make_relative_prefix calls with calls to
70         the function pointed to.  Ignore new flag in regular options handling.
71         * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
72
73 2009-07-15  DJ Delorie  <dj@redhat.com>
74
75         * config/mep/mep.md (sibcall_internal): Change register to avoid
76         argument registers.
77         (sibcall_value_internal): Likewise.
78
79 2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>
80
81         PR rtl-optimization/40710
82         * resource.c (mark_target_live_regs): Reset DF problem to LR.
83
84 2009-07-15  Adam Nemet  <anemet@caviumnetworks.com>
85
86         * config/mips/mips.md (*extenddi_truncate<mode>,
87         *extendsi_truncate<mode>): Change type attribute to move_type
88         with shift_shift.  Split out code handling exts from here ...
89         (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
90         pattern.
91         (*extendhi_truncateqi): Change type attribute to move_type with
92         shift_shift.  Split out code handling exts from here ...
93         (*extendhi_truncateqi_exts): ... to this new pattern.
94
95 2009-07-15  Uros Bizjak  <ubizjak@gmail.com>
96
97         * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
98         instead of "and" with inverted sign bit mask value.  Use
99         "nonimmediate_operand" for operand 1 and operand 2 predicate.
100         Allocate registers only for operand 4 and operand 5.
101
102 2009-07-15  Jakub Jelinek  <jakub@redhat.com>
103
104         PR middle-end/40747
105         * fold-const.c (fold_cond_expr_with_comparison): When folding
106         < and <= to MIN, make sure the MIN uses the same type as the
107         comparison's operands.
108
109 2009-07-15  Richard Earnshaw  <rearnsha@arm.com>
110
111         * arm.md (ior_xor): New code iterator.
112         (split for ior/xor with shift and zero-extend): New split pattern.
113         * arm/predicates.md (subreg_lowpart_operator): New special predicate.
114
115 2009-07-15  Richard Guenther  <rguenther@suse.de>
116
117         * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
118         offset member.
119
120 2009-07-15  Richard Guenther  <rguenther@suse.de>
121
122         PR middle-end/40753
123         * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
124
125 2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
126
127         * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
128         handle 2.6.30 kernel.
129
130 2009-07-15  DJ Delorie  <dj@redhat.com>
131
132         * config/mep/mep.md (sibcall_internal): Change register to allow
133         for 24-bit addresses.
134         (sibcall_value_internal): Likewise.
135
136 2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>
137         
138         * doc/invoke.texi: Added descriptions of the  scheduling heuristics
139         that are enabled/disabled by the flags introduced by a previous patch.
140         
141 2009-07-14  DJ Delorie  <dj@redhat.com>
142
143         * config/mep/mep.md (sibcall_internal): Include non-toggling
144         non-jmp case.
145         (sibcall_value_internal): Likewise.
146
147 2009-07-14  Taras Glek  <tglek@mozilla.com>
148             Rafael Espindola  <espindola@google.com>
149
150         * doc/sourcebuild.texi: Document install-plugin target.
151         * configure.ac: Added install-plugin target to language makefiles.
152         * configure: Regenerate.
153         * Makefile.in: (install-plugin): Install more headers,
154         depend on lang.install-plugin.
155
156 2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
157
158         * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
159         translation.
160         
161 2009-07-14  DJ Delorie  <dj@redhat.com>
162
163         * config/mep/mep.c (mep_vliw_jmp_match): New function.
164         * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
165         * config/mep/mep.md (sibcall_internal): Change test from
166         mep_vliw_mode_match to mep_vliw_jmp_match.
167         (sibcall_value_internal): Likewise.
168
169 2009-07-14  Uros Bizjak  <ubizjak@gmail.com>
170
171         * config/i386/sse.md (copysign<mode>3): New expander.
172         * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
173         * config/i386/i386.c (ix86_build_signbit_mask): Make public.
174         Use ix86_build_const_vector.
175         (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
176         IX86_BUILTIN_CPYSGNPD.
177         (builtin_description): Add __builtin_ia32_copysignps and
178         __builtin_ia32_copysignpd.
179         (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
180         and BUILT_IN_COPYSIGNF.
181
182 2009-07-13  Jason Merrill  <jason@redhat.com>
183
184         * builtins.c (can_trust_pointer_alignment): New fn.
185         (get_pointer_alignment): Factor it out from here.
186         * tree.h: Declare it.
187
188 2009-07-14  David Edelsohn  <edelsohn@gnu.org>
189
190         * config/rs6000/predicates.md (offsettable_mem_operand): Test
191         RTX_AUTOINC class.
192
193 2009-07-14  Dodji Seketeli  <dodji@redhat.com>
194
195         PR debug/40705
196         PR c++/403057
197         * dwarf2.out.c (gen_type_die_with_usage): Added comment.
198
199 2009-07-14  Richard Guenther  <rguenther@suse.de>
200             Andrey Belevantsev <abel@ispras.ru>
201
202         PR middle-end/40745
203         * cfgexpand.c (partition_stack_vars): Do not bother to update
204         alias information when not optimizing.
205
206 2009-07-14  Richard Guenther  <rguenther@suse.de>
207         Andrey Belevantsev <abel@ispras.ru>
208
209         * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
210         (pt_solution_set): Likewise.
211         * tree-ssa-alias.c (refs_may_alias_p_1): Export.
212         * tree-ssa-structalias.c (pt_solution_set): New function.
213         * final.c (rest_of_clean_state): Free SSA data structures.
214         * print-rtl.c (print_decl_name): Remove.
215         (print_mem_expr): Implement in terms of print_generic_expr.
216         * alias.c (ao_ref_from_mem): New function.
217         (rtx_refs_may_alias_p): Likewise.
218         (true_dependence): Query alias-export info.
219         (canon_true_dependence): Likewise.
220         (write_dependence_p): Likewise.
221         * tree-dfa.c (get_ref_base_and_extent): For void types leave
222         size unknown.
223         * emit-rtl.c (component_ref_for_mem_expr): Remove.
224         (mem_expr_equal_p): Use operand_equal_p.
225         (set_mem_attributes_minus_bitpos): Do not use
226         component_ref_for_mem_expr.
227         * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
228         (update_alias_info_with_stack_vars): Likewise.
229         (partition_stack_vars): Call update_alias_info_with_stack_vars.
230         * tree-ssa.c (delete_tree_ssa): Do not release SSA names
231         explicitly nor clear stmt operands.
232         Free the decl-to-pointer map.
233         * tree-optimize.c (execute_free_datastructures): Do not free
234         SSA data structures here.
235         * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
236         * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
237         (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
238         dependencies.
239         (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
240
241 2009-07-13  DJ Delorie  <dj@redhat.com>
242
243         * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
244         unrolling at the right iteration count.
245
246         * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
247         calculations.
248
249 2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
250         
251         * haifa-sched.c (rank_for_schedule): Introduced flags to
252         enable/disable individual scheduling heuristics.
253         * common.opt: Introduced flags to enable/disable individual
254         heuristics in the scheduler.    
255         * doc/invoke.texi: Introduced flags to enable/disable individual
256         heuristics in the scheduler.
257         
258 2009-07-13  Kai Tietz  <kai.tietz@onevision.com>
259
260         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
261         config/i386/mingw-tls.c.
262         * config/i386/mingw-tls.c: Removed.
263
264 2009-07-13  Ira Rosen  <irar@il.ibm.com>
265
266         * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the 
267         checks access only relevant statements.
268         (vectorizable_reduction): Likewise.
269
270 2009-07-12  Kai Tietz  <kai.tietz@onevision.com>
271
272         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
273         just for 32-bit case.
274
275 2009-07-12  Jan Hubicka  <jh@suse.cz>
276
277         PR tree-optimization/40585
278         * except.c (expand_resx_expr): When there already is resume
279         instruction, produce linked list.
280         (build_post_landing_pads): Assert that resume is empty.
281         (connect_post_landing_pads): Handle resume lists.
282         (dump_eh_tree): Dump resume list.
283
284 2009-07-12  Ira Rosen  <irar@il.ibm.com>
285
286         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
287         with additional argument.
288         * tree-vectorizer.h (enum vect_def_type): Add
289         vect_double_reduction_def.
290         (vect_is_simple_reduction): Add argument.
291         * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
292         indentation.
293         (vect_analyze_scalar_cycles_1): Detect double reduction. Call
294         vect_is_simple_reduction with additional argument.
295         (vect_analyze_loop_operations): Handle exit phi nodes in case of
296         double reduction.
297         (reduction_code_for_scalar_code): Handle additional codes by
298         returning ERROR_MARK for them. Fix comment and indentation.
299         (vect_is_simple_reduction): Fix comment, add argument to specify
300         double reduction. Detect double reduction.
301         (get_initial_def_for_induction): Fix indentation.
302         (get_initial_def_for_reduction): Fix comment and indentation.
303         Handle double reduction. Create initial definitions that do not
304         require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
305         (vect_create_epilog_for_reduction): Fix comment, add argument to
306         handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
307         epilogue result extraction. Create double reduction phi node and
308         replace relevant uses.
309         (vectorizable_reduction): Call vect_is_simple_reduction with
310         additional argument. Fix indentation. Update epilogue code treatment
311         according to the changes in reduction_code_for_scalar_code. Check
312         for double reduction. Call vect_create_epilog_for_reduction with
313         additional argument.
314         * tree-vect-stmts.c (process_use): Handle double reduction, update
315         documentation.
316         (vect_mark_stmts_to_be_vectorized): Handle double reduction.
317         (vect_get_vec_def_for_operand): Likewise.
318
319 2009-07-12  Danny Smith  <dansmister@gmail.com>
320
321         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
322         dllexport if !TREE_PUBLIC.
323         (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
324
325 2009-07-11  Anatoly Sokolov  <aesok@post.ru>
326
327         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
328         (avr_extra_arch_macro) Remove declatation.
329         * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
330         (avr_extra_arch_macro) Declare as static.
331         * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
332
333 2009-07-11  Jan Hubicka  <jh@suse.cz>
334
335         PR middle-end/48388
336         * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
337
338 2009-07-11  Jakub Jelinek  <jakub@redhat.com>
339
340         PR debug/40713
341         * dwarf2out.c (dw_fde_struct): Add in_std_section and
342         cold_in_std_section bits.
343         (dwarf2out_begin_prologue): Initialize them.
344         (dwarf2out_finish): Don't emit FDE range into .debug_ranges
345         if already covered by text_section or cold_text_section range.
346
347         PR rtl-optimization/40667
348         * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
349         * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
350         * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
351         * config/i386/i386.c (ix86_minimum_alignment): New function.
352         * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
353         * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
354         * emit-rtl.c (gen_reg_rtx): Likewise.
355         * function.c (assign_parms): Likewise.  If nominal_type needs
356         bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
357         rather than passed_type's alignment.
358
359         PR target/40668
360         * function.c (assign_parm_setup_stack): Adjust
361         MEM_OFFSET (data->stack_parm) if promoted_mode is different
362         from nominal_mode on big endian.
363
364 2009-07-11  Paolo Bonzini  <bonzini@gnu.org>
365
366         * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
367
368 2009-07-10  DJ Delorie  <dj@redhat.com>
369
370         * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
371
372 2009-07-10  Mark Mitchell  <mark@codesourcery.com>
373
374         * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
375         attribute.
376         (thumb2_cbnz): Likewise.
377
378 2009-07-10  David Daney  <ddaney@caviumnetworks.com>
379
380         PR target/39079
381         * config.gcc (supported_defaults): Add synci.
382         (with_synci): Add validation.
383         (all_defaults): Add synci.
384         * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
385         ISA_HAS_SYNCI.
386         (synci): Same.
387         * config/mips/mips.opt (msynci): New option.
388         * config/mips/mips.c (mips_override_options): Warn on use of
389         -msynci for targets that do now support it.
390         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
391         msynci.
392         * gcc/doc/invoke.texi (-msynci): Document the new option.
393         * doc/install.texi (--with-synci): Document the new option.
394
395 2009-07-10  Richard Guenther  <rguenther@suse.de>
396
397         PR tree-optimization/40496
398         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
399         the PHI result with a compatible type.
400
401 2009-07-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
402
403         PR 25509
404         PR 40614
405         * c.opt (Wunused-result): New.
406         * doc/invoke.texi: Document it.
407         * c-common.c (c_warn_unused_result): Use it.
408
409 2009-07-09  DJ Delorie  <dj@redhat.com>
410
411         * targhooks.c (default_target_can_inline_p): Rename from
412         default_target_option_can_inline_p.
413         * targhooks.h (default_target_can_inline_p): Likewise.
414         * target-def.h (TARGET_CAN_INLINE_P): Rename from
415         TARGET_OPTION_CAN_INLINE_P.
416         * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
417         * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
418         (mep_target_can_inline_p): Rename from
419         mep_target_option_can_inline_p.
420
421         PR target/40626
422         * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
423         registers used to pass vectors.
424
425         * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
426
427 2009-07-09  Tom Tromey  <tromey@redhat.com>
428
429         * unwind-dw2-fde-darwin.c: Include dwarf2.h.
430         * config/mmix/mmix.c: Include dwarf2.h.
431         * config/rs6000/darwin-fallback.c: Include dwarf2.h.
432         * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
433         * config/sh/sh.c: Include dwarf2.h.
434         * config/i386/i386.c: Include dwarf2.h.
435         * Makefile.in (DWARF2_H): Remove 'elf'.
436         * except.c: Include dwarf2.h.
437         * unwind-dw2.c: Include dwarf2.h.
438         * dwarf2out.c: Include dwarf2.h.
439         * unwind-dw2-fde-glibc.c: Include dwarf2.h.
440         * unwind-dw2-fde.c: Include dwarf2.h.
441         * dwarf2asm.c: Include dwarf2.h.
442
443 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
444
445         * haifa-sched.c (insn_finishes_cycle_p): New static function.
446         (max_issue): Use it.
447         * sched-int.h (struct sched_info: insn_finishes_block_p): New
448         scheduler hook.
449         * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
450         (region_sched_info): Update.
451         * sched-ebb.c (ebb_sched_info): Update.
452         * modulo-sched.c (sms_sched_info): Update.
453         * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
454
455 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
456
457         * varasm.c (build_constant_desc): Don't share RTL in pool entries.
458
459 2009-07-09  Basile Starynkevitch  <basile@starynkevitch.net>
460
461         * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen. 
462
463 2009-07-09  Jakub Jelinek  <jakub@redhat.com>
464
465         PR middle-end/40692
466         * fold-const.c (fold_cond_expr_with_comparison): Don't replace
467         arg1 with arg01 if arg1 is already INTEGER_CST.
468
469 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
470
471         * simplify-rtx.c (simplify_binary_operation_1) <AND>:
472         Transform (and (truncate)) into (truncate (and)).
473
474 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
475
476         * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
477         creating LHS paradoxical subregs.  Fix surrounding returns to
478         use NULL_RTX rather than 0.
479
480 2009-07-08  DJ Delorie  <dj@redhat.com>
481
482         * config/mep/mep.c: (mep_option_can_inline_p): New.
483         (TARGET_OPTION_CAN_INLINE_P): Define.
484
485 2009-07-08  Mark Wielaard  <mjw@redhat.com>
486
487         PR debug/40659
488         * dwarf2out.c (add_data_member_location_attribute): When we have
489         only a constant offset don't emit a new location description using
490         DW_OP_plus_uconst, but just add the constant with add_AT_int, when
491         dwarf_version > 2.
492
493 2009-07-08  Richard Henderson  <rth@redhat.com>
494
495         PR target/38900
496         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
497         (enum reg_class): Add CLOBBERED_REGS.
498         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
499         * config/i386/i386.c (ix86_conditional_register_usage): Moved
500         from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
501         (ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
502         (ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
503         force 64-bit sibcalls into R11.
504         * config/i386/constraints.md (U): New constraint.
505         * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
506         (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
507         (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
508
509 2009-07-08  Shujing Zhao  <pearly.zhao@oracle.com>
510
511         * basic-block.h (dump_regset, debug_regset): Remove duplicate
512         prototypes.
513         * c-objc-common.h (c_initialize_diagnostics): Ditto.
514         * ebitmap.h (dump_ebitmap): Ditto.
515         * optabs.h (optab_libfunc): Ditto.
516         * tree.h (tree_expr_nonzero_warnv_p): Ditto.
517         * tree-flow.h (vect_can_force_dr_alignment_p,
518         get_vectype_for_scalar_type): Ditto.
519         (vectorize_loops): Move prototype to ...
520         * tree-vectorizer.h: ... here. Also, adjust comment.
521         (vect_set_verbosity_level): Remove duplicate prototype.
522         * tree-ssa-loop.c: Include tree-vectorizer.h.
523         * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
524
525 2009-07-08  Nick Clifton  <nickc@redhat.com>
526
527         * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
528         forward slash.
529
530 2009-07-08  DJ Delorie  <dj@redhat.com>
531
532         * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
533         cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
534         cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
535         written to.
536         * config/mep/intrinsics.md: Regenerated.
537         * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
538         registers when asm() or calls are detected.
539
540 2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
541
542         PR c++/31246
543         * gimplify.c (gimplify_expr): Propagate no_warning flag when
544         gimplifying.
545         * gimple (gimple_build_call_from_tree): Likewise.
546         * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
547         no_warning flag before warning.
548
549 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
550
551         * tree.c (set_expr_locus): Remove.
552         * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
553         * c-typeck.c (c_finish_stmt_expr):  Replace EXPR_LOCUS by
554         EXPR_LOCATION.
555         * gimplify.c (internal_get_tmp_var): Likewise.
556         (gimplify_call_expr): Likewise.
557         (gimplify_one_sizepos): Likewise.
558
559 2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>
560
561         PR debug/40666
562         * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
563         to variables for debugging purposes.
564
565 2009-06-23  Mark Loeser  <mark@halcy0n.com>
566
567         PR build/40010
568         * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
569
570 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
571
572         * pretty-print.c (pp_base_format): Remove %J.
573         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
574         gcc_cxxdiag_char_table): Likewise.
575         (init_dynamic_diag_info): Likewise.
576
577 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
578
579         * pretty-print.c (pp_base_format): Remove %H.
580         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
581         gcc_cxxdiag_char_table): Likewise.
582         (init_dynamic_diag_info): Likewise.
583         * config/mep/mep.c (mep_select_section): Likewise.
584
585 2009-07-07  Duncan Sands  <baldrick@free.fr>
586
587         * final.c (pass_clean_state): Give the pass a name.
588         * passes.c (pass_rest_of_compilation): Likewise.
589         * tree-optimize.c (pass_all_optimizations): Likewise.
590
591 2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>
592
593         * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
594         an extra 'decl' for error_at.
595
596 2009-07-07  Jakub Jelinek  <jakub@redhat.com>
597
598         PR middle-end/40669
599         * tree-tailcall.c (adjust_return_value_with_ops,
600         create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
601         if it has complex or vector type.
602
603 2009-07-07  Olivier Hainque  <hainque@adacore.com>
604
605         * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
606         pthread symbols.
607
608 2009-07-07  Basile Starynkevitch  <basile@starynkevitch.net>
609
610         * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
611
612 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
613
614         * cgraphunit.c: Replace %J by an explicit location.  Update all calls.
615         * c-decl.c: Likewise.
616         * function.c: Likewise.
617         * varasm.c: Likewise.
618         * tree-ssa.c: Likewise.
619         * c-common.c: Likewise.
620         * tree-cfg.c: Likewise.
621         * config/spu/spu.c: Likewise.
622         * config/ia64/ia64.c: Likewise.
623         * config/v850/v850.c: Likewise.
624
625 2009-07-06  DJ Delorie  <dj@redhat.com>
626
627         * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
628         * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
629         unspecified accesses to control registers.
630         * config/mep/intrinsics.md: Regenerate.
631         * config/mep/intrinsics.h: Regenerate.
632         * config/mep/mep-intrin.h: Regenerate.
633
634 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
635
636         * c-lex.c: Replace %H by an explicit location. Update all calls.
637         * c-common.c: Likewise.
638         * c-decl.c: Likewise.
639         * c-typeck.c: Likewise.
640         * fold-const.c: Likewise.
641         * gimplify.c: Likewise.
642         * stmt.c: Likewise.
643         * tree-cfg.c: Likewise.
644         * tree-ssa-loop-niter.c: Likewise.
645         * tree-vrp.c: Likewise.
646         * value-prof.c: Likewise.
647
648 2009-07-06  Diego Novillo  <dnovillo@google.com>
649
650         * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
651         if it has one.  Handle cases where VAR does not have an
652         annotation or cfun is NULL.
653
654 2009-07-06  Diego Novillo  <dnovillo@google.com>
655
656         * tree.c: Include debug.h.
657         (initialize_tree_contains_struct): New.
658         (init_ttree): Call it.
659         (tree_node_structure_for_code): Factor out of ...
660         (tree_node_structure): ... here.
661         * treestruct.def (TS_PHI_NODE): Remove.
662         (TS_GIMPLE_STATEMENT): Remove.
663
664 2009-07-06  Diego Novillo  <dnovillo@google.com>
665
666         * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
667         (debug_tree_chain): Handle cycles.
668
669 2009-07-06  Nick Clifton  <nickc@redhat.com>
670             DJ Delorie  <dj@redhat.com>
671
672         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
673         __FMOVD_ENABLED__ is defined.
674         * config/sh/sh.h
675         (TARGET_FMOVD): Provide a default definition.
676         (MASK_FMOVD): Likewise.
677         (TARGET_CPU_CPP_BUILTINS): Define
678         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
679         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
680         two fmov instructions depending upon whether TARGET_FMOVD is enabled.
681         (split for DF load from memory into register): Also handle
682         MEMs which consist of REG+DISP addressing.
683         (split for DF store from register to memory): Likewise.
684         (movsf_ie): Always use single fp_mode.
685         * config/sh/sh.c (sh_override_options): Do not automatically
686         enable TARGET_MOVD for the SH2A when supporting doubles - leave
687         that to the -mfmovd command line switch.
688         (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
689         (fldi_ok): Always allow.
690         * config/sh/sh.opt (mfmovd): Remove this switch.
691         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
692
693 2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
694             Kaz Kojima  <kkojima@gcc.gnu.org>
695
696         PR rtl-optimization/30807
697         * postreload.c (reload_combine): For every new use of REG_SUM,
698         record the use of BASE.
699
700 2009-07-06  Jan Hubicka  <jh@suse.cz>
701
702         * params.def: Revert my accidental commit at 2009-06-30.
703
704 2009-07-04  Ian Lance Taylor  <iant@google.com>
705
706         PR target/40636
707         * config/i386/msformat-c.c (mingw_format_attributes): Declare as
708         EXPORTED_CONST.
709         (mingw_format_attribute_overrides): Likewise.
710
711 2009-07-04  Jakub Jelinek  <jakub@redhat.com>
712
713         PR debug/40596
714         * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
715         don't check cfa.reg.  Instead of cfa.indirect use
716         fde && fde->drap_reg != INVALID_REGNUM test.
717
718 2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>
719
720         * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
721
722 2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
723
724         PR target/40587
725         * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
726
727 2009-07-03  Richard Guenther  <rguenther@suse.de>
728
729         PR tree-optimization/40640
730         * tree-switch-conversion.c (build_arrays): Perform arithmetic
731         in original type.
732
733 2009-07-03  Jan Hubicka  <jh@suse.cz>
734
735         * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
736         for size, reduce amount of inlining.
737
738 2009-07-03  Richard Guenther  <rguenther@suse.de>
739
740         PR middle-end/34163
741         * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
742         if t +- x is known to not overflow and the conversion widens the
743         operation.
744         * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
745
746 2009-07-03  Jan Hubicka  <jh@suse.cz>
747
748         * ipa-pure-const.c (analyze): Update loop optimizer init.
749         * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
750         try_remove_empty_loop, remove_empty_loops): Remove.
751         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
752         * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
753         to mark regular loops as neccesary.
754         (degenerate_phi_p): New function.
755         (propagate_necessity, remove_dead_phis): Use it.
756         (forward_edge_to_pdom): Likewise.
757         (eliminate_unnecessary_stmts): Take care to remove uses of results of
758         virtual PHI nodes that became unreachable.
759         (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
760         * tree-flow.h (remove_empty_loops): Remove.
761         * passes.c (init_optimization_passes): Remove.
762
763 2009-07-03  Uros Bizjak  <ubizjak@gmail.com>
764
765         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
766         can_create_pseudo_p.
767         (*fix_trunc<mode>_i387_1): Ditto.
768         (*floathi<mode>2_1): Ditto.
769         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
770         (*fistdi2_1): Ditto.
771         (*fist<mode>2_1): Ditto.
772         (frndintxf2_floor): Ditto.
773         (*fist<mode>2_floor_1): Ditto.
774         (frndintxf2_ceil): Ditto.
775         (*fist<mode>2_ceil_1): Ditto.
776         (frndintxf2_trunc): Ditto.
777         (frndintxf2_mask_pm): Ditto.
778         (fxam<mode>2_i387_with_temp): Ditto.
779         * config/i386/sse.md (mulv16qi3): Ditto.
780         (*sse2_mulv4si3): Ditto.
781         (mulv2di3): Ditto.
782         (sse4_2_pcmpestr): Ditto.
783         (sse4_2_pcmpistr): Ditto.
784
785 2009-07-03  Jan Hubicka  <jh@suse.cz>
786
787         * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
788         (mark_stmt_necessary): Set it.
789         (mark_operand_necessary): Set it.
790         (mark_control_dependent_edges_necessary): Set it.
791         (mark_virtual_phi_result_for_renaming): New function.
792         (get_live_post_dom): New function.
793         (forward_edge_to_pdom): New function.
794         (remove_dead_stmt): Fix handling of control dependences.
795         (tree_dce_init): Init new bitmap.
796         (tree_dce_done): Free it.
797
798 2009-07-02  Richard Guenther  <rguenther@suse.de>
799
800         PR bootstrap/40617
801         * tree-ssa-structalias.c (new_var_info): Initialize
802         is_restrict_var.
803
804 2009-07-02  Jan Hubicka  <jh@suse.cz>
805
806         * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
807         local.
808
809 2009-07-02  Paolo Bonzini  <bonzini@gnu.org>
810
811         * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
812         instead of recomputing it.  Adjust calls.
813         (emit_store_flag): Adjust recursive calls.
814
815 2009-07-02  Richard Guenther  <rguenther@suse.de>
816
817         * tree-ssa-live.c (remove_unused_locals): Do not remove
818         heap variables.
819         * tree-ssa-structalias.c (handle_lhs_call): Delay setting
820         of DECL_EXTERNAL for HEAP variables.
821         (compute_points_to_sets): Set DECL_EXTERNAL for escaped
822         HEAP variables.  Do not adjust RESTRICT vars.
823         (find_what_var_points_to): Nobody cares if something
824         points to READONLY.
825
826 2009-07-02  Ben Elliston  <bje@au.ibm.com>
827
828         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
829         pc_low and pc_high declarations to the top of the function.
830
831 2009-07-01  DJ Delorie  <dj@redhat.com>
832
833         * config/mep/mep.c (mep_handle_option): Leave IVC2 control
834         registers as fixed.
835         (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
836         * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
837         unspecified accesses to control registers.
838         * config/mep/intrinsics.md: Regenerate.
839         * config/mep/intrinsics.h: Regenerate.
840         * config/mep/mep-intrin.h: Regenerate.
841
842 2009-07-01  Anthony Green  <green@moxielogic.com>
843
844         * config/moxie/moxie.c (moxie_expand_prologue): Use dec
845         instruction when possible.
846         (moxie_expand_prologue): Ditto.  Also, save an instruction and
847         some complexity by popping off of $r12 instead of $sp.
848         * config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
849         operands.
850
851 2009-07-01  Richard Henderson  <rth@redhat.com>
852
853         PR bootstrap/40347
854         * function.c (reposition_prologue_and_epilogue_notes): If epilogue
855         contained no insns, reposition note before last insn.
856
857 2009-07-01  Richard Henderson  <rth@redhat.com>
858
859         PR debug/40431
860         * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
861         DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
862
863 2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
864
865         PR bootstrap/40558
866         * config/rs6000/rs6000.c (print_operand): Undo change that breaks
867         darwin9 for printing reg addresses with %y.
868
869 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
870
871         * combine.c (force_to_mode): Handle TRUNCATE.  Factor out
872         truncation from operands in binary operations.
873
874 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
875
876         Revert:
877         2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
878         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
879         subreg of op0 to the original op0.
880
881         * expmed.c (store_bit_field_1): Use a temporary as the destination
882         instead of a paradoxical subreg when we need to truncate the result.
883
884 2009-07-01  DJ Delorie  <dj@redhat.com>
885
886         * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
887         names to VLIW variants.
888         (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
889         * config/mep/intrinsics.md: Regenerate.
890         * config/mep/intrinsics.h: Regenerate.
891         * config/mep/mep-intrin.h: Regenerate.
892
893 2009-07-01  Jakub Jelinek  <jakub@redhat.com>
894
895         PR debug/40462
896         * jump.c (returnjump_p): Revert last patch.
897         * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
898
899 2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
900
901         PR target/40575
902         * pa.md (casesi32p): Use jump table label to determine the offset
903         of the jump table.
904         (casesi64p): Likewise.
905
906         * pa.c (forward_branch_p): Return bool type.  Use instruction
907         addresses when available.  Assert that INSN has a jump label.
908         (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
909         have a jump label.
910
911 2009-07-01  Richard Guenther  <rguenther@suse.de>
912
913         PR tree-optimization/19831
914         * tree-ssa-dce.c (propagate_necessity): Calls to functions
915         that only act as barriers do not make any previous stores necessary.
916         * tree-ssa-structalias.c (handle_lhs_call): Delay making
917         HEAP variables global, do not add a constraint from nonlocal.
918         (find_func_aliases): Handle escapes through return statements.
919         (compute_points_to_sets): Make escaped HEAP variables global.
920
921 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
922
923         PR bootstrap/40597
924         * expmed.c (emit_store_flag): Perform a conversion if necessary,
925         after reducing a DImode cstore to SImode.
926
927 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
928
929         * expr.c (expand_expr_real_1): Reinstate fallthrough to
930         TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
931
932 2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>
933
934         * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
935         * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
936         to 0.
937         * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
938         and umod_optab if TARGET_BSD_DIVMOD.
939         * config/vax/lib1funcs.asm: New file.
940         * config/vax/t-linux: New file.
941         * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
942
943 2009-06-30  Jakub Jelinek  <jakub@redhat.com>
944
945         PR c++/40566
946         * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
947         to type arguments that have void type.
948
949         PR debug/40573
950         * dwarf2out.c (gen_formal_parameter_die): Call
951         equate_decl_number_to_die if node is different from origin.
952
953 2009-06-30  Anthony Green  <green@moxielogic.com>
954
955         Clean up moxie port for --enable-build-with-cxx.
956         * config/moxie/moxie.c (moxie_function_value): First two
957         parameters are const_tree, not tree.
958         * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
959         (REG_CLASS_NAMES): Ditto.
960         (REGNO_REG_CLASS): Ditto.
961         * config/moxie/moxie-protos.h (moxie_override_options): Declare.
962         (moxie_function_value): Fix constyness of arguments.
963
964 2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
965
966         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
967         finalize_size_functions before further processing.
968         * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
969         (variable_size): Call self_referential_size on size expressions
970         that contain a PLACEHOLDER_EXPR.
971         (size_functions): New static variable.
972         (copy_self_referential_tree_r): New static function.
973         (self_referential_size): Likewise.
974         (finalize_size_functions): New global function.
975         * tree.c: Include tree-inline.h.
976         (push_without_duplicates): New static function.
977         (find_placeholder_in_expr): New global function.
978         (substitute_in_expr) <tcc_declaration>: Return the replacement object
979         on equality.
980         <tcc_expression>: Likewise.
981         <tcc_vl_exp>: If the replacement object is a constant, try to inline
982         the call in the expression.
983         * tree.h (finalize_size_functions): Declare.
984         (find_placeholder_in_expr): Likewise.
985         (FIND_PLACEHOLDER_IN_EXPR): New macro.
986         (substitute_placeholder_in_expr): Update comment.
987         * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
988         is true.
989         (copy_tree_body_r): Likewise.
990         (copy_tree_body): New static function.
991         (maybe_inline_call_in_expr): New global function.
992         * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
993         (maybe_inline_call_in_expr): Declare.
994         * Makefile.in (tree.o): Depend on TREE_INLINE_H.
995         (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
996         GIMPLE_H.
997
998 2009-06-30  Richard Guenther  <rguenther@suse.de>
999
1000         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
1001         continue walking.
1002         (propagate_necessity): Do not mark reaching defs of stores
1003         as necessary.
1004
1005 2009-06-30  Jan Hubicka  <jh@suse.cz>
1006
1007         * cfgloopanal.c (check_irred): Move into ...
1008         (mark_irreducible_loops): ... here; return true if ireducible
1009         loops was found.
1010         * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
1011         (analyze_function): Try to prove loop finiteness.
1012         * cfgloop.h (mark_irreducible_loops): Update prototype.
1013         * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
1014
1015 2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>
1016
1017         * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
1018
1019 2009-06-30  Ira Rosen  <irar@il.ibm.com>
1020
1021         PR tree-optimization/40542
1022         * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile 
1023         types.
1024
1025 2009-06-30  Martin Jambor  <mjambor@suse.cz>
1026
1027         PR tree-optimization/40582
1028         * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
1029         than useless_type_conversion_p.
1030         (generate_subtree_copies): Increment sra_stats.subtree_copies at a
1031         proper place.
1032
1033 2009-06-30  Martin Jambor  <mjambor@suse.cz>
1034
1035         PR middle-end/40554
1036         * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
1037
1038 2009-06-30  Richard Guenther  <rguenther@suse.de>
1039
1040         * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
1041         use ao_ref references.
1042         (walk_aliased_vdefs): Likewise.
1043         * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
1044         * tree-ssa-dce.c (struct ref_data): Remove.
1045         (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
1046         (mark_aliased_reaching_defs_necessary): Adjust.
1047         (mark_all_reaching_defs_necessary_1): Likewise.
1048
1049 2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
1050
1051         PR boostrap/40597
1052         * expmed.c (emit_cstore): New name of emit_store_flag_1.
1053         (emit_store_flag_1): Extract from emit_store_flag, adjust
1054         calls to (what now is) emit_cstore.
1055         (emit_store_flag): Call emit_store_flag_1 and also use it
1056         for what used to be recursive calls.
1057
1058 2009-06-30  Wei Guozhi  <carrot@google.com>
1059
1060         PR/40416
1061         * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
1062         if the target bb post dominates from bb.
1063         * config/i386/i386.c (memory_address_length): Check existence of base
1064         register before using it.
1065
1066 2009-06-30  Nick Clifton  <nickc@redhat.com>
1067             DJ Delorie  <dj@redhat.com>
1068
1069         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
1070         __FMOVD_ENABLED__ is defined.
1071         * config/sh/sh.h
1072         (TARGET_FMOVD): Provide a default definition.
1073         (MASK_FMOVD): Likewise.
1074         (TARGET_CPU_CPP_BUILTINS): Define
1075         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
1076         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
1077         two fmov instructions depending upon whether TARGET_FMOVD is
1078         enabled.
1079         (split for DF load from memory into register): Also handle
1080         MEMs which consist of REG+DISP addressing.
1081         (split for DF store from register to memory): Likewise.
1082         * config/sh/sh.opt (mfmovd): Remove this switch.
1083         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
1084         * config/sh/sh.c (sh_override_options): Do not automatically
1085         enable TARGET_MOVD for the SH2A when supporting doubles - leave
1086         that to the -mfmovd command line switch.
1087
1088         * config/sh/sh.c (broken_move): Do not restrict fldi test to only
1089         the SH4 and SH4A.
1090         (fldi_ok): Always allow.
1091         * config/sh/sh.md (movsf_ie): Always use single fp_mode.
1092
1093 2009-06-29  DJ Delorie  <dj@redhat.com>
1094
1095         * doc/install.texi (mep-x-elf): Correct chip's full name.
1096
1097 2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
1098
1099         * doc/extend.texi: Fix typo.
1100
1101 2009-06-29  Tom Tromey  <tromey@redhat.com>
1102
1103         * dwarf2.h: Remove.
1104         * Makefile.in (DWARF2_H): New variable.
1105         (except.o): Use it.
1106         (dwarf2out.o): Likewise.
1107         (dwarf2asm.o): Likewise.
1108         * config/i386/t-i386: Use DWARF2_H.
1109         * except.c: Include elf/dwarf2.h.
1110         * unwind-dw2.c: Include elf/dwarf2.h.
1111         * dwarf2out.c: Include elf/dwarf2.h.
1112         (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
1113         <dtprel>: New field.
1114         (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
1115         (size_of_loc_descr): Likewise.
1116         (output_loc_operands_raw): Likewise.
1117         (output_loc_operands): Handle new dtprel field.
1118         (loc_checksum): Update.
1119         (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
1120         * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
1121         * unwind-dw2-fde.c: Include elf/dwarf2.h.
1122         * dwarf2asm.c: Include elf/dwarf2.h.
1123         * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
1124         * config/mmix/mmix.c: Include elf/dwarf2.h.
1125         * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
1126         * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
1127         * config/sh/sh.c: Include elf/dwarf2.h.
1128         * config/i386/i386.c: Include elf/dwarf2.h.
1129
1130 2009-06-29  DJ Delorie  <dj@redhat.com>
1131
1132         * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
1133
1134         * doc/extend.texi: Add MeP attributes and pragmas.
1135         * doc/invoke.text: Add MeP Options.
1136         * doc/contrib.texi: Add MeP contribution.
1137         * doc/md.texi: Add MeP constraints.
1138         * doc/install.texi: Add MeP target.
1139
1140 2009-06-30  Anatoly Sokolov  <aesok@post.ru>
1141
1142         * target.h (struct gcc_target): Add frame_pointer_required field.
1143         * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
1144         (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
1145         * ira.c (setup_eliminable_regset): Use frame_pointer_required target
1146         hook.
1147         * reload1.c (update_eliminables): (Ditto.).
1148         * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
1149         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1150         (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
1151
1152         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
1153
1154         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
1155         * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1156         (arm_frame_pointer_required): New function.
1157
1158         * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
1159         * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1160         (avr_frame_pointer_required_p): Declare as static.
1161         * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
1162
1163         * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
1164         * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1165         (bfin_frame_pointer_required): Make as static, change return type
1166         to bool.
1167         * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
1168
1169         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
1170         * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1171         (cris_frame_pointer_required): New function.
1172         
1173         * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
1174
1175         * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
1176         * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1177         (fr30_frame_pointer_required): New function.
1178         
1179         * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
1180         * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1181         (frv_frame_pointer_required): Make as static, change return type
1182         to bool.
1183         * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
1184
1185         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
1186         * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1187         (ix86_frame_pointer_required): Make as static, change return type to
1188         bool.
1189         * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
1190
1191         * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
1192         * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1193
1194         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
1195
1196         * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
1197         
1198         * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
1199
1200         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
1201         * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1202         (mips_frame_pointer_required): Make as static.
1203         * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
1204         
1205         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
1206         * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1207         (mmix_frame_pointer_required): Mew function.
1208
1209         * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
1210         * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1211
1212         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
1213
1214         * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
1215
1216         * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
1217
1218         * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
1219         (CAN_ELIMINATE): Redefine.
1220         * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1221         (sparc_frame_pointer_required): New function.
1222         (sparc_can_eliminate): New function.
1223         * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
1224
1225         * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
1226         * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1227
1228         * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
1229         * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1230         (xtensa_frame_pointer_required): Make as static, change return type
1231         to bool.
1232         * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
1233         Remove.
1234
1235 2009-06-29  Olatunji Ruwase  <tjruwase@google.com>
1236
1237         * doc/plugins.texi: Document PLUGIN_START_UNIT.
1238         * toplev.c (compile_file): Call PLUGIN_START_UNIT.
1239         * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
1240         * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
1241         (register_callback): Handle PLUGIN_START_UNIT.
1242         (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
1243
1244 2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1245
1246         * tree.c (process_call_operands): Propagate TREE_READONLY from the
1247         operands.
1248         (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
1249         (build3_stat): Propagate TREE_READONLY for COND_EXPR.
1250
1251 2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
1252
1253         * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
1254         move cost.
1255
1256 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
1257
1258         * doc/extend.texi (Additional Floating Types): __float128 is also
1259         supported on i386 targets.
1260
1261 2009-06-29  Richard Guenther  <rguenther@suse.de>
1262
1263         PR middle-end/14187
1264         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
1265         flag.
1266         (pt_solutions_same_restrict_base): Declare.
1267         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
1268         flag.
1269         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
1270         (make_constraint_from, make_copy_constraint): Move earlier.
1271         (make_constraint_from_heapvar): New function.
1272         (make_constraint_from_restrict): Likewise.
1273         (handle_lhs_call): Use it.
1274         (find_func_aliases): Use it to track conversions to restrict
1275         qualified pointers.
1276         (struct fieldoff): Add only_restrict_pointers flag.
1277         (push_fields_onto_fieldstack): Initialize it.
1278         (create_variable_info_for): Track global restrict qualified pointers.
1279         (intra_create_variable_infos): Use make_constraint_from_heapvar.
1280         Track restrict qualified pointer arguments.
1281         (set_uids_in_ptset): Use varinfo is_global_var flag.
1282         (find_what_var_points_to): Set the vars_contains_restrict flag.
1283         Always create the points-to solution for sets including restrict tags.
1284         (pt_solutions_same_restrict_base): New function.
1285         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
1286         qualified pointers use pt_solutions_same_restrict_base as
1287         additional source for disambiguation.
1288
1289 2009-06-29  Richard Guenther  <rguenther@suse.de>
1290
1291         PR middle-end/38212
1292         * alias.c (find_base_decl): Remove.
1293         (get_deref_alias_set_1): Remove restrict handling.
1294         * c-common.c (c_apply_type_quals_to_decl): Do not set
1295         DECL_POINTER_ALIAS_SET.
1296         * gimplify.c (find_single_pointer_decl_1): Remove.
1297         (find_single_pointer_decl): Likewise.
1298         (internal_get_tmp_var): Remove restrict handling.
1299         (gimple_regimplify_operands): Likewise.
1300         * omp-low.c (expand_omp_atomic_pipeline): Do not set
1301         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
1302         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
1303         * tree.c (restrict_base_for_decl): Remove.
1304         (init_ttree): Do not allocate it.
1305         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
1306         LABEL_DECL_UID for label decls.
1307         (copy_node_stat): Do not copy restrict information.
1308         (decl_restrict_base_lookup): Remove.
1309         (decl_restrict_base_insert): Likewise.
1310         (print_restrict_base_statistics): Likewise.
1311         (dump_tree_statistics): Do not call print_restrict_base_statistics.
1312         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
1313         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
1314         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
1315         (LABEL_DECL_UID): Adjust.
1316         (DECL_BASED_ON_RESTRICT_P): Remove.
1317         (DECL_GET_RESTRICT_BASE): Likewise.
1318         (SET_DECL_RESTRICT_BASE): Likewise.
1319         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
1320
1321         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
1322         instead of DECL_POINTER_ALIAS_SET.
1323         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
1324         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
1325         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
1326
1327 2009-06-29  Richard Guenther  <rguenther@suse.de>
1328
1329         PR tree-optimization/40579
1330         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
1331         the IL to simplify has constants that overflowed.
1332
1333 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
1334
1335         PR tree-optimization/40550
1336         * tree-vect-generic.c (expand_vector_operations_1): Compute in
1337         vector_compute_type only when the size of vector_compute_type is
1338         less than the size of type.
1339
1340 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1341
1342         * fold-const.c (contains_label_1): Fix comments.
1343         (contains_label_p): Do not walk trees multiple time.
1344
1345 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1346
1347         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
1348         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
1349         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
1350         ix86_fp_comparison_operator.
1351         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
1352         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
1353         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
1354         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
1355         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
1356         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
1357         (related splits): Change predicate to ix86_fp_comparison_operator.
1358         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
1359         instead of ix86_fp_comparison_codes.
1360         (ix86_trivial_fp_comparison_operator,
1361         ix86_fp_comparison_operator): New.
1362         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
1363         (ix86_expand_compare): Eliminate last two parameters.
1364         (ix86_fp_jump_nontrivial_p): Kill.
1365         * config/i386/i386.c (put_condition_code): Eliminate call to
1366         ix86_fp_comparison_codes and subsequent assertion.
1367         (ix86_fp_comparison_codes): Eliminate.
1368         (ix86_fp_swap_condition): New.
1369         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
1370         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
1371         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
1372         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
1373         and ix86_fp_swap_condition.
1374         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
1375         Use ix86_fp_comparison_strategy.
1376         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
1377         (ix86_fp_jump_nontrivial_p): Eliminate.
1378         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
1379         call to ix86_expand_compare.
1380         (ix86_split_fp_branch, ix86_expand_setcc,
1381         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
1382         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
1383
1384 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1385
1386         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
1387         related to jump_clobbers.
1388         * config/arm/arm.md (conds): Remove jump_clob case.
1389         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
1390         splits): Change comparison_operator to arm_comparison_operator.
1391         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
1392         Eliminate.
1393
1394 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1395
1396         * dojump.c (do_compare_rtx_and_jump): Try swapping the
1397         condition for floating point modes.
1398         * expmed.c (emit_store_flag_1): Move here a bigger part
1399         of emit_store_flag.
1400         (emit_store_flag): Try swapping the condition for floating point
1401         modes.
1402         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
1403
1404 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1405
1406         * expr.c (expand_expr_real_1): Just use do_store_flag.
1407         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
1408         emit_store_flag_force.
1409         * expmed.c (emit_store_flag_force): Copy here trick
1410         previously in expand_expr_real_1.  Try reversing the comparison.
1411         (emit_store_flag_1): Work if target is NULL.
1412         (emit_store_flag): Work if target is NULL, using the result mode
1413         from the comparison.  Use split_comparison, restructure final part
1414         to simplify conditionals.
1415
1416 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1417
1418         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
1419         * dojump.c (do_jump): Change handling of floating-point
1420         ops to use just do_compare_and_jump.
1421         (split_comparison): New.
1422         (do_compare_rtx_and_jump): Add here logic coming previously
1423         in do_jump, using split_comparison.
1424
1425 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
1426
1427         PR target/40489
1428         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
1429
1430 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1431
1432         * tree-ssa-alias.c: Fix unintentional commit.
1433
1434 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1435
1436         * passes.c (execute_one_pass): Fix unintentional commit.
1437
1438 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1439
1440         * df-problems.c (df_set_seen, df_unset_seen): Delete.
1441         (df_rd_local_compute, df_md_local_compute): Inline them.
1442
1443         (df_md_scratch): New.
1444         (df_md_alloc, df_md_free): Allocate/free it.
1445         (df_md_local_compute): Only include live registers in init.
1446         (df_md_transfer_function): Prune the in-set computed by
1447         the confluence function, and the gen-set too.
1448
1449 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1450
1451         PR rtl-optimization/26854
1452         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
1453         * df-problems.c (df_rd_add_problem): Fix comment.
1454         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
1455         df_md_simulate_artificial_defs_at_top,
1456         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
1457         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
1458         df_md_transfer_function, df_md_init, df_md_confluence_0,
1459         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
1460         problem_MD, df_md_add_problem): New.
1461         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
1462         df_md_get_bb_info): New.
1463         (DF_LAST_PROBLEM_PLUS1): Adjust.
1464
1465         * Makefile.in (fwprop.o): Include domwalk.h.
1466         * fwprop.c: Include domwalk.h.
1467         (reg_defs, reg_defs_stack): New.
1468         (bitmap_only_bit_between): Remove.
1469         (process_defs): New.
1470         (process_uses): Use reg_defs and local_md instead of
1471         bitmap_only_bit_between and local_rd.
1472         (single_def_use_enter_block): New, from build_single_def_use_links.
1473         (single_def_use_leave_block): New.
1474         (build_single_def_use_links): Remove code moved to
1475         single_def_use_enter_block, invoke domwalk.
1476         (use_killed_between): Adjust comment.
1477
1478 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1479
1480         * bitmap.h (bitmap_ior_and_into): New.
1481         * bitmap.c (bitmap_ior_and_into): New.
1482
1483 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1484
1485         * domwalk.h (struct dom_walk_data): Remove all callbacks except
1486         before_dom_children_before_stmts and after_dom_children_after_stmts.
1487         Rename the two remaining callbacks to just before_dom_children and 
1488         after_dom_children. Remove other GIMPLE statement walking bits.
1489         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
1490         * graphite.c: Do not include domwalk.h.
1491         * tree-into-ssa.c (interesting_blocks): New global.
1492         (struct mark_def_sites_global_data): Remove it and names_to_rename.
1493         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
1494         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
1495         now that they're not domwalk callbacks.
1496         (rewrite_initialize_block): Rename to...
1497         (rewrite_enter_block): ... this, place after called functions.  Test
1498         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
1499         (rewrite_finalize_block): Rename to...
1500         (rewrite_leave_block): ... this, place after called functions.
1501         (rewrite_update_init_block): Rename to...
1502         (rewrite_update_enter_block): ... this, place after called functions.
1503         Test interesting_blocks, call rewrite_update_stmt and 
1504         rewrite_update_phi_arguments.
1505         (rewrite_update_fini_block): Rename to...
1506         (rewrite_leave_block): ... this, place after called functions.
1507         (rewrite_blocks): Remove last argument, simplify initialization of
1508         walk_data.
1509         (mark_def_sites_initialize_block): Rename to...
1510         (mark_def_sites_block): ... this, call mark_def_sites.
1511         (mark_def_sites_blocks): Remove argument, simplify initialization of
1512         walk_data.
1513         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
1514         (update_ssa): Likewise.
1515         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
1516         callback.
1517         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
1518         (dom_opt_initialize_block): Rename to...
1519         (dom_opt_enter_block): ... this, place after called functions.  Walk
1520         statements here, inline propagate_to_outgoing_edges.
1521         (dom_opt_finalize_block): Rename to...
1522         (dom_opt_leave_block): ... this, place after called functions.
1523         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
1524         domwalk callback.
1525         (dse_enter_block, dse_record_phi): New.
1526         (dse_record_phis): Delete.
1527         (dse_finalize_block): Rename to...
1528         (dse_leave_block): ... this.
1529         (tree_ssa_dse): Simplify initialization of walk_data.
1530         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
1531         Adjust initialization of walk_data.
1532         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
1533         * tree-ssa-loop-phiopt.c (get_non_trapping):
1534         Adjust initialization of walk_data.
1535         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
1536         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
1537         it's not a domwalk callback.
1538         (uncprop_initialize_block): Rename to...
1539         (dse_enter_block): ... this, call uncprop_into_successor_phis.
1540         (dse_finalize_block): Rename to...
1541         (dse_leave_block): ... this.
1542         (tree_ssa_uncprop): Simplify initialization of walk_data.
1543         * Makefile.in: Adjust dependencies.
1544
1545 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
1546
1547         * arm.md (casesi): Fix test for Thumb1.
1548         (thumb1_casesi_internal_pic): Likewise.
1549         (thumb1_casesi_dispatch): Likewise.
1550
1551 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
1552
1553         * config/arm/arm-cores.def: Added core cortex-m0.
1554         * config/arm/arm-tune.md: Regenerated.
1555         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
1556
1557 2009-06-26  DJ Delorie  <dj@redhat.com>
1558
1559         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
1560
1561         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
1562         the scheduler doesn't tag jump insns.
1563
1564 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
1565
1566         * c-decl.c (merge_decls): Re-indent.
1567
1568 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
1569
1570         PR c/39902
1571         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
1572         Special-case decimal float constants.
1573
1574 2009-06-26  Richard Henderson  <rth@redhat.com>
1575
1576         * function.h (struct function): Add cannot_be_copied_reason,
1577         and cannot_be_copied_set.
1578         * tree-inline.c (has_label_address_in_static_1): Rename from
1579         inline_forbidden_p_2; don't set inline_forbidden_reason here.
1580         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
1581         don't set inline_forbidden_reason.
1582         (copy_forbidden): New function, split out of inline_forbidden_p.
1583         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
1584         (inline_forbidden_p): Use copy_forbidden.
1585         (tree_versionable_function_p): Likewise.
1586         (inlinable_function_p): Merge into tree_inlinable_function_p.
1587         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
1588         * ipa-cp.c (ipcp_versionable_function_p): New function.
1589         (ipcp_cloning_candidate_p): Use it.
1590         (ipcp_node_modifiable_p): Likewise.
1591
1592 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
1593
1594         * builtins.c (expand_builtin_alloca): Handle builtin alloca
1595         that is marked not to be inlined. Remove flag_mudflap use.
1596         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
1597         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
1598
1599 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
1600
1601         PR bootstrap/40338
1602         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
1603         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
1604
1605 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
1606
1607         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
1608         shared libgcc.
1609         (__mingwthr_remove_key_dtor): Likewise.
1610
1611 2009-06-26  Richard Guenther  <rguenther@suse.de>
1612
1613         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
1614
1615 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
1616
1617         PR middle-end/40525
1618         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
1619         try the non-cond_exec path also.
1620
1621 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1622
1623         PR target/40468
1624         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
1625         (output_cbranch): Use new functions.
1626         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
1627         Likewise.
1628
1629 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
1630             Pat Haugen  <pthaugen@us.ibm.com>
1631             Revital Eres <ERES@il.ibm.com>
1632
1633         * config/rs6000/rs6000.c (print_operand): Correct lossage message
1634         for %c error.  Add %x support to print VSX registers as a unified
1635         register set, instead of separate float and altivec registers.
1636         Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
1637         %y case, and add support for VSX pre-modify addresses.
1638         (output_toc): Add assert for CONST containing an integer constant
1639         in the PLUS case.
1640         (rs6000_adjust_cost): Add POWER7 support.
1641         (insn_must_be_first_in_group): Ditto.
1642         (insn_must_be_last_in_group): Ditto.
1643         (rs6000_emit_popcount): Ditto.
1644         (rs6000_vector_mode_supported_p): Ditto.
1645
1646         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
1647         Change some of the functions called by macros to being called
1648         through a pointer, so debug functions can be inserted if
1649         -mdebug=addr or -mdebug=cost. 
1650         (rs6000_preferred_reload_class_ptr): Ditto.
1651         (rs6000_secondary_reload_class_ptr): Ditto.
1652         (rs6000_secondary_memory_needed_ptr): Ditto.
1653         (rs6000_cannot_change_mode_class_ptr): Ditto.
1654         (rs6000_secondary_reload_inner): Ditto.
1655         (rs6000_legitimize_reload_address): Ditto.
1656         (rs6000_legitimize_reload_address_ptr): Ditto.
1657         (rs6000_mode_dependent_address): Ditto.
1658         (rs6000_mode_dependent_address_ptr): Ditto.
1659
1660         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
1661         function to return true if the mode allows reg + integer
1662         addresses.
1663         (virtual_stack_registers_memory_p): New function to return true if
1664         the address refers to a virtual stack register.
1665         (rs6000_legitimate_offset_address_p): Move code to say whether a
1666         mode supports reg+int addressing to reg_offset_addressing_ok_p and
1667         call it.
1668         (rs6000_legitimate_address_p): Add checks for modes that only can
1669         do reg+reg addressing.  Start adding VSX support.
1670         (rs6000_legitimize_reload_address): Ditto.
1671         (rs6000_legitimize_address): Ditto.
1672         (rs6000_debug_legitimate_address_p): New debug functions for
1673         -mdebug=addr and -mdebug=cost.
1674         (rs6000_debug_rtx_costs): Ditto.
1675         (rs6000_debug_address_costs): Ditto.
1676         (rs6000_debug_adjust_cost): Ditto.
1677         (rs6000_debug_legitimize_address): Ditto.
1678         (rs6000_legitimize_reload_address_ptr): Point to call normal
1679         function or debug function.  Make functions called via pointer
1680         static.
1681         (rs6000_mode_dependent_address_ptr): Ditto.
1682         (rs6000_secondary_reload_class_ptr): Ditto.
1683         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
1684         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
1685         into a friendlier error.
1686         (rs6000_init_builtins): Add initial VSX support.
1687         (rs6000_adjust_cost): Fix some spacing issues.
1688
1689         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
1690         (REG_CLASS_NAMES): Ditto.
1691         (REG_CLASS_CONTENTS): Ditto.
1692         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
1693         pointer, to add -mdebug=addr support.
1694         (CANNOT_CHANGE_MODE_CLASS): Ditto.
1695         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
1696         -mdebug=addr support.
1697         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
1698         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
1699         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
1700
1701         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
1702         16-bit values.
1703         (bswapsi*): Set attribute types for load/store.  Add combiner
1704         patterns to eliminate zero extend on 64-bit.
1705         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
1706         stdbrx if the hardware supports those instructions.
1707
1708 2009-06-25  Ian Lance Taylor  <iant@google.com>
1709
1710         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
1711         (Link Options): Document -static-libstdc++.
1712
1713 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1714
1715         PR target/38731
1716         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
1717         DATA_ALIGNMENT instead.
1718
1719 2009-06-25  Richard Guenther  <rguenther@suse.de>
1720
1721         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
1722         indirect references against the callused/escaped solutions.
1723         (call_may_clobber_ref_p_1): Likewise.
1724
1725 2009-06-25  Martin Jambor  <mjambor@suse.cz>
1726
1727         PR tree-optimization/40493
1728         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
1729         (enum unscalarized_data_handling): New type.
1730         (handle_unscalarized_data_in_subtree): Return what has been done.
1731         (load_assign_lhs_subreplacements): Handle left flushes differently.
1732         (sra_modify_assign): Use unscalarized_data_handling, simplified
1733         condition determining whether to remove the statement.
1734
1735 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
1736
1737         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
1738         excerpt - @ should be doubled for texinfo.
1739
1740 2009-06-24  Ian Lance Taylor  <iant@google.com>
1741
1742         * config/arc/arc.c: Include "df.h".
1743         (arc_attribute_table): Make static.  Move higher in file.
1744         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
1745         (output_shift): Initialize n later to avoid warning.
1746         * config/arm/arm.c (arm_attribute_table): Make static.  Move
1747         higher in file.
1748         * config/avr/avr.c (avr_attribute_table): Make static.  Move
1749         higher in file.
1750         (reg_class_tab): Change array type from int to enum reg_class.
1751         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
1752         LABEL_REF.
1753         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
1754         (lshrhi3_out): Likewise.
1755         (class_likely_spilled_p): Change return type to bool.
1756         (avr_rtx_costs): Use local code variable with enum type.
1757         * config/avr/avr.md (movmemhi): Use add_reg_note.
1758         (andhi3, andsi3): Don't use AS2 with "and".
1759         (iorhi3, iorsi3): Don't use AS2 with "or".
1760         * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
1761         * config/crx/crx.c: Include "df.h".
1762         (crx_attribute_table): Make static.
1763         * config/m32r/m32r.c: Include "df.h".
1764         (m32r_attribute_table): Make static.  Move higher in file.
1765         (pop): Use add_reg_note.
1766         (block_move_call): Change 0 to LCT_NORMAL in function call.
1767         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
1768         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
1769         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
1770         declare, not just when TREE_CODE is defined.
1771         * config/m68hc11/m68hc11.c: Include "expr.h".
1772         (m68hc11_attribute_table): Make static.  Move higher in file.
1773         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
1774         function call.
1775         (m68hc11_register_indirect_p): Likewise.
1776         (m68hc11_function_arg_padding): Change return type to enum
1777         direction.
1778         (emit_move_after_reload): Use add_reg_note.
1779         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
1780         (m68hc11_split_logical): Likewise.
1781         (m68hc11_rtx_costs): Add local code_and outer_code variables with
1782         enum type.
1783         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
1784         to VOIDmode in function call.
1785         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
1786         tree is defined.
1787         (m68hc11_split_logical): Update declaration.
1788         (m68hc11_function_arg_padding): Update declaration.
1789         * config/mcore/mcore.c (regno_reg_class): Change form array of int
1790         to array of enum reg_class.
1791         (mcore_attribute_table): Make static.  Move higher in file.
1792         (mcore_rtx_costs): Add cast to enum type.
1793         * config/mcore/mcore.h (regno_reg_class): Update declaration.
1794         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
1795         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
1796         in file.
1797         * config/sh/predicates.md (trapping_target_operand): Rename and to
1798         and_expr.
1799         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
1800         higher in file.
1801         * config/spu/spu.c (spu_attribute_table): Make static.  Move
1802         higher in file.
1803         * config/v850/v850.c (v850_attribute_table): Make static.  Move
1804         higher in file.
1805         (v850_rtx_costs): Use local code with enum type.
1806         (expand_epilogue): Add cast.
1807         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
1808
1809 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
1810
1811         PR target/40515
1812         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
1813         -m2a-single-only and -m2a-nofpu.
1814         * config/sh/sh.opt: Document m2a generates FPU code.  
1815
1816 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
1817
1818         * defaults.h (CAN_ELIMINATE): Provide default.
1819         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
1820         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
1821         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
1822         * config/spu/spu.h (CAN_ELIMINATE): Delete.
1823         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
1824         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
1825         * config/cris/cris.h (CAN_ELIMINATE): Delete.
1826         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
1827         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
1828         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
1829
1830 2009-06-24  DJ Delorie  <dj@redhat.com>
1831
1832         * mep-ext-cop.cpu: Fix copyright notice.
1833         * mep-default: Fix copyright notice.
1834         * mep-core: Fix copyright notice.
1835         * mep: Fix copyright notice.
1836         * mep-ivc2: Fix copyright notice.
1837         * mep-c5: Fix copyright notice.
1838
1839 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
1840
1841         * doc/contrib.texi (Contributors): 
1842
1843 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1844         
1845         PR middle-end/40501
1846         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
1847         src and dst operands if necessary.
1848
1849 2009-06-23  DJ Delorie  <dj@redhat.com>
1850
1851         Add MeP port.
1852         * config.gcc: Add mep support.
1853         * recog.c: Resurrect validate_replace_rtx_subexp().
1854         * recog.h: Likewise.
1855         * config/mep/: Add new port:
1856         * config/mep/constraints.md: New file.
1857         * config/mep/default.h: New file.
1858         * config/mep/intrinsics.h: New file.
1859         * config/mep/intrinsics.md: New file.
1860         * config/mep/ivc2-template.h: New file.
1861         * config/mep/mep-c5.cpu: New file.
1862         * config/mep/mep-core.cpu: New file.
1863         * config/mep/mep-default.cpu: New file.
1864         * config/mep/mep-ext-cop.cpu: New file.
1865         * config/mep/mep-intrin.h: New file.
1866         * config/mep/mep-ivc2.cpu: New file.
1867         * config/mep/mep-lib1.asm: New file.
1868         * config/mep/mep-lib2.c: New file.
1869         * config/mep/mep-pragma.c: New file.
1870         * config/mep/mep-protos.h: New file.
1871         * config/mep/mep-tramp.c: New file.
1872         * config/mep/mep.c: New file.
1873         * config/mep/mep.cpu: New file.
1874         * config/mep/mep.h: New file.
1875         * config/mep/mep.md: New file.
1876         * config/mep/mep.opt: New file.
1877         * config/mep/predicates.md: New file.
1878         * config/mep/t-mep: New file.
1879
1880 2009-06-23  Ian Lance Taylor  <iant@google.com>
1881
1882         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
1883         from loose_warn into c_loose_warn and from strict_warn into
1884         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
1885         --enable-build-with-cxx.  Set and substitute
1886         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
1887         * Makefile.in (CXXFLAGS): New variable.
1888         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
1889         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
1890         the default is the same as $(STRICT_WARN).
1891         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
1892         (CXX): New variable.
1893         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
1894         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
1895         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
1896         (HOST_LIBS): New variable.
1897         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
1898         (ALL_CXXFLAGS): New variable.
1899         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
1900         * doc/install.texi (Configuration): Document
1901         --enable-build-with-cxx, --with-stage1-ldflags,
1902         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
1903         * configure: Rebuild.
1904
1905 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1906
1907         * config/arm/arm.c (arm_override_options): Fix braces and formatting
1908         from previous commit.
1909
1910 2009-06-23  Ian Lance Taylor  <iant@google.com>
1911
1912         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
1913
1914 2009-06-23  Ian Lance Taylor  <iant@google.com>
1915
1916         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
1917         with ATTRIBUTE_UNUSED.
1918
1919 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1920             Pat Haugen  <pthaugen@us.ibm.com>
1921             Revital Eres  <eres@il.ibm.com>
1922
1923         * config.in (HAVE_AS_POPCNTD): Add default definition.
1924         (HAVE_AS_LWSYNC): Ditto.
1925
1926         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
1927         release number.
1928         (gcc_cv_as_powerpc_cmpb): Ditto.
1929         (gcc_cv_as_powerpc_dfp): Ditto.
1930         (gcc_cv_as_powerpc_vsx): Ditto.
1931         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
1932         supporting the popcntd/lwsync instructions.
1933         (gcc_cv_as_powerpc_lwsync): Ditto.
1934         * configure: Regenerate.
1935
1936         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
1937         -mcpu=native and -mcpu=power7.
1938         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
1939
1940         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
1941         a variable instead of a mask to reduce the number of mask bits.
1942         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1943         (-mbit-word): Ditto.
1944         (-mregnames): Ditto.
1945         * config/rs6000/rs6000.opt (-mupdate): Ditto.
1946         (-mfused-madd): Ditto.
1947
1948         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
1949         2.06 instructions.
1950         (-mvsx): New switch for VSX instructions.
1951         (-misel): Move from a variable to a mask to allow it to be set by
1952         -mcpu=.
1953
1954         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
1955         function declaration to an array declaration.
1956         (rs6000_hard_regno_nregs): New external array declaration.
1957
1958         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
1959         files included by rs6000.md.
1960
1961         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1962         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
1963
1964         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
1965         a target mask.
1966         (rs6000_debug_reg): New -mdebug= variables.
1967         (rs6000_debug_addr): Ditto.
1968         (rs6000_debug_cost): Ditto.
1969         (rs6000_pmode): New variable to hold Pmode.
1970         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
1971         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
1972         calculated at compiler start.
1973         (rs6000_hard_regno_nregs): Change function to an array which holds
1974         HARD_REGNO_NREGS calculated at compiler start.
1975         (rs6000_explicit_options): Delete isel field.
1976         (rs6000_vector_unit): New array to hold which vector unit
1977         supports arithmetic options for a given type.
1978         (rs6000_vector_mem): New array to hold which vector unit supports
1979         memory reference operations for a given type.
1980         (rs6000_vector_align): New array to given the alignment of each
1981         vector type.
1982         (power7_cost): New basic costs for power7.
1983         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
1984         (rs6000_hard_regno_nregs_internal): New function, moved from
1985         HARD_REGNO_NREGS, to calculate the number of registers each hard
1986         register takes for each type.
1987         (rs6000_debug_reg_print): New function for -mdebug=reg support.
1988         (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
1989         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
1990         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
1991         unit information here so it is calculated once at compiler startup
1992         time.
1993         (rs6000_override_options): Make -misel a target mask.  Add more
1994         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
1995         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
1996         -mdebug=cost.
1997         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
1998         (rs6000_handle_option): Move -misel from variable to target mask.
1999         (rs6000_builtin_mask_for_load): Add VSX support.
2000         (rs6000_conditional_register_usage): Ditto.
2001         (USE_ALTIVEC_FOR_ARG_P): Ditto.
2002         (function_arg_boundary): Ditto.
2003         (rs6000_expand_builtin): Ditto.
2004         (def_builtin): Make abort message a little friendlier.
2005         (rs6000_emit_int_cmove): Add support for 64-bit isel.
2006
2007         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
2008         assembler support the popcntd instruction instead of a vsx
2009         instruction to enable power7 support.
2010         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
2011         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
2012         option to the assembler if -mcpu=native.
2013         (ASM_CPU_NATIVE_SPEC): Ditto.
2014         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
2015         ISA 2.06 features.
2016         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
2017         the lwsync instruction.
2018         (enum processor_type): Add PROCESSOR_POWER7.
2019         (rs6000_debug_reg): New -mdebug= options.
2020         (rs6000_debug_addr): Ditto.
2021         (rs6000_debug_cost): Ditto.
2022         (rs6000_isel): Delete.
2023         (enum rs6000_vector): New enum to say what vector unit we have.
2024         (VECTOR_UNIT_*): New macros to say which vector unit has
2025         arithmetic operations for a given type.
2026         (VECTOR_MEM_*): New macros to say which vector unit has memory
2027         operations for a given type.
2028         (TARGET_LDBRX): Whether the machine supports the ldbrx
2029         instruction.
2030         (TARGET_ISEL): Delete, -misel moved to be a mask.
2031         (TARGET_ISEL64): New macro for 64-bit isel support.
2032         (UNITS_PER_VSX_WORD): New macro.
2033         (POINTER_SIZE): Move to be an external variable, rather than
2034         calculating whether we are generating 32 ot 64-bit code.
2035         (Pmode): Ditto.
2036         (STACK_BOUNDARY): Add VSX support.
2037         (LOCAL_ALIGNMENT): Ditto.
2038         (SLOW_UNALIGNED_ACCESS): Ditto.
2039         (VSX_REGNO_P): New macro for VSX support.
2040         (VFLOAT_REGNO_P): Ditto.
2041         (VINT_REGNO_P): Ditto.
2042         (VLOGICAL_REGNO_P): Ditto.
2043         (VSX_VECTOR_MODE): Ditto.
2044         (VSX_SCALAR_MODE): Ditto.
2045         (VSX_MODE): Ditto.
2046         (VSX_MOVE_MODE): Ditto.
2047         (VSX_REG_CLASS_P): Ditto.
2048         (HARD_REGNO_NREGS): Instead of calling a function, use an array
2049         lookup.
2050         (UNITS_PER_SIMD_WORD): Add VSX support.
2051         (MODES_TIEABLE_P): Ditto.
2052         (STARTING_FRAME_OFFSET): Ditto.
2053         (STACK_DYNAMIC_OFFSET): Ditto.
2054         (EPILOGUE_USES): Ditto.
2055         (REGNO_REG_CLASS): Move to array lookup.
2056         (CLASS_MAX_NREGS): Ditto.
2057         (rs6000_vector_reg_class): Add declaration.
2058         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
2059         overlap with the floating point and Altivec registers.
2060
2061         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
2062
2063         * config/rs6000/driver-rs6000.c (asm_names): New static array to
2064         give the appropriate asm switches if -mcpu=native.
2065         (host_detect_local_cpu): Add support for "asm".
2066         (host_detect_local_cpu): Follow GNU code guidelines for name.
2067
2068         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
2069         -mbit-word to a variable instead of being a target mask.
2070
2071         * config/rs6000/sync.md (lwsync): If the assembler supports it,
2072         emit the lwsync instruction instead of emitting the instruction as
2073         an integer constant.
2074
2075         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
2076         fixuns_trundfsi2, move expander into rs6000.md.
2077
2078         * config/rs6000/rs6000.md (cpu): Add power7.
2079         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
2080         (logical predicate patterns): Change the single instruction
2081         primitives that set CR0 to be fast_compare instead of compare.
2082         (norsi*): Ditto.
2083         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
2084         (popcntddi2): Ditto.
2085         (popcount<mode>): Ditto.
2086         (floating multiply/add insns): Name the floating point
2087         multiply/add insns.
2088         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
2089         (isel_unsigned_<mode>): Ditto.
2090         (fixuns_trundfsi2): Move expander here from spe.md.
2091         (smindi3): Define if we have -misel on 64-bit systems.
2092         (smaxdi3): Ditto.
2093         (umindi3): Ditto.
2094         (umaxdi3): Ditto.
2095
2096 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
2097
2098         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
2099         extra_objs.
2100         * config/avr/avr.c (avr_current_device): New variable.
2101         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
2102         (avr_arch, mcu_type_s): Move to avr.h.
2103         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
2104         default_data_section_start fields.
2105         (avr_arch): Moved from avr.c.
2106         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
2107         library_name fields.
2108         (avr_current_device, avr_mcu_types, avr_arch_types,
2109         avr_device_to_arch, avr_device_to_data_start,
2110         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
2111         (EXTRA_SPEC_FUNCTIONS): Define.
2112         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
2113         options mapping. Use device_to_arch and device_to_data_start insted.
2114         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
2115         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
2116         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
2117         * config/avr/driver-avr.c: New file.
2118         * config/avr/avr-devices.c: New file.
2119
2120 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
2121
2122         * var-tracking.c (unshare_variable): Force initialized to
2123         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
2124         (set_variable_part): Likewise.
2125         (struct variable_union_info): Remove pos_src field.
2126         (vui_vec, vui_allocated): New variables.
2127         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
2128         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
2129         == 1 use a simpler sorting algorithm.  Compute pos field right
2130         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
2131         Avoid quadratic comparison if !flag_var_tracking_uninit.
2132         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
2133         unshare_variable unconditionally.   
2134         (dataflow_set_different_2): Removed.
2135         (dataflow_set_different): Don't traverse second hash table.
2136         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
2137         unconditionally to var_reg_set or var_mem_set.
2138         (emit_notes_in_bb): Likewise.
2139         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
2140         unshare_variable.
2141         (emit_note_insn_var_location): Don't set initialized to
2142         VAR_INIT_STATUS_INITIALIZED early.
2143         (vt_finalize): Free vui_vec if needed, clear vui_vec and
2144         vui_allocated.
2145         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
2146
2147         * tree-object-size.c (addr_object_size): Instead of checking
2148         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
2149         are no FIELD_DECLs following it.
2150
2151 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
2152
2153         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
2154         order to match bswaps with signed source operands.
2155
2156 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2157
2158         * sdbout.c (sdbout_one_type): Fix braces in switch.
2159
2160 2009-06-23  Richard Guenther  <rguenther@suse.de>
2161
2162         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
2163         member.
2164         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
2165         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
2166         var_callused, callused_tree, var_storedanything, storedanything_tree,
2167         var_integer, integer_tree): Remove global variables.
2168         (new_var_info): Do not pass new id, append the new var to the
2169         global variable vector.
2170         (do_ds_constraint): Use is_global_var member of the variable-info.
2171         (new_scalar_tmp_constraint_exp): Adjust.
2172         (create_function_info_for): Likewise.
2173         (create_variable_info_for): Likewise.
2174         (find_what_var_points_to): Remove dead code.
2175         (init_base_vars): Simplify.
2176         (compute_points_to_sets): Adjust.
2177
2178 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
2179
2180         * combine.c (try_combine): Dump information about the insns we're
2181         combining.
2182
2183 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
2184
2185         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
2186         check when calling force_to_mode on TRUNCATE's operand.
2187
2188 2009-06-22  Ian Lance Taylor  <iant@google.com>
2189
2190         * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
2191
2192 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2193
2194         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
2195
2196 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2197
2198         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
2199         override library linkage flags such as -static-libgcc or
2200         -shared-libgcc.
2201
2202 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2203
2204         * config/m68k/m68k-devices.def: Add line for MCF5221x.
2205
2206 2009-06-22  Ian Lance Taylor  <iant@google.com>
2207
2208         * config/linux.opt: Put mglibc ahead of muclibc.
2209
2210         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
2211         for duplicate decls.
2212
2213 2009-06-22  Matthias Klose  <doko@ubuntu.com>
2214
2215         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
2216
2217 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2218
2219         PR objc/28050
2220         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
2221         instead of NULL if a parser error occurs.
2222
2223 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2224
2225         * dwarf2out.c (dwarf2_debug_hooks): Initialize
2226         non-DWARF2_DEBUGGING_INFO version.
2227
2228 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
2229
2230         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
2231         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2232
2233         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
2234         (LIBGCC2_TF_CEXT): Define.
2235         (TF_SIZE): Define.
2236
2237 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2238
2239         PR target/40463
2240         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
2241
2242 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2243
2244         * config/arm/arm.c (arm_override_options): Disable
2245         -mcaller-super-interworking and -mcallee-super-interworking.
2246         * doc/invoke.texi (ARM Options): Document this.
2247
2248 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2249
2250         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
2251         * config/arm/constraints.md (j): New constraint for movw operands.
2252         (N): Remove thumb2 meaning.
2253         * config/arm/arm.md (*arm_movw): Delete.
2254         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
2255         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
2256         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
2257
2258 2009-06-22  Martin Jambor  <mjambor@suse.cz>
2259
2260         PR tree-optimization/40492
2261         * tree-sra.c (sra_modify_assign): Pass zero offsets to
2262         build_ref_for_offset.
2263
2264 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
2265
2266         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
2267         JUMP_TABLE_DATA_P predicates where applicable.
2268         * auto-inc-dec.c: Ditto.
2269         * builtins.c: Ditto.
2270         * caller-save.c: Ditto.
2271         * calls.c: Ditto.
2272         * cfgcleanup.c: Ditto.
2273         * cfglayout.c: Ditto.
2274         * cfgrtl.c: Ditto.
2275         * combine.c: Ditto.
2276         * combine-stack-adj.c: Ditto.
2277         * cse.c: Ditto.
2278         * cselib.c: Ditto.
2279         * dbxout.c: Ditto.
2280         * df-scan.c: Ditto.
2281         * dse.c: Ditto.
2282         * dwarf2asm.c: Ditto.
2283         * dwarf2out.c: Ditto.
2284         * emit-rtl.c: Ditto.
2285         * except.c: Ditto.
2286         * explow.c: Ditto.
2287         * expmed.c: Ditto.
2288         * expr.c: Ditto.
2289         * final.c: Ditto.
2290         * function.c: Ditto.
2291         * fwprop.c: Ditto.
2292         * gcse.c: Ditto.
2293         * genpreds.c: Ditto.
2294         * genrecog.c: Ditto.
2295         * ifcvt.c: Ditto.
2296         * ira-costs.c: Ditto.
2297         * ira-lives.c: Ditto.
2298         * jump.c: Ditto.
2299         * loop-iv.c: Ditto.
2300         * lower-subreg.c: Ditto.
2301         * modulo-sched.c: Ditto.
2302         * optabs.c: Ditto.
2303         * postreload.c: Ditto.
2304         * print-rtl.c: Ditto.
2305         * recog.c: Ditto.
2306         * reginfo.c: Ditto.
2307         * regmove.c: Ditto.
2308         * reload1.c: Ditto.
2309         * reload.c: Ditto.
2310         * reorg.c: Ditto.
2311         * rtlanal.c: Ditto.
2312         * rtl.c: Ditto.
2313         * sched-vis.c: Ditto.
2314         * sdbout.c: Ditto.
2315         * sel-sched-ir.c: Ditto.
2316         * simplify-rtx.c: Ditto.
2317         * targhooks.c: Ditto.
2318         * var-tracking.c: Ditto.
2319         * vmsdbgout.c: Ditto.
2320
2321 2009-06-22  Matthias Klose  <doko@ubuntu.com>
2322
2323         * Makefile.in (install-plugin): Always use DESTDIR.
2324
2325 2009-06-22  Olivier Hainque  <hainque@adacore.com>
2326         
2327         * config/pa/pa.c (output_call): Don't optimize post call jumps
2328         into return address adjustments if the call may throw.
2329
2330 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
2331
2332         * arm.c (thumb1_output_casesi): New function.
2333         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
2334         optimizing for size or PIC.
2335         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
2336         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
2337         (casesi): Handle Thumb-1 when optimizing for size or PIC.
2338         (thumb1_casesi_internal_pic): New expand rule.
2339         (thumb1_casesi_dispatch): New pattern.
2340         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
2341         thumb-1 mode.
2342         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
2343         in the text seciton when PIC or optimizing for size.
2344         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
2345         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
2346         preservation properties of code.
2347         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
2348         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
2349         (__gnu_thumb1_case_si): New function.
2350         * t-arm (LIB1ASMSRC): Define here.
2351         (LIB1ASMFUNCS): Add some common functions.
2352         * t-arm-elf (LIB1ASMSRC): Delete.
2353         (LIB1ASMFUNCS): Append to existing set.
2354         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2355         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2356         * t-symbian (LIB1ASMFUNCS): Likewise.
2357         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2358         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2359
2360 2009-06-21  Richard Guenther  <rguenther@suse.de>
2361
2362         PR tree-optimization/38729
2363         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
2364         to loops with a single exit if -fno-expensive-optimizations.
2365
2366 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
2367
2368         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
2369         (dataflow_set): Change vars type from htab_t to shared_hash.
2370         (shared_hash_pool, empty_shared_hash): New variables.
2371         (vars_clear): Removed.
2372         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
2373         shared_hash_find_slot_unshare, shared_hash_find_slot,
2374         shared_hash_find_slot_noinsert, shared_hash_find): New
2375         static inlines.
2376         (shared_hash_unshare, shared_hash_destroy): New functions.
2377         (unshare_variable): Unshare set->vars if shared, use
2378         shared_hash_htab.
2379         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
2380         (get_init_value, find_src_set_src, dump_dataflow_set,
2381         clobber_variable_part, emit_notes_for_differences): Use
2382         shared_hash_htab.
2383         (dataflow_set_init): Remove second argument, set vars to
2384         empty_shared_hash instead of creating a new htab.
2385         (dataflow_set_clear): Call shared_hash_destroy and set vars
2386         to empty_shared_hash instead of calling vars_clear.
2387         (dataflow_set_copy): Don't call vars_copy, instead just share
2388         the src htab with dst.
2389         (variable_union): Use shared_hash_*, use initially NO_INSERT
2390         lookup if set->vars is shared.  Don't keep slot cleared before
2391         calling unshare_variable.  Unshare set->vars if needed.
2392         Even ->refcount == 1 vars must be unshared if set->vars is shared
2393         and var needs to be modified.
2394         (variable_canonicalize): New function.
2395         (dataflow_set_union): If dst->vars is empty, just share src->vars
2396         with dst->vars and traverse with variable_canonicalize to canonicalize
2397         and unshare what is needed.
2398         (dataflow_set_different): If old_set and new_set use the same shared
2399         htab, they aren't different.  If number of htab elements is different,
2400         htabs are different.  Use shared_hash_*.
2401         (dataflow_set_destroy): Call shared_hash_destroy instead of
2402         htab_delete.
2403         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
2404         second argument to dataflow_set_init.
2405         (vt_initialize): Likewise.  Initialize shared_hash_pool and
2406         empty_shared_hash, move bb in/out initialization afterwards.
2407         Use variable_htab_free instead of NULL as changed_variables del hook.
2408         (variable_was_changed): Change type of second argument to pointer to
2409         dataflow_set.  When inserting var into changed_variables, bump
2410         refcount.  Unshare set->vars if set is shared htab and slot needs to
2411         be cleared.
2412         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
2413         lookup if set->vars is shared.  Unshare set->vars if needed.
2414         Even ->refcount == 1 vars must be unshared if set->vars is shared
2415         and var needs to be modified.  Adjust variable_was_changed caller.
2416         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
2417         vars must be unshared if set->vars is shared and var needs to be
2418         modified.  Adjust variable_was_changed caller.
2419         (emit_note_insn_var_location): Don't pool_free var.
2420         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
2421         instead of 1.
2422         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
2423         free_alloc_pool on shared_hash_pool.
2424
2425 2009-06-20  Anthony Green  <green@moxielogic.com>
2426
2427         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
2428         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
2429
2430 2009-06-20  Richard Guenther  <rguenther@suse.de>
2431
2432         * tree-ssa-structalias.c (find_func_aliases): For memset use
2433         a constraint from NULL if we memset to zero.
2434         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
2435         we explicitly handle that do not read from memory.
2436         (call_may_clobber_ref_p_1): Properly handle builtins that may
2437         set errno.
2438
2439 2009-06-20  Richard Guenther  <rguenther@suse.de>
2440
2441         PR tree-optimization/40495
2442         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
2443         (new_scalar_tmp_constraint_exp): New function.
2444         (process_constraint): Do not create temporary decls.
2445         (process_all_all_constraints): Likewise.
2446         (handle_const_call): Likewise.
2447         (create_function_info_for): Do not set decl.
2448
2449 2009-06-19  Ian Lance Taylor  <iant@google.com>
2450
2451         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
2452         (rs6000_attribute_table): Make static; move before use.
2453
2454 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
2455
2456         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
2457         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
2458         Propagate the TREE_READONLY flag without overwriting it.
2459         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
2460         Propagate the TREE_READONLY flag onto the result.
2461         (process_call_operands): Move around.  Use correct constant value.
2462
2463 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2464
2465         PR target/40482
2466         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
2467         * config/arm/arm.md: Likewise.
2468
2469 2009-06-19  Ian Lance Taylor  <iant@google.com>
2470
2471         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
2472         to GIMPLE_ERROR_MARK.
2473
2474         * c-typeck.c (build_conditional_expr): Add op1_original_type and
2475         op2_original_type parameters.  Warn about using different enum types.
2476         * c-parser.c (c_parser_conditional_expression): Pass original
2477         types to build_conditional_expr.
2478         * c-tree.h (build_conditional_expr): Update declaration.
2479
2480 2009-06-19  Ian Lance Taylor  <iant@google.com>
2481
2482         * config/i386/i386.c (ix86_function_specific_save): Test that
2483         fields match values, rather than testing the values are in a
2484         certain range.
2485
2486 2009-06-19  Richard Guenther  <rguenther@suse.de>
2487
2488         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2489         ADDR_EXPR pointers.
2490         (ptr_derefs_may_alias_p): Likewise.
2491         (ptr_deref_may_alias_ref_p_1): New function.
2492         (ptr_deref_may_alias_ref_p): Likewise.
2493         (ref_maybe_used_by_call_p_1): Handle builtins that are not
2494         covered by looking at the ESCAPED solution.
2495         (call_may_clobber_ref_p_1): Likewise.
2496         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
2497         Handle NULL_TREE offset.  Do not produce redundant constraints.
2498         (process_all_all_constraints): New helper function.
2499         (do_structure_copy): Use it.
2500         (handle_lhs_call): Likewise.
2501         (find_func_aliases): Handle some builtins with pointer arguments
2502         and/or return values explicitly.
2503
2504 2009-06-19  Ian Lance Taylor  <iant@google.com>
2505
2506         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
2507
2508 2009-06-19  Ian Lance Taylor  <iant@google.com>
2509
2510         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
2511
2512 2009-06-19  Ian Lance Taylor  <iant@google.com>
2513
2514         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
2515         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
2516         version.
2517
2518         * c-decl.c (finish_decl): If -Wc++-compat, warn about
2519         uninitialized const.
2520
2521 2009-06-19  Ian Lance Taylor  <iant@google.com>
2522
2523         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
2524         all uses.
2525
2526         * c-decl.c (in_struct, struct_types): Remove.
2527         (struct c_binding): Add in_struct field.
2528         (c_binding_ptr): Define type, along with VEC.
2529         (struct c_struct_parse_info): Define.
2530         (struct_parse_info): New static variable.
2531         (bind): Initialize in_struct field.
2532         (start_struct): Remove enclosing_in_struct and
2533         enclosing_struct_types parameters.  Add
2534         enclosing_struct_parse_info parameter.  Change all callers.  Set
2535         struct_parse_info rather than in_struct and struct_types.
2536         (grokfield): If -Wc++-compat and there is a symbol binding for the
2537         field name, set the in_struct flag and push it on the
2538         struct_parse_info->fields vector.
2539         (warn_cxx_compat_finish_struct): New static function.
2540         (finish_struct): Remove enclosing_in_struct and
2541         enclosing_struct_types parameters.  Add
2542         enclosing_struct_parse_info parameter.  Change all callers.  Don't
2543         set C_TYPE_DEFINED_IN_STRUCT here.  Call
2544         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
2545         parameter.  Only push on struct_types if warn_cxx_compat.
2546         (finish_enum): Only push on struct_types if warn_cxx_compat.
2547         (declspecs_add_type): Add loc parameter.  Change all callers.
2548         Change all error calls to error_at.  Pass loc, not input_location,
2549         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
2550         defined in a struct.  If -Wc++-compat and parsing a struct, record
2551         that a typedef name was used.
2552         * c-parser.c (c_parser_declspecs): Get location to pass to
2553         declspecs_add_type.
2554         (c_parser_struct_or_union_specifier): Update calls to start_struct
2555         and finish_struct.
2556         * c-tree.h (struct c_struct_parse_info): Declare.
2557         (finish_struct, start_struct): Update declarations.
2558         (declspecs_add_type): Update declaration.
2559
2560 2009-06-19  Ian Lance Taylor  <iant@google.com>
2561
2562         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
2563         variable with an anonymous type.
2564
2565 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
2566
2567         * see.c: Remove for real.
2568
2569 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
2570
2571         * optabs.h (enum optab_index): Add new OTI_significand.
2572         (significand_optab): Define corresponding macro.
2573         * optabs.c (init_optabs): Initialize significand_optab.
2574         * genopinit.c (optabs): Implement significand_optab using
2575         significand?f2 patterns.
2576         * builtins.c (expand_builtin_mathfn): Handle
2577         BUILT_IN_SIGNIFICAND{,F,L}.
2578         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
2579         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2580
2581         * config/i386/i386.md (significandxf2, significand<mode>2): New
2582         expanders to implement significandf, significand and significandl
2583         built-ins as inline x87 intrinsics.
2584
2585 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
2586
2587         * config/avr/avr.c (avr_override_options): Remove setting value of
2588         PARAM_INLINE_CALL_COST.
2589
2590 2009-06-18  Richard Henderson  <rth@redhat.com>
2591
2592         PR 40488
2593         * tree-pass.h (TDF_ASMNAME): New.
2594         * tree-dump.c (dump_options): Add asmname.
2595         * doc/invoke.texi: Document it.
2596
2597         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
2598         (dump_decl_name): ...here.
2599         (dump_function_name): New flags arg; mind TDF_ASMNAME.
2600         (dump_generic_node): Update dump_function_name calls.
2601         (print_call_name): New flags arg; update all dump calls.
2602         * diagnostic.h (print_call_name): Update.
2603         * gimple-pretty-print.c (dump_gimple_call): Update.
2604
2605 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2606
2607         PR target/40470
2608         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
2609
2610 2009-06-18  Diego Novillo  <dnovillo@google.com>
2611
2612         * doc/plugins.texi: Document plugin_is_GPL_compatible.
2613         * plugin.c (str_license): Declare.
2614         (try_init_one_plugin): Assert that the symbol
2615         'plugin_is_GPL_compatible' exists.
2616
2617 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
2618
2619         * see.c: Remove.
2620         * Makefile.in (OBJS-common): Remove see.o.
2621         (see.o): Remove.
2622         * common.opt (fsee): Mark as preserved for backward compatibility.
2623         * opts.c (common_handle_option): Add OPT_fsee to the backward 
2624         compatibility section.
2625         * passes.c (init_optimization_passes, pass_see): Remove pass.
2626         * timevar.def (TV_SEE): Remove.
2627         * tree-pass.h (pass_see): Remove declaration.
2628         * doc/invoke.texi (-fsee): Remove documentation.
2629         
2630 2009-06-18  Martin Jambor  <mjambor@suse.cz>
2631
2632         * tree-sra.c: Include statistics.h
2633         (sra_stats): New variable.
2634         (sra_initialize): Clear sra_stats.
2635         (create_access_replacement): Increment sra_stats.replacements.
2636         (get_access_replacement): Do not return twice.
2637         (analyze_all_variable_accesses): Increment statistics counter by the
2638         number of scalarized aggregates.
2639         (generate_subtree_copies): Increment sra_stats.subtree_copies.
2640         (sra_modify_expr): Increment sra_stats.exprs.
2641         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
2642         (sra_modify_assign): Increment sra_stats.exprs,
2643         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
2644         (perform_intra_sra): Update statistics counters.
2645         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
2646
2647 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
2648
2649         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
2650         (arm_scalar_mode_supported_p): New function.
2651
2652 2009-06-18  Paul Brook  <paul@codesourcery.com>
2653             Sandra Loosemore  <sandra@codesourcery.com>
2654
2655         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
2656         (__extendhfsf2, __truncsfhf2): Define.
2657         * config/arm/fp16.c: New file.
2658         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
2659         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
2660
2661 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
2662
2663         * doc/extend.texi (Half-Precision): New section.
2664         * doc/invoke.texi (Option Summary): List -mfp16-format.
2665         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
2666         * config/arm/arm.opt (mfp16-format=): New.
2667         * config/arm/arm.c: Include intl.h.
2668         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
2669         (TARGET_INVALID_RETURN_TYPE): Redefine.
2670         (TARGET_PROMOTED_TYPE): Redefine.
2671         (TARGET_CONVERT_TO_TYPE): Redefine.
2672         (arm_fp16_format): Define.
2673         (all_fpus): Add entry for neon-fp16.
2674         (fp_model_for_fpu): Likewise.
2675         (struct fp16_format): Declare.
2676         (all_fp16_formats): Define.
2677         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
2678         functions.
2679         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
2680         and no ldrh.
2681         (arm_legitimate_index_p): Treat HFmode like HImode.
2682         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
2683         (coproc_secondary_reload_class): Special-case HFmode.
2684         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
2685         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
2686         (arm_init_fp16_builtins): New.
2687         (arm_init_builtins): Call it.
2688         (arm_invalid_parameter_type): New.
2689         (arm_invalid_return_type): New.
2690         (arm_promoted_type): New.
2691         (arm_convert_to_type).
2692         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
2693         format.
2694         (arm_emit_fp16_const): New function.
2695         (arm_mangle_type): Mangle __fp16 as "Dh".
2696         * config/arm/arm.h (TARGET_VFPD32): Make it know about
2697         FPUTYPE_NEON_FP16.
2698         (TARGET_NEON_FP16): New.
2699         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
2700         (enum fputype): Add FPUTYPE_NEON_FP16.
2701         (enum arm_fp16_format_type): Declare.
2702         (arm_fp16_format): Declare.
2703         (LARGEST_EXPONENT_IS_NORMAL): Define.
2704         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
2705         * config/arm/arm-modes.def (HFmode): Define.
2706         * config/arm/vfp.md: (*movhf_vfp): New.
2707         (extendhfsf2): New.
2708         (truncsfhf2): New.
2709         * config/arm/arm.md: (fpu): Add neon_fp16.
2710         (floatsihf2, floatdihf2): New.
2711         (fix_trunchfsi2, fix_trunchfdi2): New.
2712         (truncdfhf2): New.
2713         (extendhfdf2): New.
2714         (movhf): New.
2715         (*arm32_movhf): New.
2716         (*thumb1_movhf): New.
2717         (consttable_2): Add check for HFmode constants.
2718         (consttable_4): Handle HFmode constants.
2719
2720 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
2721
2722         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
2723
2724 2009-06-17  Olivier Hainque  <hainque@adacore.com>
2725
2726         * collect2.c (main): Use CONST_CAST2 to perform char ** to
2727         const char ** conversion in AIX specific section.
2728         
2729 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
2730
2731         * config/i386/i386.c (ix86_special_builtin_type): Remove
2732         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
2733         (bdesc_special_args): Updated.
2734         (ix86_init_mmx_sse_builtins): Likewise.
2735         (ix86_expand_special_args_builtin): Likewise.
2736
2737 2009-06-17  Richard Henderson  <rth@redhat.com>
2738
2739         * tree-pretty-print.c (maybe_dump_asm_name): New.
2740         (dump_decl_name): Use it.
2741         (PRINT_FUNCTION_NAME): Merge into...
2742         (dump_function_name): ... here.  Use maybe_dump_asm_name.
2743
2744 2009-06-17  Cary Coutant  <ccoutant@google.com>
2745
2746         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
2747         Change caller.
2748         * debug.c (struct gcc_debug_hooks): Change placeholder for
2749         source_line hook.
2750         (debug_nothing_int_charstar_int): Replaced by...
2751         (debug_nothing_int_charstar_int_bool): ...this.
2752         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
2753         source_line prototype.
2754         (debug_nothing_int_charstar_int): Replaced by...
2755         (debug_nothing_int_charstar_int_bool): ...this.
2756         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
2757         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
2758         Output is_stmt operand when necessary.
2759         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
2760         (notice_source_line): Add is_stmt parameter.
2761         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
2762         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
2763         Change callers.
2764         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
2765         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
2766
2767 2009-06-17  Ian Lance Taylor  <iant@google.com>
2768
2769         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
2770         Change all uses.
2771         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
2772         call uses.
2773
2774 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
2775
2776         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
2777         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
2778         tree_strip_sign_nop_conversions and
2779         tree_ssa_strip_useless_type_conversions rather than stripping
2780         the operations here.
2781         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
2782         Declare them.
2783         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
2784         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
2785         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
2786         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
2787         functions.
2788
2789 2009-06-17  Michael Eager  <eager@eagercon.com>
2790
2791         * config/rs6000/constraints.md (register_constraint "d"): New.
2792         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
2793         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
2794         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
2795         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
2796         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
2797         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
2798         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
2799         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
2800         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
2801         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
2802         __fctiwz): Same.
2803         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
2804         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
2805         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
2806         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
2807         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2808         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
2809         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
2810         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
2811         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
2812         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
2813         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
2814         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
2815         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
2816         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
2817
2818 2009-06-16  Ian Lance Taylor  <iant@google.com>
2819
2820         * profile.c (total_num_never_executed): Don't define.
2821         (compute_branch_probabilities): Don't count or print
2822         num_never_executed.
2823         (init_branch_prob): Don't set total_num_never_executed.
2824         (end_branch_prob): Don't print total_num_never_executed.
2825
2826 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
2827
2828         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
2829
2830 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
2831
2832         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
2833         (nabstd2_fpr): Same.
2834
2835 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
2836
2837         * expr.c (expand_assignment): Change complex type check.
2838
2839 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
2840
2841         * doc/plugins.texi (Building GCC plugins): Added new section. 
2842
2843 2009-06-17  Ian Lance Taylor  <iant@google.com>
2844
2845         * c-pch.c (get_ident): Don't set size of templ array.
2846         (pch_init): Don't set size of partial_pch array.
2847
2848         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
2849         string constant to intialize an array whose size is the length of
2850         the string.
2851
2852 2009-06-17  Richard Guenther  <rguenther@suse.de>
2853
2854         PR tree-optimization/40389
2855         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
2856         to addressable types.
2857         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
2858
2859 2009-06-17  Richard Guenther  <rguenther@suse.de>
2860
2861         PR middle-end/40460
2862         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
2863         if there is no evolution of left in the loop bail out.
2864         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
2865         chrec_fold_multiply.
2866
2867 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
2868             Janis Johnson  <janis187@us.ibm.com>
2869
2870         PR target/39254
2871         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
2872         for the symbol ref of a constant that is the source of a move
2873         - nor for any other not-obvious-label-ref constants.
2874
2875 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
2876
2877         * plugin.c (position_pass): Skip newly inserted pass during list
2878         traversal to avoid repeated insertion.
2879
2880 2009-06-16  Ian Lance Taylor  <iant@google.com>
2881
2882         * vec.h (VEC_stack_alloc): Define different version if
2883         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
2884         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
2885         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
2886         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
2887
2888 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
2889
2890         * config.gcc (extra_headers): Add ia32intrin.h for x86.
2891
2892         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
2893         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
2894         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
2895         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
2896         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
2897         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
2898         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
2899         (bdesc_special_args): Add __builtin_ia32_rdtsc and
2900         __builtin_ia32_rdtscp.
2901         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
2902         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
2903         and __builtin_ia32_rorhi.
2904         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
2905         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
2906         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
2907         (ix86_expand_args_builtin): Likewise.
2908         (ix86_expand_special_args_builtin): Likewise.
2909
2910         * config/i386/i386.md (UNSPECV_RDTSCP): New.
2911         (UNSPECV_RDTSC): Likewise.
2912         (UNSPECV_RDPMC): Likewise.
2913         (*bsr): Renamed to ...
2914         (bsr): This
2915         (*bsr_rex64): Renamed to ...
2916         (bsr_rex64): This.
2917         (rdpmc): New.
2918         (*rdpmc): Likewise.
2919         (*rdpmc_rex64): Likewise.
2920         (rdtsc): Likewise.
2921         (*rdtsc): Likewise.
2922         (*rdtsc_rex64): Likewise.
2923         (rdtscp): Likewise.
2924         (*rdtscp): Likewise.
2925         (*rdtscp_rex64): Likewise.
2926
2927         * config/i386/ia32intrin.h: New.
2928
2929         * config/i386/x86intrin.h: Include <ia32intrin.h>.
2930
2931 2009-06-16  Ian Lance Taylor  <iant@google.com>
2932
2933         * ira-build.c (copy_info_to_removed_store_destinations):
2934         Initialize parent_a.
2935
2936 2009-06-16  Ian Lance Taylor  <iant@google.com>
2937
2938         * c-decl.c (grokdeclarator): Change size_varies to bool.
2939
2940 2009-06-16  Ian Lance Taylor  <iant@google.com>
2941
2942         * sel-sched.c: Make forward declarations of move_op_hooks and
2943         fur_hooks explicitly extern.
2944
2945 2009-06-16  Ian Lance Taylor  <iant@google.com>
2946
2947         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
2948         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
2949
2950 2009-06-16  Ian Lance Taylor  <iant@google.com>
2951
2952         * resource.c (mark_referenced_resources): Change
2953         include_delayed_effects parameter to bool.  Change all callers.
2954         (mark_end_of_function_resources): Likewise.
2955         * reorg.c (insn_references_resource_p): Likewise.
2956         (insn_sets_resource_p): Likewise.
2957         * resource.h (mark_referenced_resources): Update declaration.
2958         (mark_end_of_function_resources): Update declaration.
2959
2960 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
2961
2962         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
2963
2964 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
2965
2966         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
2967         GCC can bootstrap on AIX with GNU Binutils 2.20.
2968
2969 2009-06-16  Ian Lance Taylor  <iant@google.com>
2970
2971         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
2972
2973 2009-06-16  Ian Lance Taylor  <iant@google.com>
2974
2975         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
2976         inline, not extern inline.
2977         (exact_log2): Likewise.
2978         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
2979         test CLZ_HWI.
2980         (exact_log2): Likewise, but don't test CTZ_HWI.
2981
2982 2009-06-16  Ian Lance Taylor  <iant@google.com>
2983
2984         * bitmap.c (bitmap_clear): Don't declare as inline.
2985         * gimple.c (gimplify_assign): Likewise.
2986         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
2987         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
2988         (sched_scan_info): Remove duplicate definition.
2989
2990 2009-06-16  Ian Lance Taylor  <iant@google.com>
2991
2992         * c-common.c (skip_evaluation): Don't define.
2993         (c_inhibit_evaluation_warnings): Define global variable.
2994         (overflow_warning): Check c_inhibit_evaluation_warnings rather
2995         than skip_evaluation.
2996         (convert_and_check, warn_for_div_by_zero): Likewise.
2997         * c-common.h (skip_evaluation): Don't declare.
2998         (c_inhibit_evaluation_warnings): Declare.
2999         * c-parser.c (c_parser_typeof_specifier): Set
3000         c_inhibit_evaluation_warnings rather than skip_evaluation.
3001         (c_parser_conditional_expression): Likewise.
3002         (c_parser_binary_expression): Likewise.
3003         (c_parser_sizeof_expression): Likewise.
3004         (c_parser_alignof_expression): Likewise.
3005         * c-typeck.c (build_indirect_ref): Check
3006         c_inhibit_evaluation_warnings rather than skip_evaluation.
3007         (build_conditional_expr, build_binary_op): Likewise.
3008
3009 2009-06-16  Richard Guenther  <rguenther@suse.de>
3010
3011         * tree-ssa-alias.c (is_escape_site): Remove.
3012         * tree-ssa-alias.h (enum escape_type): Remove.
3013         (is_escape_site): Likewise.
3014         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
3015         via casts and asms without deferring to is_escape_site.
3016
3017 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
3018
3019         PR middle-end/40446
3020         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
3021         use gen_lowpart if op0 has complex mode.
3022
3023 2009-06-16  Richard Guenther  <rguenther@suse.de>
3024
3025         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
3026         variables add them to ESCAPED.
3027         (find_func_aliases): Do not make all indirectly stored values escaped.
3028
3029 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
3030
3031         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
3032         make_decl_one_only.
3033
3034 2009-06-16  Martin Jambor  <mjambor@suse.cz>
3035
3036         PR tree-optimization/40432
3037         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
3038         check whether we need to force gimple register operand.
3039
3040 2009-06-16  Martin Jambor  <mjambor@suse.cz>
3041
3042         PR tree-optimization/40413
3043         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
3044         build_ref_for_offset.
3045         (propagate_subacesses_accross_link): Fix a typo in a comment.
3046
3047 2009-06-16  Ira Rosen  <irar@il.ibm.com>
3048
3049         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
3050         with additional parameter.
3051         * tree-vectorizer.h (enum vect_def_type): Add new value
3052         vect_nested_cycle.
3053         (enum vect_relevant): Add comments.
3054         (vect_is_simple_reduction): Add new argument.
3055         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
3056         Detect nested cycles.
3057         (vect_is_simple_reduction): Update documentation, add an argument to
3058         distinguish inner-loop reduction from nested cycle, detect nested
3059         cycles, fix printings and indentation, don't swap operands in case
3060         of nested cycle.
3061         (get_initial_def_for_reduction): Handle subtraction.
3062         (vect_create_epilog_for_reduction): Add new argument to specify
3063         reduction variable.
3064         (vect_finalize_reduction): Handle subtraction, fix comments.
3065         (vectorizable_reduction): Handle nested cycles. In case of nested
3066         cycle keep track of the reduction variable position. Call 
3067         vect_is_simple_reduction with additional parameter. Use original
3068         statement code in reduction epilogue for nested cycle. Call
3069         vect_create_epilog_for_reduction with additional parameter.
3070         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
3071         inner-loop vectorization.
3072         (vect_recog_widen_sum_pattern): Likewise.
3073         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
3074         and reductions.
3075         (vect_mark_stmts_to_be_vectorized): Likewise.
3076         (vect_get_vec_def_for_operand): Handle nested cycles.
3077
3078 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3079
3080         * doc/invoke.texi (Debugging Options): Fix option index entries
3081         for -fdump-statistics, -frandom-seed add entries for
3082         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
3083         (FRV Options): Fix entries for -mTLS, -mtls.
3084         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
3085         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
3086         (M68hc1x Options): Fix @itemx for -mnominmax.
3087         (MCore Options): Fix entry for -mno-lsim.
3088         (MMIX Options): Fix entry for -mabi=mmixware.
3089         (PDP-11 Options): Fix entry for -mbcopy-builtin.
3090
3091 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
3092
3093         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
3094         Mention the plugin mode of gengtype.
3095         * doc/gty.texi (Source Files Containing Type Information): Likewise.
3096         * gengtype.c: Updated copyright.
3097         (plugin_files, nb_plugin_files) Added new static variables.
3098         (measure_input_list) Care about plugin_files.
3099         (write_rtx_next): Added early return in plugin mode.
3100         (create_file): Updated copyright year in generated file. Added
3101         asserts.
3102         (oprintf): Added early return if NULL outf.
3103         (get_output_file_with_visibility): Care of plugin_files.
3104         (get_output_file_name): May return null.
3105         (write_local): Added early return.
3106         (put_mangled_filename): Ditto.
3107         (finish_root_table): Added check for base_files.
3108         (write_roots): Care about null when plugins.
3109         (main): Added plugin mode.
3110
3111 2009-06-15  Ian Lance Taylor  <iant@google.com>
3112
3113         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
3114         * gcov.c (read_count_file): Add braces around variables declared
3115         before label.
3116
3117         * c.opt (Wjump-misses-init): New warning.
3118         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
3119         -Wall and -Wc++-compat if not already set.
3120         (c_common_post_options): Clear warn_jump_misses_init if it was not
3121         set.
3122         * c-decl.c (struct c_binding): Change type field to a union with
3123         new label field.  Make it the first field in the struct.  Update
3124         references to type to use u.type instead.
3125         (struct c_spot_bindings): Define.
3126         (struct c_goto_bindings): Define.
3127         (c_goto_bindings_p): Define, along with VECs.
3128         (struct c_label_vars): Define.
3129         (struct c_scope): Add has_label_bindings field.
3130         (bind_label, set_spot_bindings): New static functions.
3131         (decl_jump_unsafe, update_spot_bindings): New static functions.
3132         (update_label_decls): New static function.
3133         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
3134         Update binding u.label field to shadowed field.
3135         (c_binding_start_stmt_expr): New function.
3136         (c_binding_end_stmt_expr): New function.
3137         (pushdecl): Don't call c_begin_vm_scope.
3138         (make_label): Add defining and p_label_vars parameters.  Change
3139         all callers.
3140         (lookup_label): Correct test for whether a label has not yet been
3141         defined.  Call bind_label rather than bind.
3142         (warn_about_goto): New static function.
3143         (lookup_label_for_goto): New function.
3144         (declare_label): Call bind_label rather than bind.
3145         (check_earlier_gotos): New static function.
3146         (define_label): Don't give errors about jumping into statement
3147         expressions or scopes of variably modified types.  Call
3148         set_spot_bindings and check_earlier_gotos.  Call bind_label
3149         instead of bind.  Don't set label_context_stack_se or
3150         label_context_stack_vm.
3151         (c_get_switch_bindings): New function.
3152         (c_release_switch_bindings): New function.
3153         (c_check_switch_jump_warnings): New function.
3154         (start_function): Don't set label_context_stack_se or
3155         label_context_stack_vm.
3156         (finish_function): Likewise.
3157         * c-typeck.c (label_context_stack_se): Don't define.
3158         (label_context_stack_vm): Don't define.
3159         (c_finish_goto_label): Call lookup_label_for_goto rather than
3160         lookup_label.  Don't give errors about jumping into a statement
3161         expression or the scope of a variably modified type.  Don't set
3162         label_context_stack_se or label_context_stack_vm.
3163         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
3164         fields.  Add bindings field.
3165         (c_start_case): Don't set deleted fields.  Set bindings field.
3166         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
3167         or blocked_vm.  Call c_check_switch_jump_warnings.
3168         (c_finish_case): Don't test blocked_stmt_expr field.  Call
3169         c_release_switch_bindings.
3170         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
3171         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
3172         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
3173         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
3174         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
3175         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
3176         (c_begin_vm_scope, c_end_vm_scope): Don't define.
3177         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
3178         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
3179         (C_DECL_UNJUMPABLE_VM): Don't define.
3180         (C_DECL_UNDEFINABLE_VM): Don't define.
3181         (struct c_label_list): Don't define.
3182         (struct c_label_context_se): Don't define.
3183         (struct c_label_context_vm): Don't define.
3184         (struct c_spot_bindings): Declare.
3185         (c_bindings_start_stmt_expr): Declare.
3186         (c_bindings_end_stmt_expr): Declare.
3187         (lookup_label_for_goto): Declare.
3188         (c_get_switch_bindings, c_release_switch_bindings): Declare.
3189         (c_check_switch_jump_warnings): Declare.
3190         (label_context_stack_se, label_context_stack_vm): Don't declare.
3191         (c_finish_goto_label): Update declaration.
3192         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
3193         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
3194         (Warning Options): Document -Wjump-misses-init.
3195
3196 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
3197
3198         * tree-object-size.c (addr_object_size): Fix a pasto in the last
3199         change.
3200
3201 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
3202
3203         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
3204
3205 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
3206
3207         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
3208
3209 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
3210
3211         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
3212
3213 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
3214
3215         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
3216         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
3217         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
3218         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
3219         * dwarf2asm.c (dw2_force_const_mem): Update call to
3220         make_decl_one_only.
3221         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
3222         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
3223         * langhooks.c (lhd_comdat_group): Remove.
3224         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
3225         * tree.h (DECL_COMDAT_GROUP): New.
3226         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
3227         (tree_decl_with_vis): Add comdat_group. Remove one_only.
3228         (make_decl_one_only): Change signature.
3229         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
3230         make_decl_one_only.
3231         (make_decl_one_only): Change signature.
3232         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
3233
3234 2009-06-15  Richard Guenther  <rguenther@suse.de>
3235
3236         PR middle-end/40439
3237         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
3238
3239 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3240
3241         * tree-ssa-math-opts.c: Remove extra divide.
3242
3243 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3244
3245         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
3246
3247 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3248
3249         * passes.c: Add bswap pass.
3250         * tree-pass.h: Add pass_optimize_bswap declaration.
3251         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
3252         Include rtl.h, expr.h and optabs.h for optab_handler check.
3253         (struct symbolic_number, pass_optimize_bswap): New definition.
3254         (do_shift_rotate, verify_symbolic_number_p): New functions.
3255         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
3256         (gate_optimize_bswap): New function.
3257         * tree.c (widest_int_cst_value): New function.
3258         * tree.h (widest_int_cst_value): Prototype added.
3259
3260 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
3261
3262         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
3263         REG_EQUAL/REG_EQUIV notes.
3264
3265 2009-06-14  Richard Guenther  <rguenther@suse.de>
3266
3267         PR middle-end/40389
3268         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
3269         has its address taken if NRV was applied and it is addressable.
3270         * tree-ssa-structalias.c (get_constraint_for_address_of): New
3271         function split out from ...
3272         (get_constraint_for_1): ... here.
3273         (handle_rhs_call): Use it to mark the return slot escaped if
3274         it is addressable and NRV was applied.
3275
3276 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
3277
3278         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
3279         Change first argument type to location_t.
3280         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
3281         Do not set input_location.
3282         Use loc instead of input_location throughout.
3283
3284 2009-06-13  Richard Guenther  <rguenther@suse.de>
3285
3286         PR tree-optimization/40421
3287         * tree-predcom.c (should_unroll_loop_p): Remove.
3288         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
3289
3290 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
3291
3292         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3293         Add location argument.
3294
3295 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
3296
3297         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
3298         build_decl.
3299         * config/s390/s390.c (s390_build_builtin_va_list): Same.
3300         (s390_gimplify_va_arg): Pass location to create_artificial_label.
3301         * config/spu/spu-protos.h: Add location to
3302         spu_resolve_overloaded_builtin.
3303         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
3304         spu_build_builtin_va_list.
3305         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
3306         argument.  Pass location to build_function_call_vec.
3307         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
3308         build_decl.
3309         (emit_fpu_switch): Same.
3310         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
3311         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
3312         to build_decl and create_artificial_label.
3313         (xtensa_gimplify_va_arg_expr): Same.
3314         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
3315         (xstormy16_gimplify_va_arg_expr): Same.
3316         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
3317         * config/arm/arm.c (arm_build_builtin_va_list): Same.
3318         * config/mips/mips.c (mips_build_builtin_va_list): Same.
3319         (mips16_build_function_stub): Same.
3320         (mips16_build_call_stub): Same.
3321
3322 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
3323
3324         PR target/40327
3325         * arm/constraints.md (Pa, Pb): New constraints.
3326         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
3327         split pattern to deal with them.
3328
3329 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
3330
3331         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
3332         fix index entry for -Xpreprocessor.
3333
3334 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
3335
3336         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3337         Add location argument to build_decl call.
3338         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
3339         (rs6000_init_builtins): Same.
3340         (spe_init_builtins): Same.
3341         (rs6000_gimplify_va_arg): Add location argument to
3342         create_artificial_label call.
3343
3344 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
3345
3346         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
3347         * combine-stack-adj.c (pass_stack_adjustments): Use it.
3348         * Makefile.in: Fix GGC dependency for gcse.o.
3349
3350 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
3351
3352         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
3353         * gimple-pretty-print.c (dump_gimple_stmt): Same.
3354         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
3355         created.
3356         * c-parser.c (c_parser_binary_expression): Use current column while
3357         building binary operations.
3358         * common.opt (fshow-column): Enable by default.
3359         * tree-vrp.c (check_array_ref): Use warning_at.
3360         (check_array_bounds): Use location from call back if expr has no
3361         location.
3362         * tree.h: Add location argument to maybe_fold_*.
3363         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
3364         (maybe_fold_offset_to_array_ref): Add location argument and use it.
3365         (maybe_fold_offset_to_component_ref): Same.
3366         (maybe_fold_offset_to_reference): Same.
3367         (maybe_fold_offset_to_address): Same.
3368         (maybe_fold_stmt_indirect): Same.
3369         (maybe_fold_stmt_addition): Same.
3370         (fold_stmt_r): Pass location to maybe_fold_*.
3371         (fold_gimple_assign): Same.
3372         * c-tree.h: Add location argument to finish_decl,
3373         default_function_array_conversion, store_init_value.
3374         * c-decl.c (define_label): Use error_at.
3375         (c_make_fname_decl): Pass location to finish_decl.
3376         (finish_decl): New location argument.
3377         (build_compound_literal): Pass location to store_init_value.
3378         (grokdeclarator): Pass location to finish_decl.
3379         (grokfield): Same.
3380         * c-typeck.c (array_to_pointer_conversion): New location argument.
3381         (function_to_pointer_conversion): Same.
3382         (default_function_array_conversion): Same.
3383         (parser_build_unary_op): Pass location to overflow_warning.
3384         (parser_build_binary_op): Same.  Use warning_at.
3385         (build_unary_op): Pass location to array_to_pointer_conversion.
3386         (build_c_cast): Pass location to digest_init.
3387         (build_modify_expr): New location argument.
3388         (convert_for_assignment): Same.
3389         (store_init_value): Same.
3390         (digest_init): Same.
3391         (output_init_element): Pass location to digest_init and
3392         array_to_pointer_conversion.
3393         (c_finish_return): Pass location to convert_for_assignment.
3394         * gimplify.c (gimplify_conversion): Pass location to
3395         maybe_fold_offset_to_address.
3396         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
3397         to maybe_fold_stmt_addition.
3398         * c-omp.c (c_finish_omp_atomic): Pass new location to
3399         build_modify_expr.
3400         (c_finish_omp_for): Same.
3401         * c-common.c (overflow_warning): New argument.
3402         * c-common.h: New argument to build_modify_expr, overflow_warning.
3403         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
3404         finish_decl.
3405         (c_parser_initializer): Pass location to
3406         default_function_array_conversion.
3407         (c_parser_initelt): Same.
3408         (c_parser_initval): Same.
3409         (c_parser_asm_operands): Same.
3410         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
3411         (c_parser_conditional_expression): Same.
3412         (c_parser_binary_expression): Add location info to stack.  Use it.
3413         (c_parser_unary_expression): Pass location to
3414         default_function_array_conversion, parser_build_unary_op,
3415         build_indirect_ref, c_parser_postfix_expression_after_primary.
3416         (c_parser_postfix_expression_after_primary): New location argument.
3417         Use it.
3418         (c_parser_expression_conv): Pass location to
3419         default_function_array_conversion.
3420         (c_parser_expr_list): Same.
3421         (c_parser_omp_atomic): Same.
3422         (c_parser_omp_for_loop): Same.
3423         * c-tree.h: (struct c_declarator): Add comment to id_loc.
3424         (build_array_declarator): New argument.
3425         * c-decl.c (build_array_declarator): Add location argument.
3426         (grokdeclarator): Set id_loc for cdk_array.
3427         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
3428         build_array_declarator.
3429         * tree.c (build_omp_clause): Add location argument.
3430         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
3431         (OMP_CLAUSE_LOCATION): New macro.
3432         (struct tree_omp_clause): Add location field.
3433         (build_omp_clause): Add argument.
3434         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
3435         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
3436         build_omp_clause.
3437         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
3438         (cp_parser_omp_clause_collapse): Same.
3439         (cp_parser_omp_clause_default): Same.
3440         (cp_parser_omp_clause_if): Same.
3441         (cp_parser_omp_clause_nowait): Same.
3442         (cp_parser_omp_clause_num_threads): Same.
3443         (cp_parser_omp_clause_ordered): Same.
3444         (cp_parser_omp_clause_schedule): Same.
3445         (cp_parser_omp_clause_untied): Same.
3446         (cp_parser_omp_for_loop): Same.
3447         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
3448         * c-tree.h (c_start_case): Add location argument.
3449         (c_process_expr_stmt): Same.
3450         (c_finish_goto_*): Same.
3451         * tree-parloops.c (initialize_reductions): Pass location to
3452         build_omp_clause.
3453         (create_parallel_loop): Same.
3454         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
3455         (gfc_trans_omp_reduction_list): Same.
3456         (gfc_trans_omp_clauses): Same.
3457         (gfc_trans_omp_do): Same.
3458         * c-typeck.c (c_finish_goto_label): Same.
3459         (c_finish_goto_ptr): New location argument.
3460         (c_start_case): Same.
3461         (emit_side_effect_warnings): Same.
3462         (c_process_expr_stmt): Same.
3463         (c_finish_stmt_expr): Same.
3464         (c_finish_omp_clauses): Use error_at instead of error.
3465         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
3466         build_omp_clause.
3467         * c-omp.c (c_split_parallel_clauses): New location argument.
3468         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
3469         to build_omp_clause.
3470         (convert_local_reference_stmt): Same.
3471         (convert_gimple_call): Same.
3472         * c-common.h (c_split_parallel_clauses): New argument.
3473         * c-parser.c (c_parser_statement_after_labels): Pass location to
3474         c_finish_goto_label.
3475         (c_parser_switch_statement): Pass location to c_start_case.
3476         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
3477         and c_process_expr_stmt.
3478         (c_parser_omp_variable_list): Add location argument.
3479         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
3480         (c_parser_omp_clause_default): Same.
3481         (c_parser_omp_clause_if): Same.
3482         (c_parser_omp_clause_num_threads): Same.
3483         (-c_parser_omp_clause_ordered): Same.
3484         (c_parser_omp_clause_reduction): Pass location to
3485         c_parser_omp_variable_list.
3486         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
3487         (c_parser_omp_clause_untied): Same.
3488         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
3489         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
3490
3491         * c-tree.h (check_for_loop_decls, undeclared_variable,
3492         build_component_ref, build_array_ref, build_external_ref,
3493         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
3494         build_conditional_expr, build_compound_expr, c_cast_expr,
3495         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
3496         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
3497         argument.
3498         * c-semantics.c (build_stmt): Same.
3499         (build_case_label): Same.
3500         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
3501         (undeclared_variable): New argument.
3502         (make_label): Same.
3503         (lookup_label): Pass location on down.
3504         (define_label): Same.
3505         (finish_decl): Same.
3506         (build_compound_literal): Same.
3507         (finish_struct): Same.
3508         (finish_function): Do not set location here.
3509         (check_for_loop_decls): New argument.
3510         * tree.c (save_expr): Set location.
3511         (build_empty_stmt): New argument.
3512         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
3513         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
3514         * builtins.c (gimplify_va_arg_expr): Use locations.
3515         (expand_builtin_sync_operation): Same.
3516         * c-typeck.c (build_component_ref): New argument.
3517         (build_array_ref): Same.
3518         (build_external_ref): Same.
3519         (c_expr_sizeof_expr): Same.
3520         (c_expr_sizeof_type): Same.
3521         (parser_build_unary_op): Same.
3522         (build_conditional_expr): Same.
3523         (build_compound_expr): Pass location on down.
3524         (build_compound_expr): New argument.
3525         (build_c_cast): Same.
3526         (c_cast_expr): Same.
3527         (build_asm_expr): Same.
3528         (c_finish_return): Same.
3529         (c_process_expr_stmt): Pass location on down.
3530         (c_finish_stmt_expr): New argument.
3531         (push_clenaup): Same.
3532         (c_finish_omp_parallel): Same.
3533         (c_finish_omp_task): Same.
3534         * gimplify.c (gimplify_call_expr): Pass location on down.
3535         * c-omp.c (c_finish_omp_master): New argument.
3536         (c_finish_omp_critical): Same.
3537         (c_finish_omp_ordered): Same.
3538         (c_finish_omp_barrier): Same.
3539         (-c_finish_omp_taskwait): Same.
3540         (c_finish_omp_atomic): Same.
3541         (c_finish_omp_flush): Same.
3542         * tree-inline.c (copy_tree_body_r): Pass location on down.
3543         (inline_forbidden_p): Remove use of input_location.
3544         * c-gimplify.c (c_build_bind_expr): New argument.
3545         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
3546         (c_sizeof_or_alignof_type): New argument.
3547         (c_alignof_expr): Same.
3548         (build_va_arg): Same.
3549         (c_add_case_label): Same.
3550         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
3551         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
3552         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
3553         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
3554         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
3555         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
3556         New argument.
3557         * stub-objc.c (objc_build_selector_expr): Same.
3558         (objc_build_throw_stmt): Same.
3559         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
3560         (c_parser_initelt): Same.
3561         (c_parser_compound_statement): Same.
3562         (c_parser_compound_statement_nostart): Same.
3563         (c_parser_label): Same.
3564         (c_parser_statement_after_labels): Same.
3565         (c_parser_if_body): Same.
3566         (c_parser_else_body): Same.
3567         (c_parser_if_statement): Same.
3568         (c_parser_switch_statement): Same.
3569         (c_parser_while_statement): Same.
3570         (c_parser_do_statement): Same.
3571         (c_parser_for_statement): Same.
3572         (c_parser_asm_statement): Same.
3573         (c_parser_conditional_expression): Same.
3574         (c_parser_binary_expression): Same.
3575         (c_parser_cast_expression): Same.
3576         (c_parser_unary_expression): Same.
3577         (c_parser_sizeof_expression): Same.
3578         (c_parser_alignof_expression): Same.
3579         (c_parser_postfix_expression): Same.
3580         (c_parser_expression): Same.
3581         (c_parser_objc_receiver): Same.
3582         (c_parser_omp_variable_list): Same.
3583         (c_parser_omp_structured_block): Same.
3584         (c_parser_omp_atomic): New argument.
3585         (c_parser_omp_barrier): Same.
3586         (c_parser_omp_critical): Same.
3587         (c_parser_omp_flush): Pass location on down.
3588         (c_parser_omp_for_loop): New argument.
3589         (c_parser_omp_for): Same.
3590         (c_parser_omp_master): Same.
3591         (c_parser_omp_ordered): Same.
3592         (c_parser_omp_sections_scope): Same.
3593         (c_parser_omp_sections): Same.
3594         (c_parser_omp_parallel): Same.
3595         (c_parser_omp_single): Same.
3596         (c_parser_omp_task): Same.
3597         (c_parser_omp_taskwait): Pass location on down.
3598         (c_parser_omp_construct): Same.
3599         (c_parser_omp_threadprivate): Same.
3600         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
3601         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
3602         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
3603         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
3604         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
3605         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
3606         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
3607         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
3608         config/i386/i386.c, stmt.c:
3609         Add location argument to the following function definitions and/or
3610         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
3611         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
3612         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
3613         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
3614         do_case, c_finish_bc_stmt, build_compound_literal,
3615         build_function_call.
3616         * c-decl.c (build_compound_literal): Add location argument.
3617         Make all diagnostic calls use location.
3618         (start_struct): Same.
3619         (finish_struct): Same.
3620         (start_enum): Same.
3621         (build_enumerator): Same.
3622         (start_function): Same.
3623         (grokdeclarator): Make all diagnostic calls use location.
3624         (store_parm_decls_oldstyle): Same.
3625         * c-typeck.c (build_function_call): Add location argument.
3626         Make all diagnostic calls use location.
3627         (do_case): Same.
3628         (c_finish_bc_stmt): Same.
3629         * tree-nested.c (get_trampoline_type): Add argument.
3630         Pass location to build_decl.
3631         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
3632         * rtl.h (RTL_LOCATION): New.
3633         * c-common.c (c_add_case_label): Add location argument.
3634         Make all diagnostic calls use location.
3635         * c-common.h: Add location argument to make_fname_decl, do_case,
3636         c_add_case_label, build_function_call, resolve_overloaded_builtin.
3637         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
3638         Set it appropriately for every case.  Pass enum_loc to start_enum
3639         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
3640         parser_xref_tag.
3641         (c_parser_struct_or_union_specifier): Save location.  Use it for
3642         start_struct, finish_struct, and parser_xref_tag.
3643
3644 2009-06-12  Ian Lance Taylor  <iant@google.com>
3645
3646         * fold-const.c (fold_unary): Rename local variable and to and_expr.
3647
3648         * c-opts.c (c_common_handle_option): For -Wc++-compat set
3649         cpp_opts->warn_cxx_operator_names.
3650
3651 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3652
3653         PR tree-opt/38865
3654         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
3655         is returns NULL and OP is a VCE, look through the VCE.
3656
3657 2009-06-12  Ian Lance Taylor  <iant@google.com>
3658
3659         PR bootstrap/40430
3660         * collect2.c (main): Use CONST_CAST2 in code inside #if
3661         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
3662
3663 2009-06-12  Joey Ye  <joey.ye@intel.com>
3664
3665         PR middle-end/39146
3666         * cfgexpand.c (get_decl_align_unit): Update
3667         max_used_stack_slot_alignment with align instead of
3668         stack_alignment_needed.
3669
3670         * function.c (assign_stack_local_1): Update
3671         max_used_stack_slot_alignment with alignment_in_bits instead
3672         of stack_alignment_needed.
3673         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
3674         here.
3675
3676 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
3677
3678         * dwarf2out.c (last_var_location_insn): New variable.
3679         (dwarf2out_end_epilogue): Clear last_var_location_insn.
3680         (dwarf2out_var_location): Don't record anything after last real
3681         insn.  Only change labels if there were any real instructions
3682         in between last note and this one, or if changed sections.
3683
3684 2009-06-11  Richard Henderson  <rth@redhat.com>
3685
3686         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
3687         note when storing the frame pointer in a register.
3688         (FRP): Don't redefine to nothing for epilogue.
3689         (alpha_expand_epilogue): Mark register and sp restores.
3690         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
3691
3692         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
3693         when gen_lowpart is needed.
3694
3695 2009-06-11  Richard Henderson  <rth@redhat.com>
3696
3697         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
3698
3699         * dwarf2out.c (need_data_align_sf_opcode): New.
3700         (div_data_align): Move earlier.
3701         (def_cfa_1, reg_save): Use it.
3702
3703 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
3704
3705         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
3706         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
3707         (ix86_handle_option): Handle OPT_mcrc32.
3708         (ix86_target_string): Add -mcrc32.
3709         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
3710
3711         * config/i386/i386.h (TARGET_CRC32): New.
3712
3713         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
3714         (sse4_2_crc32di): Likewise.
3715
3716         * config/i386/i386.opt (mcrc32): New.
3717
3718         * doc/invoke.texi: Document -mcrc32.
3719
3720 2009-06-11  Richard Henderson  <rth@redhat.com>
3721
3722         * common.opt (gdwarf-): Accept a version number.
3723         * doc/invoke.texi (gdwarf-): Update docs.
3724         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
3725         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
3726         version level, and record it.
3727
3728         * dwarf2.h (DW_CIE_VERSION): Remove.
3729         * dwarf2out.c (DWARF_VERSION): Remove.
3730         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
3731         (output_call_frame_info): Use CIE version 3 for dwarf3,
3732         or if the return register column is out of range for version 1.
3733         (dwarf_stack_op_name): Add all dwarf3 values.
3734         (DEBUG_PUBTYPES_SECTION): New.
3735         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
3736         encoding change for dwarf3.
3737         (output_die) [dw_val_class_die_ref]: Likewise.
3738         (output_compilation_unit_header): Emit correct version for dwarf3.
3739         (output_line_info): Likewise.
3740         (output_pubnames): Update for DWARF_VERSION removal.
3741         (output_aranges): Likewise.
3742         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
3743         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
3744         (dwarf2out_finish): Likewise.
3745
3746 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
3747
3748         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
3749         in r148403.
3750
3751 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
3752
3753         PR c/39252
3754         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
3755         * builtins.c (expand_builtin_unreachable): New function.
3756         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
3757         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
3758         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
3759         successors.
3760         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
3761         searching for missing barriers.
3762
3763 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3764
3765         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
3766         when -fprofile-generate* was passed.
3767         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
3768
3769 2009-06-11  Anthony Green  <green@moxielogic.com>
3770
3771         * config/moxie/moxie.md: Define length attribute for all instructions.
3772         (rCC): Define.
3773         (*b<cond:code>): Support limited branch ranges for new PC-relative
3774         branch instructions.
3775         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
3776
3777 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
3778
3779         * config/i386/i386.c (min_insn_size): Use get_attr_length
3780         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
3781         For __asm return 0.
3782
3783         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
3784         instead of emit_insn_before.
3785
3786 2009-06-10  Ian Lance Taylor  <iant@google.com>
3787
3788         PR bootstrap/40408
3789         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
3790         GIMPLE_SWITCH.
3791
3792 2009-06-10  Revital Eres  <eres@il.ibm.com>
3793
3794         * passes.c (init_optimization_passes): Reschedule
3795         predictive-commoning pass before complete unroll pass.
3796
3797 2009-06-10  Martin Jambor  <mjambor@suse.cz>
3798
3799         * cgraph.c (cgraph_node_can_be_local_p): New function.
3800         (cgraph_make_node_local): New function.
3801         * cgraph.h (cgraph_node_can_be_local_p): Declare.
3802         (cgraph_make_node_local): Declare.
3803
3804 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
3805
3806         * tree.h (tree_base): Add packed_flag and user_align fields.
3807         Decrease size of spare field.
3808         (TYPE_USER_ALIGN): Use user_align from tree_base.
3809         (DECL_USER_ALIGN): Likewise.
3810         (TYPE_PACKED): Use packed_flag from tree_base.
3811         (DECL_PACKED): Likewise.
3812         (tree_type): Delete packed_flag and user_align fields.  Widen
3813         precision field.  Widen mode field and shuffle fields to align
3814         mode on an 8-bit boundary.
3815         (tree_decl_common): Delete decl_flag_1 and user_align fields.
3816         Renumber decl_flag_* fields.  Fix comments.  Widen
3817         decl_common_unused field.
3818         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
3819         (DECL_EXTERNAL): Likewise.
3820         (DECL_BIT_FIELD): Likewise.
3821         (DECL_NONADDRESSABLE_P): Likewise.
3822         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
3823         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
3824
3825 2009-06-10  Ian Lance Taylor  <iant@google.com>
3826
3827         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
3828         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
3829         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
3830         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
3831         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
3832         DEF_VEC_ALLOC_FUNC_P.
3833         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
3834         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
3835         DEF_VEC_ALLOC_FUNC_O.
3836         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
3837         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
3838         DEF_VEC_ALLOC_FUNC_I.
3839         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
3840         (vec_stack_p_reserve_exact_1): Declare.
3841         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
3842         (vec_stack_free): Declare.
3843         (VEC_stack_alloc): Define.
3844         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
3845         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
3846         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
3847         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
3848         for void_p.
3849         (stack_vecs): New static variable.
3850         (vec_stack_p_reserve_exact_1): New function.
3851         (vec_stack_o_reserve_1): New static function.
3852         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
3853         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
3854         (vec_stack_free): New function.
3855         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
3856         (VEC_df_ref_stack_alloc): Define.
3857         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
3858         DEF_VEC_ALLOC_P_STACK.
3859         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
3860         (struct df_collection_rec): Change _vec fields to VEC.  Remove
3861         _use fields.
3862         (df_free_collection_rec): Adjust for new fields.
3863         (df_insn_rescan): Use new df_collection_rec fields.
3864         (df_notes_rescan, df_canonize_collection_rec): Likewise.
3865         (df_ref_create_structure, df_ref_record): Likewise.
3866         (df_get_conditional_uses, df_get_call_refs): Likewise.
3867         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
3868         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
3869         (df_record_exit_block_uses, df_bb_verify): Likewise.
3870         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
3871         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
3872         Remove count parameter.  Change return type to void.  Change all
3873         callers.
3874         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
3875         Remove count parameter.  Change return type to void.  Change all
3876         callers.
3877         (df_install_refs): Change old_vec parameter to VEC.  Remove count
3878         parameter.  Change all callers.
3879         (df_install_mws): Change old_vec parameter to VEC.  Remove count
3880         parameter.  Change all callers.
3881         (df_refs_verify): Change new_rec parameter to VEC.  Change call
3882         callers.
3883         (df_mws_verify): Likewise.
3884
3885 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
3886
3887         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
3888
3889 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
3890
3891         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
3892
3893 2009-06-10  Anthony Green  <green@moxielogic.com>
3894
3895         * config/moxie/crti.asm: New file.
3896         * config/moxie/crtn.asm: New file.
3897         * config/moxie/moxie.c: New file.
3898         * config/moxie/moxie.h: New file.
3899         * config/moxie/sfp-machine.h: New file.
3900         * config/moxie/moxie-protos.h: New file.
3901         * config/moxie/t-moxie: Created.
3902         * config/moxie/t-moxie-softfp: Created.
3903         * config/moxie/moxie.md: Created.
3904         * config/moxie/constraints.md: Created.
3905         * config.gcc: Add moxie support.
3906         * doc/md.texi (Machine Constraints): Add moxie constraints.
3907         * doc/contrib.texi (Contributors): Mention moxie port.
3908         * doc/install.texi (Specific): Mention the moxie port.
3909
3910 2009-06-09  Ian Lance Taylor  <iant@google.com>
3911
3912         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
3913         compiling with C++.
3914         * optabs.c (optab_table): Only use designated initializers if
3915         HAVE_DESIGNATED_INITIALIZERS is defined.
3916         (convert_optab_table): Likewise.
3917         (init_optabs): Always call init_insn_codes if
3918         HAVE_DESIGNATED_INITIALIZERS is not defined.
3919
3920 2009-06-09  Ian Lance Taylor  <iant@google.com>
3921
3922         * targhooks.c (default_builtin_vectorized_function): Change fn
3923         parameter to unsigned int.
3924         (default_builtin_vectorized_conversion): Change code parameter to
3925         unsigned int.
3926         (default_builtin_reciprocal): Change fn parameter to unsigned int.
3927         * targhooks.h: Update declarations.
3928         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
3929         parameter to unsigned int.
3930
3931         * c-typeck.c (comptypes_check_enum_int): New static function.
3932         (comptypes_internal): Add enum_and_int_p parameter.  Change all
3933         callers.
3934         (comp_target_types): Add location parameter.  Change all callers.
3935         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
3936         Change all callers.
3937         (function_types_compatible_p, type_lists_compatible_p): Likewise.
3938         (build_conditional_expr): Add colon_loc parameter.  Change all
3939         callers.
3940         (convert_for_assignment): Add location parameter.  Change all callers.
3941         * c-parser.c (c_parser_conditional_expression): Pass location of
3942         colon to build_conditional_expr.
3943         * c-tree.h (build_conditional_expr): Update declaration.
3944
3945 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
3946
3947         * graphite.c: Revert previous patch.
3948
3949 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
3950
3951         PR bootstrap/40103
3952         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
3953
3954 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
3955
3956         * tree-ssa-loop-prefetch.c
3957         (loop_prefetch_arrays): Fixed a portability problem in printf format
3958         string.
3959
3960 2009-06-09  Martin Jambor  <mjambor@suse.cz>
3961
3962         PR tree-optimization/40351
3963         * tree-sra.c (propagate_subacesses_accross_link): Check that a
3964         refrence to a potential artifical subaccess can be constructed.
3965
3966 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
3967
3968         * config/sh/sh-protos.h (sh_optimization_options): Declare.
3969         (sh_override_options): Likewise.
3970         * config/sh/sh.c: Include params.h.
3971         (sh_optimization_options): New.
3972         (sh_override_options): Likewise.
3973         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
3974         (OVERRIDE_OPTIONS): Use sh_override_options.
3975
3976 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
3977
3978         * dwarf2out.c (emit_cfa_remember): New variable.
3979         (add_fde_cfi): If emit_cfa_remember, recurse to add
3980         DW_CFA_remember_state first.
3981         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
3982         instead just set emit_cfa_remember.
3983
3984 2009-06-08  Jan Hubicka  <jh@suse.cz>
3985
3986         PR debug/40126
3987         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
3988
3989 2009-06-08  Jan Hubicka  <jh@suse.cz>
3990
3991         PR middle-end/39834
3992         * cgraphunit.c (save_inline_function_body): Do not copy transform
3993         hooks for saved inline bodies.
3994         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
3995         for given function.
3996
3997 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
3998
3999         * jump.c (returnjump_p): Handle delayed branches.  Add missing
4000         function comment.
4001
4002 2009-06-08  Jan Hubicka  <jh@suse.cz>
4003
4004         PR middle-end/40102
4005         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
4006         original node might've been modified.
4007         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
4008
4009 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
4010
4011         * tree-object-size.c (addr_object_size): Add OSI argument.
4012         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
4013         (compute_builtin_object_size, expr_object_size): Adjust callers.
4014         (plus_stmt_object_size): Call addr_object_size instead of
4015         compute_builtin_object_size.
4016
4017 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
4018             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4019         
4020         * tree-ssa-loop-prefetch.c 
4021         (gather_memory_references): Introduced a counter for the number of 
4022         memory references.
4023         (anything_to_prefetch_p): Introduced a counter for the number of 
4024         prefetches.
4025         (is_loop_prefetching_profitable): New function with a cost model 
4026         for prefetching.
4027         (loop_prefetch_arrays): Use the new cost model to determine if 
4028         prefetching is profitable.
4029         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
4030         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
4031         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
4032         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
4033         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
4034         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
4035         
4036 2009-06-08  Michael Matz  <matz@suse.de>
4037
4038         PR debug/40012
4039         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
4040         partitions use the same.
4041         (expand_one_var): Deal with DECL_RTL sometimes begin set also
4042         for basevars of SSA_NAMEs.
4043         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
4044         to not expand them twice.
4045         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
4046         multiple places.
4047
4048 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
4049
4050         * common.opt (fcompare-debug=, fcompare-debug-second): New.
4051         (fdump-final-insns=, gtoggle): New.
4052         * doc/invoke.texi: Document them.
4053         * final.c (rest_of_clean_state): Dump final insn stream.
4054         * gcc.c (invoke_as): Hook in -fcompare-debug.
4055         (static_spec_functions): Add compare-debug-dump-opt,
4056         compare-debug-self-opt and compare-debug-auxbase-opt.
4057         (compare_debug, compare_debug_second, compare_debug_opt): New.
4058         (switches_debug_check, n_switches_debug_check): New.
4059         (debug_auxbase_opt, debug_check_temp_file): New.
4060         (process_command): Handle -fno-compare-debug, -fcompare-debug and
4061         -fcompare-debug=*.
4062         (do_self_spec): Handle arguments after switches.
4063         (do_spec_1): Add .gk extension to temp file basenames for compare.
4064         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
4065         (cc1_options): Use it instead of normal auxbase computation for
4066         the second compare-debug compilation.
4067         (compare_files): New.
4068         (main): Set up and implement compare debug mode.
4069         (compare_debug_dump_opt_spec_function): New.
4070         (compare_debug_self_opt_spec_function): New.
4071         (compare_debug_auxbase_opt_spec_function): New.
4072         * toplev.c (process_options): Handle flag_gtoggle,
4073         flag_dump_final_insns.
4074         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
4075         during -fcompare-debug-second compilation.
4076
4077 2009-06-07  Ian Lance Taylor  <iant@google.com>
4078
4079         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
4080         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
4081
4082         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
4083         with no default node.  Change warning with %H to warning_at.
4084         Don't clear warn_switch around case checking.
4085         * doc/invoke.texi (Warning Options): Clarify distinction between
4086         -Wswitch and -Wswitch-enum.
4087
4088 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4089
4090         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
4091
4092 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4093
4094         * gbl-ctors.h: Add header guard.
4095
4096 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4097
4098         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
4099         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
4100         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
4101         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
4102         prototypes for removed functions.
4103         (expressions_equal_p): Move to ...
4104         * tree-ssa-sccvn.h: ... here and ...
4105         * matrix-reorg.c: ... adjust includes.
4106
4107 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4108
4109         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
4110
4111 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4112
4113         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
4114         (finish_function): Remove erroneous whitespace.
4115
4116 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4117
4118         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
4119         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
4120
4121 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4122
4123         * errors.c (internal_error): Commentary typo fix.
4124         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
4125         * tree-ssa-pre.c: Ditto.
4126
4127 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4128
4129         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
4130         them is supposed to hold actual statements.
4131
4132 2009-06-06  Ian Lance Taylor  <iant@google.com>
4133
4134         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
4135         empty statements can now have attributes.
4136
4137 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
4138
4139         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
4140         * config/mips/mips.md: Ditto.
4141
4142 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
4143
4144         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
4145         _RELOCATABLE.
4146         (__eabi_uconvert): Likewise.
4147
4148 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
4149
4150         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
4151         CFI_* definitions with IN_GCC.
4152
4153 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
4154
4155         * xcoffout.h (xcoffout_source_line): Update prototype.
4156
4157 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4158
4159         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
4160         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
4161
4162 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
4163
4164         PR middle-end/40340
4165         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
4166         inlined_function_outer_scope_p blocks for artificial inlines
4167         even at -g0/-g1.
4168         * tree.c (tree_nonartificial_location): Rewrite using
4169         block_nonartificial_location.
4170
4171 2009-06-05  Revital Eres  <eres@il.ibm.com>
4172             Leehod Baruch  <leehod@il.ibm.com>
4173
4174         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
4175         (expand_expr_real_1): Remove comment.
4176         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4177         Vectorize misaligned access when the target supports it.
4178         (vect_supportable_dr_alignment): Check for unaligned access support.
4179         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
4180         and remove asset.
4181
4182 2009-06-05  Julian Brown  <julian@codesourcery.com>
4183
4184         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
4185         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
4186
4187 2009-06-05  Richard Guenther  <rguenther@suse.de>
4188
4189         PR bootstrap/40350
4190         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
4191         as possibly unused.
4192
4193 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
4194
4195         * config/s390/s390.c (global_not_special_regno_p): New static inline.
4196         (save_gprs): Don't tell unwinder when a global register is saved.
4197         (s390_emit_epilogue): Emit needed epilogue unwind info.
4198
4199 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
4200
4201         * dwarf2out.c (deferred_asm_name): New.
4202         (add_name_and_src_coords_attributes): Defer creation of
4203         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
4204         computed yet.
4205         (move_linkage_attr): New.
4206         (dwarf2out_finish): Revisit deferrals and emit attributes at the
4207         right place.
4208
4209 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
4210
4211         * tree-nested.c (finalize_nesting_tree_1): Declare the
4212         frame_decl in the binding tree.
4213
4214 2009-06-04  Cary Coutant  <ccoutant@google.com>
4215
4216         * basic-block.h (struct basic_block_def): Add discriminator field.
4217         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
4218         callers.
4219         * debug.c (do_nothing_debug_hooks): Add additional entry.
4220         (debug_nothing_int_charstar_int): New function.
4221         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
4222         (debug_nothing_int_charstar_int): New declaration.
4223         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
4224         discriminator value in .loc directive.
4225         * final.c (last_discriminator): New variable.
4226         (discriminator): New variable.
4227         (final_start_function): Initialize above variables, pass current
4228         discriminator to debug hook.
4229         (notice_source_line): Check for discriminator change.
4230         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
4231         * sdbout.c (sdbout_source_line): New parameter.
4232         * tree-cfg.c (struct locus_discrim_map): New structure type.
4233         (discriminator_per_locus): New hash table.
4234         (build_gimple_cfg): Allocate and free discriminator hash table.
4235         (make_edges): Call assign_discriminator.
4236         (locus_map_hash): New function.
4237         (locus_map_eq): New function.
4238         (next_discriminator_for_locus): New function.
4239         (same_line_p): New function.
4240         (assign_discriminator): New function.
4241         (make_cond_expr_edges): Call assign_discriminator.
4242         (make_gimple_switch_edges): Likewise.
4243         (first_non_label_stmt): New function.
4244         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
4245         all callers.
4246         * xcoffout.c (xcoffout_source_line): Add new parameter.
4247
4248         * configure.ac (gcc_cv_as_discriminator): New configury check for
4249         gas support for discriminator.
4250         * configure: Regenerate.
4251         * config.in: Regenerate.
4252
4253 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4254
4255         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
4256         val after checking for integers.
4257
4258 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
4259
4260         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
4261         X64_REGPARM_MAX.
4262         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
4263         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
4264         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
4265         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
4266         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
4267         X64_SSE_REGPARM_MAX.
4268         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
4269         X64_SSE_REGPARM_MAX.
4270
4271 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
4272
4273         * gcc.c (report_times_to_file): New.
4274         (execute): Implement it.
4275         (process_command): Support -time=.
4276         * doc/invoke.texi: Document it.
4277
4278 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
4279
4280         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
4281         that have value exprs.
4282
4283 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
4284
4285         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
4286         declarations for constants until...
4287         (dw2_output_indirect_constant_1): ... this point.
4288
4289 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
4290
4291         PR target/10242
4292         * arm.md (arm_addsi3): Don't try to split an add with an
4293         eliminable register until after reload has completed.
4294
4295 2009-06-03  Ian Lance Taylor  <iant@google.com>
4296
4297         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
4298         * genattrtab.c (write_length_unit_log): Likewise.
4299         * genchecksum.c (dosum): Likewise.
4300         * gengtype.c (write_rtx_next): Likewise.
4301         (finish_root_table, write_roots): Likewise.
4302         * gimple.c (gimple_ops_offset_): Likewise.
4303         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
4304         * config/arc/arc.c (arc_attribute_table): Likewise.
4305         * config/arm/arm.c (arm_attribute_table): Likewise.
4306         * config/avr/avr.c (avr_attribute_table): Likewise.
4307         * config/crx/crx.c (crx_attribute_table): Likewise.
4308         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
4309         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
4310         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
4311         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
4312         * config/sh/sh.c (sh_attribute_table): Likewise.
4313         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
4314         * config/spu/spu.c (spu_attribute_table): Likewise.
4315         * config/v850/v850.c (v850_attribute_table): Likewise.
4316
4317         * config/alpha/alpha.c (vms_attribute_table): Make static.
4318         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
4319         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
4320         * config/mips/mips.c (mips_attribute_table): Likewise.
4321
4322         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
4323         $(SYSTEM_H).
4324         (cc1-checksum.o): Likewise.
4325
4326 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
4327
4328         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
4329
4330 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
4331
4332         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
4333         insn if it is changing sp.  Use gen_add3_insn instead of
4334         conditionally gen_addsi3 and gen_adddi3.
4335         (offset_below_red_zone_p): New static inline function.
4336         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
4337         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
4338         * config/rs6000/ppc-asm.h: Include auto-host.h.
4339         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
4340         CFI_RESTORE): Define.
4341         * config/rs6000/crtresxgpr.asm: Add unwind info.
4342         * config/rs6000/crtresxfpr.asm: Likewise.
4343         * config/rs6000/crtresgpr.asm: Likewise.
4344         * config/rs6000/crtresfpr.asm: Likewise.
4345         * config/rs6000/crtsavgpr.asm: Likewise.
4346         * config/rs6000/crtsavfpr.asm: Likewise.
4347
4348         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
4349         argument of DWARF2_FRAME_REG_OUT macros.
4350
4351 2009-06-03  Julian Brown  <julian@codesourcery.com>
4352
4353         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
4354         words or less (including TImode) in core registers.
4355
4356 2009-06-03  Richard Guenther  <rguenther@suse.de>
4357
4358         PR middle-end/40328
4359         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
4360
4361 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
4362
4363         * statistics.c (statistics_counter_event): Do not record event 
4364         in pass dump if its number == -1.
4365         (curr_statistics_hash): Add assert that we never get passes 
4366         with static number == -1.
4367
4368 2009-06-03  Richard Guenther  <rguenther@suse.de>
4369             Andrey Belevantsev  <abel@ispras.ru>
4370
4371         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
4372         non-BLKmode arrays addressable.
4373
4374 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
4375
4376         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
4377         * config/m68k/m68k.h: ... here.
4378         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
4379         m68k and fido.
4380
4381 2009-06-03  Martin Jambor  <mjambor@suse.cz>
4382
4383         PR tree-optimization/40323
4384         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
4385         assignment.
4386
4387 2009-06-03  Richard Guenther  <rguenther@suse.de>
4388
4389         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
4390         consistently.
4391
4392 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
4393
4394         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
4395         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
4396         JUMP_TABLE_DATA_P where applicable.
4397         * config/sh/sh.c: Ditto.
4398         * config/sh/sh.h: Ditto.
4399         * config/sh/sh.md: Ditto.
4400         * config/sh/symbian.c: Ditto.
4401
4402 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
4403
4404         * config/i386/driver-i386.c (describe_cache): Optimize
4405         concatenation of strings.  Use snprintf instead of sprintf.
4406         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
4407         target when not compiling with GCC.
4408
4409 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
4410
4411         * config/sh/sh.c: Revert last change.
4412         (sh_expand_epilogue): Emit a blockage insn before the frame
4413         pointer adjustment unconditionally.
4414
4415 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4416
4417         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
4418         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
4419         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
4420         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
4421         to COLLECT_GCC_OPTIONS.
4422
4423 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4424
4425         * collect2.c (target_system_root): New variable.
4426         (main): Handle --sysroot=.
4427         (ignore_library): Strip the sysroot from the library path.
4428
4429 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4430
4431         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
4432         (collect2.o): Depend on collect2-aix.h.
4433         (collect2-aix.o): New rule.
4434         * collect2-aix.h: New file.
4435         * collect2-aix.c: Likewise.
4436         * collect2.c: Include collect2-aix.h.  Don't undefine
4437         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
4438         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
4439         Use TARGET_AIX_VERSION instead of _AIX51.
4440         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
4441         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
4442         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
4443         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
4444         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
4445
4446 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4447
4448         * collect2.c (ignore_library): Avoid premature post-increment
4449         and null deference.
4450
4451 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4452
4453         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
4454         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
4455         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
4456         CROSS_DIRECTORY_STRUCTURE too.
4457         (LINK_LIBG_SPEC): Likewise.
4458         (LIB_SPEC): Add %R to sysroot paths.
4459         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
4460         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
4461         * config/rs6000/aix51.h: As for aix43.h.
4462         * config/rs6000/aix52.h: Likewise.
4463         * config/rs6000/aix53.h: Likewise.
4464         * config/rs6000/aix61.h: Likewise.
4465         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
4466         to the beginning of sysroot paths.
4467
4468 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4469
4470         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
4471         INSN_LISTs that are out of the REG_NOTE range.
4472
4473 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4474
4475         * loop-unroll.c (struct iv_to_split): Add pointer to next.
4476         (struct var_to_expand): Likewise.
4477         (struct opt_info): Add head and tail for linked lists of the above.
4478         (analyze_insn_to_expand_var): Initialize next.
4479         (analyze_iv_to_split_insn): Likewise.
4480         (analyze_insns_in_loop): Create linked lists.
4481         (allocate_basic_variable): Simplify for use without hash table.
4482         (insert_var_expansion_initialization): Likewise, make it type-safer.
4483         (combine_var_copies_in_loop_exit): Likewise.
4484         (apply_opt_in_copies): Walk lists rather than hash tables.
4485         (release_var_copies): Simplified and inlined by hand into...
4486         (free_opt_info): ... this function.
4487
4488 2009-06-02  Richard Guenther  <rguenther@suse.de>
4489
4490         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
4491         for field decls.
4492
4493 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4494
4495         * cfgexpand.c (gimple_expand_cfg): Discard the source location
4496         only for builtins that are not overridden.
4497
4498 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4499
4500         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
4501         label string.
4502
4503 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4504
4505         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
4506
4507 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4508
4509         * combine.c (move_deaths): Compare LUIDs within the same BB only.
4510
4511 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4512
4513         * common.opt (fdump-unnumbered-links): New.
4514         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
4515         * print-rtl.c (flag_dump_unnumbered_links): New.
4516         (print_rtx): Test it.
4517
4518 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
4519
4520         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
4521         push/pop multiple to 8-byte alignment.
4522
4523 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
4524
4525         * config/i386/i386.c (queued_cfa_restores): New static variable.
4526         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
4527         functions.
4528         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
4529         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
4530         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
4531         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
4532         note unconditionally.
4533         (ix86_emit_restore_regs_using_mov): Likewise.
4534         (ix86_emit_restore_sse_regs_using_mov): Likewise.
4535         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
4536         it through to ix86_emit_restore_reg_using_pop.
4537         (ix86_emit_leave): Add RED_OFFSET argument.  Call
4538         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
4539         instead of adding REG_CFA_OFFSET note unconditionally.
4540         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
4541         the above functions.  Call ix86_add_queued_cfa_restore_notes when
4542         needed.
4543
4544         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
4545         force output of the label even for dwarf2out_do_cfi_asm.
4546         (add_fde_cfi): If -g2 and above and cfi might change CFA,
4547         force creation of CFI label and chain DW_CFA_set_loc jumping to it
4548         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
4549         caller.
4550         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
4551         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
4552         dwarf2out_cfi_label callers.
4553         * tree.h (dwarf2out_cfi_label): Adjust prototype.
4554         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
4555         Adjust dwarf2out_cfi_label callers.
4556         * config/vax/vax.c (vax_output_function_prologue): Likewise.
4557
4558         * config/i386/i386.h (struct machine_cfa_state,
4559         struct machine_function): Guard with ifndef USED_FOR_TARGET
4560         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
4561
4562         PR other/40024
4563         * emutls.c (__emutls_get_address): Change arr->size to mean number
4564         of allocated arr->data entries instead of # of slots + 1.
4565
4566         PR middle-end/40316
4567         * recog.c (peep2_reinit_state): New function.
4568         (peephole2_init_state): Use it at the end of a basic block and also
4569         when seeing a RTX_FRAME_RELATED_P insn.
4570
4571 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
4572
4573         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
4574         fixuns_truncrfdi2): New.
4575         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
4576         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
4577         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
4578         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
4579         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
4580         *recip_approx): Remove.
4581         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
4582         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
4583         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
4584         move to div.md.
4585         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
4586         setf_exp_rf): New.
4587
4588 2009-06-01  Ian Lance Taylor  <iant@google.com>
4589
4590         * attribs.c (register_attribute): Use CONST_CAST.
4591         * collect2.c (main): Use CONST_CAST2.
4592         (scan_prog_file): Likewise.
4593         * gcc.c (process_command, main): Likewise.
4594         * toplev.c (toplev_main): Likewise.
4595
4596         * c-typeck.c (handle_warn_cast_qual): New static function,
4597         partially broken out of build_c_cast.
4598         (build_c_cast): Call handle_warn_cast_qual.
4599         * doc/invoke.texi (Warning Options): Document new effect of
4600         -Wcast-qual.
4601
4602 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
4603
4604         * diagnostic.c (diagnostic_build_prefix): Always print columns.
4605         (diagnostic_report_current_module): Print columns.
4606         * common.opt (flag_show_column): Enable by default.
4607
4608 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
4609
4610         * alias.c (find_base_term): Check for NULL term before returning.
4611
4612 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4613
4614         Revert due to PR40320:
4615         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4616         * calls.c (emit_library_call_value_1): Don't force_operand for move
4617         and push insns.
4618
4619 2009-06-01  Olivier Hainque  <hainque@adacore.com>
4620             Eric Botcazou  <ebotcazou@adacore.com>
4621
4622         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
4623         to be processed as a bitfield for constructor output purposes.
4624         * output.h (initializer_constant_valid_for_bitfield_p): Declare
4625         new function.
4626         * varasm.c (oc_local_state): New type, output_constructor
4627         local state to support communication with helpers.
4628         (oc_outer_state): New type, output_constructor outer state of
4629         relevance in recursive calls.
4630         (output_constructor_array_range): New output_constructor helper,
4631         extracted code for an array range element.
4632         (output_constructor_regular_field): New output_constructor helper,
4633         extracted code for an element that is not a bitfield.
4634         (output_constructor_bitfield): New output_constructor helper,
4635         extracted code for a bitfield element.  Accept an OUTER state
4636         argument for recursive processing.  Recurse on record or array
4637         CONSTRUCTOR values, possibly past noop conversions.
4638         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
4639         VALUE is a valid constant-valued expression for use in a static
4640         bit-field initializer.
4641         (output_constructor): Rework to use helpers.  Accept and honor an
4642         OUTER state argument for recursive calls.  Return total size.  Be
4643         prepared for nested constructors initializing bitfields.
4644         (output_constant): Feed OUTER in calls to output_constructor.
4645
4646 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4647
4648         * calls.c (emit_library_call_value_1): Don't force_operand for move
4649         and push insns.
4650
4651 2009-06-01  Nick Clifton  <nickc@redhat.com>
4652
4653         * doc/invoke.texi (IA-64 Options): Fix typo.
4654
4655 2009-06-01  Ira Rosen  <irar@il.ibm.com>
4656
4657         PR tree-optimization/39129
4658         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
4659         printed message.
4660         (vect_do_peeling_for_loop_bound): Use
4661         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
4662         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
4663         (vect_loop_versioning): Likewise.
4664         (vect_create_cond_for_alias_checks): Fix indentation.
4665         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
4666         macros.
4667         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
4668         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
4669         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
4670         "control flow in loop".
4671         (vect_estimate_min_profitable_iters): Use
4672         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
4673         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
4674         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
4675         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
4676         * tree-vect-stmts.c (vectorizable_store): Replace the check that the
4677         statement belongs to a group of strided accesses with the exact code
4678         check.
4679         (vectorizable_load): Likewise.
4680         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
4681         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
4682
4683 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
4684
4685         * config/freebsd-stdint.h: New file.
4686         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
4687         Add freebsd-stdint.h to tm_file.
4688
4689 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
4690
4691         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
4692         (thumb2_extendhidi2): Likewise.
4693
4694 2009-05-31  Ian Lance Taylor  <iant@google.com>
4695
4696         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
4697
4698 2009-05-31  Ian Lance Taylor  <iant@google.com>
4699
4700         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
4701         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
4702         (ipa-reference.o): Depend upon gt-ipa-reference.h.
4703
4704 2009-05-31  Jason Merrill  <jason@redhat.com>
4705
4706         * tree-pretty-print.c (print_call_name): Take the callee, not the
4707         call itself.  Make non-static.  Use dump_function_name for functions.
4708         (dump_generic_node): Adjust.
4709         * diagnostic.h: Declare print_call_name.
4710         * gimple-pretty-print.c (dump_gimple_call): Use it.
4711
4712 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4713
4714         * config/sh/sh.md (ashldi3_std): New define_expand.
4715         (ashldi3): Use it.
4716
4717 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4718
4719         PR target/40313
4720         * config/sh/sh.c: Include debug.h.
4721         (sh_expand_epilogue): Emit a blockage insn before the frame
4722         pointer adjustment also when dwarf2out_do_frame returns true.
4723
4724 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
4725
4726         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
4727         (thumb2_extendqidi2): New pattern.
4728
4729 2009-05-31  Ira Rosen  <irar@il.ibm.com>
4730
4731         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
4732         mark phis for renaming.
4733         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
4734         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
4735         Call mark_sym_for_renaming.
4736         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
4737         * tree-vect-loop.c (vect_transform_loop): Remove
4738         vect_memsyms_to_rename initialization and a call to
4739         mark_set_for_renaming.
4740
4741 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
4742
4743         PR middle-end/40304
4744         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
4745         frame related even if !set_cfa && style < 0.
4746
4747 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
4748
4749         * config/i386/mingw-tls.c: New file.
4750         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
4751         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
4752         defining _WIN32 but not __CYGWIN__.
4753
4754 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4755
4756         * configure.ac: Add MPC support.
4757         
4758         * config.in, configure: Regenerate.     
4759
4760 2009-05-29  Richard Henderson  <rth@redhat.com>
4761
4762         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
4763         NOTE_INSN_BASIC_BLOCK.
4764         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
4765         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
4766         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
4767         to be deleted.
4768         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
4769         add in_use field.
4770         (add_cfi): Disable check redefining cfa away from drap.
4771         (lookup_cfa_1): Add remember argument; handle remember/restore.
4772         (lookup_cfa): Pass remember argument.
4773         (cfa_remember): New.
4774         (compute_barrier_args_size_1): Remove sibcall check.
4775         (dwarf2out_frame_debug_def_cfa): New.
4776         (dwarf2out_frame_debug_adjust_cfa): New.
4777         (dwarf2out_frame_debug_cfa_offset): New.
4778         (dwarf2out_frame_debug_cfa_register): New.
4779         (dwarf2out_frame_debug_cfa_restore): New.
4780         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
4781         (dwarf2out_begin_epilogue): New.
4782         (dwarf2out_frame_debug_restore_state): New.
4783         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
4784         DW_CFA_restore_state.
4785         (output_cfi_directive): Likewise.
4786         (convert_cfa_to_fb_loc_list): Likewise.
4787         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
4788         * dwarf2out.h: Update.
4789         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
4790         (copy_insn_1): Early out for null.
4791         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
4792         and dwarf2out_frame_debug_restore_state.
4793         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
4794         (prologue_insn_hash, epilogue_insn_hash): New.
4795         (free_after_compilation): Adjust freeing accordingly.
4796         (record_insns): Create hash table if needed; push insns into
4797         hash instead of array.
4798         (maybe_copy_epilogue_insn): New.
4799         (contains): Search hash table instead of array.
4800         (sibcall_epilogue_contains): Remove.
4801         (thread_prologue_and_epilogue_insns): Split eh_return insns
4802         and mark them as epilogues.
4803         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
4804         scanning in terms of basic blocks.
4805         * insn-notes.def (CFA_RESTORE_STATE): New.
4806         * jump.c (returnjump_p_1): Accept EH_RETURN.
4807         (eh_returnjump_p_1, eh_returnjump_p): New.
4808         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
4809         CFA_REGISTER, CFA_RESTORE): New.
4810         * rtl.def (EH_RETURN): New.
4811         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
4812
4813         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
4814         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
4815
4816         * config/i386/i386.c (gen_push): Update cfa state.
4817         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
4818         add a CFA_ADJUST_CFA note.
4819         (ix86_dwarf_handle_frame_unspec): Remove.
4820         (ix86_expand_prologue): Update cfa state.
4821         (ix86_emit_restore_reg_using_pop): New.
4822         (ix86_emit_restore_regs_using_pop): New.
4823         (ix86_emit_leave): New.
4824         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
4825         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
4826         * config/i386/i386.h (struct machine_cfa_state): New.
4827         (ix86_cfa_state): New.
4828         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
4829         (eh_return_internal): Merge from eh_return_<mode>,
4830         use eh_return rtx, split w/ epilogue.
4831
4832 2009-05-29  Ian Lance Taylor  <iant@google.com>
4833
4834         * builtins.c (validate_gimple_arglist): Don't use va_arg with
4835         enum type.
4836         * calls.c (emit_library_call_value_1): Likewise.
4837
4838         * c-typeck.c (c_build_va_arg): New function.
4839         * c-tree.h (c_build_va_arg): Declare.
4840         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
4841         instead of build_va_arg.
4842
4843 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
4844
4845         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
4846         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
4847         (ptr_difference_cost): Use affine combinations to compute it.
4848         (difference_cost): Likewise.
4849         (get_computation_cost_at): Compute more accurate cost for addresses
4850         if the ratio is a multiplier allowed in addresses.
4851         For non-addresses, consider that an additional offset or symbol is
4852         added only once.
4853
4854 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
4855
4856         * config/i386/i386.c (ix86_decompose_address): Avoid useless
4857         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
4858
4859         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
4860         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
4861         (prefix_rex): For UNIT_MMX don't imply the prefix by default
4862         if MODE_DI.
4863         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
4864         to 1 for TYPE_SSE{IADD1,CVT1}.
4865         (prefix_vex_imm8): Removed.
4866         (length_vex): Only pass 1 as second argument to
4867         ix86_attr_length_vex_default if prefix_extra is 0.
4868         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
4869         (length): For prefix vex computation use length_immediate
4870         attribute instead of prefix_vex_imm8.
4871         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
4872         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
4873         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
4874         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
4875         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
4876         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
4877         a space in between the operands.
4878         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
4879         if one operand is 0xff and the other one si, di, bp or sp.
4880         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
4881         other one si, di, bp or sp.
4882         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
4883         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
4884         type and mode attributes.
4885         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
4886         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
4887         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
4888         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
4889         prefix_data16 attribute iff MODE_DF.
4890         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
4891         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
4892         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
4893         constm128_operand in length_immediate computation.
4894         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
4895         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
4896         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
4897         length_immediate attribute to 1.
4898         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
4899         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
4900         for certain alternatives.
4901         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
4902         prefix_data16 attribute if MODE_V1DF.
4903         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
4904         length_immediate to 1.
4905         (set_got_rex64, set_rip_rex64): Remove length attribute, set
4906         length_address to 4, set mode attribute to MODE_DI.
4907         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
4908         (fxam<mode>2_i387): Set length attribute to 4.
4909         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
4910         *prefetch_3dnow_rex): Override length_address attribute.
4911         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
4912         attributes.
4913         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
4914         (constm128_operand): Removed.
4915         * config/i386/i386.c (memory_address_length): For
4916         disp && !index && !base in 64-bit mode account for SIB byte if
4917         print_operand_address can't optimize disp32 into disp32(%rip)
4918         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
4919         for fs: or gs: segment.
4920         (ix86_attr_length_immediate_default): When checking if shortform
4921         is possible, truncate immediate to the length of the non-shortened
4922         immediate.
4923         (ix86_attr_length_address_default): Ignore MEM_P operands
4924         with X constraint.
4925         (ix86_attr_length_vex_default): Only check for DImode on
4926         GENERAL_REG_P operands.
4927         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
4928         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
4929         (sse_cvttps2pi): Clear prefix_rep attribute.
4930         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
4931         attribute.
4932         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
4933         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
4934         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
4935         iff operand 2 is const_int_operand.
4936         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
4937         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
4938         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
4939         instead of vex.
4940         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
4941         prefix_data16.
4942         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
4943         prefix_data16 attribute for movlpd and movhpd instructions.
4944         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
4945         length_immediate for shufpd instruction.
4946         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
4947         (avx_cmpp<avxmodesuffixf2c><mode>3,
4948         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
4949         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
4950         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
4951         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
4952         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
4953         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
4954         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
4955         prefix_data16 attribute for the first alternative to 1.
4956         (*avx_loadlps): Override length_immediate for the first alternative.
4957         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
4958         attributes for second alternative.
4959         (*vec_concatv2sf_sse4_1): Override length_immediate and
4960         prefix_data16 attributes for second alternative.
4961         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
4962         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
4963         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
4964         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
4965         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
4966         prefix_data16 and length_immediate to 1.
4967         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
4968         to 1.
4969         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
4970         prefix_extra attribute for variants that don't have 0f prefix alone.
4971         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
4972         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
4973         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
4974         *sse4_1_pextrd): Set length_immediate to 1.
4975         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
4976         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
4977         to 1.
4978         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
4979         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
4980         length_immediate to 1 for second alternative.
4981         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
4982         prefix_extra and length_immediate attributes for the first
4983         alternative.
4984         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
4985         first alternative.
4986         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
4987         to 1 for the first and third alternative.
4988         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
4989         alternative.
4990         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
4991         attribute.
4992         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
4993         attribute to 0.
4994         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
4995         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
4996         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
4997         *avx_psign<mode>3): Set prefix_extra attribute to 1.
4998         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
4999         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
5000         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
5001         ssse3_psign<mode>3): Override prefix_rex attribute.
5002         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
5003         (ssse3_palignrti): Override length_immediate to 1.
5004         (ssse3_palignrdi): Override length_immediate to 1, override
5005         prefix_rex attribute.
5006         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
5007         (sse4a_extrqi): Override length_immediate to 2.
5008         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
5009         (sse4a_insertq): Override prefix_data16 to 0.
5010         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
5011         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
5012         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
5013         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
5014         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
5015         and length_immediate to 1.
5016         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
5017         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
5018         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
5019         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
5020         and length_immediate to 1.
5021         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
5022         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
5023         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
5024         avx_ptest256): Override prefix_extra to 1.
5025         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
5026         Override prefix_data16 and length_immediate to 1.
5027         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
5028         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
5029         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
5030         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
5031         prefix_data16 to 0 and prefix_extra to 2.
5032         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
5033         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
5034         attribute.
5035         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
5036         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
5037         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
5038         and prefix_extra to 2.
5039         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
5040         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
5041         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
5042         avx_vpermilvar<mode>3,
5043         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
5044         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
5045         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
5046         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
5047         Override prefix_extra to 1.
5048         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
5049         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
5050         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
5051         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
5052         prefix_extra and length_immediate to 1.
5053         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
5054         modrm to 0.
5055         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
5056         to 1 for the first alternative.
5057         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
5058         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
5059         cases.
5060         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
5061         *movv2sf_internal_avx, *movv2sf_internal): Override
5062         prefix_rep attribute for certain alternatives.
5063         (*mov<mode>_internal): Override prefix_rep or prefix_data16
5064         attributes for certain alternatives.
5065         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
5066         attributes for certain alternatives.
5067         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
5068         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
5069         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
5070         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
5071         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
5072         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
5073         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
5074         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
5075         length_immediate to 1 if operand 2 is const_int_operand.
5076         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
5077         *vec_extractv2si_1): Set length_immediate attribute to 1.
5078         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
5079         using old 3DNOW insn rather than SSE/3DNOW_A.
5080         (mmx_emms, mmx_femms): Clear modrm attribute.
5081
5082 2009-05-29  Martin Jambor  <mjambor@suse.cz>
5083
5084         * tree-sra.c:  New implementation of SRA.
5085
5086         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
5087         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
5088         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
5089         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
5090         (SRA_MAX_STRUCTURE_COUNT): Removed.
5091         (SRA_FIELD_STRUCTURE_RATIO): Removed.
5092         * doc/invoke.texi (sra-max-structure-size): Removed.
5093         (sra-field-structure-ratio): Removed.
5094
5095 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
5096
5097         PR middle-end/40291
5098         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
5099         before expansion.
5100
5101 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
5102
5103         PR rtl-optimization/40101
5104         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
5105         seqno.  Adjust comment.
5106         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
5107         inserting bookkeeping before a jump, the jump is not scheduled.
5108         When no positive seqno found, provide a value.  Add comment.
5109
5110 2009-05-29  Richard Guenther  <rguenther@suse.de>
5111
5112         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
5113         short-cutting on the first component.
5114
5115 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
5116
5117         PR middle-end/39958
5118         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
5119         for trees other than decls/types.
5120
5121 2009-05-29  Richard Guenther  <rguenther@suse.de>
5122
5123         * tree-ssa-operands.c (get_expr_operands): Do not handle
5124         INDIRECT_REFs in the handled-component case.  Remove
5125         unused get_ref_base_and_extent case.
5126         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
5127         tree_low_cst and host_integerp where possible.
5128         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
5129         codes for equivalence.
5130         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
5131
5132 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
5133
5134         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
5135         to tmake_file for i[34567]86-*-cygwin*. 
5136
5137 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
5138
5139         PR target/40017
5140         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
5141         (altivec_categorize_keyword, init_vector_keywords,
5142         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
5143         similar to bool.
5144
5145 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
5146
5147         * tree.c (handle_dll_attribute): Check if node is
5148         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
5149
5150 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
5151
5152         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
5153         component.
5154         (thumb2_zero_extendqidi2): Likewise.
5155
5156 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5157
5158         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
5159         instead of gen_movrt.
5160         * config/sh/sh.md (movrt): Remove.
5161
5162 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
5163
5164         * doc/invoke.texi (IA-64 Options):
5165         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
5166         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
5167         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
5168         -msched-prefer-non-control-spec-insns,
5169         -msched-stop-bits-after-every-cycle,
5170         -msched-count-spec-in-critical-path,
5171         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
5172         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
5173         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
5174         and -msched-spec-verbose.
5175
5176 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
5177
5178         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
5179         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
5180         error if used.
5181         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
5182
5183 2009-05-28  Richard Guenther  <rguenther@suse.de>
5184
5185         * tree-ssa-alias.c (ao_ref_init): New function.
5186         (ao_ref_base): Likewise.
5187         (ao_ref_base_alias_set): Likewise.
5188         (ao_ref_alias_set): Likewise.
5189         (refs_may_alias_p_1): Change signature.
5190         (refs_may_alias_p): Adjust.
5191         (refs_anti_dependent_p): Likewise.
5192         (refs_output_dependent_p): Likewise.
5193         (call_may_clobber_ref_p_1): Change signature.
5194         (call_may_clobber_ref_p): Adjust.
5195         (stmt_may_clobber_ref_p_1): New function split out from ...
5196         (stmt_may_clobber_ref_p): ... here.
5197         (maybe_skip_until): Adjust signature.
5198         (get_continuation_for_phi): Likewise.
5199         (walk_non_aliased_vuses): Likewise.
5200         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
5201         (ao_ref_init): Declare.
5202         (ao_ref_base): Likewise.
5203         (ao_ref_alias_set): Likewise.
5204         (stmt_may_clobber_ref_p_1): Likewise.
5205         (walk_non_aliased_vuses): Adjust.
5206         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
5207         (get_ref_from_reference_ops): remove.
5208         (vn_reference_lookup_2): Adjust signature.
5209         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
5210         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
5211         (vn_reference_lookup): Adjust.
5212         (vn_reference_insert): Likewise.
5213         (vn_reference_insert_pieces): Adjust signature.
5214         (visit_reference_op_call): Adjust.
5215         * tree-ssa-pre.c (get_expr_type): Simplify.
5216         (phi_translate_1): Adjust.
5217         (compute_avail): Likewise.
5218         (translate_vuse_through_block): Do not re-build trees.
5219         (value_dies_in_block_x): Likewise.
5220         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
5221         fields.
5222         (vn_reference_lookup_pieces): Adjust declaration.
5223         (vn_reference_insert_pieces): Likewise.
5224
5225 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
5226
5227         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
5228         with checking disabled.
5229
5230 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
5231
5232         PR target/37216
5233
5234         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
5235         macro definition for support of three-operand format aligned
5236         .comm directive in assembler on cygwin/pe/mingw target OS.
5237         * configure:  Regenerate.
5238         * config.h:  Regenerate.
5239
5240         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
5241         aligned form of .comm directive if -mpe-aligned-commons is in effect.
5242         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
5243
5244         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
5245         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
5246
5247 2009-05-28  Ira Rosen  <irar@il.ibm.com>
5248
5249         PR tree-optimization/40254
5250         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
5251         in analysis of basic blocks.
5252
5253 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
5254
5255         PR middle-end/33699
5256         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
5257         * target-def.h (TARGET_CONST_ANCHOR): New macro.
5258         (TARGET_INITIALIZER): Use it.
5259         * cse.c (CHEAPER): Move it up to the other macros.
5260         (insert): Rename this ...
5261         (insert_with_costs): ... to this.  Add cost parameters.  Update
5262         function comment.
5263         (insert): New function.  Call insert_with_costs.
5264         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
5265         find_reg_offset_for_const, try_const_anchors): New functions.
5266         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
5267         when using a const-anchor.  Call insert_const_anchors.
5268         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
5269         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
5270
5271 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
5272
5273         * tree-inline.c (remap_decls): Enable nonlocalized variables
5274         when not optimizing.
5275
5276 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
5277
5278         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
5279         Simplify other tests involving optimize.
5280
5281 2009-05-27  Tom Tromey  <tromey@redhat.com>
5282
5283         * unwind-dw2.c (_Unwind_DebugHook): New function.
5284         (uw_install_context): Call _Unwind_DebugHook.
5285
5286 2009-05-27  Tom Tromey  <tromey@redhat.com>
5287
5288         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
5289
5290 2009-05-27  Ian Lance Taylor  <iant@google.com>
5291
5292         * Makefile.in (LINKER, LINKER_FLAGS): Define.
5293         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
5294         (ALL_LINKERFLAGS): Define.
5295         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
5296         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
5297         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
5298         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
5299         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
5300         $(LINKER_FOR_BUILD).
5301         (build/gcov-iov$(build_exeext)): Likewise.
5302
5303 2009-05-27  Julian Brown  <julian@codesourcery.com>
5304
5305         * gcse.c (target.h): Include.
5306         (can_assign_to_reg_without_clobbers_p): Check that the target allows
5307         copy of argument to a pseudo register.
5308
5309 2009-05-27  Diego Novillo  <dnovillo@google.com>
5310
5311         * tree-ssa-live.c (dump_scope_block): Document arguments.
5312         (dump_scope_blocks): Document.
5313         (debug_scope_blocks): New.
5314         * tree-flow.h (debug_scope_blocks): Declare.
5315
5316 2009-05-21  Denis Chertykov  <denisc@overta.ru>
5317
5318         * doc/contrib.texi (Contributors): Add myself to the list.
5319
5320 2009-05-27  Olivier Hainque  <hainque@adacore.com>
5321
5322         * expr.c (target_align): New function.  Alignment the TARGET of an
5323         assignment may be assume to have.
5324         (highest_pow2_factor_for_target): Use it instead of relying on
5325         immediate tree attributes of TARGET, not necessarily honored when
5326         intermediate bitfields are involved.
5327         
5328 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5329
5330         PR target/40266
5331         * config/i386/driver-i386.c (host_detect_local_cpu): Support
5332         AVX, SSE4, AES, PCLMUL and POPCNT.
5333
5334 2009-05-27  Diego Novillo  <dnovillo@google.com>
5335
5336         * tree-pretty-print.c (dump_location): New.
5337         (dump_generic_node): Call it.
5338         Factor code to handle BLOCK nodes ...
5339         (dump_block_node): ... here.
5340
5341 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
5342
5343         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
5344         with it.
5345         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
5346         included.
5347         * gcc-plugin.h: Include config.h and system.h.
5348         (IN_GCC): Define if not defined.
5349
5350 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
5351
5352         PR middle-end/40249
5353         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
5354         with -fno-inline.
5355
5356 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
5357
5358         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
5359         applicable.
5360         * config/m32r/m32r.h: Ditto.
5361         * config/m32r/m32r.md: Ditto.
5362         * config/m32r/predicates.md: Ditto.
5363
5364 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
5365
5366         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
5367
5368 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
5369
5370         * doc/plugins.texi
5371         (Loading plugins): typo.
5372         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
5373         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
5374         (Interacting with the GCC Garbage Collector): Added new section.
5375         (Giving information about a plugin): Added new section for
5376         PLUGIN_INFO.
5377         * ggc.h (ggc_register_root_tab): Added declaration.
5378         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
5379         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
5380         (register_callback): Improved comment in declaration.
5381         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
5382         (extra_root_vec) Added static variable for dynamic roots registration.
5383         (ggc_register_root_tab) Added new routine.
5384         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
5385         PLUGIN_GGC_MARKING event.
5386         * ggc-zone.c: Include plugin.h.
5387         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
5388         * ggc-page.c: Include plugin.h.
5389         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
5390         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
5391         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
5392         (register_callback): check lack of callbacks for
5393         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
5394         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
5395         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
5396         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
5397         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
5398         dependency on plugin.h.
5399         (plugin.o): Added dependency on ggc.h...
5400
5401 2009-05-26  Richard Guenther  <rguenther@suse.de>
5402
5403         PR middle-end/40248
5404         Revert
5405         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
5406         with mismatched comparison modes.
5407
5408         * expr.c (expand_expr_real_1): Expand the operand of a
5409         VIEW_CONVERT_EXPR in its natural mode.
5410
5411 2009-05-26  Ian Lance Taylor  <iant@google.com>
5412
5413         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
5414         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
5415         (ALL_COMPILERFLAGS): Define.
5416         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
5417         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
5418         (collect2$(exeext), collect2.o): Likewise.
5419         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
5420         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
5421         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
5422         (libbackend.o, intl.o, cppdefault.o): Likewise.
5423         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
5424         (build/%.o): Use $(COMPILER_FOR_BUILD).
5425         (build/gen%$(build_exeext)): Likewise.
5426         (build/gcov-iov$(build_exeext)): LIkewise.
5427         * config/t-darwin (darwin.o): Use $(COMPILER).
5428         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
5429         * config/t-sol2 (sol2-c.o): Likewise.
5430         (sol2.o): Likewise.
5431         * config/t-vxworks (vxworks.o): Likewise.
5432         * config/x-darwin (host-darwin.o): Likewise.
5433         * config/x-hpux (host-hpux.o): Likewise.
5434         * config/x-linux (host-linux.o): Likewise.
5435         * config/x-solaris (host-solaris.o): Likewise.
5436         * config/alpha/x-alpha (driver-alpha.o): Likewise.
5437         * config/arm/t-arm (arm-c.o): Likewise.
5438         * config/arm/t-pe (pe.o): Likewise.
5439         * config/arm/t-wince-pe (pe.o): Likewise.
5440         * config/i386/t-cygming (winnt.o): Likewise.
5441         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
5442         * config/i386/t-cygwin (cygwin1.o): Likewise.
5443         (cygwin2.o): Likewise.
5444         * config/i386/t-i386 (i386-c.o): Likewise.
5445         * config/i386/t-interix (winnt.o): Likewise.
5446         * config/i386/t-netware (netware.o): Likewise.
5447         * config/i386/t-nwld (nwld.o): Likewise.
5448         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
5449         * config/i386/x-i386 (driver-i386.o): Likewise.
5450         * config/i386/x-cygwin (host-cygwin.o): Likewise.
5451         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
5452         * config/ia64/t-ia64 (ia64-c.o): Likewise.
5453         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
5454         * config/mips/x-native (driver-native.o): Likewise.
5455         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
5456         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
5457         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
5458         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
5459         * config/score/t-score-elf (score7.o): Likewise.
5460         (score3.o): Likewise.
5461         * config/sh/t-sh (sh-c.o): Likewise.
5462         * config/sh/t-symbian (sh-c.o): Likewise.
5463         (symbian.o): Likewise.
5464         * config/spu/t-spu-elf (spu-c.o): Likewise.
5465         * config/v850/t-v850 (v850-c.o): Likewise.
5466         * config/v850/t-v850e (v850-c.o): Likewise.
5467
5468 2009-05-26  Richard Guenther  <rguenther@suse.de>
5469
5470         PR tree-optimization/40122
5471         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
5472         VECTOR_CSTs if possible.
5473         (fold_gimple_assign): Likewise.
5474
5475 2009-05-26  Richard Guenther  <rguenther@suse.de>
5476
5477         PR middle-end/40252
5478         * fold-const.c (fold_binary): Use the correct types for building
5479         rotates.
5480
5481 2009-05-26  Richard Guenther  <rguenther@suse.de>
5482
5483         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
5484         redundant calls to merge_alias_info.
5485         (bump_vector_ptr): Likewise.
5486         * tree-ssa-copy.c (merge_alias_info): Remove.
5487         (replace_exp_1): Remove call to merge_alias_info.
5488         (propagate_tree_value): Likewise.
5489         (fini_copy_prop): Propagate points-to info.
5490         * tree-flow.h (merge_alias_info): Remove.
5491
5492 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
5493
5494         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
5495
5496 2009-05-25  Jan Hubicka  <jh@suse.cz>
5497
5498         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5499         * cgraph.h (struct inline_summary): New filed self_wize,
5500         size_inlining_benefit, self_time and time_inlining_benefit.
5501         (struct cgraph_global_info): Replace insns by time ans size fields.
5502         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5503         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5504         (ipcp_update_callgraph): Do not touch function bodies.
5505         * ipa-inline.c: Include except.h
5506         (MAX_TIME): New constant.
5507         (overall_insns): Remove.
5508         (leaf_node_p): New.
5509         (overall_size, max_benefit): New static variables.
5510         (cgraph_estimate_time_after_inlining): New function.
5511         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5512         (cgraph_clone_inlined_nodes): Update size.
5513         (cgraph_mark_inline_edge): Update size.
5514         (cgraph_estimate_growth): Use size info.
5515         (cgraph_check_inline_limits): Check size.
5516         (cgraph_default_inline_p): Likewise.
5517         (cgraph_edge_badness): Compute badness based on benefit and size cost.
5518         (cgraph_decide_recursive_inlining): Check size.
5519         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5520         and times.
5521         (cgraph_decide_inlining): Likewise.
5522         (cgraph_decide_inlining_incrementally): Likewise; honor
5523         PARAM_EARLY_INLINING_INSNS.
5524         (likely_eliminated_by_inlining_p): New predicate.
5525         (estimate_function_body_sizes): New function.
5526         (compute_inline_parameters): Use it.
5527         * except.c (must_not_throw_labels): New function.
5528         * except.h (must_not_throw_labels): Declare.
5529         * tree-inline.c (init_inline_once): Kill inlining_weigths
5530         * tree-ssa-structalias.c: Avoid uninitialized warning.
5531         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5532         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5533         (PARAM_INLINE_CALL_COST): Remove.
5534         (PARAM_EARLY_INLINING_INSNS): New.
5535
5536 2009-05-25  Richard Guenther  <rguenther@suse.de>
5537
5538         PR tree-optimization/36327
5539         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
5540         callback for reference translation or lookup at the point of may-defs.
5541         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
5542         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
5543         for union COMPONENT_REFs.
5544         (vn_reference_lookup_3): New callback.  Lookup from memset
5545         and CONSTRUCTOR assignment, translate through struct copies.
5546         (vn_reference_lookup_pieces): Make sure to not free the
5547         passed operands array.  Adjust walk_non_aliased_vuses call.
5548         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
5549         make sure we do not leak memory.
5550
5551 2009-05-25  Richard Guenther  <rguenther@suse.de>
5552
5553         * tree-ssa-alias.h (dump_points_to_solution): Declare.
5554         * tree-inline.c (expand_call_inline): Reset the escaped and
5555         callused solutions.
5556         * tree-ssa-structalias.c (pass_build_ealias): New.
5557         * tree-pass.h (pass_build_ealias): Declare.
5558         * passes.c (init_optimization_passes): Add PTA during 
5559         early optimizations.
5560         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
5561         and CALLUSED solutions.
5562         (dump_points_to_solution): New function, split out from ...
5563         (dump_points_to_info_for): ... here.
5564         * tree-parloops.c (parallelize_loops): Reset the escaped and
5565         callused solutions.
5566
5567 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5568
5569         PR bootstrap/40027
5570         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
5571         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
5572
5573 2009-05-25  Ira Rosen  <irar@il.ibm.com>
5574
5575         PR tree-optimization/40238
5576         * tree-vect-stmts.c (vect_init_vector): Insert initialization
5577         statements after basic block's labels.
5578         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
5579         to free the allocated memory.
5580
5581 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
5582
5583         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
5584         return address with a USE.
5585
5586 2009-05-24  Richard Guenther  <rguenther@suse.de>
5587
5588         PR middle-end/40233
5589         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
5590         array type from the main variant of the inner type.
5591
5592 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5593
5594         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
5595         definition to bool (from int) to un-break build.
5596         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
5597
5598 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
5599
5600         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
5601         discard_stmt_changes): Delete.
5602         * tree-ssa-operands.c (scb_stack): Delete.
5603         (init_ssa_operands): Do not initialize it.
5604         (fini_ssa_operands): Do not free it.
5605         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
5606
5607         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
5608         update_stmt, remove the others.  Fix comments.
5609         * tree-dfa.c (optimize_stack_restore): Likewise.
5610         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
5611         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
5612         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
5613         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
5614         Likewise.
5615         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
5616         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
5617         (dom_opt_finalize_block): Likewise, adjusting access to
5618         stmts_to_rescan.
5619         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
5620         (stmts_to_rescan): Change item type to gimple.
5621         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
5622
5623 2009-05-24  Ira Rosen  <irar@il.ibm.com>
5624
5625         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
5626         * tree-pass.h (pass_slp_vectorize): New pass.
5627         * params.h (SLP_MAX_INSNS_IN_BB): Define.
5628         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
5629         * tree-vectorizer.c (timevar.h): Include.
5630         (user_vect_verbosity_level): Declare.
5631         (vect_location): Fix comment.
5632         (vect_set_verbosity_level): Update user_vect_verbosity_level
5633         instead of vect_verbosity_level.
5634         (vect_set_dump_settings): Add an argument. Ignore user defined
5635         verbosity if dump flags require higher level of verbosity. Print to
5636         stderr only for loop vectorization.
5637         (vectorize_loops): Update call to vect_set_dump_settings.
5638         (execute_vect_slp): New function.
5639         (gate_vect_slp): Likewise.
5640         (struct gimple_opt_pass pass_slp_vectorize): New.
5641         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
5642         access its members.
5643         (vec_info_for_bb): New function.
5644         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
5645         (VECTORIZATION_ENABLED): New macro.
5646         (SLP_ENABLED, SLP_DISABLED): Likewise.
5647         (vect_is_simple_use): Add bb_vec_info argument.
5648         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
5649         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
5650         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
5651         vect_schedule_slp, vect_analyze_slp): Likewise.
5652         (vect_analyze_stmt): Add slp_tree argument.
5653         (find_bb_location): Declare.
5654         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
5655         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
5656         (vect_analyze_loop_operations, vect_analyze_loop,
5657         get_initial_def_for_induction, vect_create_epilog_for_reduction,
5658         vect_finalize_reduction, vectorizable_reduction,
5659         vectorizable_live_operation, vect_transform_loop): Likewise.
5660         * tree-data-ref.c (dr_analyze_innermost): Update comment,
5661         skip evolution analysis if analyzing a basic block.
5662         (dr_analyze_indices): Likewise.
5663         (initialize_data_dependence_relation): Skip the test whether the
5664         object is invariant for basic blocks.
5665         (compute_all_dependences): Skip dependence analysis for data
5666         references in basic blocks.
5667         (find_data_references_in_stmt): Don't fail in case of invariant
5668         access in basic block.
5669         (find_data_references_in_bb): New function.
5670         (find_data_references_in_loop): Move code to
5671         find_data_references_in_bb and add a call to it.
5672         (compute_data_dependences_for_bb): New function.
5673         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
5674         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
5675         that STEP is 0.
5676         (vect_analyze_data_ref_dependence): Check for interleaving in case of
5677         unknown dependence in basic block and fail in case of dependence in
5678         basic block.
5679         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
5680         dependence instances from either loop or basic block vectorization
5681         info.
5682         (vect_compute_data_ref_alignment): Check if it is loop vectorization
5683         before calling nested_in_vect_loop_p.
5684         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
5685         dependence instances from either loop or basic block vectorization
5686         info.
5687         (vect_verify_datarefs_alignment): Likewise.
5688         (vect_enhance_data_refs_alignment): Adjust function calls.
5689         (vect_analyze_data_refs_alignment): Likewise.
5690         (vect_analyze_group_access): Fix printing. Skip different checks if
5691         DR_STEP is 0. Keep strided stores either in loop or basic block
5692         vectorization data structure. Fix indentation.
5693         (vect_analyze_data_ref_access): Fix comments, allow zero step in
5694         basic blocks.
5695         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
5696         dependence instances from either loop or basic block vectorization
5697         info.
5698         (vect_analyze_data_refs): Update comment. Call
5699         compute_data_dependences_for_bb to analyze basic blocks.
5700         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
5701         case of loop vectorization. In case of basic block vectorization use
5702         data-ref itself as a base.
5703         (vect_create_data_ref_ptr): In case of basic block vectorization:
5704         don't advance the pointer, add new statements before the current
5705         statement.  Adjust function calls.
5706         (vect_supportable_dr_alignment): Support only aligned accesses in
5707         basic block vectorization.
5708         * common.opt (ftree-slp-vectorize): New flag.
5709         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
5710         (vect_pattern_recog_1): Likewise.
5711         * tree-vect-stmts.c (process_use): Likewise.
5712         (vect_init_vector): Add new statements in the beginning of the basic
5713         block in case of basic block SLP.
5714         (vect_get_vec_def_for_operand): Adjust function calls.
5715         (vect_finish_stmt_generation): Likewise.
5716         (vectorizable_call): Add assert that it is loop vectorization, adjust
5717         function calls.
5718         (vectorizable_conversion, vectorizable_assignment): Likewise.
5719         (vectorizable_operation): In case of basic block SLP, take
5720         vectorization factor from statement's type and skip the relevance
5721         check. Adjust function calls.
5722         (vectorizable_type_demotion): Add assert that it is loop
5723         vectorization, adjust function calls.
5724         (vectorizable_type_promotion): Likewise.
5725         (vectorizable_store): Check for outer loop only in case of loop
5726         vectorization. Adjust function calls. For basic blocks, skip the
5727         relevance check and don't advance pointers.
5728         (vectorizable_load): Likewise.
5729         (vectorizable_condition): Add assert that it is loop vectorization,
5730         adjust function calls.
5731         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
5732         that it is not reduction, get vector type, call only supported
5733         functions, skip loop specific parts.
5734         (vect_transform_stmt): Check for outer loop only in case of loop
5735         vectorization.
5736         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
5737         (vect_is_simple_use): Fix comment, add new argument, fix conditions
5738         for external definition.
5739         * passes.c (pass_slp_vectorize): New pass.
5740         * tree-vect-slp.c (find_bb_location): New function.
5741         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
5742         check for patterns only in loops.
5743         (vect_build_slp_tree): Add argument, adjust function calls, fail in
5744         case of multiple types in basic block SLP.
5745         (vect_mark_slp_stmts_relevant): New function.
5746         (vect_supported_load_permutation_p): Fix comment.
5747         (vect_analyze_slp_instance): Add argument. In case of basic block
5748         SLP, take vectorization factor from statement's type, check that
5749         unrolling factor is 1. Adjust function call. Save SLP instance in
5750         either loop or basic block vectorization structure. Return FALSE,
5751         if SLP failed.
5752         (vect_analyze_slp): Add argument. Get strided stores groups from
5753         either loop or basic block vectorization structure. Return FALSE
5754         if basic block SLP failed.
5755         (new_bb_vec_info): New function.
5756         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
5757         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
5758         (vect_schedule_slp): Add argument. Get SLP instances from either
5759         loop or basic block vectorization structure. Set vectorization factor
5760         to be 1 for basic block SLP.
5761         (vect_slp_transform_bb): New function.
5762         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
5763
5764 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
5765
5766         * final.c (shorten_branches): Do not align labels for jump tables.
5767         (final_scan_insn): Use JUMP_TABLE_DATA_P.
5768
5769 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
5770
5771         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
5772         Remove outdated reference to flow.c and fix nits.
5773         * doc/gccint.texi: Tweak RTL description.
5774         * doc/rtl.texi: Likewise.
5775
5776 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
5777
5778         * config/avr/avr.c: Change my email address.
5779         * config/avr/avr.h: Likewise.
5780         * config/avr/avr.md: Likewise.
5781         * config/avr/avr-protos.h: Likewise.
5782         * config/avr/libgcc.S: Likewise.
5783
5784 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
5785
5786         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
5787         (spu_split_load, spu_split_store): Change return type to int.
5788         (spu_split_convert): Declare.
5789         * config/spu/predicates.md (spu_mem_operand): Remove.
5790         (spu_mov_operand): Update.
5791         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
5792         * config/spu/spu.c (regno_aligned_for_load): Remove.
5793         (reg_aligned_for_addr, spu_expand_load): Define.
5794         (spu_expand_extv): Reimplement and handle MEM.
5795         (spu_expand_insv): Handle MEM.
5796         (spu_sched_reorder): Handle insn's with length 0.
5797         (spu_legitimate_address_p): Reimplement.
5798         (store_with_one_insn_p): Return TRUE for any mode with size
5799         larger than 16 bytes.
5800         (address_needs_split): Define.
5801         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
5802         operands.
5803         (spu_convert_move): Define.
5804         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
5805         (spu_split_store): Change all MEM's to TImode.
5806         (spu_init_expanders): Preallocate registers that correspond to
5807         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
5808         mark_reg_pointer.
5809         (spu_split_convert): Define.
5810         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
5811         (_move<mode>, _movdi, _movti): Update predicate and condition.
5812         (load, store): Change to define_split.
5813         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
5814         extend<mode>ti2.
5815         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
5816         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
5817         define_insn_and_split of lshr<mode>3.
5818         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
5819         (<v>ashr<mode>3_imm): Define.
5820         (extv, extzv, insv): Allow MEM operands.
5821         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
5822         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
5823         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
5824         (_spu_convert2): Change to define_insn_and_split and remove the
5825         corresponding define_peephole2.
5826         (stack_protect_set, stack_protect_test, stack_protect_test_si):
5827         Change predicates to memory_operand.
5828
5829 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
5830
5831         * config/arm/thumb2.md: Add 16-bit multiply instructions.
5832
5833 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
5834
5835         PR tree-optimization/40219
5836         * tree.c (iterative_hash_expr): Make sure the builtin function is
5837         a normal builtin function and not a front end or back end builtin
5838         before indexing into the built_in_decls array.
5839
5840 2009-05-22  Richard Guenther  <rguenther@suse.de>
5841
5842         PR middle-end/38964
5843         * alias.c (write_dependence_p): Do not use TBAA for answering
5844         anti-dependence or output-dependence.
5845         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
5846         (emit_pointer_definition): Remove.
5847         (emit_alias_warning): Likewise.
5848         (find_what_var_points_to): Remove TBAA pruning code.
5849         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
5850         violations.
5851         (compute_points_to_sets): Remove code computing the set of
5852         dereferenced pointers.
5853         * tree-data-ref.c (dr_may_alias_p): Properly use the split
5854         oracle for querying anti and output dependencies.
5855         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
5856         if TBAA may be applied.
5857         (refs_anti_dependent_p): New function.
5858         (refs_output_dependent_p): Likewise.
5859         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
5860         (refs_output_dependent_p): Likewise.
5861         * doc/tree-ssa.texi (Memory model): New section.
5862         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
5863         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
5864         * cfgexpand.c (expand_gimple_basic_block): Do not handle
5865         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
5866         * expr.c (expand_expr_real_1): Likewise.
5867         * gimple-low.c (lower_stmt): Likewise.
5868         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
5869         (dump_gimple_cdt): Remove.
5870         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
5871         (gimple_size): Likewise.
5872         (walk_gimple_op): Likewise.
5873         (is_gimple_stmt): Likewise.
5874         (walk_stmt_load_store_addr_ops): Likewise.
5875         (gimple_build_cdt): Remove.
5876         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
5877         * gimple.h (gimple_cdt_new_type): Remove.
5878         (gimple_cdt_new_type_ptr): Likewise.
5879         (gimple_cdt_set_new_type): Likewise.
5880         (gimple_cdt_location): Likewise.
5881         (gimple_cdt_location_ptr): Likewise.
5882         (gimple_cdt_set_location): Likewise.
5883         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
5884         * tree-cfg.c (remove_useless_stmts_1): Do not handle
5885         GIMPLE_CHANGE_DYNAMIC_TYPE.
5886         (verify_types_in_gimple_stmt): Likewise.
5887         * tree-inline.c (estimate_num_insns): Likewise.
5888         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
5889         (copy_decl_to_var): Likewise.
5890         (copy_result_decl_to_var): Likewise.
5891         * tree-pretty-print.c (dump_generic_node): Do not handle
5892         CHANGE_DYNAMIC_TYPE_EXPR.
5893         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
5894         * tree-ssa-operands.c (get_expr_operands): Likewise.
5895         * tree-ssa-structalias.c (struct variable_info): Remove
5896         no_tbaa_pruning member.
5897         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
5898         (unify_nodes): Do not copy it.
5899         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
5900         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
5901         (set_uids_in_ptset): Do not check it.
5902         (find_what_var_points_to): Likewise.
5903         (compute_tbaa_pruning): Remove.
5904         (compute_points_to_sets): Do not call it.
5905         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
5906         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
5907         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
5908         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
5909         (DECL_NO_TBAA_P): Likewise.
5910         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
5911         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
5912         (expand_omp_atomic_pipeline): Do not set it.
5913         * print-tree.c (print_node): Do not dump it.
5914         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
5915         redundant check.
5916
5917 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
5918
5919         PR target/39856
5920         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
5921         for clobber.
5922
5923 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
5924
5925         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
5926         non-external.
5927
5928 2009-05-22  Ben Elliston  <bje@au.ibm.com>
5929
5930         * Makefile.in (bversion.h, s-bversion): New targets.
5931         (TOPLEV_H): Add bversion.h.
5932         * toplev.h: Include "bversion.h".
5933         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
5934         the __format__ attribute only if compiling with the same version
5935         of GCC as the sources (the "build version").
5936
5937 2009-05-22  Ben Elliston  <bje@au.ibm.com>
5938
5939         * c-format.c (handle_format_attribute): Fix comment typo.
5940
5941 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
5942
5943         PR target/37846
5944         * config/ia64/ia64.opt (mfused-madd): New.
5945         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
5946         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
5947         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
5948         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
5949         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
5950         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
5951         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
5952         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
5953         instruction if !TARGET_FUSED_MADD.
5954         (fpma, fpms): Remove colon from name.
5955
5956 2009-05-22  Richard Guenther  <rguenther@suse.de>
5957
5958         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
5959         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
5960         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
5961         TARGET_MEM_REF.
5962         (create_expression_by_pieces): Only convert if necessary.
5963         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
5964         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
5965
5966 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
5967
5968         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
5969         regular pattern from a template and rename it ...
5970         (*extzv_truncsi_exts): ... to this.
5971
5972 2009-05-21  Richard Guenther  <rguenther@suse.de>
5973
5974         * cgraph.h (struct cgraph_node): Remove inline_decl member.
5975         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
5976         (cgraph_default_inline_p): Likewise.
5977         (cgraph_decide_inlining_incrementally): Likewise.
5978
5979 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5980             Uros Bizjak  <ubizjak@gmail.com>
5981
5982         * config/i386/cpuid.h (bit_MOVBE): New.
5983
5984         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
5985
5986         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
5987         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
5988         (ix86_handle_option): Handle OPT_mmovbe.
5989         (ix86_target_string): Add -mmovbe.
5990         (pta_flags): Add PTA_MOVBE.
5991         (processor_alias_table): Add PTA_MOVBE to "atom".
5992         (override_options): Handle PTA_MOVBE.
5993
5994         * config/i386/i386.h (TARGET_MOVBE): New.
5995
5996         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
5997         (*bswapsi_movbe): New.
5998         (*bswapdi_movbe): Likewise.
5999         (bswapdi2): Renamed to ...
6000         (*bswapdi_1): This.
6001         (bswapdi2): New expander.
6002
6003         * config/i386/i386.opt (mmovbe): New.
6004
6005         * doc/invoke.texi: Document -mmovbe.
6006
6007 2009-05-21  Taras Glek  <tglek@mozilla.com>
6008
6009         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
6010         * gcc-plugin.h (plugin_init): Updated signature.
6011         * gcc-plugin.h (plugin_name_args): Moved to this header.
6012         * doc/plugins.texi (plugin_init): Updated documention to reflect
6013         API change.
6014         * doc/plugins.texi (plugin_name_args): Added to documention.
6015
6016 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
6017
6018         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
6019         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
6020
6021 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
6022
6023         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
6024         JUMP_TABLE_DATA_P predicates where applicable.
6025         * config/i386/predicates.md: Ditto.
6026         * config/i386/sse.md: Ditto.
6027
6028 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
6029
6030         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
6031         operand2 -128 override length_immediate attribute to 1.
6032         * config/i386/predicates.md (constm128_operand): New predicate.
6033
6034         * config/i386/i386.c (memory_address_length): Handle %r12
6035         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
6036         also check REGNO.
6037         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
6038         mode look through optional ZERO_EXTEND and SUBREG.
6039         * config/i386/i386.md (R12_REG): New define_constant.
6040         (prefix_data16): For sse unit set also for MODE_TI insns.
6041         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
6042         insns set if operand 1 is ext_QIreg_operand.
6043         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
6044         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
6045         immediate.
6046         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
6047         mode from MODE_DI to MODE_SI.
6048         (movdi_1_rex64): Override modrm and length_immediate attributes
6049         only for movabs (TYPE_IMOV, alternative 2).
6050         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
6051         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
6052         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
6053         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
6054         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
6055         prefix_rex attribute if DImode.
6056         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
6057         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
6058         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
6059         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
6060         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
6061         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
6062         Likewise.  For TYPE_IMOV clear length_immediate attribute.
6063         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
6064         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
6065         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
6066         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
6067         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
6068         or one operand TYPE_ISHIFT.
6069         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
6070         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
6071         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
6072         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
6073         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
6074         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
6075         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
6076         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
6077         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
6078         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
6079         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
6080         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
6081         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
6082         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
6083         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
6084         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
6085         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
6086         set mode attribute, don't override length attribute.
6087         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
6088         to 1.
6089         (return_internal_long): Set length attribute to 2 instead of 1.
6090         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
6091         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
6092         prefix_rex attribute.
6093         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
6094         New predicates.
6095         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
6096
6097 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6098
6099         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
6100
6101 2009-05-20  Ian Lance Taylor  <iant@google.com>
6102
6103         * tree.c (build_tree_list_vec_stat): New function.
6104         (ctor_to_vec): New function.
6105         (build_nt_call_vec): New function.
6106         (build_call_array): Change args to be a const pointer.
6107         (build_call_vec): New function.
6108         * tree.h (build_nt_call_vec): Declare.
6109         (build_tree_list_vec_stat): Declare.
6110         (build_tree_list_vec): Define.
6111         (build_call_array): Update declaration.
6112         (build_call_vec): Declare.
6113         (ctor_to_vec): Declare.
6114         * c-common.c (tree_vector_cache): New static variable.
6115         (make_tree_vector): New function.
6116         (release_tree_vector): New function.
6117         (make_tree_vector_single): New function.
6118         (make_tree_vector_copy): New function.
6119         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
6120         (make_tree_vector_single, make_tree_vector_copy): Declare.
6121         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
6122         (c_parser_expr_list): Don't manage cache here, instead call
6123         make_tree_vector.
6124         (c_parser_release_expr_list): Remove static function.
6125         (c_parser_vec_to_tree_list): Remove static function.
6126         (c_parser_attributes): Call build_tree_list_vec instead of
6127         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
6128         c_parser_release_expr_list.
6129         (c_parser_postfix_expression_after_primary): Likewise.
6130         (c_parser_objc_keywordexpr): Likewise.
6131
6132 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
6133
6134         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
6135         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
6136         TARGET_CONVERT_TO_TYPE.
6137         * hooks.c (hook_tree_const_tree_null): Define.
6138         * hooks.h (hook_tree_const_tree_null): Declare.
6139         * target.h (struct gcc_target):  Add invalid_parameter_type,
6140         invalid_return_type, promoted_type, and convert_to_type fields.
6141         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
6142         (TARGET_INVALID_RETURN_TYPE): Define.
6143         (TARGET_PROMOTED_TYPE): Define.
6144         (TARGET_CONVERT_TO_TYPE): Define.
6145         (TARGET_INITIALIZER): Update for new fields.
6146         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
6147         (grokparms): Check targetm.invalid_parameter_type.
6148         * c-typeck.c (default_conversion): Check targetm.promoted_type.
6149         * c-convert.c (convert): Check targetm.convert_to_type.
6150
6151 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
6152
6153         * config/mips/mips.md (*extenddi_truncate<mode>,
6154         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
6155         defintions.
6156         (*extendhi_truncateqi): New define_insn_and_sptit.
6157
6158 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
6159
6160         PR middle-end/40204
6161         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
6162         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
6163
6164 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
6165
6166         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
6167         the operand of VIEW_CONVERT_EXPR.
6168
6169 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
6170
6171         * config/i386/driver-i386.c (host_detect_local_cpu): Check
6172         extended family and model for Intel processors.  Support Intel Atom.
6173
6174 2009-05-20  Olivier Hainque  <hainque@adacore.com>
6175
6176         * gstab.h (stab_code_type): Define, to be used instead of the
6177         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
6178         notice.
6179         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
6180         occurrences by stab_code_type.
6181         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
6182
6183 2009-05-20  Martin Jambor  <mjambor@suse.cz>
6184
6185         * tree-flow.h (insert_edge_copies_seq): Undeclare.
6186         (sra_insert_before): Likewise.
6187         (sra_insert_after): Likewise.
6188         (sra_init_cache): Likewise.
6189         (sra_type_can_be_decomposed_p): Likewise.
6190         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
6191         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
6192         (sra_insert_before): Likewise.
6193         (sra_insert_after): Likewise.
6194         (sra_init_cache): Likewise.
6195         (insert_edge_copies_seq): Made static and moved upwards.
6196
6197         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
6198         case.
6199
6200         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
6201
6202         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
6203         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
6204         simple copies.
6205
6206 2009-05-20  Richard Guenther  <rguenther@suse.de>
6207
6208         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
6209         with mismatched comparison modes.
6210
6211 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6212
6213         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
6214         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
6215         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
6216         with shifts for Thumb2.
6217         (orsi_notsi): New for orn.
6218         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
6219         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
6220         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
6221         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
6222         Don't invert remainder for IOR.
6223         
6224 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
6225
6226         PR tree-optimization/40087
6227         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
6228         number_of_iterations_ne): Rename never_infinite argument.
6229         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
6230         number_of_iterations_le): Handle pointer-type ivs when
6231         exit_must_be_taken is false.
6232         (number_of_iterations_cond):  Do not always assume that
6233         exit_must_be_taken if the control variable is a pointer.
6234
6235 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6236
6237         * c-typeck.c (build_binary_op): Allow % on integal vectors.
6238         * doc/extend.texi (Vector Extension): Document that % is allowed too.
6239
6240 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6241
6242         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
6243         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
6244
6245 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6246
6247         PR c/40172
6248         * c.opt (Wlogical-op): Disabled by default.
6249         * c-opt (c_common_post_options): Do not enable Wlogical-op with
6250         Wextra.
6251         * doc/invoke.texi (Wlogical-op): Likewise.
6252         
6253 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
6254
6255         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
6256         into CASE_CONVERT.
6257         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
6258         Propagate the type of the first operand.
6259         <ASSERT_EXPR>: Simplify.
6260         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
6261         Rewrite using the RHS code as discriminant.
6262         <NOP_EXPR>: Turn into CASE_CONVERT.
6263         <PLUS_EXPR>: Propagate the type of the first operand.
6264
6265 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
6266
6267         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
6268         (ia64_dconst_0_375): New.
6269         * config/ia64/ia64.c (ia64_override_options): Remove
6270         -minline-sqrt-min-latency warning.
6271         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
6272         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
6273         * config/ia64/ia64.md (*sqrt_approx): Remove.
6274         (sqrtsf2): Remove #if 0.
6275         (sqrtsf2_internal_thr): Rewrite and move to div.md.
6276         (sqrtdf): Remove assert.
6277         (sqrtdf2_internal_thr): Rewrite and move to div.md.
6278         (sqrtxf2): Remove #if 0.
6279         (sqrtxf2_internal_thr): Rewrite and move to div.md.
6280         * div.md (sqrt_approx_rf): New.
6281         (sqrtsf2_internal_thr): New implementation.
6282         (sqrtsf2_internal_lat): New.
6283         (sqrtdf2_internal_thr: New implementation.
6284         (sqrtxf2_internal): New implementation.
6285
6286 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
6287             Hans-Peter Nilsson  <hp@axis.com>
6288
6289         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
6290         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
6291         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
6292         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
6293         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
6294         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
6295         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
6296         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
6297         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
6298         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
6299         * c-common.c: ...from here.
6300
6301 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6302
6303         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
6304
6305 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6306
6307         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
6308
6309 2009-05-19  Ben Elliston  <bje@au.ibm.com>
6310
6311         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
6312         assignments with memcpy calls.
6313         (add_fdes): Likewise.
6314         (binary_search_unencoded_fdes): Likewise.
6315         (linear_search_fdes): Eliminate type puns.
6316         
6317 2009-05-19  Richard Guenther  <rguenther@suse.de>
6318
6319         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
6320         not falsely claim to have propagated into all uses.
6321
6322 2009-05-19  Ben Elliston  <bje@au.ibm.com>
6323
6324         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
6325         version to v3.0.
6326
6327 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6328
6329         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
6330         * config/sh/sh.c (sh_legitimate_address_p): Make static.
6331         (TARGET_LEGITIMATE_ADDRESS_P): New.
6332         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6333         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
6334         
6335 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
6336
6337         PR debug/40109
6338         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
6339         child of the containing namespace's DIE.
6340
6341 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
6342
6343         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
6344         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
6345         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
6346         extend patterns.
6347
6348 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
6349
6350         PR target/39942
6351         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
6352         gen_align with gen_pad.
6353         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
6354         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
6355
6356         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
6357         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
6358
6359         * config/i386/i386.md (align): Renamed to ...
6360         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
6361         ASM_OUTPUT_MAX_SKIP_PAD.
6362
6363 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
6364
6365         * config.gcc: Fix variable syntax.
6366
6367         PR target/39531
6368         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
6369         before calling exact_log2.
6370         (output_iorsi3): Likewise.
6371         (output_xorsi3): Likewise.
6372
6373 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6374
6375         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
6376         for the none zero constant operand except for EQ and NE
6377         comprisons even when the first operand is R0.
6378
6379 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
6380
6381         * config/s390/2064.md: Remove trailing whitespaces.
6382         * config/s390/2084.md: Likewise.
6383         * config/s390/constraints.md: Likewise.
6384         * config/s390/fixdfdi.h: Likewise.
6385         * config/s390/libgcc-glibc.ver: Likewise.
6386         * config/s390/s390-modes.def: Likewise.
6387         * config/s390/s390-protos.h: Likewise.
6388         * config/s390/s390.c: Likewise.
6389         * config/s390/s390.h: Likewise.
6390         * config/s390/s390.md: Likewise.
6391         * config/s390/tpf-unwind.h: Likewise.
6392
6393 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6394
6395         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
6396
6397 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6398
6399         M68K TLS support.
6400         * configure.ac (m68k-*-*): Check if binutils support TLS.
6401         * configure: Regenerate.
6402         * config/m68k/predicates.md (symbolic_operand): Extend comment.
6403         * config/m68k/constraints.md (Cu): New constraint.
6404         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
6405         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
6406         (movsi): Handle TLS symbols.
6407         (addsi3_5200): Handle XTLS symbols, indent.
6408         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
6409         (m68k_tls_reference_p): Declare.
6410         (m68k_legitimize_address): Declare.
6411         (m68k_unwrap_symbol): Declare.
6412         * config/m68k/m68k.opt (mxtls): New option.
6413         * config/m68k/m68k.c (ggc.h): Include.
6414         (m68k_output_dwarf_dtprel): Implement hook.
6415         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
6416         (m68k_expand_prologue): Load GOT pointer when function needs it.
6417         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
6418         (m68k_legitimate_constant_address_p): Same.
6419         (m68k_decompose_address): Handle TLS references.
6420         (m68k_get_gp): New static function.
6421         (enum m68k_reloc): New contants.
6422         (TLS_RELOC_P): New macro.
6423         (m68k_wrap_symbol): New static function.
6424         (m68k_unwrap_symbol): New function.
6425         (m68k_final_prescan_insn_1): New static function.
6426         (m68k_final_prescan_insn): New function.
6427         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
6428         functions.
6429         (legitimize_pic_address): Handle TLS references..
6430         (m68k_tls_get_addr, m68k_get_tls_get_addr)
6431         (m68k_libcall_value_in_a0_p)
6432         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
6433         (m68k_call_m68k_read_tp): Helper variables and functions for ...
6434         (m68k_legitimize_tls_address): Handle TLS references.
6435         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
6436         New functions.
6437         (m68k_legitimize_address): Handle TLS symbols.
6438         (m68k_get_reloc_decoration): New static function.
6439         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
6440         UNSPEC_RELOC32.
6441         (m68k_output_dwarf_dtprel): Implement hook.
6442         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
6443         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
6444         m68k_call_* routines.
6445         (sched_attr_op_type): Handle TLS symbols.
6446         (gt-m68k.h): Include.
6447         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
6448         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
6449
6450 2009-05-18  Martin Jambor  <mjambor@suse.cz>
6451
6452         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
6453         (visit_store_addr_for_mod_analysis): New function.
6454         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
6455         (determine_cst_member_ptr): Use gimple_assign_single_p.
6456         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
6457         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
6458         operands.  Don't check number of operands of a NOP_EXPR.
6459
6460 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
6461
6462         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
6463
6464 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6465
6466         PR c/40172
6467         * c-common.c (warn_logical_operator): Don't warn if one of
6468         expression isn't always true or false.
6469
6470 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
6471
6472         * config/i386/biarch32.h: New file.
6473         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
6474
6475 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
6476
6477         * config/mips/mips.md (*zero_extend<mode>_trunchi,
6478         *zero_extend<mode>_truncqi): Merge these into ...
6479         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
6480         Name the pattern following this as *zero_extendhi_truncqi.
6481
6482 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
6483
6484         PR middle-end/39301
6485         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
6486         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
6487         (output_info): Make field HOST_WIDEST_INT.
6488         (print_statistics): Use HOST_WIDEST_INT_PRINT.
6489         (dump_bitmat_statistics): Same.
6490
6491 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
6492
6493         * config.gcc (use_gcc_stdint):  Set to wrap.
6494         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
6495         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
6496         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6497         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6498         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6499         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6500         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6501         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6502
6503 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
6504
6505         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
6506         tune_64.
6507         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
6508         Move definitions earlier.
6509         (OPT_ARCH64, OPT_ARCH32): Define.
6510         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
6511         and tune_64.
6512
6513 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
6514
6515         PR target/40153
6516         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
6517         implies.
6518
6519 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
6520
6521         * arm.md (movdi2): Copy non-reg values to DImode registers.
6522
6523 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
6524
6525         PR target/39942
6526         * final.c (label_to_max_skip): New function.
6527         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
6528         CODE_LABEL_NUMBER <= max_labelno.
6529         * output.h (label_to_max_skip): New prototype.
6530         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
6531         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
6532         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
6533         Handle CODE_LABELs with >= 16 byte alignment or with
6534         max_skip == (1 << align) - 1.
6535         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
6536         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
6537
6538         PR target/39942
6539         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
6540         .p2align 3 if MAX_SKIP is smaller than 7.
6541         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
6542
6543 2009-05-15  Ian Lance Taylor  <iant@google.com>
6544
6545         * alias.c (struct alias_set_entry_d): Rename from struct
6546         alias_set_entry.  Change all uses.
6547         * except.c (struct call_site_record_d): Rename from struct
6548         call_site_record.  Change all uses.
6549         * except.h (struct eh_region_d): Rename from struct eh_region.
6550         Change all uses.
6551         * gcse.c (struct hash_table_d): Rename from struct hash_table.
6552         Change all uses.
6553         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
6554         ivtype_map_elt.  Change all uses.
6555         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
6556         Change all uses.
6557         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
6558         * graphite.h (struct name_tree_d): Rename from struct name_tree.
6559         Change all uses.
6560         (struct sese_d): Rename from struct sese.  Change all uses.
6561         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
6562         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
6563         * optabs.h (struct optab_d): Rename from struct optab.  Change all
6564         uses.
6565         (struct convert_optab_d): Rename from struct convert_optab.
6566         Change all uses.
6567         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
6568         ipa_opt_pass.  Change all uses.
6569         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
6570         all uses.
6571
6572         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
6573         defined as a typedef.
6574         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
6575         defined as a tag.
6576
6577 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6578
6579         PR 16302
6580         * fold-const.c (make_range,build_range_check,merge_ranges): Move
6581         declaration to...
6582         (merge_ranges): Returns bool. 
6583         * tree.h (make_range): .. to here.
6584         (build_range_check): Likewise.
6585         (merge_ranges): Likewise. Renamed from merge_ranges.
6586         * c-typeck.c (parser_build_binary_op): Update calls to
6587         warn_logical_operator.
6588         * c-common.c (warn_logical_operator): Add new warning.
6589         * c-common.h (warn_logical_operator): Update declaration.
6590         
6591 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6592
6593         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
6594         
6595 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6596
6597         * doc/install.texi: Document MPC requirements, flags etc.
6598
6599         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
6600         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
6601         Evaluate constant arguments.
6602         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
6603         (fold_builtin_1): Likewise, also evaluate constant arguments.
6604         Remove superfluous break.
6605         (do_mpc_ckconv): New.
6606         * real.h: Include mpc.h.
6607         * toplev.c (print_version): Output MPC version info if available.
6608
6609 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
6610
6611         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
6612
6613 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6614
6615         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
6616         only once.
6617
6618 2009-05-15  Jan Hubicka  <jh@suse.cz>
6619
6620         * doc/invoke.texi (max-early-inliner-iterations): New flag.
6621         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
6622         (try_inline): Fix return value.
6623         (cgraph_decide_inlining_incrementally): Honor new value.
6624         (cgraph_early_inlining): Handle indirect inlining.
6625         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
6626
6627 2009-05-15  Jan Hubicka  <jh@suse.cz>
6628
6629         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
6630         * cgraphunit.c (cgraph_finalize_function): Set it.
6631         (cgraph_expand_function): Use it.
6632
6633 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
6634
6635         * real.c (encode_ieee_half): Define.
6636         (decode_ieee_half): Define.
6637         (ieee_half_format): Define.
6638         (arm_half_format): Define.
6639         * real.h (ieee_half_format): Declare.
6640         (arm_half_format): Declare.
6641
6642 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
6643
6644         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
6645         swapped, and reversed optabs exist before trying to use them.
6646
6647 2009-05-15  Paul Brook  <paul@codesourcery.com>
6648             Sandra Loosemore  <sandra@codesourcery.com>
6649
6650         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
6651         loads.  Allow PRE_DEC.
6652         (output_move_neon): Handle PRE_DEC.
6653         (arm_print_operand): Add 'A' for neon structure loads.
6654         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
6655         * config/arm/neon.md (neon_mov): Update comment.
6656         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
6657         calls.
6658         (Um): New constraint.
6659
6660 2009-05-15  Jan Hubicka  <jh@suse.cz>
6661
6662         Revert the following patch until testsuite fallout is fixed:
6663         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
6664         * cgraph.h (struct inline_summary): New filed self_wize,
6665         size_inlining_benefit, self_time and time_inlining_benefit.
6666         (struct cgraph_global_info): Replace insns by time ans size fields.
6667         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
6668         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
6669         (ipcp_update_callgraph): Do not touch function bodies.
6670         * ipa-inline.c: Include except.h
6671         (MAX_TIME): New constant.
6672         (overall_insns): Remove
6673         (overall_size, max_benefit): New static variables.
6674         (cgraph_estimate_time_after_inlining): New function.
6675         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
6676         (cgraph_clone_inlined_nodes): Update size.
6677         (cgraph_mark_inline_edge): Update size.
6678         (cgraph_estimate_growth): Use size info.
6679         (cgraph_check_inline_limits): Check size.
6680         (cgraph_default_inline_p): Likewise.
6681         (cgraph_edge_badness): Compute badness based on benefit and size cost.
6682         (cgraph_decide_recursive_inlining): Check size.
6683         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
6684         and times.
6685         (cgraph_decide_inlining): Likewise.
6686         (cgraph_decide_inlining_incrementally): Likewise; honor
6687         PARAM_EARLY_INLINING_INSNS.
6688         (likely_eliminated_by_inlining_p): New predicate.
6689         (estimate_function_body_sizes): New function.
6690         (compute_inline_parameters): Use it.
6691         * except.c (must_not_throw_labels): New function.
6692         * except.h (must_not_throw_labels): Declare.
6693         * tree-inline.c (init_inline_once): Kill inlining_weigths
6694         * tree-ssa-structalias.c: Avoid uninitialized warning.
6695         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
6696         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
6697         (PARAM_INLINE_CALL_COST): Remove.
6698         (PARAM_EARLY_INLINING_INSNS): New.
6699
6700 2009-05-15  Richard Guenther  <rguenther@suse.de>
6701
6702         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
6703         not TODO_update_ssa.
6704
6705 2009-05-15  Richard Guenther  <rguenther@suse.de>
6706
6707         PR tree-optimization/39999
6708         * gimple.h (gimple_expr_type): Use the expression type looking
6709         through useless conversions.
6710         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
6711         (vn_nary_op_insert_stmt): Likewise.
6712         (simplify_binary_expression): Likewise.
6713
6714 2009-05-15  Richard Guenther  <rguenther@suse.de>
6715
6716         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
6717         New options, enabled by default.
6718         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
6719         Document.
6720         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
6721         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
6722         * tree-ssa-structalias.c (gate_tree_pta): New function.
6723         (pass_build_alias): Use it.
6724
6725 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
6726
6727         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
6728         recurse on an invariant address if a conversion from a pointer
6729         type to a wider integer type is involved.
6730
6731 2009-05-15  Jan Hubicka  <jh@suse.cz>
6732
6733         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
6734         * cgraph.h (struct inline_summary): New filed self_wize,
6735         size_inlining_benefit, self_time and time_inlining_benefit.
6736         (struct cgraph_global_info): Replace insns by time ans size fields.
6737         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
6738         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
6739         (ipcp_update_callgraph): Do not touch function bodies.
6740         * ipa-inline.c: Include except.h
6741         (MAX_TIME): New constant.
6742         (overall_insns): Remove
6743         (overall_size, max_benefit): New static variables.
6744         (cgraph_estimate_time_after_inlining): New function.
6745         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
6746         (cgraph_clone_inlined_nodes): Update size.
6747         (cgraph_mark_inline_edge): Update size.
6748         (cgraph_estimate_growth): Use size info.
6749         (cgraph_check_inline_limits): Check size.
6750         (cgraph_default_inline_p): Likewise.
6751         (cgraph_edge_badness): Compute badness based on benefit and size cost.
6752         (cgraph_decide_recursive_inlining): Check size.
6753         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
6754         and times.
6755         (cgraph_decide_inlining): Likewise.
6756         (cgraph_decide_inlining_incrementally): Likewise; honor
6757         PARAM_EARLY_INLINING_INSNS.
6758         (likely_eliminated_by_inlining_p): New predicate.
6759         (estimate_function_body_sizes): New function.
6760         (compute_inline_parameters): Use it.
6761         * except.c (must_not_throw_labels): New function.
6762         * except.h (must_not_throw_labels): Declare.
6763         * tree-inline.c (init_inline_once): Kill inlining_weigths
6764         * tree-ssa-structalias.c: Avoid uninitialized warning.
6765         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
6766         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
6767         (PARAM_INLINE_CALL_COST): Remove.
6768         (PARAM_EARLY_INLINING_INSNS): New.
6769         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
6770         (inline-call-cost): Remove.
6771         (early-inlining-insns): New.
6772
6773 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
6774
6775         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
6776         for bounds.
6777         (print_int_cst_bounds_in_octal_p): Likewise.
6778         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
6779         with subtypes.
6780         * dwarf2out.c (base_type_die): Likewise.
6781         (is_subrange_type): Delete.
6782         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
6783         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
6784         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
6785         if the destination type is boolean.
6786         (build_range_check): Do not special-case subtypes.
6787         (fold_sign_changed_comparison): Likewise.
6788         (fold_unary): Likewise.
6789         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
6790         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
6791         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
6792         * tree.c (subrange_type_for_debug_p): New predicate based on the
6793         former is_subrange_type.
6794         * tree.h (subrange_type_for_debug_p): Declare.
6795         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
6796         (convert_affine_scev): Remove call to above function.
6797         (chrec_convert_aggressive): Likewise.
6798         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
6799         false for conversions involving subtypes.
6800         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
6801         (vrp_val_min): Likewise.
6802         (needs_overflow_infinity): Likewise.
6803         (extract_range_from_unary_expr): Likewise.
6804
6805 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
6806
6807         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
6808         * config/frv/frv.c: Likewise.
6809         * config/s390/s390.c: Likewise.
6810         * config/sparc/sparc.h: Likewise.
6811         * config/i386/i386.h: Likewise.
6812         * config/i386/i386.c: Likewise.
6813         * config/crx/crx.c: Likewise.
6814         * config/m68hc11/m68hc11.h: Likewise.
6815         * config/iq2000/iq2000.c: Likewise.
6816         * config/mn10300/mn10300.h: Likewise.
6817         * config/mn10300/mn10300.c: Likewise.
6818         * config/m68k/m68k.c: Likewise.
6819         * config/rs6000/rs6000.c: Likewise.
6820         * config/rs6000/xcoff.h: Likewise.
6821         * config/rs6000/linux64.h: Likewise.
6822         * config/rs6000/sysv4.h: Likewise.
6823         * config/score/score3.c: Likewise.
6824         * config/score/score7.c: Likewise.
6825         * config/score/score.c: Likewise.
6826         * config/arm/arm.md: Likewise.
6827         * config/mips/mips.c: Likewise.
6828         * config/mips/mips.md: Likewise.
6829         * config/bfin/bfin.h: Likewise.
6830         * config/pa/pa.c: Likewise.
6831         * config/pa/constraints.md: Likewise.
6832
6833         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
6834         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
6835         * config/pdp11/pdp11.h: Use memory_address_p instead.
6836
6837 2009-05-14  Ian Lance Taylor  <iant@google.com>
6838
6839         * passes.c (finish_optimization_passes): Change i to int.
6840         * plugin.c (plugins_active_p): Change event to int.
6841         (dump_active_plugins): Likewise.
6842         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
6843         Add cast.
6844         * tree.c (tree_range_check_failed): Change c to unsigned int.
6845         (omp_clause_range_check_failed): Likewise.
6846         (build_common_builtin_nodes): Change mode to int.  Add cast.
6847         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
6848         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
6849
6850         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
6851         ++ or -- with a variable of enum type.
6852
6853 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
6854
6855         PR driver/40144
6856         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
6857
6858 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
6859
6860         * store-motion.c: Do not include params.h
6861         * Makefile.in: Fix dependencies for various files.
6862
6863 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
6864
6865         * auto-inc-dec.c: Fix pass description, remove apparent
6866         accidental duplication.
6867
6868 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
6869
6870         PR middle-end/40147
6871         * ipa-utils.h (memory_identifier_string): Moved to ...
6872         * tree.h (memory_identifier_string): Here.  Add GTY(()).
6873
6874 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
6875
6876         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
6877         in the former documentation of...
6878         (GO_IF_LEGITIMATE_ADDRESS): ... this.
6879         * ira-conflicts.c (get_dup_num): Use address_operand.
6880         * targhooks.c (default_legitimate_address_p): New.
6881         * targhooks.h (default_legitimate_address_p): New.
6882         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
6883         Call hook.
6884         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
6885         * target.h (struct target): Add legitimate_address_p.
6886         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
6887         (TARGET_INITIALIZER): Include it.
6888
6889         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6890         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
6891         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
6892         (TARGET_LEGITIMATE_ADDRESS_P): New.
6893
6894         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6895         (REG_OK_STRICT_P): Delete.
6896         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
6897         (frv_legitimate_address_p_1): ... this.
6898         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
6899         (frv_legitimate_address_p_1): ... the renamed old
6900         frv_legitimate_address_p.
6901         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
6902         (TARGET_LEGITIMATE_ADDRESS_P): New.
6903
6904         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6905         * config/s390/s390-protos.h (legitimate_address_p): Remove.
6906         * config/s390/s390.c (legitimate_address_p): Rename to...
6907         (s390_legitimate_address_p): ... this, make static.
6908         (legitimize_address): Adjust call.
6909         (TARGET_LEGITIMATE_ADDRESS_P): New.
6910         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
6911
6912         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6913         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
6914         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
6915         (TARGET_LEGITIMATE_ADDRESS_P): New.
6916
6917         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6918         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
6919         * config/spu/spu.c (spu_legitimate_address): Rename to...
6920         (spu_legitimate_address_p): ... this, make static.
6921         (TARGET_LEGITIMATE_ADDRESS_P): New.
6922
6923         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6924         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
6925         * config/sparc/sparc.c (legitimate_address_p): Rename to...
6926         (sparc_legitimate_address_p): ... this, make static and return bool.
6927         (legitimize_address): Adjust call.
6928         (TARGET_LEGITIMATE_ADDRESS_P): New.
6929
6930         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6931         * config/i386/i386-protos.h (legitimate_address_p): Remove.
6932         * config/i386/i386.c (legitimate_address_p): Rename to...
6933         (ix86_legitimate_address_p): ... this, make static.
6934         (constant_address_p): Move after it, adjust call.
6935         (TARGET_LEGITIMATE_ADDRESS_P): New.
6936
6937         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6938         * config/avr/avr-protos.h (legitimate_address_p): Remove.
6939         * config/avr/avr.c (legitimate_address_p): Rename to...
6940         (avr_legitimate_address_p): ... this, make static.
6941         (legitimize_address): Adjust call.
6942         (TARGET_LEGITIMATE_ADDRESS_P): New.
6943
6944         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6945         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
6946         * config/crx/crx.c (crx_legitimate_address_p): Make static.
6947         (TARGET_LEGITIMATE_ADDRESS_P): New.
6948
6949         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6950         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
6951         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
6952         (TARGET_LEGITIMATE_ADDRESS_P): New.
6953
6954         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6955         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
6956         Remove.
6957         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
6958         Make static.
6959         (TARGET_LEGITIMATE_ADDRESS_P): New.
6960
6961         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6962         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
6963         Remove.
6964         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
6965         Rename to...
6966         (m68hc11_legitimate_address_p): ... this, make static.
6967         (go_if_legitimate_address_internal): Rename to...
6968         (m68hc11_legitimate_address_p_1): ... this.
6969         (legitimize_address): Adjust call.
6970         (TARGET_LEGITIMATE_ADDRESS_P): New.
6971
6972         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6973         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
6974         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
6975         (TARGET_LEGITIMATE_ADDRESS_P): New.
6976
6977         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6978         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
6979         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
6980         (mn10300_legitimate_address_p): ... this, make static.
6981         (TARGET_LEGITIMATE_ADDRESS_P): New.
6982
6983         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6984         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
6985         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
6986         (TARGET_LEGITIMATE_ADDRESS_P): New.
6987
6988         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6989         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
6990         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
6991         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6992         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
6993         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
6994         (rs6000_legitimate_address_p): ... this, make static.
6995         (TARGET_LEGITIMATE_ADDRESS_P): New.
6996         (REG_MODE_OK_FOR_BASE_P): Delete.
6997         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
6998
6999         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7000         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
7001         Delete.
7002         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
7003         static, adjust types.
7004         (TARGET_LEGITIMATE_ADDRESS_P): New.
7005
7006         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7007         * config/score/score.c (score_address_p): Rename to...
7008         (score_legitimate_address_p): ... this.
7009         (TARGET_LEGITIMATE_ADDRESS_P): New.
7010         * config/score/score3.c (score3_address_p): Rename to...
7011         (score3_legitimate_address_p): ... this.
7012         * config/score/score7.c (score7_address_p): Rename to...
7013         (score7_legitimate_address_p): ... this.
7014
7015         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
7016         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
7017         GO_IF_LEGITIMATE_ADDRESS): Delete.
7018         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
7019         thumb2_legitimate_address_p): Delete.
7020         (arm_legitimate_address_p): Rename to...
7021         (arm_legitimate_address_outer_p): ... this.
7022         * config/arm/constraints.md ("Uq"): Adjust call.
7023         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
7024         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
7025         to...
7026         (arm_legitimate_address_outer_p): ... this.
7027         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
7028         static.
7029         (TARGET_LEGITIMATE_ADDRESS_P): New.
7030
7031         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7032         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
7033         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
7034         (TARGET_LEGITIMATE_ADDRESS_P): New.
7035
7036         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7037         * config/vax/vax-protos.h (legitimate_address_p): Remove.
7038         * config/vax/vax.c (legitimate_address_p): Rename to...
7039         (vax_legitimate_address_p): ... this, make static.
7040         (TARGET_LEGITIMATE_ADDRESS_P): New.
7041
7042         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7043         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
7044         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
7045         (TARGET_LEGITIMATE_ADDRESS_P): New.
7046
7047         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7048         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
7049         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
7050         (mmix_legitimate_address_p): ... this, make static.
7051         (TARGET_LEGITIMATE_ADDRESS_P): New.
7052
7053         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7054         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
7055         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
7056         (TARGET_LEGITIMATE_ADDRESS_P): New.
7057
7058 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
7059
7060         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
7061         of MODE_COMPLEX_INT.
7062
7063 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7064
7065         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
7066         LCT_NORMAL in function call.
7067         * mips-tdump.c (print_file_desc): Add cast to enum type.
7068         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
7069         (mark_stabs): Add casts to enum types.
7070         (parse_stabs_common): Add casts to enum types.
7071
7072 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
7073
7074         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
7075         Check for invalid values of LETTER.
7076
7077 2009-05-13  Taras Glek  <tglek@mozilla.com>
7078
7079         * attribs.c (register_attribute): moved out attribute registration
7080         into register_attribute.
7081         * doc/plugins.texi: Documented register_attribute and
7082         PLUGIN_ATTRIBUTES.
7083         * gcc-plugin.h: Added forward decl for register_attribute.
7084         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
7085         * plugin.c (register_callback, invoke_plugin_callbacks): Added
7086         PLUGIN_ATTRIBUTES boilerplate.
7087
7088 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
7089
7090         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
7091         values even in sentinel and empty entries.
7092         (ms_printf_flag_specs):  Likewise.
7093         (ms_scanf_flag_specs):  Likewise.
7094         (ms_strftime_flag_specs):  Likewise.
7095         (ms_print_char_table):  Likewise.
7096         (ms_scan_char_table):  Likewise.
7097         (ms_time_char_table):  Likewise.
7098
7099 2009-05-13  Doug Kwan  <dougkwan@google.com>
7100
7101         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
7102
7103 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
7104
7105         * config/mips/mips.md (store): Add attributes for QI and HI.
7106         Update comment.
7107         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
7108         (truncdi<mode>2): ... this new pattern.
7109
7110 2009-05-13  Brad Hards  <bradh@kde.org>
7111
7112         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
7113
7114 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
7115             Ben Elliston <bje@au.ibm.com>
7116
7117         PR middle-end/40035
7118         * dse.c (check_mem_read_rtx): Guard against width == -1.
7119
7120 2009-05-13  Michael Matz  <matz@suse.de>
7121
7122         PR middle-end/39976
7123         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
7124         (trivially_conflicts_p): New function.
7125         (insert_backedge_copies): Use it.
7126
7127 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
7128
7129         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
7130         (handle_stdc_pragma): Use new enum constant names.
7131         (handle_pragma_float_const_decimal64): Ditto.
7132
7133 2009-05-13  Ian Lance Taylor  <iant@google.com>
7134
7135         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
7136         tree.def.
7137
7138 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
7139
7140         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
7141         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
7142         multilibs.
7143         * config/m68k/m68k.h (FL_UCLINUX): Define.
7144
7145 2009-05-13  Jan Hubicka  <jh@suse.cz>
7146
7147         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
7148
7149 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7150
7151         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
7152         unless -fschedule-insns is specified.
7153
7154 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7155
7156         PR target/39561
7157         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
7158         TARGET_EXPAND_CBRANCHDI4.
7159         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
7160         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
7161         (cmpeqdi): Fix comment.
7162
7163 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7164
7165         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
7166         (sh_legitimate_address_p): Likewise.
7167         * config/sh/sh.c (sh_legitimate_index_p): New.
7168         (sh_legitimate_address_p): Likewise.
7169         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
7170         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
7171         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
7172         (MAYBE_BASE_REGISTER_RTX_P): New macro.
7173         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
7174         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
7175         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
7176         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
7177         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
7178
7179 2009-05-12  Jan Hubicka  <jh@suse.cz>
7180
7181         * tree-inline.c (estimate_operator_cost): Add operands;
7182         when division happens by constant, it is cheap.
7183         (estimate_num_insns): Loads and stores are not having cost of 0;
7184         EH magic stuff is cheap; when computing runtime cost of switch,
7185         use log2 base of amount of its cases; builtin_expect has cost of 0;
7186         compute cost for moving return value of call.
7187         (init_inline_once): Initialize time_based flags.
7188         * tree-inline.h (eni_weights_d): Add time_based flag.
7189
7190 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7191
7192         * df-core.c: Update head documentation.
7193
7194 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
7195
7196         PR bootstrap/40118
7197         * rs6000.c (rs6000_generate_compare): Use op1b instead of
7198         shadowing exisiting variable op1.
7199
7200 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
7201
7202         PR target/37179
7203         * config/i386/driver-i386.c (processor_signatures): New enum.
7204         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
7205         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
7206         processor signature to detect geode processor.
7207
7208 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7209
7210         Revert:
7211
7212         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7213
7214         * optabs.c (prepare_cmp_insn): Temporarily disable test that
7215         causes spurious differences between trunk and cond-optab branch.
7216
7217 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7218
7219         * dojump.c (compare_from_rtx): Delete.
7220         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
7221         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
7222         if the comparison does not satisfy the predicate; test predicates for
7223         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
7224         further if one existing pattern fails.
7225         * expr.h (compare_from_rtx): Delete.
7226         (prepare_operand): Declare it.
7227         * optabs.c: Change "lib call" to "libcall" throughout.
7228         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
7229         HAVE_conditional_trap, emit_cmp_insn): Delete.
7230         (can_compare_p): Delete cmp_optab case.
7231         (prepare_float_lib_cmp): Return an rtx and a machine mode.
7232         Accept other parameters by value.
7233         (prepare_operand): Make non-static.
7234         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
7235         other parameters by value.  Try to widen operands here based on
7236         an optab_methods argument and looking at cbranch_optab.
7237         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
7238         loop.  Use cbranch_optab directly.
7239         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
7240         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
7241         assertion.
7242         (emit_conditional_move, emit_conditional_add): Inline what's needed
7243         of compare_from_rtx, using new prepare_cmp_insn for the rest.
7244         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
7245         with COMPARE.  Move cmov_optab and cstore_optab above
7246         with cbranch_optab, move cmp_optab down with ucmp_optab,
7247         remove tst_otpab.  Do not initialize trap_rtx.
7248         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
7249         for trap code.  Do not check HAVE_conditional_trap.  Use
7250         prepare_cmp_insn.  Accept no predicate for operand 3.
7251         * optabs.h (OTI_cmp): Mark as used only for libcalls.
7252         (OTI_ctrap, ctrap_optab): New.
7253         (tst_optab): Delete.
7254         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
7255         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
7256         with lookup of ctrap_optab.
7257         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
7258         Delete.
7259         (ctrap_optab): New.
7260
7261         * combine.c (combine_simplify_rtx, simplify_set): Do not
7262         special case comparing against zero for cc0 machines.
7263         * simplify-rtx.c (simplify_binary_operation_1): Never remove
7264         COMPARE on cc0 machines.
7265         (simplify_relational_operation): Return a new expression when
7266         a COMPARE could be removed.
7267         * final.c (final_scan_insn): Compare cc_status values
7268         against LHS of a (compare FOO (const_int 0)) cc0 source.
7269         Also check if cc_status.value is the full compare.
7270
7271         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
7272         (cstoreMM4): Document.
7273         (conditional_trap): Document ctrapMM4 instead.
7274         (sync_compare_and_swapMM): Refer to cbranchcc4.
7275         (Dependent Patterns): Eliminate obsolete information referring to
7276         the old jump optimization phase.
7277         (Canonicalization): Include cbranchcc4 case, omit canonicalization
7278         of compares with 0 on cc0 machines.
7279         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
7280         avoiding references to cc0.  Remove text about storing operands
7281         in cmpMM.
7282         * doc/tm.texi (Condition Codes): Include blurb on different
7283         condition code representations, separate into subsections for
7284         CC0, MODE_CC and conditional execution.
7285
7286         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
7287         alpha_emit_setcc): Accept operands and a machine mode.
7288         * config/alpha/alpha.c (alpha_emit_conditional_branch):
7289         Get code/op0/op1 from operands, use machine mode argument
7290         instead of alpha_compare.fp_p.  Emit the branch here.
7291         (alpha_emit_setcc): Likewise, and return boolean.
7292         (alpha_emit_conditional_move): Likewise.  Assert that
7293         cmp_op_mode == cmp_mode, and simplify accordingly.
7294         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
7295         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
7296         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
7297         Delete.
7298         (stack probe test): Use cbranchdi4.
7299         * config/alpha/predicates.md (alpha_cbranch_operator): New.
7300
7301         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
7302         * config/arc/arc.h (movsicc, movsfcc): Use it.
7303         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
7304         (cbranchsi4, cstoresi4): New.
7305         (cmpsi, bCC and sCC expanders): Remove. 
7306
7307         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
7308         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
7309         * config/arm/predicates.md (arm_comparison_operator): Only include
7310         floating-point operators if there is a hardware floating-point unit.
7311         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
7312         deferring to cbranch_cc and cstore_cc respectively.
7313         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
7314         cbranch_cc, cstore_cc): New.
7315         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
7316         arm_compare_op1.
7317         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
7318
7319         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
7320         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
7321         as an argument.
7322         (adjust_insn_length): Adjust calls.
7323         (avr_reorg): Handle (compare (foo) (const_int 0)).
7324         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
7325         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
7326         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
7327         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
7328         (bCC): Remove.
7329         (cbranchqi4, cbranchhi4, cbranchsi4): New.
7330         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
7331
7332         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
7333         (cbranchsi4, cstorebi4, cstoresi4): New.
7334         (movbisi): This insn is duplicate, split it to zero_extend.
7335         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
7336         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
7337         (bfin_optimize_loop): Use cbranch expander.
7338         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
7339         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
7340         (bfin_bimode_comparison_operator): ... this.
7341         (bfin_direct_comparison_operator): New.
7342  
7343         * config/cris/cris.c (cris_normal_notice_update_cc): Look
7344         inside (compare FOO (const_int 0)).
7345         (cris_rtx_costs): Handle ZERO_EXTRACT.
7346         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
7347         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
7348         (*tstdi_v32): Delete.
7349         (*cmpdi_non_v32): Add M alternative for operand 1.
7350         (cmpsi, cmp<mode>): Make private.
7351         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
7352         with COMPARE.
7353         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
7354
7355         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
7356         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
7357         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
7358         (cc_reg_operand): New.
7359         (any_cond): Delete.
7360         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
7361         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
7362         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
7363         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
7364         crx_expand_scond): Delete.
7365
7366         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
7367         (cbranchsi4): New.
7368         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
7369         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
7370
7371         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
7372         cstoresi4, cstoresf4, cstoredf4): New.
7373         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
7374         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
7375         Receive the entire operands array.
7376         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
7377         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
7378         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
7379         Get test/op0/op1 from the operands array.
7380         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
7381
7382         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
7383         (h8300_expand_store): New.
7384         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
7385         (const_int 0)).
7386         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
7387         (h8300_expand_store): New.
7388         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
7389         or do not try to produce (set (cc0) REG).
7390         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
7391         change a compare into a move to a scratch register.  Disable some
7392         peepholes when comparing with zero.
7393         (tstsi, tsthi, tstsi, cmpqi): Make private.
7394         (cmphi): Delete.
7395         (bCC, sCC): Delete.
7396         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
7397         cstoresi4): New.
7398
7399         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
7400         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
7401         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
7402         (ix86_emit_i387_log1p): Use cbranchxf2.
7403         (ix86_expand_setcc): Return void.
7404         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
7405         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
7406         cmp<MODEF>, cmpcc): Remove.
7407         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
7408         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
7409         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
7410         (sCC and bCC expanders): Remove.
7411         (stack_protect_test): Use cbranchcc4.
7412
7413         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
7414         Delete.
7415         (ia64_expand_compare): Accept three rtx by reference and return void.
7416         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
7417         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
7418         from *expr.  Update *expr with the BImode comparison to do.
7419         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
7420         cmptf, bCC, sCC, conditional_trap): Delete.
7421         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
7422         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
7423         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
7424         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
7425         * config/ia64/predicates.md (ia64_cbranch_operator): New.
7426
7427         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
7428         type of last argument.
7429         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
7430         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
7431         use machine mode argument instead of branch_type.  Remove dead
7432         code for floating-point comparisons.
7433         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
7434         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
7435         Remove.
7436         (cbranchsi4, cstoresi4): New.
7437         * config/iq2000/predicates.md (reg_or_const_operand): New.
7438
7439         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
7440         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
7441         (b<code>_op): Rewrite to...
7442         (bcc_op): ... this, using match_operator.
7443         (s<code>_op): Rewrite to...
7444         (scc_op): ... this, using match_operator.
7445         (s<code>_24_op): Rewrite to...
7446         (scc_op_24): ... this, using match_operator.
7447         (s<code>_<mode>): Rewrite to...
7448         (cstore<mode>4): ... this, using match_operator.
7449         (s<code>_<mode>_24): Rewrite to...
7450         (cstore<mode>4_24): ... this, using match_operator.
7451         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
7452         m32c_unpend_compare, m32c_expand_scc): Delete.
7453         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
7454         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
7455         (m32c_expand_movcc): Change NE to EQ if necessary.
7456         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
7457
7458         * config/m32r/m32r-protos.h (gen_cond_store): New.
7459         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
7460         (gen_cond_store): New, from sCC patterns.
7461         (m32r_expand_block_move): Use cbranchsi4.
7462         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
7463         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
7464         (cbranchsi4, cstoresi4): New.
7465         
7466         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
7467         Delete.
7468         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
7469         (m68hc11_notice_update_cc): Look into a compare with 0.
7470         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
7471         Delete.
7472         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
7473         cmphi, cmpqi, bCC): Delete.
7474         (cbranchsi4, cbranchhi4, cbranchqi4): New.
7475         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
7476         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
7477         sets with COMPARE.
7478
7479         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
7480         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
7481         * config/m68k/constraints.md (H): New.
7482         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
7483         the define_insn below.
7484         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
7485         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
7486         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
7487         patterns): Wrap RHS with COMPARE.
7488         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
7489         (*cmpdi_internal): Name this pattern.
7490         (cmpdi): Change to define_insn.
7491         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
7492         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
7493         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
7494         predicate.
7495         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
7496         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
7497         (conditional_trap): Change to...
7498         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
7499         (*conditional_trap): Use the ordered_comparison_operator and
7500         const1_operand predicates.
7501         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
7502         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
7503         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
7504         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
7505
7506         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
7507         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
7508         (mcore_gen_compare): New. 
7509         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
7510         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
7511         (mcore_gen_compare): ... this.
7512         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
7513         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
7514         (stack probe pattern): Use cbranchsi4.
7515
7516         * config/mips/predicates.md (mips_cstore_operator): New.
7517         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
7518         * config/mips/mips.md (any_cond): Delete.
7519         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
7520         always succeed.
7521         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
7522         fixuns_truncsfdi2): Use cbranch patterns.
7523         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
7524         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
7525         Adjust call to mips_expand_conditional_branch.
7526         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
7527         cstore<GPR:mode>4.
7528         * config/mips/mips-protos.h (mips_expand_conditional_branch,
7529         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
7530         * config/mips/mips.c (cmp_operands): Delete.
7531         (mips_emit_compare): Get comparison operands from *op0/*op1.
7532         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
7533         that it succeeds.  Use op0/op1 instead of cmp_operands.
7534         (mips_expand_conditional_branch, mips_expand_conditional_move,
7535         mips_expand_conditional_trap): Likewise.
7536         (mips_block_move_loop): Use cbranch patterns. 
7537         * config/mips/mips.h (cmp_operands): Delete.
7538
7539         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
7540         (mmix_gen_compare_reg): Just return a register in the right CC mode.
7541         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
7542         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
7543         (*cmpcc_folded): Rename to...
7544         (*cmpdi_folded): this.
7545         (*cmpcc): Rename to...
7546         (*cmps): ... this.
7547         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
7548         (bCC): Remove.
7549         (cbranchdi4): New.
7550         (cbranchdf4): New.  Handle invalid comparisons here.
7551         * config/mmix/predicates.md (float_comparison_operator): New.
7552
7553         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
7554         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
7555         * config/mn10300/mn10300.md (tst): Delete.
7556         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
7557         Name these patterns and wrap RHS in a compare.
7558         (*cmpsi): Make this pattern private.  Include tst.
7559         (*cmpsf): Make this pattern private.
7560         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
7561         (compare with zero peepholes): Likewise.
7562         (bCC): Remove.
7563         (cbranchsi4, cbranchsf4): New.
7564         (casesi): Use cbranchsi4.
7565
7566         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
7567         hppa_branch_type): Delete.
7568         (return_addr_rtx): Use cbranchsi4.
7569         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
7570         Emit CCFPmode comparison here.
7571         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
7572         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
7573         hppa_branch_type): Delete.
7574         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
7575         (movsicc, movdicc): Remove references to hppa_compare_op0,
7576         hppa_compare_op1 and compare_from_rtx.
7577         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
7578         (casesi): Use cbranchsi4.
7579
7580         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
7581         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
7582         * config/pdp11/pdp11.md (register_or_const0_operand): New.
7583         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
7584         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
7585         (bCC): Delete.
7586         (cbranchdf4, cbranchhi4, cbranchqi4): New.
7587         (*branch, *branch_inverted): New.
7588
7589         * config/picochip/picochip.md (cbranchhi4): Use
7590         ordered_comparison_operator.
7591         (cmphi, bCC): Remove.
7592
7593         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
7594         (trap_comparison_operator): Delete.
7595         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
7596         rs6000_emit_cbranch): Accept mode and operands.
7597         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
7598         rs6000_compare_fp_p): Delete.   
7599         (rs6000_generate_compare): Accept mode and comparison.  Extract code
7600         and op0/op1 from there.  Replace references to rs6000_compare_op0
7601         and rs6000_compare_op1.
7602         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
7603         extract result from passed operands.
7604         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
7605         extract loc from passed operands.
7606         (rs6000_emit_cmove): Likewise.
7607         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
7608         rs6000_compare_fp_p): Delete.
7609         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
7610         (cbranch<GPR>4, cbranch<FP>4): New.
7611         (cstore<mode>4): New.  Consolidate here all choices about when to use
7612         portable or specialized sCC sequences.
7613         (stack_protect_test): Use cbranchsi4.
7614         (conditional_trap): Replace with ctrap<GPR>4.
7615         (conditional trap insn): Replace trap_comparison_operator with
7616         ordered_comparison_operator. 
7617
7618         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
7619         (s390_emit_prologue): Use ctrap.
7620         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
7621         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
7622         New predicates replacing...
7623         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
7624         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
7625         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
7626         (add<mode>cc): Do not use s390_compare_op0/op1.
7627         (s<code>): Change to...
7628         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
7629         (seq): Change to...
7630         (cstorecc4): ... this.  Handle EQ or NE equally.
7631         (*sne): Un-privatize for use in cstorecc4.
7632         (b<code>): Change to...
7633         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
7634         (conditional_trap): Replace with...
7635         (ctrap<GPR>4, ctrap<FP>4): ... these.
7636         (stack_protect): Use cbranchcc4.
7637
7638         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
7639         * config/score/score-protos.h (score_gen_cmp): Delete.
7640         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
7641         (score_block_move-loop): Use cbranchsi4.
7642         * config/score/score.md (cbranchsi4): New.
7643         (cmpsi, bCC): Delete.
7644         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
7645         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
7646         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
7647         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
7648         * config/score/score3.h (score3_gen_cmp): Delete.
7649         * config/score/score7.h (score7_gen_cmp): Delete.
7650
7651         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
7652         (sh_emit_scc_to_t): ... this.  Return void.
7653         (from_compare): Rename to...
7654         (sh_emit_compare_and_branch): ... this.
7655         (sh_emit_compare_and_set): New.
7656         (sh_expand_t_scc): Accept operands.
7657         * config/sh/predicates.md (sh_float_comparison_operator): New.
7658         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
7659         (prepare_scc_operands): Rename to...
7660         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
7661         arguments.
7662         (sh_emit_cheap_store_flag): New.
7663         (sh_emit_set_t_insn): New.
7664         (from_compare): Rename to...
7665         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
7666         handling of TARGET_SH2E floating point to avoid recursive call.
7667         Generate branch here.
7668         (sh_emit_compare_and_set): New.
7669         (sh_expand_t_scc): Get op0/op1 from arguments.
7670         (sh_emit_cheap_store_flag): New.
7671         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
7672         cases.
7673         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
7674         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
7675         (movsicc, movdicc): Do nothing when it recreated operands from
7676         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
7677         prepare_scc_operands (now sh_emit_scc_to_t).
7678         (udivdi3): Use cstoresi4.
7679         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
7680         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
7681         (cbranchint4_media, cbranchfp4_media): New.
7682         (casesi): Use cbranchdi4.
7683         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
7684         Delete.
7685         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
7686         (movnegt): Remove second operand.
7687         (cbranchsf4, cbranchdf4): New.
7688         (stack_protect): Use cbranchdi4/cbranchsi4.
7689
7690         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
7691         (gen_compare_reg): Accept comparison, extract part of it to...
7692         (gen_compare_reg_1): ... this. 
7693         (gen_compare_operator): Delete.
7694         (gen_v9_scc): Accept separate destination, comparison code and arms.
7695         Do not use sparc_compare_op0/sparc_compare_op1.
7696         (emit_scc_insn, emit_conditional_branch_insn): New.
7697         (emit_v9_brxx): Make static.  Remove useless assertion.
7698         (sparc_emit_float_lib_cmp): Return RTL instead of calling
7699         emit_cmp_insn.
7700         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
7701         * config/sparc/sparc-protos.h (gen_compare_reg,
7702         sparc_emit_float_lib_cmp): Adjust prototype.
7703         (emit_scc_insn, emit_conditional_branch_insn): New.
7704         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
7705         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
7706         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
7707         iterators to the top.
7708         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
7709         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
7710         snedi_special_trunc): Delete.
7711         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
7712         and snedi_special_trunc.
7713         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
7714         cbranchdi4, cbranch<F:mode>4): New.
7715         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
7716         here.  Use gen_compare_reg instead of gen_compare_operator.
7717         (conditional_trap): Replace with...
7718         (ctrapsi4, ctrapdi4): ... this.
7719         (stack_protect_test): Use cbranchcc4.
7720
7721         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
7722         argument to rtx.
7723         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
7724         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
7725         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
7726         from operands[0] or operands[3] depending on is_set.
7727         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
7728         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
7729         cmpdf, bCC), sCC: Remove.
7730         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
7731         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
7732         cstoredf4): New.
7733         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
7734         spu_emit_branch_or_set.
7735
7736         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
7737         Add two arguments.
7738         * config/stormy16/stormy16.h (xstormy16_compare_op0,
7739         xstormy16_compare_op1): Delete.
7740         * config/stormy16/stormy16.c (xstormy16_compare_op0,
7741         xstormy16_compare_op1): Delete. 
7742         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
7743         Adjust calls.
7744         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
7745         (cmphi, cmpsi, bCC): Remove.
7746
7747         * config/v850/v850.md (tstsi, cmpsi): Fold into...
7748         (*cmpsi): ... this one.
7749         (cbranchsi4, cstoresi4): New.
7750         (bCC expanders): Delete.
7751         (sCC insns): Fold into...
7752         (*setcc): ... this one.
7753         (casesi): Do not use gen_cmpsi and gen_bgtu. 
7754         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
7755         (movsicc): Simplify.
7756         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
7757
7758         * config/vax/vax-protos.h (cond_name): New.
7759         (vax_output_conditional_branch): Remove.
7760         * config/vax/vax.c (cond_name): New.
7761         (vax_output_conditional_branch): Remove.
7762         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
7763         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
7764         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
7765         (bit<VAXint>): Wrap source with (compare).
7766         (b<code> and following unnamed pattern): Rename to *branch and
7767         *branch_reversed.  Change macroization to match_operator.
7768         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
7769
7770         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
7771         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
7772         Change last argument to machine_mode.
7773         (xtensa_expand_scc): Add machine_mode argument.
7774         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
7775         (gen_conditional_move, xtensa_expand_conditional_branch,
7776         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
7777         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
7778         Adjust operand numbers.
7779         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
7780         Delete.
7781         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
7782         (cmpsi, cmpsf, b<code>, s<code>): Delete.
7783         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
7784
7785 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7786
7787         * optabs.c (prepare_cmp_insn): Temporarily disable test that
7788         causes spurious differences between trunk and cond-optab branch.
7789
7790 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
7791
7792         PR target/37137
7793         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
7794
7795 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
7796
7797         * tree.c (iterative_hash_pointer): Delete.
7798         (iterative_hash_expr): Short-circuit handling of NULL pointer.
7799         Hash UIDs and versions of SSA names.  Don't special-case built-in
7800         function declarations.
7801
7802 2009-05-11  Ian Lance Taylor  <iant@google.com>
7803
7804         PR bootstrap/40103
7805         * graphite.c: Force -Wc++-compat to only be a warning before
7806         #including "cloog/cloog.h".
7807
7808 2009-05-11  Martin Jambor  <mjambor@suse.cz>
7809
7810         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
7811         
7812 2009-05-11  Jan Hubicka  <jh@suse.cz>
7813
7814         * tree-ssa-loop-ivcanon.c: Include target.h
7815         (struct loop_size): new structure.
7816         (constant_after_peeling): New predicate.
7817         (tree_estimate_loop_size): New function.
7818         (estimated_unrolled_size): Rewrite for new estimates.
7819         (try_unroll_loop_completely): Use new estimates.
7820         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
7821
7822 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7823
7824         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
7825         libcpp interface change.
7826         (spu_macro_to_expand): Likewise.
7827
7828 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
7829
7830         PR tree-optimization/40026
7831         * gimplify.c (gimplify_init_constructor): Change initial conditional
7832         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
7833         optimize_compound_literals_in_ctor.
7834
7835 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
7836
7837         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
7838         New devices.
7839         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
7840
7841 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
7842
7843         * tree-vect-data-refs.c (vect_analyze_group_access): Use
7844         HOST_WIDE_INT for gap.
7845
7846 2009-05-11  Ira Rosen  <irar@il.ibm.com>
7847
7848         PR tree-optimization/40074
7849         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
7850         account in group size and step comparison.
7851
7852 2009-05-11  Richard Guenther  <rguenther@suse.de>
7853
7854         * passes.c (init_optimization_passes): Strip now incorrect comment.
7855         (execute_function_todo): Do not set PROP_alias.
7856         * tree-pass.h (PROP_alias): Remove.
7857         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
7858         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
7859         * tree-nrv.c (pass_return_slot): Likewise.
7860         * tree-object-size.c (pass_object_sizes): Likewise.
7861         * tree-ssa-dom.c (pass_dominator): Likewise.
7862         (pass_phi_only_cprop): Likewise.
7863         * tree-ssa-dse.c (pass_dse): Likewise.
7864         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
7865         (pass_cselim): Likewise.
7866         * tree-ssa-pre.c (pass_pre): Likewise.
7867         (pass_fre): Likewise.
7868         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
7869         * tree-ssa-sink.c (pass_sink_code): Likewise.
7870         * tree-stdarg.c (pass_stdarg): Likewise.
7871         * tree-tailcall.c (pass_tail_calls): Likewise.
7872         * tree-vrp.c (pass_vrp): Likewise.
7873
7874 2009-05-10  Ian Lance Taylor  <iant@google.com>
7875
7876         * basic-block.h (enum profile_status): Break out of struct
7877         control_flow_graph.
7878         * cgraph.h (struct inline_summary): Break out of struct
7879         cgraph_local_info.
7880         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
7881         of struct cgraph_order_sort.
7882         * combine.c (enum undo_kind): New enum, broken out of struct undo.
7883         * cse.c (struct branch_path): Break out of struct
7884         cse_basic_block_data.
7885         * except.h (enum eh_region_type): Break out of struct eh_region.
7886         * gcc.c (enum add_del): Break out of struct modify_target.
7887         * genrecog.c (enum decision_type): Break out of struct decision_test.
7888         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
7889         ggc_pch_data.
7890         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
7891         * regmove.c (enum match_use): New enum, broken out of struct match.
7892         * sched-int.h (enum post_call_group): New enum, broken out of
7893         struct deps.
7894         (struct deps_reg): Break out of struct deps.
7895         * target.h (struct asm_int_op): Break out of struct gcc_target.
7896         * tree-eh.c (struct goto_queue_node): Break out of struct
7897         leh_tf_state.
7898         * tree-inline.h (enum copy_body_cge_which): Break out of
7899         copy_body_data.
7900         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
7901
7902         * c-decl.c (in_struct, struct_types): New static variables.
7903         (pushtag): Add loc parameter.  Change all callers.
7904         (lookup_tag): Add ploc parameter.  Change all callers.
7905         (check_compound_literal_type): New function.
7906         (parser_xref_tag): Add loc parameter.  Change all callers.  If
7907         -Wc++-compat, warn about struct/union/enum types defined within a
7908         struct or union.
7909         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
7910         and loc parameters.  Change all callers.  Change error calls to
7911         error_at, using loc.  For a redefinition, if the location of the
7912         original definition is known, report it.  Set in_struct and
7913         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
7914         (finish_struct): Add new parameters enclosing_in_struct and
7915         enclosing_struct_types.  Change all callers.  Set
7916         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
7917         in the struct.  If in a struct, add this struct to struct_types.
7918         (start_enum): Add loc parameter.  Change all callers.  Use
7919         error_at for errors, using loc.  For a redefinition, if the
7920         location of the original definition is known, report it.  If in a
7921         struct, add this enum type to struct_types.  If -Wc++-compat warn
7922         if in sizeof, typeof, or alignof.
7923         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
7924         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
7925         (c_parser_enum_specifier): Get enum location for start_enum.
7926         (c_parser_struct_or_union_specifier): Get struct location for
7927         start_struct.  Save in_struct and struct_types status between
7928         start_struct and finish_struct.
7929         (c_parser_cast_expression): Get location of cast.
7930         (c_parser_alignof_expression): Get location of type.
7931         (c_parser_postfix_expression): Likewise.
7932         (c_parser_postfix_expression_after_paren_type): Add type_loc
7933         parameter.  Change all callers.  Call check_compound_literal_type.
7934         Use type_loc for error about variable size type.
7935         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
7936         of an enum constant from an enum type defined in a struct or union.
7937         (c_cast_expr): Add loc parameter.  Change all callers.  If
7938         -Wc++-compat, warn about defining a type in a cast.
7939         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
7940         (start_enum, start_struct, finish_struct): Update declarations.
7941         (parser_xref_tag, c_cast_expr): Update declarations.
7942         (check_compound_literal_type): Declare.
7943
7944 2009-05-11  Ben Elliston  <bje@au.ibm.com>
7945
7946         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
7947         for recent libcpp interface change.
7948         (rs6000_macro_to_expand): Likewise.
7949
7950 2009-05-10  Michael Matz  <matz@suse.de>
7951
7952         PR target/40031
7953         * config/arm/arm.c (require_pic_register): Emit on entry edge,
7954         not at entry of function.
7955
7956 2009-05-10  Richard Guenther  <rguenther@suse.de>
7957
7958         PR tree-optimization/40081
7959         Revert
7960         * tree-sra.c (instantiate_element): Instantiate scalar replacements
7961         using the main variant of the element type.  Do not fiddle with
7962         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
7963
7964         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
7965         structs with volatile fields.
7966
7967 2009-05-10  Jan Hubicka  <jh@suse.cz>
7968
7969         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
7970         (estimate_move_cost): Assert that it does not get called for
7971         VOID_TYPE_P.
7972         (estimate_num_insns): Skip VOID types in argument handling.
7973         (optimize_inline_calls): Delete unreachable blocks and verify that
7974         callgraph is valid.
7975
7976 2009-05-10  Jan Hubicka  <jh@suse.cz>
7977
7978         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
7979         * cgraph.c (cgraph_mark_address_taken_node): New function.
7980         (dump_cgraph_node): Dump new flag.
7981         * cgraph.h (struct cgraph_node): Add address_taken.
7982         (cgraph_mark_address_taken_node): New function.
7983         * ipa.c (cgraph_postorder): Prioritize functions with address taken
7984         since new direct calls can be born.
7985
7986 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
7987
7988         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
7989         tok->val.node.node.
7990
7991 2009-05-10  Jan Hubicka  <jh@suse.cz>
7992
7993         PR middle-end/40084
7994         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
7995         argument; rewrite.
7996         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
7997         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
7998         * tree-inline.c (copy_bb): Set frequency correctly.
7999         (fold_marked_statements): Update call to
8000         cgraph_update_edges_for_call_stmt.
8001
8002 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
8003
8004         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
8005         identifiers in diagnostics.
8006         * config/arm/arm.c (arm_handle_fndecl_attribute,
8007         arm_handle_isr_attribute): Likewise.
8008         * config/avr/avr.c (avr_handle_progmem_attribute,
8009         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
8010         * config/bfin/bfin.c (handle_int_attribute,
8011         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
8012         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
8013         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
8014         Likewise.
8015         * config/darwin.c (darwin_handle_kext_attribute,
8016         darwin_handle_weak_import_attribute): Likewise.
8017         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
8018         h8300_handle_eightbit_data_attribute,
8019         h8300_handle_tiny_data_attribute): Likewise.
8020         * config/i386/i386.c (ix86_handle_cconv_attribute,
8021         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
8022         * config/i386/winnt.c (ix86_handle_shared_attribute,
8023         ix86_handle_selectany_attribute): Likewise.
8024         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
8025         * config/m32c/m32c.c (function_vector_handler): Likewise.
8026         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
8027         m68hc11_handle_fntype_attribute): Likewise.
8028         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
8029         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
8030         * config/mips/mips.c (mips_insert_attributes,
8031         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
8032         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
8033         rs6000_handle_struct_attribute): Likewise.
8034         * config/sh/sh.c (sh_insert_attributes,
8035         sh_handle_resbank_handler_attribute,
8036         sh_handle_interrupt_handler_attribute,
8037         sh2a_handle_function_vector_handler_attribute,
8038         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
8039         Likewise.
8040         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
8041         * config/spu/spu.c (spu_handle_fndecl_attribute,
8042         spu_handle_vector_attribute): Likewise.
8043         * config/stormy16/stormy16.c
8044         (xstormy16_handle_interrupt_attribute): Likewise.
8045         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
8046         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
8047
8048 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
8049
8050         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
8051         (pp_translate_identifiers): New.
8052         (pp_identifier): Only conditionally translate identifier to locale
8053         character set.
8054         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
8055         (pp_base_tree_identifier): Only conditionally translate identifier
8056         to locale character set.
8057         * c-pretty-print.c (M_): Define.
8058         (pp_c_type_specifier, pp_c_primary_expression): Mark English
8059         fragments for conditional translation with M_.
8060         * tree-pretty-print.c (maybe_init_pretty_print): Disable
8061         identifier translation.
8062
8063 2009-05-10  Richard Guenther  <rguenther@suse.de>
8064
8065         PR tree-optimization/40081
8066         * tree-sra.c (instantiate_element): Instantiate scalar replacements
8067         using the main variant of the element type.  Do not fiddle with
8068         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
8069
8070 2009-05-09  Jan Hubicka  <jh@suse.cz>
8071
8072         PR middle-end/40080
8073         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
8074         indirect calls; verify cgraph afterwards.
8075
8076 2009-05-09  Jan Hubicka  <jh@suse.cz>
8077
8078         PR bootstrap/40082
8079         * ipa.c (update_inlined_to_pointer): New function.
8080         (cgraph_remove_unreachable_nodes): Use it.
8081
8082 2009-05-09  Jan Hubicka  <jh@suse.cz>
8083
8084         * tree-eh.c (struct leh_state): Remove prev_try.
8085         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
8086         not track prev_try.
8087         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
8088         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
8089         remove_eh_handler_and_replace, foreach_reachable_handler,
8090         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
8091         * except.h (struct eh_region): Remove eh_region_u_cleanup.
8092         (gen_eh_region_cleanup): Update prototype.
8093
8094 2009-05-09  Jan Hubicka  <jh@suse.cz>
8095
8096         PR middle-end/40043
8097         * except.c (copy_eh_region): Always set prev_try.
8098         (redirect_eh_edge_to_label): Find outer try.
8099         (foreach_reachable_handler): When looking for prev try
8100         handle case where previous try is not going to be taken.
8101
8102 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
8103
8104         PR tree-optimization/40049
8105         * tree-vect-stmts.c (vectorizable_operation): If the machine has
8106         only vector/vector shifts, convert the type of the constant to the
8107         appropriate type to avoid building incorrect trees, which
8108         eventually have problems with garbage collection.
8109
8110 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
8111
8112         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
8113         -1 for complex floating-point types if honoring signed zeros.
8114
8115 2009-05-08  Jan Hubicka  <jh@suse.cz>
8116
8117         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
8118         argument; handle correctly when profile is absent.
8119         (build_cgraph_edges): Update.
8120         (rebuild_cgraph_edges): Update.
8121         * cgraph.c: Do not include varray.h.
8122         (cgraph_set_call_stmt_including_clones): New function.
8123         (cgraph_create_edge_including_clones): Likewise
8124         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
8125         (cgraph_update_edges_for_call_stmt): Handle clones.
8126         (cgraph_remove_node): Handle clone tree.
8127         (cgraph_remove_node_and_inline_clones): New function.
8128         (dump_cgraph_node): Dump clone tree.
8129         (cgraph_clone_node): Handle clone tree.
8130         (clone_function_name): Bring here from tree-inline.c.
8131         (cgraph_create_virtual_clone): New function.
8132         * cgraph.h (ipa_replace_map): Move here from ipa.h.
8133         (cgraph_clone_info): New function.
8134         (strut cgraph_node): Add clone_info and new clone tree pointers.
8135         (cgraph_remove_node_and_inline_clones,
8136         cgraph_set_call_stmt_including_clones,
8137         cgraph_create_edge_including_clones,
8138         cgraph_create_virtual_clone): Declare.
8139         (cgraph_function_versioning): Use VEC argument.
8140         (compute_call_stmt_bb_frequency): Update prototype.
8141         (cgraph_materialize_all_clones): New function.
8142         * ipa-cp.c (ipcp_update_cloned_node): Remove.
8143         (ipcp_create_replace_map): Update to VECtors.
8144         (ipcp_update_callgraph): Use virtual clones.
8145         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
8146         (ipcp_update_profiling): Do not update local profiling.
8147         (ipcp_insert_stage): Use VECtors and virtual clones.
8148         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
8149         (clone_of_p): New function.
8150         (cgraph_preserve_function_body_p): Use clone tree.
8151         (cgraph_optimize): Materialize clones.
8152         (cgraph_function_versioning): Update for VECtors.
8153         (save_inline_function_body): Use clone tree.
8154         (cgraph_materialize_clone): New function.
8155         (cgraph_materialize_all_clones): Likewise.
8156         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
8157         * ipa.c: Include gimple.h.
8158         (cgraph_remove_unreachable_nodes): Use clone tree.
8159         * ipa-prop.c (ipa_note_param_call): Update call to
8160         compute_call_stmt_bb_frequencycall.
8161         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
8162         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
8163         (copy_bb): Handle updating of clone tree; add new edge when new call
8164         appears.
8165         (expand_call_inline): Be strict about every call having edge.
8166         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
8167         (delete_unreachable_blocks_update_callgraph): New function.
8168         (tree_function_versioning): Use VECtors; always remove unreachable
8169         blocks and fold conditionals.
8170         * tree-inline.h: Do not include varray.h.
8171         (tree_function_versioning): Remove.
8172         * Makefile.in (GTFILES): Remove tree-inline.c
8173         * passes.c (do_per_function): Do only functions having body.
8174         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
8175         tree.
8176
8177 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
8178             Andrew Morrow  <acm@google.com>
8179
8180         PR c/36892
8181         * c-common.c (c_common_attribute_table): Permit deprecated
8182         attribute to take an optional argument.
8183         (handle_deprecated_attribute): If the optional argument to
8184         __attribute__((deprecated)) is not a string ignore the attribute
8185         and emit a warning.
8186
8187         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
8188         * c-typeck.c (build_component_ref): Likewise.
8189         (build_external_ref): Likewise.
8190
8191         * toplev.c (warn_deprecated_use): Add an attribute argument.
8192         Emit the message associated with __attribute__((deprecated)).
8193
8194         * toplev.h (warn_deprecated_use): Updated.
8195
8196         * doc/extend.texi: Document new optional parameter to
8197         __attribute__((deprecated))
8198
8199 2009-05-08  Michael Eager <eager@eagercon.com>
8200
8201         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
8202         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
8203
8204 2009-05-08  Richard Guenther  <rguenther@suse.de>
8205
8206         PR tree-optimization/40062
8207         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
8208         Avoid exponential behavior.
8209
8210 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
8211
8212         PR rtl-optimization/33928
8213         PR 26854
8214         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
8215         process_uses, build_single_def_use_links): New.
8216         (update_df): Update use_def_ref.
8217         (forward_propagate_into): Use get_def_for_use instead of use-def
8218         chains.
8219         (fwprop_init): Call build_single_def_use_links and let it initialize
8220         dataflow.
8221         (fwprop_done): Free use_def_ref.
8222         (fwprop_addr): Eliminate duplicate call to df_set_flags.
8223         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
8224         df_rd_simulate_one_insn): New.
8225         (df_rd_bb_local_compute_process_def): Update head comment.
8226         (df_chain_create_bb): Use the new RD simulation functions.
8227         * df.h (df_rd_simulate_artificial_defs_at_top, 
8228         df_rd_simulate_one_insn): New.
8229         * opts.c (decode_options): Enable fwprop at -O1.
8230         * doc/invoke.texi (-fforward-propagate): Document this.
8231
8232 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
8233
8234         PR c/24581
8235         * c-typeck.c (build_binary_op): Handle arithmetic between one real
8236         and one complex operand specially.
8237         * tree-complex.c (some_nonzerop): Do not identify a real value as
8238         zero if flag_signed_zeros.
8239
8240 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
8241
8242         PR rtl-optimization/33928
8243         * loop-invariant.c (record_use): Fix && vs. || mishap.
8244
8245 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
8246
8247         PR rtl-optimization/33928
8248         * loop-invariant.c (struct use): Add addr_use_p.
8249         (struct def): Add n_addr_uses.
8250         (struct invariant): Add cheap_address.
8251         (create_new_invariant): Set cheap_address.
8252         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
8253         (record_uses): Pass df_ref to record_use.
8254         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
8255         used only as such.
8256
8257 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8258
8259         * config/sh/sh.c: Do not include c-pragma.h.
8260
8261 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8262
8263         * config/spu/spu.c: Remove include of c-common.h.
8264
8265 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
8266
8267         PR c/39037
8268         * c-common.h (mark_valid_location_for_stdc_pragma,
8269         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
8270         clear_float_const_decimal64, float_const_decimal64_p): New.
8271         * c.opt (Wunsuffixed-float-constants): New.
8272         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
8273         unsuffixed float constant, handle new warning.
8274         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
8275         * c-decl.c (c_scope): New flag float_const_decimal64.
8276         (set_float_const_decimal64, clear_float_const_decimal64,
8277         float_const_decimal64_p): New.
8278         (push_scope): Set new flag.
8279         * c-parser.c (c_parser_translation_unit): Mark when it's valid
8280         to use STDC pragmas.
8281         (c_parser_external_declaration): Ditto.
8282         (c_parser_compound_statement_nostart): Ditto.
8283         * c-pragma.c (valid_location_for_stdc_pragma,
8284         mark_valid_location_for_stdc_pragma,
8285         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
8286         handle_pragma_float_const_decimal64): New.
8287         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
8288         * cp/semantics.c (valid_location_for_stdc_pragma_p,
8289         set_float_const_decimal64, clear_float_const_decimal64,
8290         float_const_decimal64_p): New dummy functions.
8291         * doc/extend.texi (Decimal Float): Remove statement that the
8292         pragma, and suffix for double constants, are not supported.
8293         * doc/invoke.texi (Warning Options): List new option.
8294         (-Wunsuffixed-float-constants): New.
8295
8296 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
8297
8298         * config/i386/i386.c: Do not include c-common.h.
8299
8300 2009-05-07  Mark Heffernan  <meheff@google.com>
8301
8302         * doc/invoke.texi (Debugging Options): Document change of debugging
8303         dump location.
8304         * opts.c (decode_options): Make dump_base_name relative to
8305         aux_base_name directory.
8306
8307 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
8308
8309         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
8310         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
8311
8312 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
8313
8314         * Makefile.in (install-plugin): Simplify a bit.
8315
8316 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
8317
8318         * Makefile.in (OBJS-common): Add regcprop.o.
8319         (regcprop.o): New.
8320         * timevar.def (TV_CPROP_REGISTERS): New.
8321         * regrename.c (regrename_optimize): Return 0.
8322         (rest_of_handle_regrename): Delete.
8323         (pass_rename_registers): Point to regrename_optimize.
8324         (struct value_data_entry, struct value_data, 
8325         kill_value_one_regno, kill_value_regno, kill_value,
8326         set_value_regno, init_value_data, kill_clobbered_value,
8327         kill_set_value, kill_autoinc_value, copy_value,
8328         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
8329         replace_oldest_value_reg, replace_oldest_value_addr,
8330         replace_oldest_value_mem, copyprop_hardreg_forward_1,
8331         debug_value_data, validate_value_data): Move...
8332         * regcprop.c: ... here.
8333         (rest_of_handle_cprop): Delete.
8334         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
8335
8336 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
8337
8338         PR middle-end/40057
8339         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
8340         GEN_INT for 1 << bitnum.
8341         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
8342         build_int_cst_type.
8343
8344 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
8345
8346         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
8347         Remove wrong description of "nand" operation.
8348
8349 2009-05-06  Richard Guenther  <rguenther@suse.de>
8350             Adam Nemet  <anemet@caviumnetworks.com>
8351
8352         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
8353         comment.  Add that if LHS is not a gimple register, then RHS1 has
8354         to be a single object (GIMPLE_SINGLE_RHS).
8355
8356 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
8357
8358         * expr.c (get_def_for_expr): Move it up in the file.
8359         (store_field): When expanding a bit-field store, look at the
8360         defining gimple stmt for the masking conversion.
8361
8362 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
8363
8364         PR middle-end/39986
8365         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
8366         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
8367         32-bit memcpy into long.
8368
8369 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
8370
8371         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
8372         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
8373         new_reg_loc_descr.
8374         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
8375         instead of appending DW_OP_deref*.
8376
8377 2009-05-06  Michael Matz  <matz@suse.de>
8378
8379         PR middle-end/40021
8380         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
8381         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
8382
8383 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
8384
8385         * Makefile.in (install-plugin): Fix srcdir handling.
8386
8387 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
8388
8389         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
8390         when processing for not_regs_needed bitmap.
8391         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
8392         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
8393         handling it for rhs. 
8394
8395 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8396
8397         * config/i386/i386.md (unnamed inc/dec peephole): Use
8398         optimize_insn_for_size_p instead of optimize_size.
8399         * config/i386/predicates.md (incdec_operand): Likewise.
8400         (aligned_operand): Likewise.
8401         * config/i386/sse.md (divv8sf3): Likewise.
8402         (sqrtv8sf2): Likewise.
8403
8404 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8405
8406         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
8407
8408         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
8409
8410 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8411
8412         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
8413         ssemodesuffixf2c with avxmodesuffixf2c.
8414
8415 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
8416
8417         PR c/40032
8418         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
8419
8420 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
8421
8422         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
8423         (struct tree_base): Adjust spacing for 8 bit boundaries.
8424         (struct tree_decl_common): Add decl_by_reference_flag bit.
8425         (DECL_BY_REFERENCE): Adjust.
8426         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
8427         print DECL_BY_REFERENCE bit.
8428         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
8429         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
8430         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
8431         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
8432         unconditionally.
8433
8434         PR middle-end/39666
8435         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
8436         range of the type, but default label is missing, add it with one
8437         of the existing labels instead of adding a new label for it.
8438
8439 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
8440
8441         * dwarf.h: Remove.
8442
8443 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
8444
8445         * Makefile.in (enable_plugin, plugin_includedir): New.
8446         (install): Depend on install-plugin.
8447         (PLUGIN_HEADERS): New.
8448         (install-plugin): New.
8449         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
8450
8451 2009-05-05  Richard Guenther  <rguenther@suse.de>
8452
8453         PR tree-optimization/40022
8454         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
8455         the only vuse.
8456         (phivn_valid_p): Fix tuplification error, simplify.
8457         (phiprop_insert_phi): Add dumps.
8458         (propagate_with_phi): Simplify.
8459
8460 2009-05-05  Richard Guenther  <rguenther@suse.de>
8461
8462         PR middle-end/40023
8463         * builtins.c (gimplify_va_arg_expr): Properly build the address.
8464
8465 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
8466
8467         * tree.h (strip_float_extensions): Remove duplicate declaration.
8468         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
8469         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
8470         block_ultimate_origin): Rearrange the declarations line to match the
8471         comment that indicates the .c file which the functions are defined.
8472         (dwarf2out_*, set_decl_rtl): Add comment.
8473         (get_base_address): Adjust comment.
8474         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
8475         declarations line and add comment.
8476         (is_builtin_name): Add blank after function name, for clarity.
8477
8478 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
8479
8480         * attribs.c (decl_attributes): Use %qE for identifiers in
8481         diagnostics.
8482         * cgraphunit.c (verify_cgraph_node): Translate function names to
8483         locale character set in diagnostics.
8484         * coverage.c (get_coverage_counts): Use %qE for identifiers in
8485         diagnostics.
8486         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
8487         Document that functions are named in UTF-8.
8488         * expr.c (expand_expr_real_1): Translate function names to locale
8489         character set in diagnostics.
8490         * gimplify.c (omp_notice_variable, omp_is_private,
8491         gimplify_scan_omp_clauses): Use %qE for identifiers in
8492         diagnostics.
8493         * langhooks.c (lhd_print_error_function): Translate function names
8494         to locale character set.
8495         * langhooks.h (decl_printable_name): Document that return value is
8496         in internal character set.
8497         * stmt.c: Include pretty-print.h
8498         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
8499         diagnostics.
8500         (resolve_operand_name_1): Translate named operand name to locale
8501         character set.
8502         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
8503         diagnostics.
8504         * toplev.c (announce_function): Translate function names to locale
8505         character set.
8506         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
8507         (default_tree_printer): Use pp_identifier or translate identifiers
8508         to locale character set.  Mark "<anonymous>" for translation.
8509         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
8510         for identifiers in diagnostics.
8511         * tree.c (handle_dll_attribute): Use %qE for identifiers in
8512         diagnostics.
8513         * varasm.c (output_constructor): Use %qE for identifiers in
8514         diagnostics.
8515
8516 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
8517
8518         * configure.ac: use ` ` instead of $()
8519         * configure: Regenerate.
8520
8521 2009-05-05  Ben Elliston  <bje@au.ibm.com>
8522
8523         * config/pa/linux-atomic.c: Eliminate conditional include of
8524         errno.h on non-LP64 systems to simplify build requirements.
8525
8526 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
8527
8528         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
8529         diagnostics.
8530         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
8531         and pass value to identifier_to_locale.
8532         (warn_variable_length_array): Make name a tree.
8533         (grokdeclarator): Separate diagnostic texts for named and unnamed
8534         declarators.  Use %qE for named declarators.
8535         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
8536         diagnostics.
8537         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
8538         identifiers in diagnostics.
8539         * c-typeck.c (push_member_name, start_init): Pass identifiers to
8540         identifier_to_locale.  Mark "anonymous" strings for translation.
8541
8542 2009-05-04  Michael Eager <eager@eagercon.com>
8543
8544         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
8545         address for DImode/DFmode only if double-precision FP regs.
8546
8547 2009-05-04  Michael Eager <eager@eagercon.com>
8548
8549         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
8550         TARGET_SINGLE_FLOAT check.
8551
8552 2009-05-04  Michael Eager <eager@eagercon.com>
8553
8554         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
8555
8556 2009-05-04  Michael Eager <eager@eagercon.com>
8557
8558         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
8559         * config/rs6000/t-xilinx: New
8560
8561 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
8562
8563         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
8564         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
8565         * gcc/explow.c (memory_address): Use target hook.
8566         * gcc/targhooks.c (default_legitimize_address): New.
8567         * gcc/targhooks.h (default_legitimize_address): New.
8568         * gcc/target.h (legitimize_address): New.
8569         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
8570         (TARGET_INITIALIZER): Include it.
8571         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
8572
8573         * config/bfin/bfin-protos.h (legitimize_address): Remove.
8574         * config/bfin/bfin.c (legitimize_address): Remove.
8575         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
8576         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
8577         Remove.
8578         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
8579         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
8580
8581         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
8582         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
8583         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
8584         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
8585         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
8586         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
8587         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
8588         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
8589         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
8590         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
8591         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
8592         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
8593         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
8594         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
8595         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
8596         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
8597         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
8598         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
8599         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
8600         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
8601         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
8602         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
8603         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
8604
8605         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
8606         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
8607         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
8608         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
8609         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
8610         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
8611         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
8612         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
8613         (thumb_legitimize_address): Delete.
8614         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
8615         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
8616         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
8617         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
8618         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
8619         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
8620         Delete.
8621         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
8622         Delete.
8623
8624         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
8625         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
8626         * config/m32r/m32r.c (m32r_legitimize_address): New.
8627         * config/m68k/m68k.c (m68k_legitimize_address): New.
8628         * config/score/score.c (score_legitimize_address): Standardize.
8629         * config/score/score3.c (score3_legitimize_address): Standardize.
8630         * config/score/score3.h (score3_legitimize_address): Adjust.
8631         * config/score/score7.c (score7_legitimize_address): Standardize.
8632         * config/score/score7.h (score7_legitimize_address): Adjust.
8633         * config/sh/sh.c (sh_legitimize_address): New.
8634         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
8635
8636         * gcc/config/s390/s390.c (legitimize_address): Rename to...
8637         (s390_legitimize_address): ... this.
8638         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
8639         (sparc_legitimize_address): ... this.
8640         * gcc/config/i386/i386.c (legitimize_address): Rename to...
8641         (ix86_legitimize_address): ... this.
8642         * gcc/config/avr/avr.c (legitimize_address): Rename to...
8643         (avr_legitimize_address): ... this.
8644         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
8645         (mn10300_legitimize_address): ... this.
8646         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
8647         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
8648         (alpha_expand_mov): Adjust call.
8649
8650         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
8651         * config/spu/spu.c (spu_legitimize_address): Likewise.
8652         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
8653         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
8654
8655 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
8656
8657         * intl.c (locale_encoding, locale_utf8): New.
8658         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
8659         * intl.h (locale_encoding, locale_utf8): Declare.
8660         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
8661         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
8662         New.
8663         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
8664         argument.
8665         (pp_tree_identifier): Define to call pp_base_tree_identifier.
8666         (pp_base_tree_identifier): Declare as function.
8667         (identifier_to_locale): Declare.
8668         * Makefile.in (pretty-print.o): Update dependencies.
8669         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
8670
8671 2009-05-04  Richard Guenther  <rguenther@suse.de>
8672
8673         PR middle-end/40015
8674         * builtins.c (fold_builtin_memory_op): Do not decay to element
8675         type if the size matches the whole array.
8676
8677 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
8678
8679         * expmed.c (synth_mult): When trying out a shift, pass the result
8680         of a signed shift.
8681
8682 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
8683
8684         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
8685         (shiftsub1_cost): New.
8686         (init_expmed): Compute shiftsub1_cost.
8687         (synth_mult): Optimize multiplications by constants of the form
8688         -(2^^m-1) for some constant positive integer m.
8689
8690 2009-05-03  Richard Guenther  <rguenther@suse.de>
8691
8692         PR c/39983
8693         * c-typeck.c (array_to_pointer_conversion): Do not built
8694         ADDR_EXPRs of arrays of pointer-to-element type.
8695         * c-gimplify.c (c_gimplify_expr): Revert change fixing
8696         up wrong ADDR_EXPRs after-the-fact.
8697         * c-common.c (strict_aliasing_warning): Strip pointer
8698         conversions for obtaining the original type.
8699         * builtins.c (fold_builtin_memset): Handle array types.
8700         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
8701         and array types
8702
8703 2009-05-03  Richard Guenther  <rguenther@suse.de>
8704
8705         PR middle-end/23329
8706         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
8707         Do not lose casts from array types with unknown extent to array
8708         types with known extent.
8709         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
8710         alias set compatibility.
8711
8712 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8713
8714         * flags.h (extra_warnings): Delete.
8715         * toplev.c (process_options): Handle Wuninitialized here.
8716         * opts.c (extra_warnings): Delete.
8717         (set_Wextra): Delete.
8718         (common_handle_option): -Wextra can be handled automatically.
8719         * c-opts.c (c_common_handle_option): Delete obsolete code.
8720         (c_common_post_options): Simplify comment.
8721         * common.opt (W): Add Var.
8722         (Wextra): Add Var.
8723         (Wuninitialized): Initialize to -1.
8724
8725 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
8726             Richard Guenther  <rguenther@suse.de>
8727
8728         * expr.c (get_def_for_expr): New function.
8729         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
8730         SSA rather than trees.
8731         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
8732         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
8733         
8734 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
8735
8736         * c-common.c (reswords): Add _Imaginary.
8737         * c-common.c (enum rid): Add RID_IMAGINARY.
8738
8739 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
8740
8741         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
8742         Patch by Richard Guenther.
8743
8744 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
8745
8746         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
8747         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
8748         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
8749         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
8750         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
8751         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
8752         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
8753         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
8754         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
8755         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
8756         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
8757         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
8758         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
8759         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
8760         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
8761         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
8762         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
8763         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
8764
8765 2009-05-02  Richard Guenther  <rguenther@suse.de>
8766
8767         PR tree-optimization/39940
8768         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
8769         doing so.
8770
8771 2009-05-02  Richard Guenther  <rguenther@suse.de>
8772
8773         PR middle-end/40001
8774         * tree-ssa.c (execute_update_addresses_taken): Properly check
8775         if we can mark a variable DECL_GIMPLE_REG_P.
8776         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
8777         back to the end of the function.
8778         (is_gimple_reg_type): Remove complex type special casing.
8779         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
8780         if not optimizing.
8781
8782 2009-05-02  Ben Elliston  <bje@au.ibm.com>
8783
8784         * doc/collect2.texi (Collect2): Document search path behaviour
8785         when configured with --with-ld.
8786
8787 2009-05-02  Jan Hubicka  <jh@suse.cz>
8788
8789         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
8790         parameter; update callers.
8791         (coalesce_cost_edge): EH edges are costier because they needs
8792         splitting even if not critical and even more costier when there are
8793         multiple EH predecestors.
8794
8795 2009-05-02  Jan Hubicka  <jh@suse.cz>
8796
8797         * except.c (remove_eh_handler_and_replace): Handle updating after
8798         removing TRY blocks.
8799
8800 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
8801
8802         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
8803
8804 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
8805
8806         * varasm.c: Do not include c-pragma.h.
8807         * attribs.c: Do not incude c-common.h.
8808
8809 2009-05-01  Michael Matz  <matz@suse.de>
8810
8811         * calls.c (initialize_argument_information): Handle SSA names like
8812         decls with a non MEM_P DECL_RTL.
8813
8814 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
8815
8816         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
8817         * ipa-utils.c: Likewise.
8818         * ipa-type-escape.c: Likewise.
8819         * cgraphunit.c Do not include c-common.h.
8820         * ipa-pure-const.c: Likewise.
8821         * tree-if-conv.c: Likewise.
8822         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
8823         * ipa-struct-reorg.c: Likewise.
8824         * tree-nomudflap.c: Likewise.
8825         * tree-ssa-structalias.c: Likewise.
8826
8827 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
8828
8829         * store-motion.c: Many cleanups to make this pass a first-class
8830         citizen instead of an appendix to gcse load motion.  Add TODO list
8831         to make this pass faster/cleaner/better.
8832
8833         (struct ls_expr): Post gcse.c-split cleanups.
8834         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
8835         "stores" field to "avail_stores".
8836         (pre_ldst_mems): Rename to store_motion_mems.
8837         (pre_ldst_table): Rename to store_motion_mems_table.
8838         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
8839         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
8840         (ldst_entry): Rename to st_expr_entry, update users.
8841         (free_ldst_entry): Rename to free_st_expr_entry, update users.
8842         (free_ldst_mems): Rename to free_store_motion_mems, update users.
8843         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
8844         update caller.
8845         (first_ls_expr): Rename to first_st_expr, update users.
8846         (next_ls_expr): Rename to next_st_expr, update users.
8847         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
8848         fields properly for store motion instead of names inherited from load
8849         motion in gcse.c.
8850         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
8851         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
8852         are done with it.
8853
8854         (ae_kill): Rename to st_kill, update users.
8855         (ae_gen): Rename to st_avloc, update users.
8856         (transp): Rename to st_transp, update users.
8857         (pre_insert_map): Rename to st_insert_map, update users.
8858         (pre_delete_map): Rename to st_delete_map, update users.
8859         (insert_store, build_store_vectors, free_store_memory,
8860         one_store_motion_pass): Update for abovementioned changes.
8861
8862         (gcse_subst_count, gcse_create_count): Remove.
8863         (one_store_motion_pass): New statistics counters "n_stores_deleted"
8864         and "n_stores_created", local variables.
8865
8866         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
8867         use for_each_rtx.
8868
8869         (regvec, compute_store_table_current_insn): Remove.
8870         (reg_set_info, reg_clear_last_set): Remove.
8871         (compute_store_table): Use DF caches instead of local dataflow
8872         solvers.
8873
8874 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
8875
8876         * c-objc-common.c (c_tree_printer): Print identifiers with
8877         pp_identifier, not pp_string.  Mark "({anonymous})" for
8878         translation.
8879         * c-pretty-print.c (pp_c_ws_string): New.
8880         (pp_c_cv_qualifier, pp_c_type_specifier,
8881         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
8882         pp_c_storage_class_specifier, pp_c_function_specifier,
8883         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
8884         pp_c_primary_expression, pp_c_postfix_expression,
8885         pp_c_unary_expression, pp_c_shift_expression,
8886         pp_c_relational_expression, pp_c_equality_expression,
8887         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
8888         use pp_string and pp_c_ws_string in place of pp_identifier and
8889         pp_c_identifier for non-identifiers.  Mark English strings for
8890         translation.
8891         * c-pretty-print.h (pp_c_ws_string): Declare.
8892
8893 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
8894             Roland McGrath <roland@redhat.com>
8895
8896         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
8897         (ENABLE_LD_BUILDID): New configuration option.
8898         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
8899         (LINK_BUILDID_SPEC): New macro.
8900         (init_spec): If defined, prepend it between LINK_EH_SPEC and
8901         link_spec.
8902         * doc/install.texi: Document --enable-linker-build-id option.
8903         * configure: Rebuild.
8904         * config.in: Rebuild.
8905
8906 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
8907
8908         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
8909         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
8910         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
8911         MIPS_GP_SAVE_AREA_SIZE.
8912         * config/mips/mips.c (struct mips_frame_info): Update comment
8913         before arg_pointer_offset and hard_frame_pointer_offset.
8914         (mips_compute_frame_info): Update diagram before function: to
8915         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
8916         indicate the position of frame_pointer_rtx with -fstack-protector and
8917         to show args_size.  Don't allocate cprestore area for leaf functions
8918         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
8919         cprestore_size.
8920         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
8921
8922 2009-04-30  Michael Matz  <matz@suse.de>
8923
8924         PR tree-optimization/39955
8925         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
8926
8927 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
8928
8929         * ira.c (setup_cover_and_important_classes):  Use safe macro
8930         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
8931         directly.
8932         * genpreds.c (write_tm_preds_h):  Output suitable definition of
8933         REG_CLASS_FOR_CONSTRAINT.
8934
8935 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
8936
8937         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
8938         instead of an int.
8939         * bitmap.c (bitmap_descriptor): Likewise.
8940         * ggc-common.c (loc_descriptor): Likewise.
8941         * varray.c (varray_descriptor): Likewise.
8942         * vec.c (vec_descriptor): Likewise.
8943
8944 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
8945
8946         * Makefile.in (dce.o): Add $(EXCEPT_H).
8947         * dce.c: Include except.h and delete redundant vector definitions.
8948         (deletable_insn_p): Return false for non-call insns that can throw
8949         if DF is running.
8950
8951 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
8952
8953         * gcse.c (ae_gen): Remove.
8954         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
8955         and make non-static function to make it available in store-motion.c.
8956         Update call sites with search-and-replace.
8957         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
8958         extract_mentioned_regs, extract_mentioned_regs_helper,
8959         find_moveable_store, compute_store_table, load_kills_store, find_loads,
8960         store_killed_in_insn, store_killed_after, store_killed_before,
8961         build_store_vectors, insert_insn_start_basic_block, insert-store,
8962         remove_reachable_equiv_notes, replace_store_insn, delete_store,
8963         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
8964         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
8965         * store-motion.c: ...new file.  Also copy data structures from gcse.c
8966         and clean up to remove parts not used by store motion.
8967         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
8968         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
8969
8970 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8971
8972         PR target/38571
8973         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
8974         when optimizing for size.
8975
8976 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
8977
8978         * gcse.c (gcse_constant_p): Fix typo in last change.
8979
8980 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
8981
8982         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
8983
8984 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
8985
8986         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
8987
8988 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
8989
8990         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
8991         CONST_HIGH_PART result.
8992
8993 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
8994
8995         * config/avr/avr.c (initial_elimination_offset): Rename to
8996         avr_initial_elimination_offset.
8997         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
8998         change return type to bool.
8999         (avr_can_eliminate): New function.
9000         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
9001         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
9002         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
9003         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
9004         avr_initial_elimination_offset.
9005         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
9006         (avr_initial_elimination_offset): Define.
9007
9008 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
9009             Steven Bosscher  <steven@gcc.gnu.org>
9010
9011         PR rtl-optimization/39938
9012         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
9013         * cfgrtl.c: Include insn-attr.h.
9014         (rest_of_pass_free_cfg): New function.
9015         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
9016         * resource.c (init_resource_info): Remove call to df_analyze.
9017
9018 2009-04-29  Richard Guenther  <rguenther@suse.de>
9019
9020         PR target/39943
9021         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
9022         allow conversion to signed integers.
9023
9024 2009-04-29  Richard Guenther  <rguenther@suse.de>
9025
9026         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
9027         shifts of floating point vectors if the shift amount is
9028         a constant multiple of the element size.
9029
9030 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
9031             Michael Matz  <matz@suse.de>
9032
9033         PR middle-end/39927
9034         PR bootstrap/39929
9035         * tree-outof-ssa.c (emit_partition_copy): New function.
9036         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
9037         insert_part_to_rtx_on_edge): Perform the partition base var
9038         copy using emit_partition_copy.
9039         (insert_value_copy_on_edge): Convert constants to the right mode.
9040         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
9041         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
9042
9043 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9044
9045         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
9046         scan backwards to try to find a constant to initialize it.
9047
9048         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
9049         insn before the loop_end instruction, don't look past labels.
9050
9051 2009-04-29  Richard Guenther  <rguenther@suse.de>
9052
9053         PR middle-end/39937
9054         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
9055         loose type conversions.
9056         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
9057         stmts only if there are no uses of its definition.
9058
9059 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9060
9061         * config/bfin/bfin.h (splitting_loops): Declare.
9062         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
9063         Reorder bit definitions to be ascending.
9064         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
9065         * config/bfin/bfin.c (splitting_loops): New variable.
9066         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
9067         (struct loop_info): Remove members INIT and LOOP_INIT.
9068         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
9069         the LSETUP sequence.  Allow LC to be loaded from any register, but
9070         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
9071         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
9072         set to 1.
9073         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
9074         of reload_completed.
9075
9076         From Jie Zhang:
9077         * config/bfin/bfin.md (movsi_insn): Refine constraints.
9078
9079 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
9080
9081         * Makefile.in (PLUGIN_VERSION_H): New.
9082         (OBJS-common): Remove plugin-version.o.
9083         (plugin.o): Depend on (PLUGIN_VERSION_H).
9084         (plugin-version.o): Remove.
9085         * configure: Regenerate
9086         * configure.ac: Create plugin-version.h.
9087         * gcc-plugin.h (plugin_gcc_version): Remove.
9088         (plugin_default_version_check): Change signature.
9089         * plugin-version.c: Remove.
9090         * plugin.c: Include plugin-version.h.
9091         (str_plugin_gcc_version_name): Remove.
9092         (try_init_one_plugin): Pass gcc version to plugin_init.
9093         (plugin_default_version_check): Both gcc and plugin versions are now
9094         arguments.
9095
9096 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9097         
9098         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
9099         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
9100         Remove special case testing for last insn of inner loops. Don't fail
9101         if the loop ends with a jump, emit an extra nop instead.
9102
9103         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
9104         DREGS rather than comparing directly.  Remove code that tries to
9105         account for latencies.
9106
9107 2009-04-29  Richard Guenther  <rguenther@suse.de>
9108
9109         PR tree-optimization/39941
9110         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
9111         eliminating an indirect call.
9112
9113 2009-04-29  Richard Guenther  <rguenther@suse.de>
9114
9115         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
9116         parameter.  Allow invariants as base if !require_lvalue.
9117         (verify_gimple_assign_single): Adjust.
9118
9119 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9120
9121         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
9122         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
9123         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
9124         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
9125         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
9126         a VEC_SELECT.
9127         * config/bfin/bfin.c (bfin_expand_builtin,
9128         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
9129
9130 2009-04-28  Richard Guenther  <rguenther@suse.de>
9131
9132         * tree-vect-loop.c (get_initial_def_for_induction): Use
9133         correct types for pointer increment.
9134
9135 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9136
9137         * toplev.c (print_version): Update GMP version string calculation.
9138
9139 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
9140
9141         PR rtl-optimization/39938
9142         * resource.c (init_resource_info): Add call to df_analyze.
9143
9144 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9145
9146         * config/alpha/alpha.md (usegp): Cast the result of
9147         alpha_find_lo_sum_using_gp to enum attr_usegp.
9148         * config/alpha/alpha.c (override_options): Remove end-of-structure
9149         marker element from cpu_table.  Use array size of cpu_table to handle
9150         -mcpu and -mtune options.
9151         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
9152
9153 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
9154
9155         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
9156         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
9157         tune_32 and tune_64.
9158         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
9159         support on PowerPC.
9160         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
9161         * config/rs6000/option-defaults.h: ... here.  New file.
9162         (OPT_64, OPT_32): Define.
9163         (MASK_64BIT): Define to 0 if not already defined.
9164         (OPT_ARCH64, OPT_ARCH32): Define.
9165         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
9166         and tune_64.
9167
9168 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9169
9170         * config/arm/arm.c (arm_override_options): Emit error on using
9171         fpa with AAPCS.
9172
9173 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9174
9175         PR rtl-optimization/39914
9176         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
9177         registers for allocnos created from user-defined variables only
9178         when not optimizing.
9179
9180 2009-04-28  Richard Guenther  <rguenther@suse.de>
9181
9182         PR middle-end/39937
9183         * fold-const.c (fold_binary): Use distribute_real_division only
9184         on float types.
9185
9186 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
9187
9188         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
9189         add hpux-stdint.h to tm_file.
9190         (hppa[12]*-*-hpux11*): Ditto.
9191         (ia64*-*-hpux*): Ditto.
9192         * config/hpux-stdint.h: New.
9193         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9194         __STDC_EXT__ for all compiles.
9195         * config/pa/pa-hpux.h: Ditto.
9196         * config/pa/pa-hpux10.h: Ditto.
9197         * config/pa/pa-hpux11.h: Ditto.
9198
9199 2009-04-28  Catherine Moore  <clm@codesourcery.com>
9200
9201         * debug.h (set_name): Add comment.
9202
9203 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
9204
9205         PR target/39929
9206         * config/darwin.c (machopic_gen_offset): Check
9207         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
9208         * config/arm/arm.c (require_pic_register): Likewise.
9209
9210 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
9211
9212         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
9213         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
9214         m32c_promote_prototypes): Delete.
9215
9216 2009-04-28  Michael Matz  <matz@suse.de>
9217
9218         PR middle-end/39922
9219         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
9220         constants.
9221
9222 2009-04-28  Richard Guenther  <rguenther@suse.de>
9223
9224         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
9225
9226 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9227
9228         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
9229         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
9230         * config/arm/arm-tune.md: Regenerate.
9231
9232 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
9233
9234         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
9235         block if there are complex incoming edges.
9236         (sel_merge_blocks): Remove useless assert.
9237         (sel_redirect_edge_and_branch): Check that edge was redirected.
9238         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
9239         (sel_find_rgns): Delete declaration.
9240         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
9241         the region when it is not a preheader.
9242
9243 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9244
9245         PR c/39323
9246         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
9247
9248 2009-04-28  Richard Guenther  <rguenther@suse.de>
9249
9250         * tree.h (SSA_NAME_VALUE): Remove.
9251         (struct tree_ssa_name): Remove value_handle member.
9252         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
9253         array for jump threading.
9254         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
9255         SSA_NAME_VALUEs.
9256         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
9257         * tree-flow.h (threadedge_initialize_values): Declare.
9258         (threadedge_finalize_values): Likewise.
9259         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
9260         (SSA_NAME_VALUE): Define.
9261         (threadedge_initialize_values): New function.
9262         (threadedge_finalize_values): Likewise.
9263         * tree-ssa-dom.c (ssa_name_values): New global variable.
9264         (SSA_NAME_VALUE): Define.
9265         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
9266
9267 2009-04-28  Ira Rosen  <irar@il.ibm.com>
9268
9269         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
9270         Use REPORT_VECTORIZED_LOCATIONS instead 
9271         REPORT_VECTORIZED_LOOPS.
9272         * tree-vectorizer.c (vect_verbosity_level): Make static.
9273         (vect_loop_location): Rename to vect_location.
9274         (vect_set_verbosity_level): Update comment.
9275         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
9276         and vect_location.
9277         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
9278         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
9279         instead REPORT_UNVECTORIZED_LOOPS.
9280         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
9281         and vect_loop_def to vect_external_def and vect_internal_def.
9282         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
9283         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
9284         REPORT_UNVECTORIZED_LOCATIONS.
9285         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
9286         and vect_used_in_loop and to vect_unused_in_scope and 
9287         vect_used_in_scope.
9288         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
9289         (vect_verbosity_level): Remove declaration.
9290         (vect_analyze_operations): Likewise.
9291         (vect_analyze_stmt): Declare.
9292         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
9293         REPORT_UNVECTORIZED_LOCATIONS.
9294         (vect_get_loop_niters): Fix indentation.
9295         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
9296         (vect_analyze_loop_operations): New function.
9297         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
9298         vect_analyze_operations.
9299         (vect_is_simple_reduction): Use new names.
9300         (vectorizable_live_operation, vect_transform_loop): Likewise.
9301         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
9302         to specify whether the data references can be a part of interleaving
9303         chain.
9304         (vect_analyze_data_ref_dependence): Use new names.
9305         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
9306         (vect_create_addr_base_for_vector_ref): Remove redundant code.
9307         * tree-vect-patterns.c (widened_name_p): Use new names.
9308         (vect_recog_dot_prod_pattern): Likewise.
9309         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
9310         (process_use, vect_mark_stmts_to_be_vectorized, 
9311         vect_model_simple_cost, vect_model_store_cost,
9312         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
9313         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
9314         vectorizable_operation, vectorizable_type_demotion,
9315         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
9316         vectorizable_condition): Likewise.
9317         (vect_analyze_operations): Split into vect_analyze_loop_operations
9318         and ...
9319         (vect_analyze_stmt): ... new function.
9320         (new_stmt_vec_info): Use new names.
9321         (vect_is_simple_use): Use new names and fix comment.
9322         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
9323         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
9324
9325 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9326
9327         PR target/39911
9328         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
9329         and integer modes for x87 operands.  Do not ICE for unsupported size,
9330         generate error instead.  Generate error for unsupported operand types.
9331         ['z']: Do not handle HImode memory operands specially.  Warning
9332         for floating-point operands.  Fallthru to 'Z' for unsupported operand
9333         types.  Do not ICE for unsupported size, generate error instead.
9334         (output_387_binary_op): Use %Z to output operands.
9335         (output_fp_compare): Ditto.
9336         (output_387_reg_move): Ditto.
9337
9338 2009-04-28  Ben Elliston  <bje@au.ibm.com>
9339
9340         PR c++/35652
9341         Revert:
9342
9343         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9344
9345         * builtins.c (c_strlen): Do not warn here.
9346         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
9347         * c-common.c (pointer_int_sum): Take an explicit location.
9348         Warn about offsets out of bounds.
9349         * c-common.h (pointer_int_sum): Adjust declaration.
9350
9351 2009-04-27  Ian Lance Taylor  <iant@google.com>
9352
9353         * collect2.c (is_ctor_dtor): Change type of ret field in struct
9354         names to symkind.
9355         * dce.c (run_fast_df_dce): Change type of old_flags to int.
9356         * df-core.c (df_set_flags): Change return type to int.  Change
9357         type of old_flags to int.
9358         (df_clear_flags): Likewise.
9359         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
9360         (df_get_conditional_uses): Likewise.
9361         * df.h (df_set_flags, df_clear_flags): Update declarations.
9362         * dwarf2out.c (struct indirect_string_node): Change type of form
9363         field to enum dwarf_form.
9364         (AT_string_form): Change return type to enum dwarf_form.
9365         * fixed-value.c (fixed_compare): Add cast to enum type.
9366         * fwprop.c (update_df): Change 0 to VOIDmode.
9367         * gensupport.c: Change 0 to UNKNOWN.
9368         * gimple.h (gimple_cond_code): Add cast to enum type.
9369         * haifa-sched.c (reemit_notes): Add cast to enum type.
9370         * hooks.c (hook_int_void_no_regs): Remove function.
9371         * hooks.h (hook_int_void_no_regs): Remove declaration.
9372         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
9373         * predict.c (combine_predictions_for_insn): Add casts to enum type.
9374         * real.c (real_arithmetic): Add cast to enum type.
9375         (real_compare): Likewise.
9376         * target.h (struct gcc_target): Change return type of
9377         branch_target_register_class to enum reg_class.
9378         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
9379         default_branch_target_register_class.
9380         * targhooks.c (default_branch_target_register_class): New function.
9381         * targhooks.h (default_branch_target_register_class): Declare.
9382         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
9383         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
9384         cast to int.
9385         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
9386         ERROR_MARK.
9387         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
9388         vect_uninitialized_def.  Change 0 to ERROR_MARK.
9389         * tree-vect-stmts.c (supportable_widening_operation): Don't
9390         initialize icode1 and icode2.
9391         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
9392         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
9393         and to STD_C89.
9394         (cmn_err_flag_specs): Change 0 to STD_C89.
9395         (cmn_err_char_table): Likewise.
9396         * config/arm/arm.c (get_arm_condition_code): Change type of code
9397         to enum arm_cond_code.
9398         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
9399         (IWMMXT_BUILTIN2): Likewise.
9400         (neon_builtin_type_bits): Don't define typedef.
9401         (neon_builtin_datum): Change type of bits field to int.
9402         (arm_expand_neon_args): Add cast to enum type.
9403         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
9404         TLS_MODEL_NONE.
9405         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
9406         casts to enum type.
9407         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
9408         MIPS_FP_COND_f.
9409         * config/mips/mips.md (jal_macro): Return enum constant.
9410         (single_insn): Likewise.
9411         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
9412         CODE_FOR_nothing.
9413         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9414         casts to enum type.
9415         * config/s390/s390.c (s390_tune_flags): Change type to int.
9416         (s390_arch_flags): Likewise.
9417         (s390_handle_arch_option): Change flags field of struct pta to int.
9418         * config/s390/s390.h (s390_tune_flags): Update declaration.
9419         (s390_arch_flags): Likewise.
9420         * config/sh/sh.c (prepare_move_operands): Compare
9421         tls_symbolic_operand result with enum constant.
9422         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
9423         (sh_expand_prologue): Add cast to enum type.
9424         (sh_expand_epilogue): Likewise.
9425         (tls_symbolic_operand): Change return type to enum tls_model.
9426         (fpscr_set_from_mem): Add cast to enum type.
9427         (legitimize_pic_address): Compare tls_symbolic_operand result with
9428         enum constant.
9429         (sh_target_reg_class): Change return type to enum reg_class.
9430         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
9431         PROCESSOR_xxx.
9432         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
9433         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
9434         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
9435         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
9436         (delayed_branch, tls_call_delay): Likewise.
9437         (eligible_for_sibcall_delay): Likewise.
9438         (eligible_for_return_delay): Likewise. 
9439         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
9440         (spu_expand_builtin_1): Likewise.
9441
9442         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
9443         for all types of conversions.
9444         (output_init_element): Issue -Wc++-compat warning if needed when
9445         initializing a bitfield with enum type.
9446         * c-parser.c (c_parser_expression): Set original_type to
9447         original_type of right hand operand of comman operator.
9448
9449 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9450
9451         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
9452         grammar nits.
9453         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
9454         * doc/cpp.texi (Standard Predefined Macros)
9455         (Implementation-defined behavior): Likewise.
9456         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
9457         * doc/gimple.texi (GIMPLE Exception Handling)
9458         (@code{GIMPLE_ASSIGN}): Likewise.
9459         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
9460         * doc/invoke.texi (Warning Options, Optimize Options)
9461         (AVR Options, Darwin Options): Likewise.
9462         (Optimize Options): Reformulate -fwhole-program description.
9463         * doc/loop.texi (Lambda): Likewise.
9464         * doc/md.texi (Output Template, Define Constraints)
9465         (Standard Names, Insn Splitting): Likewise.
9466         * doc/options.texi (Option properties): Likewise.
9467         * doc/passes.texi (Tree-SSA passes): Likewise.
9468         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
9469         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
9470         (File Names and DBX): Likewise.
9471         * doc/trouble.texi (Incompatibilities): Likewise.
9472
9473 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
9474
9475         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
9476         instruction is correct.
9477
9478 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
9479
9480         Allow non-constant arguments to conversion intrinsics.
9481         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
9482         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
9483         * spu.c (print_operand): Handle 'v' and 'w'.
9484         (exp2_immediate_p, spu_gen_exp2): Define.
9485         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
9486         spu_convtf_1): Update parameter descriptions.
9487         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
9488         * constraints.md ('v', 'w'): New.
9489         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
9490         Remove.
9491         (i2f, I2F): New define_mode_attr.
9492         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
9493         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
9494         fixuns_truncv4sfv4si2):  Update to use mode attribute.
9495         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
9496         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
9497         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
9498         patterns for combine.
9499
9500 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
9501
9502         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
9503         (cprop, hoist, pre, store_motion): New debug counters.
9504         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
9505         is not an RTL pass anymore.
9506         (pass_profiling): Remove extern decl for pass removed in 2005.
9507         (pass_gcse, pass_jump_bypass): Remove.
9508         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
9509         to 0 for clean state.
9510         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
9511         * cse.c (gate_handle_cse_after_global_opts,
9512         rest_of_handle_cse_after_global_opts): New functions.
9513         (pass_cse_after_global_opts): New pass, does local CSE.
9514         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
9515         (TV_CPROP): New timevar.
9516         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
9517         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
9518         (gcse_main, recompute_all_luids): Remove.
9519         (compute_hash_table_work): Call max_reg_num instead of reading
9520         max_gcse_regno.
9521         (cprop_jump): Don't set run_jump_opt_after_gcse.
9522         (constprop_register): Always allow to alter jumps.
9523         (cprop_insn): Likewise.
9524         (do_local_cprop): Likewise.
9525         (local_cprop_pass): Likewise.  Return non-zero if something changed.
9526         (cprop): Remove function, fold interesting bits into one_cprop_pass.
9527         (find_implicit_sets): Add note about missed optimization opportunity.
9528         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
9529         pass_rtl_cprop execute function.
9530         Don't bother tracking the pass number, each pass gets its own dumpfile
9531         now anyway.
9532         Always allow to alter jumpsand bypass jumps.
9533         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
9534         will just find no suitable set.
9535         (pre_edge_insert): Fix dumping, this function is for PRE only.
9536         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
9537         pass_rtl_pre execute function.
9538         (hoist_code): Return non-zero if something changed.  Keep track of
9539         substitutions and insertions for statistics gathering similar to PRE.
9540         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
9541         called from the pass_rtl_hoist execute function.  Show pass statistics.
9542         (compute_store_table): Use max_reg_num directly instead of using the
9543         formerly global max_gcse_regno.
9544         (build_store_vectors): Likewise.
9545         (replace_store_insn): Fix dumping.
9546         (store_motion): Rename to ...
9547         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
9548         pass, called from the pass_rtl_store_motion execute function.  Keep
9549         track of substitutions and insertions for statistics gathering similar
9550         to PRE.
9551         (bypass_jumps): Remove, fold interesting bits into ...
9552         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
9553         from the pass_rtl_cprop execute function.
9554         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
9555         pass_jump_bypass): Remove.
9556         (gate_handle_gcse, rest_of_handle_gcse): Remove.
9557         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
9558         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
9559         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
9560         (gate_rtl_store_motion, execute_rtl_store_motion,
9561         pass_rtl_store_motion): New.
9562         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
9563         make it clear that -fcse-skip-blocks is a no-op for backward compat.
9564         * passes.c (init_optimization_passes): Remove pass_gcse and
9565         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
9566         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
9567         instead of pass_jump_bypass.
9568
9569 2009-04-27  Richard Guenther  <rguenther@suse.de>
9570
9571         PR middle-end/39928
9572         * gimplify.c (gimplify_expr): If we are required to create
9573         a temporary make sure it ends up as register.
9574
9575 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
9576
9577         PR target/39903
9578         * config/i386/i386.c (construct_container): Don't call
9579         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
9580         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
9581
9582 2009-04-27  Michael Matz  <matz@suse.de>
9583
9584         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
9585         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
9586         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
9587         (dump_replaceable_exprs): Take a bitmap.
9588         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
9589         array.
9590         (expand_gimple_basic_block): Likewise.
9591         * tree-ssa-ter.c (struct temp_expr_table_d): Make
9592         replaceable_expressions member a bitmap.
9593         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
9594         (mark_replaceable): Likewise.
9595         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
9596         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
9597
9598 2009-04-27  Richard Guenther  <rguenther@suse.de>
9599
9600         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
9601         (verify_stmts): Dispatch to gimple/type verification code.
9602         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
9603         issue with call argument types.
9604
9605 2009-04-27  Michael Matz  <matz@suse.de>
9606
9607         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
9608         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
9609         to above.
9610
9611 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
9612             Eric Botcazou  <ebotcazou@adacore.com>
9613
9614         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
9615         a label's basic block.
9616         (mark_target_live_regs): Tidy and rework obsolete comments.
9617         Change back DF problem to LIVE.  If a label starts a basic block,
9618         assume that all registers that used to be live then still are.
9619         (init_resource_info): If a label starts a basic block, set its
9620         BLOCK_FOR_INSN accordingly.
9621         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
9622
9623 2009-04-27  Richard Guenther  <rguenther@suse.de>
9624
9625         * tree-flow-inline.h (function_ann): Remove.
9626         (get_function_ann): Likewise.
9627         * tree-dfa.c (create_function_ann): Remove.
9628         * tree-flow.h (struct static_var_ann_d): Remove.
9629         (struct function_ann_d): Likewise.
9630         (union tree_ann_d): Remove fdecl member.
9631         (function_ann_t): Remove.
9632         (function_ann, get_function_ann, create_function_ann): Remove
9633         declarations.
9634
9635 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
9636
9637         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
9638
9639 2009-04-27  Jan Hubicka  <jh@suse.cz>
9640
9641         * ipa-pure-const.c (struct funct_state_d): New fields
9642         state_previously_known, looping_previously_known; remove
9643         state_set_in_source.
9644         (analyze_function): Use new fields.
9645         (propagate): Avoid assumption that state_set_in_source imply
9646         nonlooping.
9647
9648         * tree-ssa-loop-niter.c (finite_loop_p): New function.
9649         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
9650         * cfgloop.h (finite_loop_p): Declare.
9651
9652 2009-04-26  Michael Matz  <matz@suse.de>
9653
9654         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
9655
9656 2009-04-26  Michael Matz  <matz@suse.de>
9657
9658         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
9659         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
9660         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
9661         pass_mark_used_blocks): Remove.
9662         * tree-optimize.c (pass_free_datastructures,
9663         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
9664         * passes.c (init_optimization_passes): Don't call
9665         pass_mark_used_blocks, remove dead code.
9666
9667 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
9668
9669         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
9670         * tree-ssa-live.h (register_ssa_partition): Likewise.
9671
9672 2009-04-26  Michael Matz  <matz@suse.de>
9673
9674         Expand from SSA.
9675         * builtins.c (fold_builtin_next_arg): Handle SSA names.
9676         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
9677         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
9678         SSA names. 
9679         (compare_pairs): Swap cost comparison.
9680         (coalesce_ssa_name): Don't use change_partition_var.
9681         * tree-nrv.c (struct nrv_data): Add modified member.
9682         (finalize_nrv_r): Set it.
9683         (tree_nrv): Use it to update statements.
9684         (pass_nrv): Require PROP_ssa.
9685         * tree-mudflap.c (mf_decl_cache_locals,
9686         mf_build_check_statement_for): Use make_rename_temp.
9687         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
9688         * alias.c (find_base_decl): Handle SSA names.
9689         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
9690         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
9691         * rtl.h (set_reg_attrs_for_parm): Declare.
9692         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
9693         to "optimized", remove unused locals at finish.
9694         (execute_free_datastructures): Make global, call
9695         delete_tree_cfg_annotations.
9696         (execute_free_cfg_annotations): Don't call
9697         delete_tree_cfg_annotations.
9698
9699         * ssaexpand.h: New file.
9700         * expr.c (toplevel): Include ssaexpand.h.
9701         (expand_assignment): Handle SSA names the same as register variables.
9702         (expand_expr_real_1): Expand SSA names.
9703         * cfgexpand.c (toplevel): Include ssaexpand.h.
9704         (SA): New global variable.
9705         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
9706         (SSAVAR): New macro.
9707         (set_rtl): New helper function.
9708         (add_stack_var): Deal with SSA names, use set_rtl.
9709         (expand_one_stack_var_at): Likewise.
9710         (expand_one_stack_var): Deal with SSA names.
9711         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
9712         before unique numbers.
9713         (expand_stack_vars): Use set_rtl.
9714         (expand_one_var): Accept SSA names, add asserts for them, feed them
9715         to above subroutines.
9716         (expand_used_vars): Expand all partitions (without default defs),
9717         then only the local decls (ignoring those expanded already).
9718         (expand_gimple_cond): Remove edges when jumpif() expands an
9719         unconditional jump.
9720         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
9721         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
9722         SSA name.
9723         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
9724         members of SA; deal with PARM_DECL partitions here; expand
9725         all PHI nodes, free tree datastructures and SA.  Commit instructions
9726         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
9727         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
9728         info and statements at start, collect garbage at finish.
9729         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
9730         (VAR_ANN_PARTITION) Remove.
9731         (change_partition_var): Don't declare.
9732         (partition_to_var): Always return SSA names.
9733         (var_to_partition): Only accept SSA names.
9734         (register_ssa_partition): Only check argument.
9735         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
9736         member.
9737         (delete_var_map): Don't free it.
9738         (var_union): Only accept SSA names, simplify.
9739         (partition_view_init): Mark only useful SSA names as used.
9740         (partition_view_fini): Only deal with SSA names.
9741         (change_partition_var): Remove.
9742         (dump_var_map): Use ssa_name instead of partition_to_var member.
9743         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
9744         basic blocks.
9745         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
9746         (struct _elim_graph): New member const_dests; nodes member vector of
9747         ints.
9748         (set_location_for_edge): New static helper.
9749         (create_temp): Remove.
9750         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
9751         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
9752         (new_elim_graph): Allocate const_dests member.
9753         (clean_elim_graph): Truncate const_dests member.
9754         (delete_elim_graph): Free const_dests member.
9755         (elim_graph_size): Adapt to new type of nodes member.
9756         (elim_graph_add_node): Likewise.
9757         (eliminate_name): Likewise.
9758         (eliminate_build): Don't take basic block argument, deal only with
9759         partition numbers, not variables.
9760         (get_temp_reg): New static helper.
9761         (elim_create): Use it, deal with RTL temporaries instead of trees.
9762         (eliminate_phi): Adjust all calls to new signature.
9763         (assign_vars, replace_use_variable, replace_def_variable): Remove.
9764         (rewrite_trees): Only do checking.
9765         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
9766         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
9767         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
9768         contains_tree_r, MAX_STMTS_IN_LATCH,
9769         process_single_block_loop_latch, analyze_edges_for_bb,
9770         perform_edge_inserts): Remove.
9771         (expand_phi_nodes): New global function.
9772         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
9773         functions, initialize new parameter, remember partitions having a
9774         default def.
9775         (finish_out_of_ssa): New global function.
9776         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
9777         don't reset in_ssa_p here, don't disable TER when mudflap.
9778         (pass_del_ssa): Remove.
9779         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
9780         partition members.
9781         (execute_free_datastructures): Declare.
9782         * Makefile.in (SSAEXPAND_H): New variable.
9783         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
9784         * basic-block.h (commit_one_edge_insertion): Declare.
9785         * passes.c (init_optimization_passes): Move pass_nrv and
9786         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
9787         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
9788         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
9789         (redirect_branch_edge): Deal with super block when expanding, split
9790         out jump patching itself into ...
9791         (patch_jump_insn): ... here, new static helper.
9792
9793 2009-04-26  Michael Matz  <matz@suse.de>
9794
9795         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
9796         beyond num_ssa_names.
9797         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
9798         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
9799
9800 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
9801
9802         PR inline-asm/39543
9803         * fwprop.c (forward_propagate_asm): New function.
9804         (forward_propagate_and_simplify): Propagate also into __asm, if it
9805         doesn't increase the number of referenced registers.
9806
9807         PR c/39889
9808         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
9809
9810 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
9811
9812         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
9813         note_nonlocal_vla_type for nonlocal VLAs.
9814         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
9815         contains_remapped_vars, remap_vla_decls): New functions.
9816         (convert_nonlocal_reference_stmt): If not optimizing, call
9817         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
9818         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
9819         if it wasn't found in var_map.
9820         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
9821         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
9822         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
9823         declare_vars.
9824         * gimplify.c (nonlocal_vlas): New variable.
9825         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
9826         referenced VLAs.
9827         (gimplify_body): Create and destroy nonlocal_vlas.
9828
9829         * dwarf2out.c (loc_descr_plus_const): New function.
9830         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
9831         mem_loc_descriptor, loc_descriptor_from_tree_1,
9832         descr_info_loc, gen_variable_die): Use it.
9833
9834         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
9835         !TREE_STATIC VAR_DECLs.
9836         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
9837         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
9838         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
9839         DECL_BY_REFERENCE is valid.
9840         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
9841         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
9842         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
9843         Copy DECL_BY_REFERENCE.
9844         (struct nesting_copy_body_data): New type.
9845         (nesting_copy_decl): New function.
9846         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
9847         if they have variable length.
9848
9849 2009-04-26  Michael Matz  <matz@suse.de>
9850
9851         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
9852         mark new temporaries for renaming.
9853
9854 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
9855
9856         PR c/39581
9857         * c-decl.c (global_bindings_p): Return negative value.
9858         (c_variable_size): New.  Based on variable_size from
9859         stor-layout.c.
9860         (grokdeclarator): Call c_variable_size not variable_size.
9861
9862 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
9863
9864         * config/i386/i386.c (print_operand) ['z']: Fix typo.
9865
9866 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
9867
9868         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
9869         Redefine it to just use mingw/include.
9870         (ASM_SPEC): Rules for -m32 and -m64.
9871         (LINK_SPEC): Use Likewise.
9872         (SPEC_32): New define.
9873         (SPEC_64): Likewise.
9874         (SUB_LINK_SPEC): Likewise.
9875         (MULTILIB_DEFAULTS): New define.
9876         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
9877         Add multilib options.
9878         (MULTILIB_DIRNAMES): Likewise.
9879         (MULTILIB_OSDIRNAMES): Likewise.
9880         (LIBGCC): Likewise.
9881         (INSTALL_LIBGCC): Likewise.
9882
9883 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
9884
9885         PR c/39556
9886         * c-tree.h (enum c_inline_static_type): New.
9887         (record_inline_static): Declare.
9888         * c-decl.c (struct c_inline_static, c_inline_statics,
9889         record_inline_static, check_inline_statics): New.
9890         (pop_file_scope): Call check_inline_statics.
9891         (start_decl): Call record_inline_static instead of pedwarning
9892         directly for static in inline function.
9893         * c-typeck.c (build_external_ref): Call record_inline_static
9894         instead of pedwarning directly for static referenced in inline
9895         function.
9896
9897 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
9898
9899         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
9900         not new but only being rescanned.
9901         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
9902         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
9903         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
9904         record_set_info, compute_set, grealloc): Remove.
9905         (recompute_all_luids): New function.
9906         (gcse_main): Don't compute sets, and don't do related memory
9907         allocations/free-ing.  If something changed before the end of the
9908         pass, update LUIDs using recompute_all_luids.
9909         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
9910         (free_gcse_mem): Don't free it either.
9911         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
9912         Use the df insn LUIDs.
9913         (load_killed_in_block): Likewise.
9914         (compute_hash_table_work): Don't compute reg_set_in_block.
9915         (compute_transp): Use DF_REG_DEF_CHAINs.
9916         (local_cprop_pass): Don't use compute_sets and related functions.
9917         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
9918         Use get_max_uid() instead of max_cuid.
9919         (insert_insn_end_basic_block, pre_insert_copy_insn,
9920         update_ld_motion_stores): Don't try to
9921         keep reg_set tables up to date.
9922         (pre_insert_copies): Use df insn LUIDs.
9923         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
9924         (reg_set_info): Don't use extra bitmap argument.
9925         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
9926         information to compute regs_set_in_block.
9927         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
9928         (bypass_jumps): Don't use compute_sets and friends.
9929
9930 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9931
9932         PR testsuite/39710
9933         * opts.c (undocumented_msg): Do not leave blank even with
9934         ENABLE_CHECKING.
9935
9936 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
9937
9938         * c-decl.c (build_enumerator): Allow values folding to integer
9939         constants but not integer constant expressions with a pedwarn if
9940         pedantic.
9941
9942 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
9943
9944         PR c/39582
9945         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
9946         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
9947         type is an integer constant.
9948
9949 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
9950
9951         PR target/39897
9952         * config/i386/i386.c (print_operand) ['z']: Revert handling of
9953         HImode operands.
9954
9955 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
9956
9957         PR c/39564
9958         * c-decl.c (grokdeclarator): Diagnose declarations of functions
9959         with variably modified return type and no storage class
9960         specifiers, except for the case of nested functions.  Distinguish
9961         extern declarations of functions with variably modified return
9962         types from those of objects with variably modified types.
9963
9964 2009-04-25  Jan Hubicka  <jh@suse.cz>
9965
9966         * tree.c (list_equal_p): New function.
9967         * tree.h (list_equal_p): Declare.
9968         * coretypes.h (edge_def, edge, const_edge, basic_block_def
9969         basic_block_def, basic_block, const_basic_block): New.
9970         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
9971         (redirect_eh_edge): New function.
9972         (make_eh_edge_update_phi): EH edges are not abnormal.
9973         * except.c: Include tree-flow.h.
9974         (list_match): New function.
9975         (eh_region_replaceable_by_p): New function.
9976         (replace_region): New function.
9977         (hash_type_list): New function.
9978         (hash_eh_region): New function.
9979         (eh_regions_equal_p): New function.
9980         (merge_peers): New function.
9981         (remove_unreachable_regions): Verify EH tree when checking;
9982         merge peers.
9983         (copy_eh_region_1): New function.
9984         (copy_eh_region): New function.
9985         (push_reachable_handler): New function.
9986         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
9987         regions without label but with live RESX.
9988         * except.h (redirect_eh_edge_to_label): New.
9989         * tree-flow.h (redirect_eh_edge): New.
9990         * coretypes.h (edge_def, edge, const_edge, basic_block_def
9991         basic_block_def, basic_block, const_basic_block): Remove.
9992         * Makefile.in (except.o): Add dependency on tree-flow.h
9993         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
9994         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
9995         Remove.
9996
9997 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
9998
9999         PR bootstrap/39645
10000         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
10001         on the destination of memcpy.
10002
10003 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
10004
10005         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
10006         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
10007         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
10008
10009 2009-04-25  Jan Hubicka  <jh@suse.cz>
10010
10011         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
10012         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
10013         to be reached by different label than left.
10014         (update_eh_edges): Update comment; remove edge_to_remove if possible
10015         and return true if suceeded.
10016         (cleanup_empty_eh): Accept sharing map; handle shared regions.
10017         (cleanup_eh): Compute sharing map.
10018         * except.c (remove_eh_handler_and_replace): Add argument if we should
10019         update regions.
10020         (remove_unreachable_regions): Update for label sharing.
10021         (label_to_region_map): Likewise.
10022         (get_next_region_sharing_label): New function.
10023         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
10024         prev_try pointers.
10025         (remove_eh_handler): Update.
10026         (remove_eh_region_and_replace_by_outer_of): New function.
10027         * except.h (struct eh_region): Add next_region_sharing_label.
10028         (remove_eh_region_and_replace_by_outer_of,
10029         get_next_region_sharing_label): Declare.
10030         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
10031
10032 2009-04-25  Jan Hubicka  <jh@suse.cz>
10033
10034         * tree-cfg.c (split_critical_edges): Split also edges where we can't
10035         insert code even if they are not critical.
10036
10037 2009-04-25  Jan Hubicka  <jh@suse.cz>
10038
10039         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
10040         (gimple_can_remove_branch_p): EH edges won't remove branch by
10041         redirection.
10042         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
10043         updating of non-abnormal EH edges.
10044         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
10045         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
10046         (split_critical_edges): Split also edges where emitting code on them
10047         will lead to splitting later.
10048
10049 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
10050             H.J. Lu  <hongjiu.lu@intel.com>
10051
10052         PR target/39590
10053         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
10054         the configured assembler supports fildq and fistpq mnemonics.
10055         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
10056         * configure: Regenerated.
10057         * config.in: Ditto.
10058
10059         * config/i386/i386.c (print_operand): Handle 'Z'.
10060         ['z']: Remove handling of special fild/fist suffixes.
10061         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
10062         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
10063         suffix of fild insn.
10064         (*floatsi<mode>2_vector_mixed): Ditto.
10065         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
10066         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
10067         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
10068         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
10069         * config/i386/gas.h (GAS_MNEMONICS): Remove.
10070
10071 2009-04-25  Ben Elliston  <bje@au.ibm.com>
10072  
10073         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
10074         the source of a set operation.
10075
10076 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
10077
10078         * target.h (struct gcc_target): Add case_values_threshold field.
10079         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
10080         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
10081         * targhooks.c (default_case_values_threshold): New function.
10082         * targhooks.h (default_case_values_threshold): Declare function.
10083         * stmt.c (expand_case): Use case_values_threshold target hook.
10084         * expr.h (case_values_threshold): Remove declartation.
10085         * expr.c (case_values_threshold): Remove function.
10086         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
10087
10088         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
10089         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
10090         (avr_case_values_threshold): Declare as static.
10091         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
10092
10093         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
10094         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
10095         (mn10300_case_values_threshold): New function.
10096
10097 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
10098
10099         * ira.c (setup_cover_and_important_classes): Add enum cast.
10100
10101 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
10102
10103         * genpreds.c (write_enum_constraint_num): Output definition of
10104         CONSTRAINT_NUM_DEFINED_P macro.
10105         * ira.c (setup_cover_and_important_classes): Use
10106         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
10107         
10108 2009-04-24  DJ Delorie  <dj@redhat.com>
10109
10110         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
10111         __SH2A_SINGLE_ONLY__ also.
10112
10113 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
10114
10115         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
10116         (movdf_internal): Ditto.
10117         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
10118         SFmode and DFmode constants.
10119         (ia64_print_operand): Add 'G' format for printing
10120         floating point constants.
10121
10122 2009-04-24  Richard Guenther  <rguenther@suse.de>
10123
10124         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
10125         from unsigned additions.
10126
10127 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
10128
10129         * c-typeck.c (set_init_index): Allow array designators that are
10130         not integer constant expressions with a pedwarn if pedantic.
10131
10132 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
10133
10134         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
10135         zero if no overlap in nonzero bits between the operands.
10136
10137 2009-04-24  Ian Lance Taylor  <iant@google.com>
10138
10139         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
10140         (record_dead_and_set_regs): Likewise.
10141         * df.h (struct df_mw_hardreg): Change flags field to int.
10142         (struct df_base_ref): Likewise.
10143         (struct df): Change changeable_flags field to int.
10144         * df-scan.c (df_defs_record): Change clobber_flags to int.
10145         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
10146         constants rather than #define macros.
10147         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
10148         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
10149         (enum dwarf_calling_convention): Likewise.
10150         (enum dwarf_line_number_x_ops): Likewise.
10151         (enum dwarf_call_frame_info): Likewise.
10152         (enum dwarf_source_language): Likewise.
10153         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
10154         (add_calling_convention_attribute): Likewise.
10155         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
10156         (combine_comparisons): Change compcode to int.  Add cast to enum type.
10157         * genrecog.c (maybe_both_true_2): Change c to int.
10158         (write_switch): Likewise.  Add cast to enum type.
10159         * gimplify.c (gimplify_omp_for): Handle return values from
10160         gimplify_expr using MIN rather than bitwise or.
10161         (gimplify_expr): Add cast to enum type.
10162         * ipa-prop.c (update_jump_functions_after_inlining): Change
10163         IPA_BOTTOM to IPA_JF_UNKNOWN.
10164         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
10165         Add casts to enum type.
10166         (setup_cover_and_important_classes): Change cl to int.  Add casts
10167         to enum type.
10168         (setup_class_translate): Change cl and mode to int.
10169         (ira_init_once): Change mode to int.
10170         (free_register_move_costs): Likewise.
10171         (setup_prohibited_mode_move_regs): Add casts to enum type.
10172         * langhooks.c (add_builtin_function_common): Rework assertion that
10173         value fits bitfield.
10174         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
10175         * omega.c (omega_do_elimination): Avoid math on enum types.
10176         * optabs.c (expand_vec_shift_expr): Remove casts to int.
10177         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
10178         int local to handle integral_argment value.
10179         * regmove.c (try_auto_increment): Change PUT_MODE to
10180         PUT_REG_NOTE_KIND.
10181         * reload.c (push_secondary_reload): Add casts to enum type.
10182         (secondary_reload_class, find_valid_class): Likewise.
10183         * reload1.c (emit_input_reload_insns): Likewise.
10184         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
10185         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
10186         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
10187         constant.
10188         * tree.c (build_common_builtin_nodes): Add casts to enum type.
10189         * tree-complex.c (complex_lattice_t): Typedef to int rather than
10190         enum type.
10191         (expand_complex_libcall): Add casts to enum type.
10192         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
10193         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
10194         with ERROR_MARK, not NUM_TREE_CODES.
10195         (vect_create_epilog_for_reduction): Likewise.
10196         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
10197         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
10198         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
10199         enum machine_mode.
10200         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
10201         vect_unused_in_loop.  Change 0 to loop_vect.
10202         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
10203         * var-tracking.c (get_init_value): Change return type to enum
10204         var_init_status.
10205         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
10206         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
10207         arm_fp_model.
10208         (arm_override_options): Add casts to enum type.
10209         (arm_emit_tls_decoration): Likewise.
10210         * config/i386/i386.c (ix86_function_specific_restore): Add casts
10211         to enum type.
10212         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
10213         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
10214         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
10215         enum type.
10216         * config/s390/s390.c (code_for_builtin_64): Change to array of
10217         enum insn_code.
10218         (code_for_builtin_31): Likewise.
10219         (s390_expand_builtin): Change code_for_builtin to enum insn_code
10220         const *.
10221         * config/sparc/sparc.c (sparc_override_options): Change value
10222         field in struct code_model to enum cmodel.  In initializer change
10223         0 to NULL and add cast to enum type.
10224
10225         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
10226         Change all callers.  Issue a -Wc++-compat warning using
10227         lhs_origtype if necessary.
10228         (convert_for_assignment): Issue -Wc++-compat warnings about
10229         invalid conversions to enum type on assignment.
10230         * c-common.h (build_modify_expr): Update declaration.
10231
10232 2009-04-24  Nick Clifton  <nickc@redhat.com>
10233
10234         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
10235         (function_arg_advance): Likewise.
10236         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
10237         5th alternative.
10238
10239 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10240
10241         * config/s390/constraints.md ('I', 'J'): Fix condition.
10242
10243 2009-04-24  Diego Novillo  <dnovillo@google.com>
10244
10245         * gengtype-parse.c (parse_error): Add newline after message.
10246
10247 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
10248
10249         * config/i386/sse.md (avxmodesuffixs): Removed.
10250         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
10251         (*avx_pinsr<ssevecsize>): This.
10252
10253 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
10254
10255         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
10256         follow chains of regs with a single definition, and allow expressions
10257         that are function_invariant_p.
10258         (simple_rhs_p): Allow expressions that are function_invariant_p.
10259
10260 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
10261
10262         PR middle-end/39867
10263         * fold-const.c (fold_cond_expr_with_comparison): When folding
10264         > and >= to MAX, make sure the MAX uses the same type as the
10265         comparison's operands.
10266
10267 2009-04-24  Nick Clifton  <nickc@redhat.com>
10268
10269         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
10270         addressing for DImode accesses.
10271         (frv_print_operand_address): Handle PLUS case.
10272         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
10273
10274 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
10275
10276         PR rtl-optimization/39794
10277         * alias.c (canon_true_dependence): Add x_addr argument.
10278         * rtl.h (canon_true_dependence): Adjust prototype.
10279         * cse.c (check_dependence): Adjust canon_true_dependence callers.
10280         * cselib.c (cselib_invalidate_mem): Likewise.
10281         * gcse.c (compute_transp): Likewise.
10282         * dse.c (scan_reads_nospill): Likewise.
10283         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
10284         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
10285         canon_base_addr of the group, plus optional offset.
10286         (struct group_info): Rename canon_base_mem to
10287         canon_base_addr.
10288         (get_group_info): Set canon_base_addr to canon_rtx of base, not
10289         canon_rtx of base_mem.
10290
10291 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
10292
10293         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
10294         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
10295
10296 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10297
10298         * config/spu/spu-builtins.h: Delete file.
10299
10300         * config/spu/spu.h (enum spu_builtin_type): Move here from
10301         spu-builtins.h.
10302         (struct spu_builtin_description): Likewise.  Add GTY marker.
10303         Do not use enum spu_function_code or enum insn_code.
10304         (spu_builtins): Add extern declaration.
10305
10306         * config/spu/spu.c: Do not include "spu-builtins.h".
10307         (enum spu_function_code, enum spu_builtin_type_index,
10308         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
10309         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
10310         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
10311         unsigned_V2DI_type_node): Move here from spu-builtins.h.
10312         (spu_builtin_types): Make static.  Add GTY marker.
10313         (spu_builtins): Add extern declaration with GTY marker.
10314         Include "gt-spu.h".
10315
10316         * config/spu/spu-c.c: Do not include "spu-builtins.h".
10317         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
10318         Check programmatically whether all parameters are scalar.
10319
10320         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
10321
10322 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
10323
10324         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
10325         assignment from the constructor either if the target is volatile.
10326
10327 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
10328
10329         * config/arm/arm.md (insv): Do not share operands[0].
10330
10331 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
10332
10333         * config/vxlib-tls.c (active_tls_threads): Delete.
10334         (delete_hook_installed): New.
10335         (tls_delete_hook): Don't delete the delete hook.
10336         (tls_destructor): Delete it here.
10337         (__gthread_set_specific): Adjust installing the delete hook.
10338         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
10339         __gthread_leave_tsd_dtor_context.
10340
10341 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
10342
10343         * c-format.c (gcc_tdiag_char_table): Add support for %E.
10344
10345 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
10346
10347         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
10348         enum type.
10349         (alpha_rtx_costs): Ditto.
10350         (emit_unlikely_jump): Use add_reg_note.
10351         (emit_frame_store_1): Ditto.
10352         (alpha_expand_prologue): Ditto.
10353         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
10354         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
10355
10356 2009-04-23  Nick Clifton  <nickc@redhat.com>
10357
10358         * config/v850/v850.md (epilogue): Remove suppressed code.
10359         (return): Rename to return_simple and remove test of frame size.
10360         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
10361         to gen_return_simple.
10362
10363 2009-04-22  Jing Yu  <jingyu@google.com>
10364
10365         PR testsuite/39781
10366         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
10367
10368 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10369
10370         PR C/31499
10371         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
10372         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
10373         value is a VECTOR_CST, the element type is the element type of the
10374         vector.
10375
10376 2009-04-22  DJ Delorie  <dj@redhat.com>
10377
10378         * config/m32c/m32c.h: Update GTY annotations to new syntax.
10379
10380 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
10381
10382         * alias.c (find_base_term): Move around LO_SUM case, so that
10383         CONST falls through into PLUS/MINUS handling.
10384
10385         PR c/39855
10386         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
10387         into 0, use omit_one_operand.
10388
10389 2009-04-23  Ben Elliston  <bje@au.ibm.com>
10390
10391         * config/rs6000/linux-unwind.h (get_regs): Remove type
10392         puns. Change the type of `pc' to an array of unsigned ints and
10393         update all users.  Constify frame24.
10394
10395 2009-04-22  DJ Delorie  <dj@redhat.com>
10396
10397         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
10398         declarations before code.
10399         (current_function_special_page_vector): Likewise.
10400         (m32c_expand_insv): Silence a warning.
10401
10402 2009-04-21  Taras Glek  <tglek@mozilla.com>
10403
10404         * alias.c: Update GTY annotations to new syntax.
10405         * basic-block.h: Likewise.
10406         * bitmap.h: Likewise.
10407         * c-common.h: Likewise.
10408         * c-decl.c: Likewise.
10409         * c-parser.c: Likewise.
10410         * c-pragma.c: Likewise.
10411         * c-tree.h: Likewise.
10412         * cfgloop.h: Likewise.
10413         * cgraph.h: Likewise.
10414         * config/alpha/alpha.c: Likewise.
10415         * config/arm/arm.h: Likewise.
10416         * config/avr/avr.h: Likewise.
10417         * config/bfin/bfin.c: Likewise.
10418         * config/cris/cris.c: Likewise.
10419         * config/darwin.c: Likewise.
10420         * config/frv/frv.c: Likewise.
10421         * config/i386/i386.c: Likewise.
10422         * config/i386/i386.h: Likewise.
10423         * config/i386/winnt.c: Likewise.
10424         * config/ia64/ia64.h: Likewise.
10425         * config/iq2000/iq2000.c: Likewise.
10426         * config/mips/mips.c: Likewise.
10427         * config/mmix/mmix.h: Likewise.
10428         * config/pa/pa.c: Likewise.
10429         * config/pa/pa.h: Likewise.
10430         * config/rs6000/rs6000.c: Likewise.
10431         * config/s390/s390.c: Likewise.
10432         * config/sparc/sparc.c: Likewise.
10433         * config/xtensa/xtensa.c: Likewise.
10434         * cselib.h: Likewise.
10435         * dbxout.c: Likewise.
10436         * dwarf2out.c: Likewise.
10437         * except.c: Likewise.
10438         * except.h: Likewise.
10439         * fixed-value.h: Likewise.
10440         * function.c: Likewise.
10441         * function.h: Likewise.
10442         * gimple.h: Likewise.
10443         * integrate.c: Likewise.
10444         * optabs.c: Likewise.
10445         * output.h: Likewise.
10446         * real.h: Likewise.
10447         * rtl.h: Likewise.
10448         * stringpool.c: Likewise.
10449         * tree-data-ref.c: Likewise.
10450         * tree-flow.h: Likewise.
10451         * tree-scalar-evolution.c: Likewise.
10452         * tree-ssa-address.c: Likewise.
10453         * tree-ssa-alias.h: Likewise.
10454         * tree-ssa-operands.h: Likewise.
10455         * tree.c: Likewise.
10456         * tree.h: Likewise.
10457         * varasm.c: Likewise.
10458         * varray.h: Likewise.
10459         * vec.h: Likewise.
10460         * coretypes.h: Do not define GTY macro if it is already defined.
10461         * doc/gty.texi: Update GTY documentation to new syntax.
10462         * gengtype-lex.l: Enforce attribute-like syntax for GTY
10463         annotations on structs.
10464         * gengtype-parse.c: Likewise.
10465
10466 2009-04-22  Mark Heffernan  <meheff@google.com>
10467
10468         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
10469
10470 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
10471
10472         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
10473         where appropriate.
10474
10475 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
10476
10477         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
10478         the same as a PLUS without a shift.  Increase the cost of a
10479         CONST_INT in MULT.
10480
10481 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10482
10483         * Makefile.in: Update dependencies.
10484         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
10485         * errors.h: Remove bogus comment about compatibility.
10486         (warning): Update declaration.
10487         * genautomata.c: Update all calls to warning.
10488         * gimple.c: Do not include errors.h. Include toplev.h.
10489         * tree-ssa-structalias.c: Do not include errors.h.
10490         * omega.c: Likewise.
10491         * tree-ssa-reassoc.c: Likewise.
10492         * config/spu/spu-c.c: Likewise.
10493         * config/spu/t-spu-elf: Update dependencies.
10494
10495 2009-04-22  Richard Guenther  <rguenther@suse.de>
10496
10497         PR tree-optimization/39824
10498         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
10499         make sure the types are compatible.
10500
10501 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10502
10503         PR c++/14875
10504         * c-common.c (c_parse_error): Take a token_flags parameter.
10505         Use token_type for the token type instead.
10506         Pass token_flags to cpp_type2name.
10507         * c-common.h (c_parse_error): Update declaration.
10508         * c-parser.c (c_parser_error): Pass 0 as token flags.
10509
10510 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
10511
10512         PR rtl-optimization/39580
10513         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
10514         
10515 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10516
10517         * function.c (expand_function_end): Do not emit a jump to the "naked"
10518         return label for fall-through returns.
10519         * except.c (sjlj_emit_function_exit): Always place the call to the
10520         unregister function at the location installed by expand_function_end.
10521
10522 2009-04-22  Richard Guenther  <rguenther@suse.de>
10523
10524         PR tree-optimization/39845
10525         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
10526         (gen_inbound_check): Likewise.
10527
10528 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
10529
10530         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
10531         padding for PPC.
10532         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
10533         * config/vxlib.c (__gthread_once): Add race guard for PPC.
10534
10535 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
10536
10537         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
10538         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
10539         shift counts to avoid out-of-bounds array accesses.
10540
10541 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
10542
10543         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
10544         (Pmode): Move above.
10545
10546 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
10547
10548         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
10549         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
10550         GET_CODE macro.  Use IN_RANGE macro where appropriate.
10551         * config/alpha/alpha.h: Ditto.
10552         * config/alpha/alpha.md: Ditto.
10553         * config/alpha/constraints.md: Ditto.
10554         * config/alpha/predicates.md: Ditto.
10555         
10556 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
10557
10558         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
10559         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10560         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10561         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10562         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10563         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10564         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10565         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10566         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10567         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10568         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10569         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10570         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10571         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10572         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10573         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10574         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10575         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10576         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10577         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10578         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10579         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10580         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10581         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10582         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10583         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10584         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10585
10586 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10587
10588         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
10589         references from comments.
10590         * cfgbuild.c: (count_basic_blocks): Delete.
10591         (find_basic_blocks_1): Delete.
10592         (find_basic_blocks): Delete.
10593         * except.c (finish_eh_generation): Make static.  Move comment from
10594         except.h here.  Remove find_basic_blocks references from comments.
10595         * except.h (finish_eh_generation): Delete.
10596         * basic-block.h (find_basic_blocks): Delete.
10597         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
10598
10599 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
10600
10601         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
10602         (sdbout_parms):  Likewise.
10603
10604 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
10605
10606         * config/sh/sh.c (prepare_cbranch_operands): Use
10607         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
10608         (expand_cbranchdi4): Likewise.
10609         (from_compare): Add cast to enum type.
10610         (expand_cbranchsi4): Use add_reg_note.
10611         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
10612         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
10613         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
10614         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
10615         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
10616         instead of CODE_FOR_nothing.
10617         (cbranchdi4): Likewise.  Fix the order of arguments for
10618         gen_rtx_fmt_ee.
10619         (push_fpscr): Use add_reg_note.
10620         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
10621         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
10622         
10623 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
10624
10625         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
10626         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
10627         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
10628         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
10629         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
10630         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
10631         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
10632         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
10633         config/alpha/x-vms, config/arc/t-arc,
10634         config/arm/README-interworking, config/arm/arm-c.c,
10635         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
10636         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
10637         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
10638         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
10639         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
10640         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
10641         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
10642         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
10643         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
10644         config/cris/t-elfmulti, config/crx/t-crx,
10645         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
10646         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
10647         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
10648         config/h8300/t-h8300, config/i386/athlon.md,
10649         config/i386/darwin-libgcc.10.4.ver,
10650         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
10651         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
10652         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
10653         config/i386/t-linux64, config/i386/t-nwld,
10654         config/i386/t-rtems-i386, config/i386/t-sol2-10,
10655         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
10656         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
10657         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
10658         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
10659         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
10660         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
10661         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
10662         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
10663         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
10664         config/m68k/t-uclinux, config/mcore/t-mcore,
10665         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
10666         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
10667         config/mips/crtn.asm, config/mips/irix-crti.asm,
10668         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
10669         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
10670         config/mips/mips-fixed.md, config/mips/sb1.md,
10671         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
10672         config/mips/t-iris6, config/mips/t-isa3264,
10673         config/mips/t-libgcc-mips16, config/mips/t-linux64,
10674         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
10675         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
10676         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
10677         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
10678         config/mn10300/t-linux, config/mn10300/t-mn10300,
10679         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
10680         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
10681         config/picochip/libgccExtras/clzsi2.asm,
10682         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
10683         config/rs6000/darwin-libgcc.10.4.ver,
10684         config/rs6000/darwin-libgcc.10.5.ver,
10685         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
10686         config/rs6000/t-aix43, config/rs6000/t-aix52,
10687         config/rs6000/t-darwin, config/rs6000/t-fprules,
10688         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
10689         config/rs6000/t-lynx, config/rs6000/t-netbsd,
10690         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
10691         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
10692         config/rs6000/t-rtems, config/rs6000/t-spe,
10693         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
10694         config/score/t-score-elf, config/sh/divcost-analysis,
10695         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
10696         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
10697         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
10698         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
10699         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
10700         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
10701         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
10702         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
10703         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
10704         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
10705         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
10706         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
10707         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
10708         limitx.h, version.c, xcoff.h: Add copyright and license notices.
10709         * config/h8300/genmova.sh: Include copyright and license notices
10710         in generated output.
10711         * config/h8300/mova.md: Regenerate.
10712         * doc/install.texi2html: Include word "Copyright" in copyright
10713         notice and use name "Free Software Foundation, Inc.".
10714         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
10715         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
10716         ChangeLog-2007, ChangeLog-2008: Correct dates.
10717
10718 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
10719
10720         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
10721         NE_EXPR operations as well.
10722         * c-parser.c (c_parser_condition): Do not set location information on
10723         the condition.
10724         (c_parser_conditional_expression): Likewise.
10725         (c_parser_binary_expression): Set location information on operators.
10726         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
10727         TRUTH_NOT_EXPR has been folded.
10728         * fold-const.c (fold_truth_not_expr): Copy location information from
10729         the incoming expression to the outgoing one.
10730         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
10731         recursive calls on the LHS of the operator but pass that of the
10732         operator to recursive calls on the RHS of the operator.  Set it
10733         on the COND_EXPR.
10734         (shortcut_cond_expr): Set the locus of the operator on the second
10735         COND_EXPR and that of the expression on the first in degenerate cases.
10736         Pass the locus of the expression to calls to shortcut_cond_r.
10737         Set the locus of the 'then' block on the associated jump, if any.
10738         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
10739         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
10740         expression to call to gimplify_boolean_expr.
10741
10742 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
10743
10744         * config.gcc: Add additional configuration for
10745         i686-w64-mingw* and x86_64-w64-mingw* triplet.
10746         * config/i386/mingw-w64.h: New mingw-w64 specific header.
10747         (CPP_SPEC): Redefine for allowing -municode option.
10748         (STARTFILE_SPEC): Likewise.
10749         * config/i386/t-mingw-w64: New.
10750         * config/i386/mingw-w64.opt: New.
10751         (municode): Add new target option.
10752         * doc/invoke.texi (municode): Add documentation for new option.
10753
10754 2009-04-21  Ian Lance Taylor  <iant@google.com>
10755
10756         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10757         Correct test for number of arguments.
10758         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
10759
10760 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
10761
10762         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
10763         argument of emit_library_call.
10764
10765 2009-04-21  Richard Guenther  <rguenther@suse.de>
10766
10767         PR middle-end/39829
10768         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
10769         inside VIEW_CONVERT_EXPRs.
10770
10771 2009-04-21  Martin Jambor  <mjambor@suse.cz>
10772
10773         * tree-switch-conversion.c (build_constructors): Split a long line.
10774         (constructor_contains_same_values_p): New function.
10775         (build_one_array): Create assigns of constants if possible, do not
10776         call mark_sym_for_renaming, call update_stmt.
10777         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
10778         make_rename_temp.  Do not call mark_symbols_for_renaming, call
10779         update_stmt.
10780         (gen_def_assigns): Do not call mark_symbols_for_renaming or
10781         find_new_referenced_vars, call update_stmt.
10782         (gen_inbound_check): Use create_tmp_var and create ssa names manually
10783         instead of calling make_rename_temp.  Do not call
10784         find_new_referenced_vars or mark_symbols_for_renaming, call
10785         update_stmt.
10786
10787 2009-04-21  Richard Guenther  <rguenther@suse.de>
10788
10789         PR tree-optimization/39827
10790         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
10791         (tree_ssa_phiprop): Pass the correct array size.
10792
10793 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
10794
10795         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
10796
10797 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10798
10799         PR 16202
10800         * c-typeck.c (lvalue_p): Move declaration ...
10801         * c-common.h (lvalue_p): ... to here.
10802         * c-common.c (candidate_equal_p): New.
10803         (add_tlist): Use it.
10804         (merge_tlist): Use it.
10805         (warn_for_collisions_1): Likewise.
10806         (warning_candidate_p): Accept more candidates.
10807         (verify_tree): A warning candidate can be an expression. Use
10808         candidate_equal_p.
10809
10810 2009-04-21  Ben Elliston  <bje@au.ibm.com>
10811
10812         PR target/5267
10813         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
10814         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
10815         options.  Remove -mcall-solaris documentation.
10816
10817 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10818
10819         PR c++/13358
10820         * doc/invoke.texi (-Wlong-long): Update description.
10821         * c-lex (interpret_integer): Only warn if there was no previous
10822         overflow and -Wlong-long is enabled.
10823         * c-decl.c (declspecs_add_type): Drop redundant flags.
10824         * c.opt (Wlong-long): Init to -1.
10825         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
10826         and front-end warn_long_long. Wlong-long only depends on other
10827         flags if it is uninitialized.
10828         * c-parser.c (disable_extension_diagnostics): warn_long_long is
10829         the same for CPP and FE.
10830         (restore_extension_diagnostics): Likewise.
10831
10832 2009-04-20  Ian Lance Taylor  <iant@google.com>
10833
10834         Fix enum conversions which are invalid in C++:
10835         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
10836         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
10837         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
10838         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
10839         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
10840         (dbxout_parms): Likewise.
10841         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
10842         (df_clear_flags): Likewise.
10843         * df-problems.c (df_rd_bb_local_compute_process_def): Change
10844         top_flag parameter to int.
10845         (df_chain_create_bb_process_use): Likewise.
10846         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
10847         Remove cast.
10848         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
10849         (df_ref_create_structure, df_def_record_1): Likewise.
10850         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
10851         (df_notes_rescan): Change 0 to VOIDmode in function call.
10852         (df_get_call_refs, df_insn_refs_collect): Likewise.
10853         (df_bb_regs_collect): Likewise.
10854         (df_entry_block_defs_collect): Likewise.
10855         (df_exit_block_uses_collect): Likewise.
10856         * df.h: Update declarations.
10857         * double-int.c (double_int_divmod): Add cast to enum type.
10858         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
10859         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
10860         (based_loc_descr): Likewise.
10861         (loc_descriptor_from_tree_1): Change first_op and second_op to
10862         enum dwarf_location_atom.  Add cast to enum type.
10863         * expmed.c (init_expmed): Change 0 to SET in function call.
10864         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
10865         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
10866         (do_store_flag): Likewise.
10867         * fixed-value.h (struct fixed_value): Change mode to enum
10868         machine_mode.
10869         * function.c (assign_parms): Change 0 to VOIDmode in function call.
10870         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
10871         function call.
10872         (insert_insn_decl, insert_decl, insert_state): Likewise.
10873         (automata_list_finish): Likewise.
10874         * genrecog.c (process_define_predicate): Add cast to enum type.
10875         * gensupport.c (init_predicate_table): Add cast to enum type.
10876         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
10877         function call.
10878         (gimple_build_call_1, gimple_build_label): Likewise.
10879         (gimple_build_goto, gimple_build_asm_1): Likewise.
10880         (gimple_build_switch_1, gimple_build_cdt): Likewise.
10881         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
10882         (enum fallback): Rename from enum fallback_t.
10883         (fallback_t): Typedef as int.
10884         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
10885         GSI_SAME_STMT in function call.
10886         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
10887         enum type.
10888         (setup_reg_class_relations): Likewise.
10889         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
10890         (setup_prohibited_class_mode_regs): Add cast to enum type.
10891         (setup_prohibited_mode_move_regs): Likewise.
10892         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
10893         (record_address_regs): Change i to enum reg_class.
10894         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
10895         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
10896         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
10897         (GET_MODE_2XWIDER_MODE): Likewise.
10898         (GET_CLASS_NARROWEST_MODE): Likewise.
10899         * omp-low.c (expand_omp_for): Add cast to enum type.
10900         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
10901         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
10902         * postreload.c (reload_cse_simplify_operands): Change rclass local
10903         to enum reg_class.
10904         * predict.c (combine_predictions_for_insn): Change best_predictor
10905         and predictor to enum br_predictor.
10906         (combine_predictions_for_bb): Likewise.
10907         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
10908         use SET_PREDICT_EXPR_OUTCOME.
10909         * real.c (real_arithmetic): Change icode to code in function call.
10910         * reginfo.c (init_move_cost): Add casts to enum type.
10911         (init_reg_sets_1, init_fake_stack_mems): Likewise.
10912         * regmove.c (regclass_compatible_p): Change class0 and class1 to
10913         enum reg_class.
10914         * reload.c (find_valid_class): Add casts to enum type.
10915         (push_reload): Change 0 to NO_REGS in function call.
10916         (find_reloads): Change this_alternative to array of enum
10917         reg_class.  Remove some now-unnecessary casts.
10918         (make_memloc): Change 0 to VOIDmode in function call.
10919         * reload1.c (reload): Change 0 to VOIDmode in function call.
10920         (eliminate_regs_1, elimination_effects): Likewise.
10921         (eliminate_regs_in_insn): Likewise.
10922         (emit_input_reload_insns): Add cast to enum type.
10923         (delete_output_reload): Change 0 to VOIDmode in function call.
10924         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
10925         to enum type in function call.
10926         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
10927         (SET_PREDICT_EXPR_OUTCOME): Define.
10928         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
10929         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
10930         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
10931         (dump_function): Likewise.
10932         * tree-dump.h: Update declarations.
10933         * tree-pass.h: Update declarations.
10934         * varasm.c (assemble_integer): Change mclass to enum mode_class.
10935         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
10936         enum type.
10937         (arm_rtx_costs_1): Correct parenthesization.
10938         (arm_rtx_costs): Add casts to enum type.
10939         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
10940         (vfp_emit_fstmd): Use add_rg_note.
10941         (emit_multi_reg_push, emit_sfm): Likewise.
10942         (thumb_set_frame_pointer): Likewise.
10943         (arm_expand_prologue): Likewise.
10944         (arm_regno_class): Change return type to enum reg_class.
10945         (thumb1_expand_prologue): Use add_reg_note.
10946         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
10947         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
10948         in function call.
10949         * config/arm/gentune.sh: Add cast to enum type.
10950         * config/arm/arm-tune.md: Rebuild.
10951         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
10952         (ix86_split_fp_branch, predict_jump): Likewise.
10953         (ix86_expand_multi_arg_builtin): Change sub_code from enum
10954         insn_code to enum rtx_code.
10955         (ix86_builtin_vectorized_function): Add cast to enum type.
10956         * config/i386/i386.md (truncdfsf2): Change slot to enum
10957         ix86_stack_slot.
10958         (truncxf<mode>2, isinf<mode>2): Likewise.
10959         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
10960         enum type.
10961         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
10962         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
10963         (insert_bundle_state): Change 1 to INSERT in function call.
10964         (ia64_add_bundle_selector_before): Likewise.
10965         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
10966         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
10967         (restore_stack_nonlocal): Likewise.
10968         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
10969         function call.
10970         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
10971         function call.
10972         (mips_rtx_costs): Likewise.
10973         (mips_override_options): Add casts to enum type.
10974         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
10975         in function call.
10976         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
10977         (store_reg, set_reg_plus_d): Likewise.
10978         (hppa_expand_prologue, hppa_profile_hook): Likewise.
10979         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
10980         cast to enum type.
10981         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
10982         function call.
10983         (emit_unlikely_jump): Use add_reg_note.
10984         (rs6000_emit_allocate_stack): Likewise.
10985         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
10986         (output_toc): Change 1 to INSERT in function call.
10987         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
10988         (rs6000_initialize_trampoline): Likewise.
10989         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
10990         function call.
10991         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
10992         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
10993         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
10994         (save_gprs): Use add_reg_note.
10995         (s390_emit_prologue): Likewise.
10996         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
10997         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
10998         (sparc_fold_builtin): Add cast to enum type.
10999         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
11000         enum insn_code.
11001         (spu_expand_prologue): Use add_reg_note.
11002         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
11003
11004 2009-04-20  Ian Lance Taylor  <iant@google.com>
11005
11006         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
11007         (c_parser_postfix_expression_after_primary): Get VEC for list of
11008         arguments.  Get original types of arguments.  Call
11009         build_function_call_vec.
11010         (cached_expr_list_1, cached_expr_list_2): New static variables.
11011         (c_parser_expr_list): Change return type to VEC *.  Add
11012         p_orig_types parameter.  Change all callers.
11013         (c_parser_release_expr): New static function.
11014         (c_parser_vec_to_tree_list): New static function.
11015         * c-typeck.c (build_function_call): Rewrite to build a VEC and
11016         call build_function_call_vec.
11017         (build_function_call_vec): New function, based on old
11018         build_function_call.
11019         (convert_arguments): Remove nargs and argarray parameters.  Change
11020         values to a VEC.  Add origtypes parameter.
11021         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
11022         (convert_for_assignment): Add origtype parameter.  Change all
11023         callers.  If warn_cxx_compat, check for conversion to an enum
11024         type when calling a function.
11025         (store_init_value): Add origtype parameter.  Change all callers.
11026         (digest_init): Likewise.
11027         (struct init_node): Add origtype field.
11028         (add_pending_init): Add origtype parameter.  Change all callers.
11029         (output_init_element): Likewise.
11030         (output_pending_init_elements): Pass origtype from init_node to
11031         output_init_element.
11032         (process_init_element): Pass origtype from c_expr to
11033         output_init_element.
11034         (c_finish_return): Add origtype parameter.  Change all callers.
11035         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
11036         caller.
11037         (sync_resolve_params): Likewise.
11038         (sync_resolve_return): Change params to first_param.  Change caller.
11039         (resolve_overloaded_builtins): Change params to VEC *.  Change
11040         callers.  Save first parameter around call to build_function_call_vec.
11041         * c-decl.c (finish_decl): Add origtype parameter.  Change all
11042         callers.  Call build_function_call_vec rather than
11043         build_function_call for cleanup.
11044         * c-tree.h: Update declarations.
11045         * c-common.h: Update declarations.
11046         * stub-objc.c (objc_rewrite_function_call): Change parameter from
11047         params to first_param.
11048         * target.h (struct gcc_target): Change resolve_overloaded_builtin
11049         params parameter from tree to void *.
11050         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11051         Change arglist parameter to have type void *, and to be a pointer
11052         to a VEC.
11053         * config/rs6000/rs6000-protos.h
11054         (altivec_resolve_overloaded_builtin): Update declaration.
11055         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
11056         fnargs parameter to have type void *, and to be a pointer to a
11057         VEC.  Call build_function_call_vec instead of
11058         build_function_call.
11059         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
11060
11061 2009-04-20  Joey Ye  <joey.ye@intel.com>
11062             Xuepeng Guo  <xuepeng.guo@intel.com>
11063             H.J. Lu  <hongjiu.lu@intel.com>
11064
11065         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
11066
11067         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
11068         (IX86_LEA_PRIORITY): Likewise.
11069         (distance_non_agu_define): New function.
11070         (distance_agu_use): Likewise.
11071         (ix86_lea_for_add_ok): Likewise.
11072         (ix86_dep_by_shift_count): Likewise.
11073
11074         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
11075         should split for LEA.
11076
11077         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
11078         function.
11079         (ix86_dep_by_shift_count): Likewise.
11080
11081 2009-04-20  Richard Guenther  <rguenther@suse.de>
11082
11083         * expr.c (handled_component_p): Move ...
11084         * tree.h (handled_component_p): ... here.
11085         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
11086         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
11087         and REALPART_EXPR to be in one group.
11088
11089 2009-04-20  Richard Guenther  <rguenther@suse.de>
11090
11091         * basic-block.h (get_all_dominated_blocks): Declare.
11092         * dominance.c (get_all_dominated_blocks): New function.
11093         * tree-cfg.c (get_all_dominated_blocks): Remove.
11094         (remove_edge_and_dominated_blocks): Adjust.
11095         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
11096         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
11097         instead of recursing.
11098
11099 2009-04-20  Doug Kwan  <dougkwan@google.com>
11100
11101         * cgraph.h (cgraph_node_ptr): New type for vector functions.
11102         (struct cgraph_node_set_def): New type.
11103         (cgraph_node_set) New type. Also declare vector functions.
11104         (struct cgraph_node_set_element_def): New type.
11105         (cgraph_node_set_element): Ditto.
11106         (cgraph_node_set_iterator): New iterator type.
11107         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
11108         cgraph_node_set_remove, dump_cgraph_node_set,
11109         debug_cgraph_node_set): New prototypes.
11110         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
11111         cgraph_node_set_size): New inlines.
11112         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
11113         including cgraph.h.
11114         (struct ipa_opt_pass): Add struct cgraph_node_set_def
11115         argument to function 'write_summary'.
11116         * ipa.c: Include ggc.h.
11117         (hash_cgraph_node_set_element,
11118         eq_cgraph_node_set_element, cgraph_node_set_new,
11119         cgraph_node_set_add, cgraph_node_set_remove,
11120         cgraph_node_set_find, dump_cgraph_node_set,
11121         debug_cgraph_node_set): New functions.
11122         * Makefile.in (ipa.o): Add dependency on GGC_H.
11123
11124 2009-04-20  Ira Rosen  <irar@il.ibm.com>
11125
11126         PR tree-optimization/39675
11127         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
11128         check of the return code of vect_schedule_slp. Check that
11129         stmt_vec_info still exists for the statement, before checking its
11130         vectorization type.
11131
11132 2009-04-20  Michael Matz  <matz@suse.de>
11133
11134         * Makefile.in (generated_files): Take out $(simple_generated_c).
11135
11136 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
11137
11138         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
11139         (UINTPTR_TYPE):  Likewise.
11140
11141 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
11142
11143         PR c/37481
11144         * c-typeck.c (digest_init): Check for initializing an array with a
11145         string literal.
11146
11147 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
11148
11149         PR c/19771
11150         * c-semantics.c (pop_stmt_list): Propagate
11151         STATEMENT_LIST_HAS_LABEL to parent statement list.
11152
11153 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
11154
11155         * config/mips/mips.h (mips_tune_attr): New macro.
11156         * config/mips/mips.md (cpu): Use it.
11157
11158 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
11159
11160         PR c/38243
11161         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
11162         declaring a tag.
11163
11164 2009-04-19  Diego Novillo  <dnovillo@google.com>
11165
11166         * toplev.c (compile_file): Move call to coverage_finish ...
11167         * cgraphunit.c (ipa_passes): ... here.
11168         Call cgraph_process_new_functions.
11169         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
11170         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
11171
11172 2009-04-19  Jan Hubicka  <jh@suse.cz>
11173
11174         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
11175         cfun.
11176         (dump_cgraph_node): Dump can throw external flag.
11177         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
11178
11179 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11180
11181         PR c/32061
11182         PR c++/36954
11183         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
11184         * common.opt (Wlogical-op): Move from here...
11185         * c.opt (Wlogical-op): ... to here.
11186         * c-typeck.c (parser_build_binary_op): Update call to
11187         warn_logical_operator.
11188         * c-opts.c (c_common_post_options): Enable warn_logical_op with
11189         extra_warnings.
11190         * c-common.c (warn_logical_op): Update.
11191         * c-common.h (warn_logical_op): Update declaration.
11192
11193 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
11194
11195         * tree.c (protected_set_expr_location): Fix formatting.
11196
11197 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
11198
11199         PR c/27676
11200         * c-typeck.c (readonly_warning): new.
11201         (build_unary_op, build_modify_expr): Use readonly_warning for
11202         storing into something readonly but not const-qualified.
11203
11204 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
11205
11206         PR c/22367
11207         * c-typeck.c (build_unary_op): Check for taking address of
11208         expression of type void.
11209
11210 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
11211
11212         PR c/35210
11213         * c-typeck.c (build_function_call): Check for calling a function
11214         with qualified void return types.  Call require_complete_type when
11215         generating a trap.
11216
11217 2009-04-18  Jan Hubicka  <jh@suse.cz>
11218
11219         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
11220         Set nothrow flag.
11221         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
11222         can_throw_external flag.
11223         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
11224         * ipa-pure-const.c (ignore_edge): New function.
11225         (propagate): Compute order for NOTHROW computation; set NOTHROWs
11226         only over can_throw_external edges.
11227         (local_pure_const): Add nothrow flag.
11228         * ipa-utils.c (searchc): Add ignore_edge callback.
11229         (ipa_utils_reduced_inorder): Add ignore_edge callback.
11230         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
11231         (set_nothrow_function_flags): Update cgraph.
11232         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
11233
11234 2009-04-18  Richard Guenther  <rguenther@suse.de>
11235
11236         PR middle-end/39804
11237         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
11238         (fold_stmt): ... this and ...
11239         (fold_stmt_inplace): ... this.
11240         (fold_stmt_1): Fold references in calls and asms.
11241         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
11242
11243 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11244
11245         * tree-vrp.c (ssa_name_nonzero_p): Remove.
11246         * tree.h: Remove the prototype for ssa_name_nonzero_p.
11247
11248 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11249
11250         * tree.c (function_args_count): Remove.
11251         * tree.h: Remove the prototype for function_args_count.
11252
11253 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11254
11255         * tree-iterator.c (expr_only): Remove.
11256         * tree.h: Remove the prototype for expr_only.
11257
11258 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11259
11260         * reginfo.c (cannot_change_mode_set_regs): Remove.
11261         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
11262
11263 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
11264
11265         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
11266         whether operands 0 and 1 overlaps.
11267
11268 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11269
11270         PR middle-end/36902
11271         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
11272         pointer. Use warning_at instead of warning.
11273         (search_for_addr_array): Likewise.
11274         (check_array_bounds): Likewise.
11275         (check_all_array_refs): Check that the incoming edge is not in the
11276         list of edges to be removed.
11277         (check_all_array_refs): Avoid the temporal pointer.
11278         (vrp_visit_cond_stmt): Fix typo.
11279         (simplify_switch_using_ranges): Handle the case where the switch
11280         index is an integer constant.
11281
11282 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
11283
11284         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
11285
11286 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11287
11288         * doc/extend.texi, doc/invoke.texi: Fix typos.
11289
11290 2009-04-17  Cary Coutant  <ccoutant@google.com>
11291
11292         * tree-flow-inline.h (get_lineno): Fix inverted test.
11293
11294 2009-04-17  Diego Novillo  <dnovillo@google.com>
11295
11296         * tree-ssa-pre.c (create_expression_by_pieces): Remove
11297         assertion for AVAIL_OUT.
11298
11299 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
11300
11301         PR target/38627
11302         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
11303         * config/sh/linux-atomic.asm: Likewise.
11304
11305 2009-04-17  Diego Novillo  <dnovillo@google.com>
11306
11307         * except.c (debug_eh_tree): New.
11308         (struct eh_region, struct eh_status): Move ...
11309         * except.h: ... here.
11310         (add_type_for_runtime): Declare extern.
11311         (lookup_type_for_runtime): Likewise.
11312         (debug_eh_tree): Declare.
11313         * Makefile.in (GTFILES): List except.h before except.c
11314
11315 2009-04-17  Diego Novillo  <dnovillo@google.com>
11316
11317         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
11318         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
11319         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
11320         (find_vars_r): ... here.
11321         * tree-flow.h (find_referenced_vars_in): Declare.
11322         * tree-ssa-pre.c (create_expression_by_pieces): Assert
11323         that AVAIL_OUT exists for BLOCK.
11324         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
11325         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
11326         (tree-parloops.o): Likewise.
11327
11328 2009-04-17  Simon Baldwin  <simonb@google.com>
11329
11330         * toplev.c (default_tree_printer): Add handling for %E format.
11331
11332 2009-04-17  Diego Novillo  <dnovillo@google.com>
11333
11334         * tree-pretty-print.c (dump_generic_node): Add break after
11335         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
11336         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
11337         FUNCTION_TYPE together.  Call print_struct_decl when printing
11338         structures and TDF_SLIM is not given.
11339         (print_struct_decl): Fix logic for detecting recursion.
11340
11341 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
11342
11343         PR 31567
11344         * gcc.c (create_at_file): New.
11345         (compile_input_file_p): New.
11346         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
11347         * main.c (main): Update call to toplev_main.
11348         * toplev.c (toplev_main): Change signature. Call expandargv.
11349         * toplev.h (toplev_main): Change signature.
11350
11351 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
11352
11353         * dwarf2out.c (field_byte_offset): Use the type size as the field size
11354         if the latter is not constant.
11355
11356 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
11357
11358         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
11359
11360 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
11361
11362         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
11363         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
11364
11365 2009-04-17  Richard Guenther  <rguenther@suse.de>
11366
11367         * tree-ssa-structalias.c (get_constraint_for_component_ref):
11368         Handle component references view-converting an invariant address.
11369
11370 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
11371
11372         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
11373         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
11374         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
11375         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
11376         Use @deftypevr rather than @deftypevar.
11377
11378 2009-04-17  Richard Guenther  <rguenther@suse.de>
11379
11380         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
11381         (get_prop_source_stmt): Likewise.
11382         (can_propagate_from): Likewise.
11383
11384 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
11385
11386         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
11387         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
11388         (--with-multilib-list): Add default value.
11389         * configure: Regenerate.
11390         * Makefile.in (TM_ENDIAN_CONFIG): Define.
11391         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
11392         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
11393         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
11394         Don't add default cpu to multilib list unnecessarily, but do enable
11395         the relevant compiler option..
11396         Add support for --with-multilib-list=<blank> and
11397         --with-multilib-list=!<somelib> to supress unwanted multilibs.
11398         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
11399         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
11400         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
11401         TM_MULTILIB_CONFIG.
11402         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
11403         (MULTILIB_OSDIRNAMES): New variable.
11404         * config/sh/t-1e: Delete file.
11405         * config/sh/t-mlib-sh1: Delete file.
11406         * config/sh/t-mlib-sh2: Delete file.
11407         * config/sh/t-mlib-sh2a: Delete file.
11408         * config/sh/t-mlib-sh2a-nofpu: Delete file.
11409         * config/sh/t-mlib-sh2a-single: Delete file.
11410         * config/sh/t-mlib-sh2a-single-only: Delete file.
11411         * config/sh/t-mlib-sh2e: Delete file.
11412         * config/sh/t-mlib-sh3e: Delete file.
11413         * config/sh/t-mlib-sh4: Delete file.
11414         * config/sh/t-mlib-sh4-nofpu: Delete file.
11415         * config/sh/t-mlib-sh4-single: Delete file.
11416         * config/sh/t-mlib-sh4-single-only: Delete file.
11417         * config/sh/t-mlib-sh4a: Delete file.
11418         * config/sh/t-mlib-sh4a-nofpu: Delete file.
11419         * config/sh/t-mlib-sh4a-single: Delete file.
11420         * config/sh/t-mlib-sh4a-single-only: Delete file.
11421         * config/sh/t-mlib-sh4al: Delete file.
11422         * config/sh/t-mlib-sh5-32media: Delete file.
11423         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
11424         * config/sh/t-mlib-sh5-64media: Delete file.
11425         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
11426         * config/sh/t-mlib-sh5-compact: Delete file.
11427         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
11428         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
11429         * doc/install.texi (Options specification): Add
11430         --with-multilib-list and --with-endian.
11431
11432 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
11433
11434         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
11435         REVISION_c.
11436         (OBJS-common): Add plugin-version.o.
11437         (plugin-version.o): New.
11438         * gcc-plugin.h (plugin_gcc_version): New.
11439         (plugin_default_version_check): New.
11440         (plugin_init_func, plugin_init): Add version argument.
11441         * plugin-version.c: New.
11442         * plugin.c (str_plugin_gcc_version_name): New.
11443         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
11444         pass it to the init function.
11445         (plugin_default_version_check): New.
11446
11447 2009-04-17  Richard Guenther  <rguenther@suse.de>
11448
11449         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
11450         for decl-vs-decl disambiguation.
11451
11452 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11453
11454         * config/s390/s390.h (s390_tune_attr): New macro definition.
11455         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
11456
11457 2009-04-17  Richard Guenther  <rguenther@suse.de>
11458
11459         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
11460         (fold_stmt_r): Likewise.
11461         (maybe_fold_reference): New function.
11462         (fold_gimple_assign): Handle cases fold_stmt_r did.
11463         (fold_stmt): Do not use fold_stmt_r.
11464         (fold_stmt_inplace): Likewise.
11465
11466 2009-04-17  Richard Guenther  <rguenther@suse.de>
11467
11468         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
11469         (record_equivalences_from_stmt): Remove useless checks and
11470         simplifications.
11471         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
11472         the type is already suitable.
11473
11474 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
11475
11476         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
11477
11478 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
11479
11480         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
11481         (CMPtype): Define as __gcc_CMPtype.
11482
11483 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
11484
11485         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
11486         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
11487
11488 2009-04-17  Richard Guenther  <rguenther@suse.de>
11489
11490         PR tree-optimization/39746
11491         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
11492         special-casing for builtins and static variable use/def.
11493         (call_may_clobber_ref_p_1): Likewise.
11494
11495 2009-04-16  Ian Lance Taylor  <iant@google.com>
11496
11497         * df.h: Include "timevar.h".
11498         (struct df_problem): Change tv_id field to timevar_id_t.
11499         * tree-pass.h: Include "timevar.h".
11500         (struct opt_pass): Change tv_id field to timevar_id_t.
11501         * timevar.h (timevar_id_t): Define TV_NONE.
11502         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
11503         TV_NONE rather than tv_id != 0.
11504         (execute_one_pass): Likewise.
11505         * Makefile.in (DF_H): Add $(TIMEVAR_H).
11506         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
11507         dependencies to $(TREE_PASS_H).
11508         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
11509         to TV_NONE.
11510         (pass_branch_target_load_optimize2): Likewise.
11511         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
11512         (pass_outof_cfg_layout_mode): Likewise.
11513         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
11514         (pass_rebuild_cgraph_edges): Likewise.
11515         (pass_remove_cgraph_callee_edges): Likewise.
11516         * df-core.c (pass_df_initialize_opt): Likewise.
11517         (pass_df_initialize_no_opt): Likewise.
11518         (pass_df_finish): Likewise.
11519         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
11520         * except.c (pass_set_nothrow_function_flags): Likewise.
11521         (pass_convert_to_eh_region_ranges): Likewise.
11522         * final.c (pass_compute_alignments): Likewise.
11523         * function.c (pass_instantiate_virtual_regs): Likewise.
11524         (pass_init_function): Likewise.
11525         (pass_leaf_regs): Likewise.
11526         (pass_match_asm_constraints): Likewise.
11527         * gimple-low.c (pass_lower_cf): Likewise.
11528         (pass_mark_used_blocks): Likewise.
11529         * init-regs.c (pass_initialize_regs): Likewise.
11530         * integrate.c (pass_initial_value_sets): Likewise.
11531         * ira.c (pass_ira): Likewise.
11532         * jump.c (pass_cleanup_barriers): Likewise.
11533         * omp-low.c (pass_expand_omp): Likewise.
11534         (pass_lower_omp): Likewise.
11535         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
11536         * recog.c (pass_split_all_insns): Likewise.
11537         (pass_split_after_reload): Likewise.
11538         (pass_split_before_regstack): Likewise.
11539         (pass_split_before_sched2): Likewise.
11540         (pass_split_for_shorten_branches): Likewise.
11541         * reginfo.c (pass_reginfo_init): Likewise.
11542         (pass_subregs_of_mode_init): Likewise.
11543         (pass_subregs_of_mode_finish): Likewise.
11544         * passes.c (pass_postreload): Likewise.
11545         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
11546         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
11547         (pass_warn_function_return): Likewise.
11548         (pass_warn_function_noreturn): Likewise.
11549         * tree-complex.c (pass_lower_complex): Likewise.
11550         (pass_lower_complex_O0): Likewise.
11551         * tree-if-conv.c (pass_if_conversion): Likewise.
11552         * tree-into-ssa.c (pass_build_ssa): Likewise.
11553         * tree-mudflap.c (pass_mudflap_1): Likewise.
11554         (pass_mudflap_2): Likewise.
11555         * tree-nomudflap.c (pass_mudflap_1): Likewise.
11556         (pass_mudflap_2): Likewise.
11557         * tree-nrv.c (pass_return_slot): Likewise.
11558         * tree-object-size.c (pass_object_sizes): Likewise.
11559         * tree-optimize.c (pass_all_optimizations): Likewise.
11560         (pass_early_local_passes): Likewise.
11561         (pass_all_early_optimizations): Likewise.
11562         (pass_cleanup_cfg): Likewise.
11563         (pass_cleanup_cfg_post_optimizing): Likewise.
11564         (pass_free_datastructures): Likewise.
11565         (pass_free_cfg_annotations): Likewise.
11566         (pass_fixup_cfg): Likewise.
11567         (pass_init_datastructures): Likewise.
11568         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
11569         (pass_late_warn_uninitialized): Likewise.
11570         (pass_update_address_taken): Likewise.
11571         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
11572         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
11573         (pass_cse_sincos): Likewise.
11574         (pass_convert_to_rsqrt): Likewise.
11575         * tree-ssa-structalias.c (pass_build_alias): Likewise.
11576         * tree-stdarg.c (pass_stdarg): Likewise.
11577         * tree-tailcall.c (pass_tail_recursion): Likewise.
11578         (pass_tail_calls): Likewise.
11579         * tree-vect-generic.c (pass_lower_vector): Likewise.
11580         (pass_lower_vector_ssa): Likewise.
11581         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
11582
11583 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
11584
11585         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
11586         XLR entry.
11587         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
11588         Handle -march=xlr.
11589         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
11590         logical and signext.
11591
11592 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
11593
11594         PR target/39767
11595         * config/sh/predicates.md (arith_operand): Check if the operand
11596         of TRUNCATE is a REG.
11597
11598 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11599
11600         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
11601         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
11602
11603 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11604
11605         * tree-iterator.c (tsi_split_statement_list_after,
11606         tsi_split_statement_list_before): Remove.
11607         * tree-iterator.h: Remove the prototypes for
11608         tsi_split_statement_list_after and tsi_split_statement_list_before.
11609
11610 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11611
11612         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
11613         * tree-ssa-propagate.h: Remove the prototype for
11614         stmt_makes_single_load.
11615
11616 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11617
11618         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
11619         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
11620
11621 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11622
11623         * tree-iterator.c (EXPR_LAST_BODY): Remove.
11624
11625 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11626
11627         * except.c (eh_region_outer_p): Remove.
11628         * except.h: Remove the prototype for eh_region_outer_p.
11629
11630 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11631
11632         * function.c (current_function_assembler_name): Remove.
11633         * function.h: Remove the prototype for
11634         current_function_assembler_name.
11635
11636 2009-04-16  Ian Lance Taylor  <iant@google.com>
11637
11638         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
11639         (add_reg_note): Call alloc_reg_note.
11640         * rtl.h (alloc_reg_note): Declare.
11641         * combine.c (try_combine): Use alloc_reg_note.
11642         (recog_for_combine, move_deaths): Likewise.
11643         (distribute_notes): Use alloc_reg_note and add_reg_note.
11644         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
11645         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
11646         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
11647
11648 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
11649
11650         PR rtl-optimization/39762
11651         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
11652         ira_may_move_out_cost): Add comments about way of their usage.
11653         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
11654
11655         * ira-conflicts.c (process_regs_for_copy): Use function
11656         ira_get_register_move_cost instead of global
11657         ira_register_move_cost.
11658
11659         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
11660         color_pass, move_spill_restore, update_curr_costs): Ditto.
11661
11662         * ira-lives.c (process_single_reg_class_operands): Ditto.
11663
11664         * ira-emit.c (emit_move_list): Ditto.
11665
11666         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
11667         (record_reg_classes): Ditto.  Use functions
11668         ira_get_register_move_cost and ira_get_may_move_cost instead of
11669         global vars ira_register_move_cost, ira_may_move_out_cost and
11670         ira_may_move_in_cost.
11671         (record_address_regs): Don't call ira_init_register_move_cost.
11672         Use function ira_get_may_move_cost instead of global
11673         ira_may_move_in_cost.
11674         (process_bb_node_for_hard_reg_moves): Use function
11675         ira_get_register_move_cost instead of global ira_register_move_cost.
11676         (ira_costs): Don't call ira_init_register_move_cost.
11677
11678 2009-04-16  Richard Guenther  <rguenther@suse.de>
11679
11680         * tree-cfg.c (verify_gimple_assign_binary):
11681         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
11682         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
11683         (create_general_new_stmt): Note that this function is broken.
11684
11685 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
11686
11687         * common.opt (fhelp): Add Var(help_flag).
11688         * gcc-plugin.h (plugin_info): Add help.
11689         * plugin.c (plugin_name_args): Add help.
11690         (register_plugin_info): Set plugin->help.
11691         (print_help_one_plugin): New.
11692         (print_plugins_help): New.
11693         * plugin.h (print_plugins_help): New.
11694         * toplev.c (toplev_main): Call print_plugins_help if needed.
11695
11696 2009-04-16  Richard Guenther  <rguenther@suse.de>
11697
11698         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
11699         (gimple_ior_addresses_taken_1): New function.
11700         (gimple_ior_addresses_taken): Likewise.
11701         * gimple.h (struct gimple_statement_with_ops_base): Remove
11702         addresses_taken member.
11703         (gimple_ior_addresses_taken): Declare.
11704         (gimple_addresses_taken, gimple_addresses_taken_ptr,
11705         gimple_set_addresses_taken): Remove.
11706         * ipa-reference.c (mark_address): New function.
11707         (scan_stmt_for_static_refs): Use it for marking addresses taken.
11708         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
11709         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
11710         (gimple_add_to_addresses_taken): Remove.
11711         (get_tmr_operands): Call mark_address_taken.
11712         (get_asm_expr_operands): Likewise.
11713         (get_expr_operands): Likewise.
11714         (build_ssa_operands): Do not clear the addresses_taken bitmap.
11715         (free_stmt_operands): Do not free it.
11716         * tree-ssa.c (delete_tree_ssa): Likewise.
11717         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
11718
11719 2009-04-16  Richard Guenther  <rguenther@suse.de>
11720
11721         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
11722         (walk_stmt_load_store_ops): Likewise.
11723         * gimple.c (get_base_loadstore): New function.
11724         (walk_stmt_load_store_addr_ops): Likewise.
11725         (walk_stmt_load_store_ops): Likewise.
11726         * ipa-pure-const.c (check_op): Simplify.
11727         (check_load, check_store): New functions.
11728         (check_stmt): Use walk_stmt_load_store_ops.
11729         * ipa-reference.c (mark_load): Adjust signature.
11730         (mark_store): Likewise.
11731         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
11732
11733 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
11734
11735         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
11736         (plugin_info): New.
11737         * opts.c (common_handle_option): Don't call print_version.
11738         * plugin.c (plugin_name_args): Add version.
11739         (register_plugin_info): New.
11740         (register_callback): Handle PLUGIN_INFO.
11741         (try_init_one_plugin): New.
11742         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
11743         if failed to init.
11744         (finalize_one_plugin): New.
11745         (finalize_plugins): New.
11746         (print_one_plugin): New.
11747         (print_plugins_versions): New.
11748         * plugin.h (print_plugins_versions): New.
11749         (finalize_plugins): New.
11750         * toplev.c (compile_file): Don't call initialize_plugins.
11751         (print_version): Call print_plugins_versions.
11752         (toplev_main): Call initialize_plugins. Print version if needed.
11753         Call finalize_plugins.
11754
11755 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
11756
11757         * common.opt (fversion): New.
11758         * gcc.c (print_version): New.
11759         (process_command): Don't print the version. Just set print_version.
11760         (main): Print version. Call subprocesses if print_version and
11761         verbose_flag are set.
11762         * opts.c (common_handle_option): Handle OPT_fversion.
11763
11764 2009-04-16  Richard Guenther  <rguenther@suse.de>
11765             Ira Rosen  <irar@il.ibm.com>
11766
11767         PR tree-optimization/39698
11768         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
11769         type of the reduction variable.  Only generate the def if
11770         it is needed.
11771
11772         * omp-low.c (expand_omp_for_generic): When converting to a pointer
11773         make sure to first convert to an integer of the same precision.
11774         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
11775         the type of the evolution correctly in computing the new
11776         induction variable base.
11777
11778 2009-04-16  Richard Guenther  <rguenther@suse.de>
11779
11780         PR middle-end/39625
11781         * tree-cfg.c (make_blocks): Split statements with to-be
11782         abnormal SSA names on the lhs.
11783
11784 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
11785
11786         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
11787         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
11788         * c-typeck.c (really_start_incremental_init): Likewise.
11789         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
11790         (TARGET_INITIALIZER): Remove it.
11791         * target.h (struct target): Remove vector_opaque_p.
11792         * tree.c (build_opaque_vector_type): New.
11793         * tree.h (TYPE_VECTOR_OPAQUE): New.
11794         (build_opaque_vector_type): Declare.
11795         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
11796         * config/rs6000/rs6000.c (build_opaque_vector_type,
11797         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
11798         (rs6000_init_builtins): Use build_opaque_vector_type for
11799         opaque_V4SI_type_node.
11800
11801 2009-04-15  Catherine Moore  <clm@codesourcery.com>
11802
11803         * debug.h (set_name):  Declare.
11804         * dwarf2out.c (dwarf2out_set_name): Declare.
11805         (dwarf2_debug_hooks): Add set_name.
11806         (find_AT_string): New.
11807         (add_AT_string): Call find_AT_string.
11808         (dwarf2out_set_name): New.
11809         * cp/decl.c (grokdeclarator): Call set_name.
11810         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
11811         * debug.c (do_nothing_debug_hooks):  Likewise.
11812         * dbxout.c (dbx_debug_hooks): Likewise.
11813         * sdbout.c (sdb_debug_hooks): Likewise.
11814
11815 2009-04-15  Michael Eager  <eager@eagercon.com>
11816
11817         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
11818         reg for single-precision FPU.
11819         * config/rs6000/rs6000.md (movsi_internal1): Only for
11820         !TARGET_SINGLE_FPU.
11821         (movsi_internal1_single): New. Add pattern to move SI values to/from
11822         single-precision FP regs.
11823
11824 2009-04-15  Richard Guenther  <rguenther@suse.de>
11825
11826         * omp-low.c (lower_rec_input_clauses): Build correct address
11827         expressions.
11828         (expand_omp_for_generic): Fix multiplication type.
11829         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
11830         (generate_memset_zero): Fix types.
11831         * tree-profile.c (prepare_instrumented_value): Correctly
11832         widen a pointer.
11833
11834 2009-04-15  Ian Lance Taylor  <iant@google.com>
11835
11836         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
11837         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
11838         for -Wall and for -Wc++-compat.
11839         (c_common_post_options): For C++, set warn_enum_compare if not
11840         already set.
11841         * c-tree.h (struct c_expr): Add field original_type.
11842         (build_external_ref): Update declaration.
11843         * c-parser.c (c_parser_braced_init): Set original_type.
11844         (c_parser_initelt): Likewise.
11845         (c_parser_expr_no_commas): Likewise.
11846         (c_parser_conditional_expression): Likewise.
11847         (c_parser_cast_expression): Likewise.
11848         (c_parser_unary_expression): Likewise.  Pull setting of
11849         original_code to top of function.
11850         (c_parser_sizeof_expression): Set original_type.
11851         (c_parser_alignof_expression): Likewise.
11852         (c_parser_postfix_expression): Likewise.  Pull setting of
11853         original_code to top of function.
11854         (c_parser_postfix_expression_after_paren_type): Set original_type.
11855         (c_parser_postfix_expression_after_primary): Likewise.
11856         (c_parser_expression): Likewise.
11857         * c-typeck.c (build_external_ref): Add type parameter.  Change all
11858         callers.
11859         (c_expr_sizeof_expr): Set original_type field.
11860         (parser_build_unary_op): Likewise.
11861         (parser_build_binary_op): Likewise.  Optionally warn about
11862         comparisons of enums of different types.
11863         (digest_init): Set original_type field.
11864         (really_start_incremental_init): Likewise.
11865         (push_init_level, pop_init_level): Likewise.
11866         * doc/invoke.texi (Warning Options): -Wenum-compare now
11867         supported in C.
11868
11869 2009-04-15  Richard Guenther  <rguenther@suse.de>
11870
11871         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
11872         out a necessary conversion.
11873         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
11874         names we didn't value number.
11875         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
11876
11877 2009-04-15  Richard Guenther  <rguenther@suse.de>
11878
11879         PR tree-optimization/39764
11880         * tree-ssa-ccp.c (get_value): Canonicalize value with
11881         canonicalize_float_value.
11882
11883 2009-04-15  Jan Hubicka  <jh@suse.cz>
11884
11885         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
11886         Wrong version of patch.
11887
11888 2009-04-15  Jan Hubicka  <jh@suse.cz>
11889
11890         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
11891
11892 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
11893
11894         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
11895         our distinct integral and vector types.
11896
11897 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
11898
11899         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
11900         * init.c (build_vtbl_address): Remove call to assemble_external.
11901
11902 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
11903
11904         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
11905         output for other floating point modes.
11906
11907 2009-04-14  Diego Novillo  <dnovillo@google.com>
11908
11909         * diagnostic.c (diagnostic_report_diagnostic): Do not
11910         warn about loaded plugins for DK_ERROR and DK_WARNING.
11911         * c-decl.c (declspecs_add_type): Move call to
11912         invoke_plugin_callbacks ...
11913         * c-parser.c (c_parser_declspecs): ... here.
11914         * plugin.c (dump_active_plugins): Tidy output.
11915
11916 2009-04-14  Diego Novillo  <dnovillo@google.com>
11917             Le-Chun Wu  <lcwu@google.com>
11918
11919         * configure.ac: Add --enable-plugin support.
11920         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
11921         * Makefile.in (PLUGIN_H): Define.
11922         Export ENABLE_PLUGIN and GMPINC to site.exp.
11923         Add PLUGINLIBS to link command.
11924         Add/modify dependencies for plugin.o and files including plugin.h.
11925         (plugin.o): New.
11926         * config.in: Regenerate.
11927
11928         * opts.c (common_handle_option): Handle OPT_fplugin_ and
11929         OPT_fplugin_arg_.
11930
11931 2009-04-14  Le-Chun Wu  <lcwu@google.com>
11932
11933         * tree-pass.h (register_one_dump_file): Add a prototype for
11934         register_one_dump_file.
11935         * toplev.c (compile_file): Call initialize_plugins.
11936         (do_compile): Call invoke_plugin_callbacks.
11937         (toplev_main): Call invoke_plugin_callbacks.
11938         * common.opt: Add -fplugin= and -fplugin-arg-.
11939         * gcc-plugin.h: New public header file for plugins to include.
11940         * plugin.c: New source file.
11941         * plugin.h: New internal header file.
11942         * passes.c (register_one_dump_file): Make it external.
11943
11944         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
11945
11946 2009-04-14  Diego Novillo  <dnovillo@google.com>
11947
11948         * doc/plugins.texi: New.
11949         * doc/gccint.texi: Add reference to Plugins chapter.
11950         * doc/invoke.texi: Document -fplugin and -fplugin-arg
11951         * diagnostic.c (diagnostic_report_diagnostic): Warn about
11952         loaded plugins, if any.
11953         * timevar.def (TV_PLUGIN_INIT): Define.
11954         (TV_PLUGIN_RUN): Define.
11955         * plugin.c: Include timevar.h
11956         (plugins_active_p): New.
11957         (dump_active_plugins): New.
11958         (debug_active_plugins): New.
11959
11960 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
11961
11962         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
11963         library paths.
11964         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
11965
11966 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
11967
11968         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
11969         the same as a minus without a shift.
11970
11971 2009-04-14  Nick Clifton  <nickc@redhat.com>
11972
11973         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
11974         comparisons with small integers will always produce a short
11975         branch.
11976
11977 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
11978
11979         Merge:
11980         2008-12-19  Diego Novillo  <dnovillo@google.com>
11981
11982         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
11983
11984 2009-04-14  Richard Guenther  <rguenther@suse.de>
11985
11986         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
11987         verification.
11988         (verify_gimple_assign_binary): Likewise.  Handle shifts and
11989         rotates correctly.
11990         (verify_gimple_phi): Print the mismatched argument position.
11991         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
11992         Fix types.
11993         (vect_update_init_of_dr): Likewise.
11994         * matrix-reorg.c (transform_access_sites): Do what the
11995         comment suggests.
11996         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
11997
11998 2009-04-13  Michael Eager  <eager@eagercon.com>
11999
12000         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
12001         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
12002         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
12003         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
12004         remove duplicate config
12005
12006 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
12007
12008         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
12009         file_name:line_number type locator of the call site.
12010
12011 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
12012
12013         * genautomata.c: Put blank after comma.
12014         (automaton_decls): New.
12015         (struct unit_usage): Add comments to member next.
12016         (store_alt_unit_usage): Keep the list ordered.
12017         (unit_present_on_list_p, equal_alternatives_p): New.
12018         (check_regexp_units_distribution): Check units distribution
12019         correctness correctly.
12020         (main): Don't write automata if error is found.  Return correct
12021         exit code.
12022
12023         * config/m68k/cf.md (cfv4_ds): Remove.
12024         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
12025         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
12026
12027         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
12028         power4-load-ext, power4-store, power4-store-update,
12029         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
12030         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
12031         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
12032         power4-sqrt, power4-isync): Modify reservation to make correct
12033         unit distribution to automata.
12034
12035         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
12036         power5-store-update, power5-two, power5-three, power5-lmul,
12037         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
12038
12039 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
12040
12041         * except.c (pass_set_nothrow_function_flags): Set name and add
12042         TODO_dump_func.
12043         (set_nothrow_function_flags): Mention in the dump file when
12044         changing a function to nothrow.
12045
12046 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
12047
12048         PR/39066
12049         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
12050         instead of unsigned long.
12051
12052 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12053
12054         * config/arm/arm.c (return_used_this_function): Remove.
12055         (arm_output_function_prologue): Remove use of
12056         return_used_this_function.
12057         (output_return_instruction): Replace use of
12058         return_used_this_function
12059         by cfun->machine->return_used_this_function.
12060         (arm_output_epilogue): Likewise.
12061         (arm_output_function_epilogue): Likewise.
12062         (thumb_unexpanded_epilogue): Likewise.
12063         * config/arm/arm.h (struct machine_function):
12064         New member return_used_this_function.
12065
12066 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
12067
12068         * doc/install.texi: Correct description of default directory for
12069         --with-gxx-include-dir.
12070
12071 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
12072
12073         * fold-const.c (build_range_check): Properly deal with enumeral and
12074         boolean base types.
12075
12076 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
12077
12078         * doc/invoke.texi (max_gcse_passes): Remove documentation.
12079         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
12080         * params.h (MAX_GCSE_PASSES): Remove.
12081         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
12082         in sequence.  Remove ability to run multiple passes.
12083         (bypass_jumps): Report run as third CPROP pass.
12084
12085 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
12086
12087         PR middle-end/39651
12088         * except.c (can_throw_external): Look at each insn in a SEQUENCE
12089         when deciding whether the whole SEQUENCE can throw.
12090
12091 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
12092
12093         PR target/39740
12094         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
12095         offseted label references.
12096
12097 2009-04-11  Jan Hubicka  <jh@suse.cz>
12098
12099         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
12100
12101 2009-04-11  Richard Guenther  <rguenther@suse.de>
12102
12103         PR middle-end/39732
12104         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
12105         return variables as TREE_ADDRESSABLE.
12106
12107 2009-04-11  Richard Guenther  <rguenther@suse.de>
12108
12109         PR tree-optimization/39713
12110         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
12111         reference trees have SSA_NAME operands.
12112
12113 2009-04-11  Richard Guenther  <rguenther@suse.de>
12114
12115         PR c/39712
12116         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
12117         address expressions.
12118
12119 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
12120
12121         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
12122         match changes in Cygwin 1.7
12123         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
12124         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
12125
12126 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
12127
12128         PR tree-optimization/39701
12129         * doc/invoke.texi (Optimization Options): Document change in
12130         meaning and initialization of -fdelete-null-pointer-checks.
12131
12132 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
12133
12134         PR middle-end/39701
12135         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
12136
12137         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
12138         here.
12139
12140         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
12141
12142 2009-04-10  Chao-ying Fu  <fu@mips.com>
12143
12144         * doc/tm.texi (Instruction Output): Document
12145         TARGET_ASM_FINAL_POSTSCAN_INSN.
12146         * target.h (final_postscan_insn): New field in asm_out.
12147         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
12148         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
12149         * final.c (final_scan_insn): Call
12150         targetm.asm_out.final_postscan_insn after outputting
12151         an asm macro and a normal instruction.
12152
12153         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
12154         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
12155         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
12156         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
12157         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
12158
12159 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
12160
12161         PR middle-end/39701
12162         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
12163         variables as non-NULL even with -fdelete-null-pointer-checks.
12164
12165 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
12166
12167         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
12168
12169 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
12170
12171         PR target/39678
12172         * config/i386/i386.c (classify_argument): Handle SCmode with
12173         (bit_offset % 64) != 0.
12174
12175 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
12176
12177         * doc/invoke.texi (Optimize Options): Add cross-reference to
12178         -Q --help=optimizers examples.
12179
12180 2009-04-10  Ben Elliston  <bje@au.ibm.com>
12181
12182         PR target/36800
12183         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
12184         regalign for the reg == fpr and TDmode case.
12185
12186 2009-04-09  David Ayers  <ayers@fsfe.org>
12187
12188         PR objc/29200
12189         * objc/objc-act.c (warn_with_method): Remove helper function.
12190         (check_duplicates): Call warning and inform directly.
12191         (really_start_method): Likewise.
12192
12193 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
12194
12195         * expmed.c (expand_divmod): Always use a comparison for a division
12196         by a large unsigned integer.
12197
12198         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
12199         for things others than variables or functions as nonzero.
12200
12201 2009-04-09  Nick Clifton  <nickc@redhat.com>
12202
12203         * unwind-compat.c: Change copyright header to refer to version
12204         3 of the GNU General Public License with version 3.1 of the
12205         GCC Runtime Library Exception and to point readers at the
12206         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
12207         * config/alpha/crtfastmath.c: Likewise.
12208         * config/alpha/linux-unwind.h: Likewise.
12209         * config/alpha/qrnnd.asm: Likewise.
12210         * config/alpha/vms-crt0-64.c: Likewise.
12211         * config/alpha/vms-crt0.c: Likewise.
12212         * config/alpha/vms-dwarf2.asm: Likewise.
12213         * config/alpha/vms-dwarf2eh.asm: Likewise.
12214         * config/alpha/vms-psxcrt0-64.c: Likewise.
12215         * config/alpha/vms-psxcrt0.c: Likewise.
12216         * config/alpha/vms_tramp.asm: Likewise.
12217         * config/arc/initfini.c: Likewise.
12218         * config/arc/lib1funcs.asm: Likewise.
12219         * config/arm/bpabi-v6m.S: Likewise.
12220         * config/arm/bpabi.S: Likewise.
12221         * config/arm/bpabi.c: Likewise.
12222         * config/arm/crti.asm: Likewise.
12223         * config/arm/crtn.asm: Likewise.
12224         * config/arm/ieee754-df.S: Likewise.
12225         * config/arm/ieee754-sf.S: Likewise.
12226         * config/arm/lib1funcs.asm: Likewise.
12227         * config/arm/libunwind.S: Likewise.
12228         * config/arm/linux-atomic.c: Likewise.
12229         * config/arm/mmintrin.h: Likewise.
12230         * config/arm/pr-support.c: Likewise.
12231         * config/arm/unaligned-funcs.c: Likewise.
12232         * config/arm/unwind-arm.c: Likewise.
12233         * config/arm/unwind-arm.h: Likewise.
12234         * config/avr/libgcc.S: Likewise.
12235         * config/bfin/crti.s: Likewise.
12236         * config/bfin/crtlibid.s: Likewise.
12237         * config/bfin/crtn.s: Likewise.
12238         * config/bfin/lib1funcs.asm: Likewise.
12239         * config/bfin/linux-unwind.h: Likewise.
12240         * config/cris/arit.c: Likewise.
12241         * config/cris/cris_abi_symbol.c: Likewise.
12242         * config/darwin-64.c: Likewise.
12243         * config/darwin-crt2.c: Likewise.
12244         * config/darwin-crt3.c: Likewise.
12245         * config/darwin.h: Likewise.
12246         * config/dbxelf.h: Likewise.
12247         * config/dfp-bit.c: Likewise.
12248         * config/dfp-bit.h: Likewise.
12249         * config/elfos.h: Likewise.
12250         * config/fixed-bit.c: Likewise.
12251         * config/fixed-bit.h: Likewise.
12252         * config/fp-bit.c: Likewise.
12253         * config/fp-bit.h: Likewise.
12254         * config/fr30/crti.asm: Likewise.
12255         * config/fr30/crtn.asm: Likewise.
12256         * config/fr30/lib1funcs.asm: Likewise.
12257         * config/freebsd-spec.h: Likewise.
12258         * config/frv/cmovd.c: Likewise.
12259         * config/frv/cmovh.c: Likewise.
12260         * config/frv/cmovw.c: Likewise.
12261         * config/frv/frvbegin.c: Likewise.
12262         * config/frv/frvend.c: Likewise.
12263         * config/frv/lib1funcs.asm: Likewise.
12264         * config/glibc-stdint.h: Likewise.
12265         * config/h8300/clzhi2.c: Likewise.
12266         * config/h8300/crti.asm: Likewise.
12267         * config/h8300/crtn.asm: Likewise.
12268         * config/h8300/ctzhi2.c: Likewise.
12269         * config/h8300/fixunssfsi.c: Likewise.
12270         * config/h8300/lib1funcs.asm: Likewise.
12271         * config/h8300/parityhi2.c: Likewise.
12272         * config/h8300/popcounthi2.c: Likewise.
12273         * config/i386/ammintrin.h: Likewise.
12274         * config/i386/att.h: Likewise.
12275         * config/i386/avxintrin.h: Likewise.
12276         * config/i386/biarch64.h: Likewise.
12277         * config/i386/bmmintrin.h: Likewise.
12278         * config/i386/cpuid.h: Likewise.
12279         * config/i386/cross-stdarg.h: Likewise.
12280         * config/i386/crtfastmath.c: Likewise.
12281         * config/i386/crtprec.c: Likewise.
12282         * config/i386/cygming-crtbegin.c: Likewise.
12283         * config/i386/cygming-crtend.c: Likewise.
12284         * config/i386/cygwin.asm: Likewise.
12285         * config/i386/emmintrin.h: Likewise.
12286         * config/i386/gmm_malloc.h: Likewise.
12287         * config/i386/gthr-win32.c: Likewise.
12288         * config/i386/i386.h: Likewise.
12289         * config/i386/immintrin.h: Likewise.
12290         * config/i386/linux-unwind.h: Likewise.
12291         * config/i386/linux64.h: Likewise.
12292         * config/i386/mm3dnow.h: Likewise.
12293         * config/i386/mmintrin-common.h: Likewise.
12294         * config/i386/mmintrin.h: Likewise.
12295         * config/i386/nmmintrin.h: Likewise.
12296         * config/i386/pmm_malloc.h: Likewise.
12297         * config/i386/pmmintrin.h: Likewise.
12298         * config/i386/smmintrin.h: Likewise.
12299         * config/i386/sol2-c1.asm: Likewise.
12300         * config/i386/sol2-ci.asm: Likewise.
12301         * config/i386/sol2-cn.asm: Likewise.
12302         * config/i386/sol2-gc1.asm: Likewise.
12303         * config/i386/tmmintrin.h: Likewise.
12304         * config/i386/unix.h: Likewise.
12305         * config/i386/w32-unwind.h: Likewise.
12306         * config/i386/wmmintrin.h: Likewise.
12307         * config/i386/x86-64.h: Likewise.
12308         * config/i386/x86intrin.h: Likewise.
12309         * config/i386/xmmintrin.h: Likewise.
12310         * config/ia64/crtbegin.asm: Likewise.
12311         * config/ia64/crtend.asm: Likewise.
12312         * config/ia64/crtfastmath.c: Likewise.
12313         * config/ia64/crti.asm: Likewise.
12314         * config/ia64/crtn.asm: Likewise.
12315         * config/ia64/fde-glibc.c: Likewise.
12316         * config/ia64/lib1funcs.asm: Likewise.
12317         * config/ia64/linux-unwind.h: Likewise.
12318         * config/ia64/quadlib.c: Likewise.
12319         * config/ia64/unwind-ia64.c: Likewise.
12320         * config/linux.h: Likewise.
12321         * config/m32c/m32c-lib1.S: Likewise.
12322         * config/m32c/m32c-lib2-trapv.c: Likewise.
12323         * config/m32c/m32c-lib2.c: Likewise.
12324         * config/m32r/initfini.c: Likewise.
12325         * config/m68hc11/larith.asm: Likewise.
12326         * config/m68hc11/m68hc11-crt0.S: Likewise.
12327         * config/m68k/cf.md: Likewise.
12328         * config/m68k/crti.s: Likewise.
12329         * config/m68k/crtn.s: Likewise.
12330         * config/m68k/lb1sf68.asm: Likewise.
12331         * config/m68k/linux-unwind.h: Likewise.
12332         * config/mcore/crti.asm: Likewise.
12333         * config/mcore/crtn.asm: Likewise.
12334         * config/mcore/lib1.asm: Likewise.
12335         * config/mips/linux-unwind.h: Likewise.
12336         * config/mips/loongson.h: Likewise.
12337         * config/mips/mips16.S: Likewise.
12338         * config/mmix/crti.asm: Likewise.
12339         * config/mmix/crtn.asm: Likewise.
12340         * config/pa/fptr.c: Likewise.
12341         * config/pa/hpux-unwind.h: Likewise.
12342         * config/pa/lib2funcs.asm: Likewise.
12343         * config/pa/linux-atomic.c: Likewise.
12344         * config/pa/linux-unwind.h: Likewise.
12345         * config/pa/milli64.S: Likewise.
12346         * config/pa/quadlib.c: Likewise.
12347         * config/pa/stublib.c: Likewise.
12348         * config/picochip/libgccExtras/adddi3.asm: Likewise.
12349         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
12350         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
12351         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
12352         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
12353         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
12354         * config/picochip/libgccExtras/divmod15.asm: Likewise.
12355         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
12356         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
12357         * config/picochip/libgccExtras/longjmp.asm: Likewise.
12358         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
12359         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
12360         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
12361         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
12362         * config/picochip/libgccExtras/setjmp.asm: Likewise.
12363         * config/picochip/libgccExtras/subdi3.asm: Likewise.
12364         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
12365         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
12366         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
12367         * config/rs6000/750cl.h: Likewise.
12368         * config/rs6000/altivec.h: Likewise.
12369         * config/rs6000/biarch64.h: Likewise.
12370         * config/rs6000/crtresfpr.asm: Likewise.
12371         * config/rs6000/crtresgpr.asm: Likewise.
12372         * config/rs6000/crtresxfpr.asm: Likewise.
12373         * config/rs6000/crtresxgpr.asm: Likewise.
12374         * config/rs6000/crtsavfpr.asm: Likewise.
12375         * config/rs6000/crtsavgpr.asm: Likewise.
12376         * config/rs6000/darwin-asm.h: Likewise.
12377         * config/rs6000/darwin-fallback.c: Likewise.
12378         * config/rs6000/darwin-fpsave.asm: Likewise.
12379         * config/rs6000/darwin-ldouble.c: Likewise.
12380         * config/rs6000/darwin-tramp.asm: Likewise.
12381         * config/rs6000/darwin-unwind.h: Likewise.
12382         * config/rs6000/darwin-vecsave.asm: Likewise.
12383         * config/rs6000/darwin-world.asm: Likewise.
12384         * config/rs6000/e500crtres32gpr.asm: Likewise.
12385         * config/rs6000/e500crtres64gpr.asm: Likewise.
12386         * config/rs6000/e500crtres64gprctr.asm: Likewise.
12387         * config/rs6000/e500crtrest32gpr.asm: Likewise.
12388         * config/rs6000/e500crtrest64gpr.asm: Likewise.
12389         * config/rs6000/e500crtresx32gpr.asm: Likewise.
12390         * config/rs6000/e500crtresx64gpr.asm: Likewise.
12391         * config/rs6000/e500crtsav32gpr.asm: Likewise.
12392         * config/rs6000/e500crtsav64gpr.asm: Likewise.
12393         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
12394         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
12395         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
12396         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
12397         * config/rs6000/eabi-ci.asm: Likewise.
12398         * config/rs6000/eabi-cn.asm: Likewise.
12399         * config/rs6000/eabi.asm: Likewise.
12400         * config/rs6000/linux-unwind.h: Likewise.
12401         * config/rs6000/linux64.h: Likewise.
12402         * config/rs6000/paired.h: Likewise.
12403         * config/rs6000/paired.md: Likewise.
12404         * config/rs6000/ppc64-fp.c: Likewise.
12405         * config/rs6000/ppu_intrinsics.h: Likewise.
12406         * config/rs6000/rs6000.h: Likewise.
12407         * config/rs6000/si2vmx.h: Likewise.
12408         * config/rs6000/sol-ci.asm: Likewise.
12409         * config/rs6000/sol-cn.asm: Likewise.
12410         * config/rs6000/spe.h: Likewise.
12411         * config/rs6000/spu2vmx.h: Likewise.
12412         * config/rs6000/sysv4.h: Likewise.
12413         * config/rs6000/tramp.asm: Likewise.
12414         * config/rs6000/vec_types.h: Likewise.
12415         * config/s390/linux-unwind.h: Likewise.
12416         * config/s390/tpf-unwind.h: Likewise.
12417         * config/score/crti.asm: Likewise.
12418         * config/score/crtn.asm: Likewise.
12419         * config/sh/crt1.asm: Likewise.
12420         * config/sh/crti.asm: Likewise.
12421         * config/sh/crtn.asm: Likewise.
12422         * config/sh/divtab-sh4-300.c: Likewise.
12423         * config/sh/divtab-sh4.c: Likewise.
12424         * config/sh/divtab.c: Likewise.
12425         * config/sh/lib1funcs-4-300.asm: Likewise.
12426         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
12427         * config/sh/lib1funcs.asm: Likewise.
12428         * config/sh/lib1funcs.h: Likewise.
12429         * config/sh/linux-atomic.asm: Likewise.
12430         * config/sh/linux-unwind.h: Likewise.
12431         * config/sh/shmedia.h: Likewise.
12432         * config/sh/sshmedia.h: Likewise.
12433         * config/sh/ushmedia.h: Likewise.
12434         * config/sparc/crtfastmath.c: Likewise.
12435         * config/sparc/linux-unwind.h: Likewise.
12436         * config/sparc/sol2-c1.asm: Likewise.
12437         * config/sparc/sol2-ci.asm: Likewise.
12438         * config/sparc/sol2-cn.asm: Likewise.
12439         * config/spu/divmodti4.c: Likewise.
12440         * config/spu/divv2df3.c: Likewise.
12441         * config/spu/float_disf.c: Likewise.
12442         * config/spu/float_unsdidf.c: Likewise.
12443         * config/spu/float_unsdisf.c: Likewise.
12444         * config/spu/float_unssidf.c: Likewise.
12445         * config/spu/mfc_multi_tag_release.c: Likewise.
12446         * config/spu/mfc_multi_tag_reserve.c: Likewise.
12447         * config/spu/mfc_tag_release.c: Likewise.
12448         * config/spu/mfc_tag_reserve.c: Likewise.
12449         * config/spu/mfc_tag_table.c: Likewise.
12450         * config/spu/multi3.c: Likewise.
12451         * config/spu/spu_internals.h: Likewise.
12452         * config/spu/spu_intrinsics.h: Likewise.
12453         * config/spu/spu_mfcio.h: Likewise.
12454         * config/spu/vec_types.h: Likewise.
12455         * config/spu/vmx2spu.h: Likewise.
12456         * config/stormy16/stormy16-lib2.c: Likewise.
12457         * config/svr4.h: Likewise.
12458         * config/sync.c: Likewise.
12459         * config/v850/lib1funcs.asm: Likewise.
12460         * config/vxlib-tls.c: Likewise.
12461         * config/vxlib.c: Likewise.
12462         * config/vxworks-dummy.h: Likewise.
12463         * config/xtensa/crti.asm: Likewise.
12464         * config/xtensa/crtn.asm: Likewise.
12465         * config/xtensa/ieee754-df.S: Likewise.
12466         * config/xtensa/ieee754-sf.S: Likewise.
12467         * config/xtensa/lib1funcs.asm: Likewise.
12468         * config/xtensa/lib2funcs.S: Likewise.
12469         * config/xtensa/linux-unwind.h: Likewise.
12470         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
12471         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
12472         * coretypes.h: Likewise.
12473         * crtstuff.c: Likewise.
12474         * defaults.h: Likewise.
12475         * dwarf2.h: Likewise.
12476         * emutls.c: Likewise.
12477         * gbl-ctors.h: Likewise.
12478         * gcov-io.h: Likewise.
12479         * ginclude/float.h: Likewise.
12480         * ginclude/iso646.h: Likewise.
12481         * ginclude/stdarg.h: Likewise.
12482         * ginclude/stdbool.h: Likewise.
12483         * ginclude/stddef.h: Likewise.
12484         * ginclude/stdfix.h: Likewise.
12485         * ginclude/stdint-gcc.h: Likewise.
12486         * ginclude/tgmath.h: Likewise.
12487         * gthr-aix.h: Likewise.
12488         * gthr-dce.h: Likewise.
12489         * gthr-gnat.c: Likewise.
12490         * gthr-gnat.h: Likewise.
12491         * gthr-lynx.h: Likewise.
12492         * gthr-mipssde.h: Likewise.
12493         * gthr-nks.h: Likewise.
12494         * gthr-posix.c: Likewise.
12495         * gthr-posix.h: Likewise.
12496         * gthr-posix95.h: Likewise.
12497         * gthr-rtems.h: Likewise.
12498         * gthr-single.h: Likewise.
12499         * gthr-solaris.h: Likewise.
12500         * gthr-tpf.h: Likewise.
12501         * gthr-vxworks.h: Likewise.
12502         * gthr-win32.h: Likewise.
12503         * gthr.h: Likewise.
12504         * libgcc2.c: Likewise.
12505         * libgcc2.h: Likewise.
12506         * libgcov.c: Likewise.
12507         * tsystem.h: Likewise.
12508         * typeclass.h: Likewise.
12509         * unwind-c.c: Likewise.
12510         * unwind-compat.h: Likewise.
12511         * unwind-dw2-fde-compat.c: Likewise.
12512         * unwind-dw2-fde-darwin.c: Likewise.
12513         * unwind-dw2-fde-glibc.c: Likewise.
12514         * unwind-dw2-fde.c: Likewise.
12515         * unwind-dw2-fde.h: Likewise.
12516         * unwind-dw2.c: Likewise.
12517         * unwind-dw2.h: Likewise.
12518         * unwind-generic.h: Likewise.
12519         * unwind-pe.h: Likewise.
12520         * unwind-sjlj.c: Likewise.
12521         * unwind.inc: Likewise.
12522         * config/arm/neon-gen.ml: Change generated copyright header to
12523         refer to version 3 of the GNU General Public License with
12524         version 3.1 of the GCC Runtime Library Exception and to point
12525         readers at the COPYING3 and COPYING3.RUNTIME files and the
12526         FSF's license web page.
12527         * config/arm/arm_neon.h: Regenerate.
12528
12529 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
12530
12531         * config/cris/cris.md: Change copyright header to refer to version
12532         3 of the GNU General Public License.
12533         * doc/install.texi2html: Change copyright header to refer to version
12534         3 of the GNU General Public License and to point readers at the
12535         COPYING3 file and the FSF's license web page.
12536         * config/vax/linux.h: Likewise.
12537
12538 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
12539
12540         * config/i386/i386.md (cmpcc): New.
12541         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
12542         (sync_compare_and_swap_cc*): Delete.
12543
12544         * config/s390/s390.c (s390_compare_emitted): Remove.
12545         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
12546         s390_compare_emitted used to be handled.  Assert that modes match.
12547         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
12548         refer to sync_compare_and_swap_ccsi.
12549         * config/s390/s390.h (s390_compare_emitted): Remove.
12550         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
12551         instead of s390_compare_emitted.
12552         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
12553         instead of s390_compare_emitted.
12554         * config/s390/s390.md (cmpcc): New.
12555         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
12556         CC_REGNUM, do not pretend it's set.
12557         (sync_compare_and_swap_cc*): Delete.
12558         * config/s390/predicates.md (cc_reg_operand): New.
12559
12560         * expr.c (sync_compare_and_swap_cc): Delete.
12561         * optabs.h (sync_compare_and_swap_cc): Delete.
12562         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
12563         is being used with can_compare_p.
12564         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
12565         (find_cc_set): New.
12566         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
12567         look for a MODE_CC set instead.  Use emit_store_flag.
12568         (expand_compare_and_swap_loop): Likewise, with some additional
12569         complication to avoid a force_reg when useless.  Use
12570         emit_cmp_and_jump_insns.
12571         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
12572         * doc/md.texi (sync_compare_and_swap_cc): Merge with
12573         sync_compare_and_swap documentation.
12574
12575 2009-04-09  Jan Hubicka  <jh@suse.cz>
12576
12577         * except.c (find_prev_try): Break out from ....
12578         (duplicate_eh_regions): ... here; properly update prev_try pointers
12579         when duplication part of tree.
12580         (dump_eh_tree): Improve dumping.
12581         (verify_eh_region): New.
12582         (verify_eh_tree): Use it.
12583
12584 2009-04-06  Richard Guenther  <rguenther@suse.de>
12585
12586         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
12587         &ARRAY addresses by adjusting their types and prepending
12588         a conversion.
12589         * tree-cfg.c (verify_gimple_assign_single): Verify that
12590         addresses are correct.
12591
12592 2009-04-09  Richard Guenther  <rguenther@suse.de>
12593
12594         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
12595         indices into an array reference if possible.
12596         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
12597         Fold POINTER_PLUS_EXPR statements with invariant address.
12598
12599 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
12600
12601         PR target/39634
12602         * config.gcc (powerpc64-*-linux*): Always build biarch.
12603
12604 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
12605
12606         PR c/39613
12607         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
12608         it and pedwarn if this results in an INTEGER_CST.
12609
12610 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12611
12612         * doc/install.texi: Update minimum GMP version.  Remove obsolete
12613         text in MPFR section.
12614
12615 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
12616
12617         * dwarf2out.c (class_scope_p): New static inline.
12618         (class_or_namespace_scope_p): Use it.
12619         (gen_variable_die): Use DW_TAG_member tag for static data member
12620         declarations instead of DW_TAG_variable.
12621
12622         PR middle-end/39573
12623         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
12624         variables.
12625
12626 2009-04-08  Richard Guenther  <rguenther@suse.de>
12627
12628         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
12629         valueize random data.
12630
12631 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
12632
12633         * config.gcc (aix tm_file):  Add aix-stdint.h.
12634         (aix tm clause use_gcc_stdint):  Set to wrap.
12635         * config/rs6000/aix-stdint.h:  New file.
12636
12637 2009-04-08  Richard Guenther  <rguenther@suse.de>
12638
12639         PR middle-end/36291
12640         * tree-dfa.c (add_referenced_var): Do not recurse into
12641         global initializers.
12642         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
12643         exposed variables.
12644         (fold_const_aggregate_ref): Likewise.
12645
12646 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
12647
12648         * recog.c (ordered_comparison_operator): New.
12649         * gensupport.c (std_preds): Add it.
12650         * doc/md.texi (Machine-Independent Predicates): Document it.
12651
12652 2009-04-08  Jan Hubicka  <jh@suse.cz>
12653
12654         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
12655         * function.h (rtl_eh): Remove exception_handler_label_map.
12656         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
12657         remove_exception_handler_label, for_each_eh_label_1): Remove.
12658         (rtl_remove_unreachable_regions): Remove.
12659         (convert_from_eh_region_ranges): Do not remove unreachable regions.
12660         (find_exception_handler_labels): Don't build the hashtable.
12661         (maybe_remove_eh_handler): Remove.
12662         (for_each_eh_label): Rewrite to walk the tree.
12663         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
12664         * except.h (maybe_remove_eh_handler): Remove.
12665         * passes.c (init_optimization_passes): Schedule second EH cleanup
12666         before out-of-ssa.
12667         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
12668         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
12669
12670 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
12671
12672         * genoutput.c (validate_optab_operands): New.
12673         (gen_insn, gen_expand): Call it.
12674
12675         * genflags.c (gen_insn): Detect misused iterators.
12676         (main): Pass line_no to gen_insn, exit with status 1 on error.
12677
12678         * genextract.c (line_no): Make global.
12679         (VEC_safe_set_locstr): Change assertion to error message.
12680         (main): Exit with status 1 on error.
12681
12682 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
12683
12684         PR c/39614
12685         PR c/39673
12686         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12687         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12688         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
12689         * c-convert.c (convert): Do not call fold on results of conversion
12690         functions when the result is a C_MAYBE_CONST_EXPR.
12691         * c-parser.c (c_parser_postfix_expression): Do not fold condition
12692         of __builtin_choose_expr.
12693         * c-typeck.c (remove_c_maybe_const_expr): New.
12694         (build_unary_op, build_conditional_expr, build_compound_expr,
12695         build_binary_op, c_objc_common_truthvalue_conversion): Call
12696         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
12697         integer operands.
12698
12699 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
12700
12701         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
12702         CODE to produce a new one. Add a prototype to use fold_convert_const
12703
12704 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
12705
12706         PR bootstrap/39660
12707         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
12708         mix declarations and code.
12709
12710 2009-04-08  Ben Elliston  <bje@au.ibm.com>
12711
12712         * gcc.c: Replace `CC' with `GCC' throughout.
12713
12714 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
12715
12716         * doc/invoke.texi: Document Atom support.
12717
12718 2009-04-07  Jason Merrill  <jason@redhat.com>
12719
12720         PR c++/25185
12721         * c-common.h, c-common.c: Add flag_pretty_templates.
12722         * c-opts.c (c_common_handle_option): Set it.
12723         * c.opt: Add -fno-pretty-templates.
12724         * doc/invoke.texi (C++ Dialect Options): Likewise.
12725
12726 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
12727
12728         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
12729         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
12730         (ia64_expand_builtin): Likewise.
12731
12732 2009-04-07  Martin Jambor  <mjambor@suse.cz>
12733
12734         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
12735         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
12736         ADDR_EXPRS are include too.
12737
12738 2009-04-07  Richard Guenther  <rguenther@suse.de>
12739
12740         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
12741         decls are only used if passes as parameters or if they are
12742         local statics and the call is not to a builtin.
12743         (call_may_clobber_ref_p_1): Likewise.
12744
12745 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
12746
12747         * expr.c (do_store_flag): Remove last argument.  Simplify code
12748         to avoid duplication of tests already done by can_compare_p.
12749         (expand_expr_real_1): Adjust caller.
12750
12751 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
12752
12753         * optabs.c (can_compare_p): Test the predicate of a
12754         cbranch and cstore pattern.
12755
12756 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
12757
12758         * expr.c (convert_move): Use emit_store_flag instead of
12759         "emulating" it.
12760
12761 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
12762
12763         * config/i386/i386.c (ix86_compare_emitted): Remove.
12764         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
12765         ix86_compare_op0 like ix86_compare_emitted used to be handled.
12766         * config/i386/i386.h (ix86_compare_emitted): Remove.
12767         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
12768         instead of ix86_compare_emitted.
12769         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
12770
12771 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
12772
12773         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
12774         Add t-sysroot-suffix to tmake_file.
12775         * config/print-sysroot-suffix.sh: New file.
12776         * config/t-sysroot-suffix: New file.
12777
12778 2009-04-07  Ben Elliston  <bje@au.ibm.com>
12779
12780         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
12781         as the latter produces a warning when the target does not support
12782         infinity.
12783
12784 2009-04-07  Ben Elliston  <bje@au.ibm.com>
12785
12786         * dfp.c: Replace type punning assignments with memcpy throughout.
12787         * Makefile.in (dfp.o-warn): Remove.
12788
12789 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
12790
12791         PR target/39634
12792         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
12793         Include soft-fp/t-softfp after rs6000/t-linux64.
12794
12795 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
12796
12797         * stor-layout.c (set_sizetype): Use the full precision of their
12798         machine mode for bitsize types.
12799
12800 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
12801
12802         * config/i386/i386.md: Revert 2 accidental checkins.
12803
12804 2009-04-06  Joey Ye  <joey.ye@intel.com>
12805             Xuepeng Guo  <xuepeng.guo@intel.com>
12806             H.J. Lu  <hongjiu.lu@intel.com>
12807
12808         Atom pipeline model, tuning and insn selection.
12809         * config.gcc (atom): Add atom config options and target.
12810
12811         * config/i386/atom.md: New.
12812
12813         * config/i386/i386.c (atom_cost): New cost.
12814         (m_ATOM): New macro flag.
12815         (initial_ix86_tune_features): Set m_ATOM.
12816         (x86_accumulate_outgoing_args): Likewise.
12817         (x86_arch_always_fancy_math_387): Likewise.
12818         (processor_target): Add Atom cost.
12819         (cpu_names): Add Atom cpu name.
12820         (override_options): Set Atom ISA.
12821         (ix86_issue_rate): New case PROCESSOR_ATOM.
12822         (ix86_adjust_cost): Likewise.
12823
12824         * config/i386/i386.h (TARGET_ATOM): New target macro.
12825         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
12826         (TARGET_OPT_AGU): New target option.
12827         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
12828         (processor_type): Add PROCESSOR_ATOM.
12829
12830         * config/i386/i386.md (cpu): Add new value "atom".
12831         (use_carry, movu): New attr.
12832         (atom.md): Include atom.md.
12833         (adddi3_carry_rex64): Set attr "use_carry".
12834         (addqi3_carry): Likewise.
12835         (addhi3_carry): Likewise.
12836         (addsi3_carry): Likewise.
12837         (*addsi3_carry_zext): Likewise.
12838         (subdi3_carry_rex64): Likewise.
12839         (subqi3_carry): Likewise.
12840         (subhi3_carry): Likewise.
12841         (subsi3_carry): Likewise.
12842         (x86_movdicc_0_m1_rex64): Likewise.
12843         (*x86_movdicc_0_m1_se): Likewise.
12844         (x86_movsicc_0_m1): Likewise.
12845         (*x86_movsicc_0_m1_se): Likewise.
12846         (*adddi_1_rex64): Emit add insn as much as possible.
12847         (*addsi_1): Likewise.
12848         (return_internal): Set atom_unit.
12849         (return_internal_long): Likewise.
12850         (return_pop_internal): Likewise.
12851         (*rcpsf2_sse): Set atom_sse_attr attr.
12852         (*qrt<mode>2_sse): Likewise.
12853         (*prefetch_sse): Likewise.
12854
12855         * config/i386/i386-c.c (ix86_target_macros_internal): New case
12856         PROCESSOR_ATOM.
12857         (ix86_target_macros_internal): Likewise.
12858
12859         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
12860         (*prefetch_sse_rex): Likewise.
12861         (sse_rcpv4sf2): Likewise.
12862         (sse_vmrcpv4sf2): Likewise.
12863         (sse_sqrtv4sf2): Likewise.
12864         (<sse>_vmsqrt<mode>2): Likewise.
12865         (sse_ldmxcsr): Likewise.
12866         (sse_stmxcsr): Likewise.
12867         (*sse_sfence): Likewise.
12868         (sse2_clflush): Likewise.
12869         (*sse2_mfence): Likewise.
12870         (*sse2_lfence): Likewise.
12871         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
12872         (<sse>_movup<ssemodesuffixf2c>): Likewise.
12873         (avx_movdqu<avxmodesuffix>): Likewise.
12874         (avx_lddqu<avxmodesuffix>): Likewise.
12875         (sse2_movntv2di): Change attr "type" to "ssemov".
12876         (sse2_movntsi): Likewise.
12877         (rsqrtv8sf2): Change attr "type" to "sseadd".
12878         (sse3_addsubv2df3): Set attr "atom_unit".
12879         (sse3_h<plusminus_insn>v4sf3): Likewise.
12880         (*sse2_pmaddwd): Likewise.
12881         (*vec_extractv2di_1_rex64): Likewise.
12882         (*vec_extractv2di_1_avx): Likewise.
12883         (sse2_psadbw): Likewise.
12884         (ssse3_phaddwv8hi3): Likewise.
12885         (ssse3_phaddwv4hi3): Likewise.
12886         (ssse3_phadddv4si3): Likewise.
12887         (ssse3_phadddv2si3): Likewise.
12888         (ssse3_phaddswv8hi3): Likewise.
12889         (ssse3_phaddswv4hi3): Likewise.
12890         (ssse3_phsubwv8hi3): Likewise.
12891         (ssse3_phsubwv4hi3): Likewise.
12892         (ssse3_phsubdv4si3): Likewise.
12893         (ssse3_phsubdv2si3): Likewise.
12894         (ssse3_phsubswv8hi3): Likewise.
12895         (ssse3_phsubswv4hi3): Likewise.
12896         (ssse3_pmaddubsw128): Likewise.
12897         (sse3_pmaddubsw: Likewise.
12898         (ssse3_palignrti): Likewise.
12899         (ssse3_palignrdi): Likewise.
12900
12901 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
12902
12903         * doc/install.texi (Specific): Fix two cross-references to MinGW.
12904
12905 2009-04-06  Richard Guenther  <rguenther@suse.de>
12906
12907         PR tree-optimization/28868
12908         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
12909         of which PHI results we inserted.
12910         (insert_into_preds_of_block): Record inserted PHIs.
12911         (eliminate): Eliminate redundant PHI nodes.
12912         (init_pre): Init inserted_phi_names.
12913
12914 2009-04-06  Richard Guenther  <rguenther@suse.de>
12915
12916         PR tree-optimization/39643
12917         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
12918         IMAGPART_EXPRs of complex constants.
12919         (execute_fold_all_builtins): If we folded a call queue
12920         TODO_update_address_taken.
12921
12922 2009-04-06  Jan Hubicka  <jh@suse.cz>
12923
12924         PR middle-end/39659
12925         * except.c (remove_unreachable_regions): Propagate may_contain_throw
12926         flag.
12927
12928 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
12929
12930         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
12931         delay slot.
12932         (ic_invalidate_array): Likewise.
12933
12934 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
12935
12936         * calls.c (emit_library_call_value_1): Fix a problem with parameter
12937         alignment for library calls.
12938
12939 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
12940
12941         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
12942         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
12943         * config/i386/mingw-stdint.h:  New file.
12944
12945 2009-04-05  Richard Guenther  <rguenther@suse.de>
12946
12947         PR tree-optimization/39648
12948         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
12949         our &A vs. &A[0] IL deficiencies.
12950
12951 2009-04-04  Jan Hubicka  <jh@suse.cz>
12952
12953         * except.c (sjlj_find_directly_reachable_regions): Be ready for
12954         removed toplevel regions.
12955         (sjlj_mark_call_sites): Likewise.
12956
12957 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
12958
12959         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
12960         (cygwin tm clause use_gcc_stdint):  Set to wrap.
12961         * config/i386/cygwin-stdint.h:  New file.
12962
12963 2009-04-04  Richard Guenther  <rguenther@suse.de>
12964
12965         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
12966         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
12967         single-argument PHIs if we are in loop-closed SSA form.
12968         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
12969         for the pre-condition.
12970         (slpeel_tree_peel_loop_to_edge): Likewise.
12971         (vect_build_loop_niters): Take an optional sequence to append stmts.
12972         (vect_generate_tmps_on_preheader): Likewise.
12973         (vect_do_peeling_for_loop_bound): Take extra guards for the
12974         pre-condition.
12975         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
12976         the cost model check.
12977         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
12978         guards if we are going to peel.  Do not apply versioning in that case.
12979         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
12980         (vect_do_peeling_for_loop_bound): Likewise.
12981         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
12982         loop bound only record extra pre-conditions, do not apply loop
12983         versioning.
12984
12985 2009-04-04  Richard Guenther  <rguenther@suse.de>
12986
12987         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
12988         renaming code.
12989
12990 2009-04-04  Jan Hubicka  <jh@suse.cz>
12991
12992         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
12993         last_basic_block for size of bb->index indexed array.
12994         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
12995         compute_out, link_btr_uses, build_btr_def_use_webs,
12996         build_btr_def_use_webs, migrate_btr_defs): Likewise.
12997
12998 2009-04-04  Jan Hubicka  <jh@suse.cz>
12999
13000         * except.c (remove_eh_handler_and_replace): Break out from ...
13001         (remove_eh_handler): ... here.
13002         (bring_to_root): New function.
13003         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
13004         handled ones, bring others to root of tree.
13005
13006 2009-04-04  Jan Hubicka  <jh@suse.cz>
13007
13008         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
13009         (all_phis_safe_to_merge): New function.
13010         (update_info): New structure.
13011         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
13012         (cleanup_empty_eh): Update SSA if possible.
13013
13014 2009-04-04  Richard Guenther  <rguenther@suse.de>
13015
13016         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
13017         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
13018         (append_vuse): Likewise.
13019
13020 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
13021
13022         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
13023         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
13024         instead of REG_UNSAVED for DW_CFA_undefined.
13025         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
13026         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
13027         outermost frame.
13028
13029 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
13030
13031         PR target/39501
13032         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
13033         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
13034         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
13035
13036 2009-04-04  Richard Guenther  <rguenther@suse.de>
13037
13038         PR tree-optimization/8781
13039         PR tree-optimization/37892
13040         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
13041         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
13042         (valueize_refs): Call it for *& valueizations.
13043         (shared_reference_ops_from_ref): Rename to ...
13044         (valueize_shared_reference_ops_from_ref): ... this and valueize.
13045         (shared_reference_ops_from_call): Rename to ...
13046         (valueize_shared_reference_ops_from_call): ... this and valueize.
13047         (vn_reference_lookup): Update.
13048         (visit_reference_op_call): Likewise.
13049         * tree-ssa-pre.c (phi_translate_1): Fold *&.
13050         (eliminate): Value-replace the call address in call statements.
13051
13052 2009-04-04  Richard Guenther  <rguenther@suse.de>
13053
13054         PR tree-optimization/39636
13055         * tree-ssa-forwprop.c
13056         (forward_propagate_addr_into_variable_array_index): Check for
13057         GIMPLE_ASSIGN before accessing the rhs code.
13058
13059 2009-04-03  Jason Merrill  <jason@redhat.com>
13060
13061         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
13062
13063 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
13064
13065         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
13066         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
13067         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
13068         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
13069         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
13070         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
13071         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
13072         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
13073         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
13074         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
13075         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
13076         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
13077         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
13078         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
13079         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
13080         Use fr_reg_or_fp01_operand instead of fr_register_operand
13081
13082         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
13083         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
13084         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
13085
13086 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
13087
13088         PR rtl-optimization/39607
13089         PR rtl-optimization/39631
13090
13091         Revert:
13092
13093         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13094         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
13095         instead of DF_LR_OUT.
13096         * ira-lives.c (process_bb_node_lives): Ditto.
13097         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
13098         instead of DF_LR_{OUT,IN}.
13099         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
13100         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
13101
13102 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
13103
13104         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
13105         (execute_lower_omp): Always run but take the short way out if -fopenmp
13106         is not given.
13107         (gate_lower_omp): Remove, forcing the pass manager to always run the
13108         pass and always set PROP_gimple_lomp.
13109         (pass_lower_omp): Remove gate function.
13110         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
13111         PROP_trees.  Instead, require it.
13112         * ipa-cp.c (pass_ipa_cp): Likewise.
13113         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
13114         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
13115         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
13116         and PROP_gimple_leh.
13117
13118 2009-04-03  Richard Guenther  <rguenther@suse.de>
13119
13120         PR middle-end/13146
13121         PR tree-optimization/23940
13122         PR tree-optimization/33237
13123         PR middle-end/33974
13124         PR middle-end/34093
13125         PR tree-optimization/36201
13126         PR tree-optimization/36230
13127         PR tree-optimization/38049
13128         PR tree-optimization/38207
13129         PR tree-optimization/38230
13130         PR tree-optimization/38301
13131         PR tree-optimization/38585
13132         PR middle-end/38895
13133         PR tree-optimization/38985
13134         PR tree-optimization/39299
13135         * tree-ssa-structalias.h: Remove.
13136         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
13137         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
13138         (struct vuse_element_d): Remove.
13139         (struct vuse_vec_d): Likewise.
13140         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
13141         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
13142         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
13143         VUSE_ELEMENT_VAR): Likewise.
13144         (struct voptype_d): Likewise.
13145         (NUM_VOP_FREE_BUCKETS): Likewise.
13146         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
13147         (struct stmt_operands_d): Remove.
13148         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
13149         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
13150         VDEF_NUM, VDEF_VECT): Likewise.
13151         (copy_virtual_operands): Remove.
13152         (operand_build_cmp): Likewise.
13153         (create_ssa_artificial_load_stmt): Likewise.
13154         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
13155         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
13156         vuse_index and mayuse_index members.  Pack and move done and iter_type
13157         members to the front.
13158         (SSA_OP_VMAYUSE): Remove.
13159         (SSA_OP_VIRTUAL_USES): Adjust.
13160         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
13161         (unlink_stmt_vdef): Declare.
13162         (add_to_addressable_set): Remove.
13163         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
13164         (vrp_visit_stmt): Likewise.
13165         * doc/tree-ssa.texi (Alias analysis): Update.
13166         * doc/invoke.texi (max-aliased-vops): Remove docs.
13167         (avg-aliased-vops): Likewise.
13168         * tree-into-ssa.c (syms_to_rename): Remove.
13169         (need_to_update_vops_p): Likewise.
13170         (need_to_initialize_update_ssa_p): Rename to ...
13171         (update_ssa_initialized_fn): ... this.  Track function we are
13172         initialized for.
13173         (symbol_marked_for_renaming): Simplify.
13174         (add_new_name_mapping): Do not set need_to_update_vops_p.
13175         (dump_currdefs): Use SYMS_TO_RENAME.
13176         (rewrite_update_stmt): Always walk all uses/defs.
13177         (dump_update_ssa): Adjust.
13178         (init_update_ssa): Take function argument.  Track what we are
13179         initialized for.
13180         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
13181         (create_new_def_for): Initialize for cfun, assert we are initialized
13182         for cfun.
13183         (mark_sym_for_renaming): Simplify.
13184         (mark_set_for_renaming): Do not initialize update-ssa.
13185         (need_ssa_update_p): Simplify.  Take function argument.
13186         (name_mappings_registered_p): Assert we ask for the correct function.
13187         (name_registered_for_update_p): Likewise.
13188         (ssa_names_to_replace): Likewise.
13189         (release_ssa_name_after_update_ssa): Likewise.
13190         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
13191         (dump_decl_set): Do not print a newline.
13192         (debug_decl_set): Do it here.
13193         (dump_update_ssa): And here.
13194         * tree-ssa-loop-im.c (move_computations): Adjust.
13195         (movement_possibility): Likewise.
13196         (determine_max_movement): Likewise.
13197         (gather_mem_refs_stmt): Likewise.
13198         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
13199         or NAME_MEMORY_TAG.
13200         * tree-complex.c (update_all_vops): Remove.
13201         (expand_complex_move): Adjust.
13202         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
13203         Simplify test for memory referencing statement.  Exclude
13204         non-invariant ADDR_EXPRs.
13205         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
13206         * tree-loop-distribution.c (generate_memset_zero): Adjust.
13207         (rdg_flag_uses): Likewise.
13208         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
13209         related code.
13210         (tree_optimize_tail_calls_1): Also split the
13211         edge from the entry block if we have degenerate PHI nodes in
13212         the first basic block.
13213         * tree.c (init_ttree): Remove memory-tag related code.
13214         (tree_code_size): Likewise.
13215         (tree_node_structure): Likewise.
13216         (build7_stat): Re-write to be build6_stat.
13217         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
13218         (SSA_VAR_P): Adjust.
13219         (struct tree_memory_tag): Remove.
13220         (struct tree_memory_partition_tag): Likewise.
13221         (union tree_node): Adjust.
13222         (build7): Re-write to be build6.
13223         * tree-pass.h (pass_reset_cc_flags): Remove.
13224         (TODO_update_address_taken): New flag.
13225         (pass_simple_dse): Remove.
13226         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
13227         * params.h (MAX_ALIASED_VOPS): Remove.
13228         (AVG_ALIASED_VOPS): Likewise.
13229         * omp-low.c (expand_omp_taskreg): Update SSA form.
13230         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
13231         aliases the lhs in a copy stmt.
13232         * tree-ssa-dse.c (struct address_walk_data): Remove.
13233         (memory_ssa_name_same): Likewise.
13234         (memory_address_same): Likewise.
13235         (get_kill_of_stmt_lhs): Likewise.
13236         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
13237         unused stores.  Look through PHI nodes into post-dominated regions.
13238         (dse_optimize_stmt): Simplify.  Properly remove stores.
13239         (tree_ssa_dse): Compute dominators.
13240         (execute_simple_dse): Remove.
13241         (pass_simple_dse): Likewise.
13242         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
13243         gimple_loaded_syms and gimple_stored_syms computation.
13244         * toplev.c (dump_memory_report): Dump alias and pta stats.
13245         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
13246         (vn_reference_eq): Likewise.
13247         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
13248         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
13249         valueize_vuses): Remove.
13250         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
13251         (get_def_ref_stmt_vuse): ... this.
13252         (vn_reference_lookup_2): New function.
13253         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
13254         walking equivalent vuses.  Simplify.
13255         (vn_reference_lookup): Likewise.
13256         (vn_reference_insert): Likewise.
13257         (vn_reference_insert_pieces): Likewise.
13258         (visit_reference_op_call): Simplify.
13259         (visit_reference_op_load): Likewise.
13260         (visit_reference_op_store): Likewise.
13261         (init_scc_vn): Remove shared_lookup_vuses initialization.
13262         (free_scc_vn): Remove shared_lookup_vuses freeing.
13263         (sort_vuses, sort_vuses_heap): Remove.
13264         (get_ref_from_reference_ops): Export.
13265         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
13266         vector with single vuse pointer.
13267         (vn_reference_lookup_pieces, vn_reference_lookup,
13268         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
13269         (shared_vuses_from_stmt): Remove.
13270         (get_ref_from_reference_ops): Declare.
13271         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
13272         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
13273         memory-tag related code.
13274         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
13275         (likely_value): Add comment, skip static-chain of call statements.
13276         (surely_varying_stmt_p): Adjust.
13277         (gimplify_and_update_call_from_tree): Likewise.
13278         (execute_fold_all_builtins): Do not rebuild alias info.
13279         (gimplify_and_update_call_from_tree): Properly update VOPs.
13280         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
13281         (copy_ref_info): Remove memory-tag related code.
13282         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
13283         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
13284         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
13285         computation.
13286         * tree-ssa-dom.c (gimple_p): Remove typedef.
13287         (eliminate_redundant_computations): Adjust.
13288         (record_equivalences_from_stmt): Likewise.
13289         (avail_expr_hash): Likewise.
13290         (avail_expr_eq): Likewise.
13291         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
13292         (stmt_makes_single_load): Likewise.
13293         (stmt_makes_single_store): Likewise.
13294         * tree-ssa-alias.c: Rewrite completely.
13295         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
13296         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
13297         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
13298         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
13299         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
13300         Remove public functions.
13301         (pass_reset_cc_flags): Remove.
13302         (pass_build_alias): Move ...
13303         * tree-ssa-structalias.c (pass_build_alias): ... here.
13304         * tree-ssa-alias.c (may_be_aliased): Move ...
13305         * tree-flow-inline.h (may_be_aliased): ... here.
13306         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
13307         count_uses_and_derefs): Move ...
13308         * gimple.c: ... here.
13309         * gimple.h (count_uses_and_derefs): Declare.
13310         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
13311         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
13312         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
13313         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
13314         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
13315         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
13316         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
13317         New functions.
13318         * tree-dfa.c (refs_may_alias_p): Move ...
13319         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
13320         * tree-ssa-alias.h: New file.
13321         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
13322         (statement_sink_location): Likewise.
13323         * opts.c (decode_options): Do not adjust max-aliased-vops or
13324         avg-aliased-vops values.
13325         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
13326         (TV_CALL_CLOBBER): Likewise.
13327         (TV_FLOW_SENSITIVE): Likewise.
13328         (TV_FLOW_INSENSITIVE): Likewise.
13329         (TV_MEMORY_PARTITIONING): Likewise.
13330         (TV_ALIAS_STMT_WALK): New timevar.
13331         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
13332         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
13333         (get_address_description): Remove memory-tag related code.
13334         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
13335         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
13336         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
13337         and immediate uses in statements.  Document.
13338         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
13339         (dump_symbols): Remove.
13340         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
13341         * alias.c (get_deref_alias_set): New function split out from ...
13342         (get_alias_set): ... here.
13343         * alias.h (get_deref_alias_set): Declare.
13344         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
13345         type parameter.  Remove restrict pointer handling.  Create a
13346         ref-all pointer in case type-based alias sets do not conflict.
13347         (vect_analyze_data_refs): Remove SMT related code.
13348         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
13349         (vectorizable_load): Likewise.
13350         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
13351         (DR_SYMBOL_TAG, DR_VOPS): Remove.
13352         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
13353         Ignore vops and SMTs.
13354         (dr_analyze_alias): Likewise..
13355         (free_data_ref): Likewise.
13356         (create_data_ref): Likewise.
13357         (analyze_all_data_dependences): Likewise.
13358         (get_references_in_stmt): Adjust.
13359         * tree-flow-inline.h (gimple_aliases_computed_p,
13360         gimple_addressable_vars, gimple_call_clobbered_vars,
13361         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
13362         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
13363         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
13364         gimple_mem_ref_stats): Remove.
13365         (gimple_vop): New function.
13366         (op_iter_next_use): Remove vuses and mayuses cases.
13367         (op_iter_next_def): Remove vdefs case.
13368         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
13369         (clear_and_done_ssa_iter): Do not set removed fields.
13370         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
13371         Assert we are not iterating over vuses or vdefs if not also
13372         iterating over uses or defs.
13373         (op_iter_init_use): Likewise.
13374         (op_iter_init_def): Likewise.
13375         (op_iter_next_vdef): Remove.
13376         (op_iter_next_mustdef): Likewise.
13377         (op_iter_init_vdef): Likewise.
13378         (compare_ssa_operands_equal): Likewise.
13379         (link_use_stmts_after): Handle vuse operand.
13380         (is_call_used): Use is_call_clobbered.
13381         (is_call_clobbered): Global variables are always call clobbered,
13382         query the call-clobbers bitmap.
13383         (mark_call_clobbered): Ignore global variables.
13384         (clear_call_clobbered): Likewise.
13385         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
13386         virtual operands sanity check.
13387         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
13388         Remove.
13389         (TARGET_MEM_REF): Remove TMR_TAG operand.
13390         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
13391         Remove call-clobber related code.
13392         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
13393         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
13394         partitions or escape reason.
13395         (get_single_def_stmt, get_single_def_stmt_from_phi,
13396         get_single_def_stmt_with_phi): Remove.
13397         (dump_referenced_vars): Tidy.
13398         (get_ref_base_and_extent): Allow bare decls.
13399         (collect_dfa_stats): Adjust.
13400         * graphite.c (rename_variables_in_stmt): Adjust.
13401         (graphite_copy_stmts_from_block): Likewise.
13402         (translate_clast): Likewise.
13403         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
13404         (EXPR_DIES): New.
13405         (translate_vuse_through_block): Use the oracle.
13406         (phi_translate_1): Adjust.
13407         (value_dies_in_block_x): Use the oracle.  Cache the outcome
13408         in EXPR_DIES.
13409         (valid_in_sets): Check if the VUSE for
13410         a REFERENCE is available.
13411         (eliminate): Do not remove stmts during elimination,
13412         instead queue and remove them afterwards.
13413         (do_pre): Do not rebuild alias info.
13414         (pass_pre): Run TODO_rebuild_alias before PRE.
13415         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
13416         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
13417         (mark_all_v_defs_stmt): Remove.
13418         (mark_all_v_defs_seq): Adjust.
13419         (sra_replace): Likewise.
13420         (scalarize_use): Likewise.
13421         (scalarize_copy): Likewise.
13422         (scalarize_init): Likewise.
13423         (scalarize_ldst): Likewise.
13424         (todoflags): Remove.
13425         (tree_sra): Do not rebuild alias info.
13426         (tree_sra_early): Adjust.
13427         (pass_sra): Run TODO_update_address_taken before SRA.
13428         * tree-predcom.c (set_alias_info): Remove.
13429         (prepare_initializers_chain): Do not call it.
13430         (mark_virtual_ops_for_renaming): Adjust.
13431         (mark_virtual_ops_for_renaming_list): Remove.
13432         (initialize_root_vars): Adjust.
13433         (initialize_root_vars_lm): Likewise.
13434         (prepare_initializers_chain): Likewise.
13435         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
13436         (may_propagate_copy_into_stmt): Likewise.
13437         (merge_alias_info): Do nothing for now.
13438         (propagate_tree_value_into_stmt): Adjust.
13439         (stmt_may_generate_copy): Likewise.
13440         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
13441         not mark symbols for renaming.
13442         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
13443         with the same statement, make sure to update the new pointed-to one.
13444         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
13445         call statements, do not mark symbols for renaming.
13446         (mark_operand_necessary): Dump something.
13447         (ref_may_be_aliased): New function.
13448         (mark_aliased_reaching_defs_necessary_1): New helper function.
13449         (mark_aliased_reaching_defs_necessary): Likewise.
13450         (mark_all_reaching_defs_necessary_1): Likewise.
13451         (mark_all_reaching_defs_necessary): Likewise.
13452         (propagate_necessity): Do not process virtual PHIs.  For
13453         non-aliased loads mark all reaching definitions as necessary.
13454         For aliased loads and stores mark the immediate dominating
13455         aliased clobbers as necessary.
13456         (visited): New global static.
13457         (perform_tree_ssa_dce): Free visited bitmap after propagating
13458         necessity.
13459         (remove_dead_phis): Perform simple dead virtual PHI removal.
13460         (remove_dead_stmt): Properly unlink virtual operands when
13461         removing stores.
13462         (eliminate_unnecessary_stmts): Schedule PHI removal after
13463         stmt removal.
13464         * tree-ssa-ter.c (is_replaceable_p): Adjust.
13465         (process_replaceable): Likewise.
13466         (find_replaceable_in_bb): Likewise.
13467         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
13468         based on the single gimple vop.
13469         (verify_flow_insensitive_alias_info): Remove.
13470         (verify_flow_sensitive_alias_info): Likewise.
13471         (verify_call_clobbering): Likewise.
13472         (verify_memory_partitions): Likewise.
13473         (verify_alias_info): Likewise.
13474         (verify_ssa): Adjust..
13475         (execute_update_addresses_taken): Export.  Update SSA
13476         manually.  Optimize only when optimizing.  Use a local bitmap.
13477         (pass_update_address_taken): Remove TODO_update_ssa, add
13478         TODO_dump_func.
13479         (pass_update_address_taken): Just use TODO_update_address_taken.
13480         (init_tree_ssa): Do not initialize addressable_vars.
13481         (verify_ssa): Verify new VUSE / VDEF properties.
13482         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
13483         Do not call verify_alias_info.
13484         (delete_tree_ssa): Clear the VUSE, VDEF operands.
13485         Do not free the loaded and stored syms bitmaps.  Reset the escaped
13486         and callused solutions.  Do not free addressable_vars.
13487         Remove memory-tag related code.
13488         (warn_uninitialized_var): Aliases are always available.
13489         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
13490         * lambda-code.c (can_put_in_inner_loop): Adjust.
13491         (can_put_after_inner_loop): Likewise.
13492         (perfect_nestify): Likewise.
13493         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
13494         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
13495         (vectorizable_conversion): Do not mark symbols for renaming.
13496         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
13497         (expand_call_inline): Unlink the calls virtual operands before
13498         replacing it.
13499         (tree_function_versioning): Do not call update_ssa if we are not
13500         updating clones.  Simplify.
13501         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
13502         (propagate_with_phi): Likewise..
13503         * tree-outof-ssa.c (create_temp): Remove memory tag and call
13504         clobber code.  Assert we are not aliased or global.
13505         * tree-flow.h: Include tree-ssa-alias.h
13506         (enum escape_type): Remove.
13507         (struct mem_sym_stats_d): Likewise.
13508         (struct mem_ref_stats_d): Likewise.
13509         (struct gimple_df): Add vop member.  Remove global_var,
13510         call_clobbered_vars, call_used_vars, addressable_vars,
13511         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
13512         escaped and callused members.
13513         (struct ptr_info_def): Remove all members, add points-to solution
13514         member pt.
13515         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
13516         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
13517         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
13518         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
13519         (tree-ssa-alias.o): Likewise.
13520         (toplev.o): Add tree-ssa-alias.h
13521         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
13522         * gimple.c (gimple_set_bb): Fix off-by-one error.
13523         (is_gimple_reg): Do not handle memory tags.
13524         (gimple_copy): Also copy virtual operands.
13525         Delay updating the statement.  Do not reset loaded and stored syms.
13526         (gimple_set_stored_syms): Remove.
13527         (gimple_set_loaded_syms): Likewise.
13528         (gimple_call_copy_skip_args): Copy the virtual operands
13529         and mark the new statement modified.
13530         * tree-ssa-structalias.c (may_alias_p): Remove.
13531         (set_uids_in_ptset): Take the alias set to prune with as
13532         parameter.  Fold in the alias test of may_alias_p.
13533         (compute_points_to_sets): Compute whether a ptr is dereferenced
13534         in a local sbitmap.
13535         (process_constraint): Deal with &ANYTHING on the lhs, reject all
13536         other ADDRESSOF constraints on the lhs.
13537         (get_constraint_for_component_ref): Assert that we don't get
13538         ADDRESSOF constraints from the base of the reference.
13539         Properly generate UNKNOWN_OFFSET for DEREF if needed.
13540         (struct variable_info): Remove collapsed_to member.
13541         (get_varinfo_fc): Remove.
13542         (new_var_info): Do not set collapsed_to.
13543         (dump_constraint): Do not follow cycles.
13544         (dump_constraint_graph): Likewise.
13545         (build_pred_graph): Likewise.
13546         (build_succ_graph): Likewise.
13547         (rewrite_constraints): Likewise.
13548         (do_simple_structure_copy): Remove.
13549         (do_rhs_deref_structure_copy): Remove.
13550         (do_lhs_deref_structure_copy): Remove.
13551         (collapse_rest_of_var): Remove.
13552         (do_structure_copy): Re-implement.
13553         (pta_stats): New global variable.
13554         (dump_pta_stats): New function.
13555         (struct constraint_expr): Make offset signed.
13556         (UNKNOWN_OFFSET): Define special value.
13557         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
13558         (solution_set_expand): New helper function split out from ...
13559         (do_sd_constraint): ... here.
13560         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
13561         (do_ds_constraint): Likewise.
13562         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
13563         and CALLUSED = *CALLUSED.
13564         (set_union_with_increment): Make inc argument signed.
13565         (type_safe): Remove.
13566         (get_constraint_for_ptr_offset): Handle unknown and negative
13567         constant offsets.
13568         (first_vi_for_offset): Handle offsets before start.  Bail
13569         out early for offsets beyond the variable extent.
13570         (first_or_preceding_vi_for_offset): New function.
13571         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
13572         Together with ESCAPED = *ESCAPED this properly computes reachability.
13573         (find_what_var_points_to): New function.
13574         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
13575         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
13576         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
13577         pt_solutions_intersect): New functions.
13578         (compute_call_used_vars): Remove.
13579         (compute_may_aliases): New main entry into PTA computation.
13580         * gimple.h (gimple_p): New typedef.
13581         (struct gimple_statement_base): Remove references_memory_p.
13582         (struct gimple_statement_with_memory_ops_base): Remove
13583         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
13584         members.
13585         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
13586         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
13587         gimple_set_references_memory): Remove.
13588         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
13589         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
13590         New functions.
13591         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
13592         (verify_expr): Allow RESULT_DECL.
13593         (gimple_duplicate_bb): Do not copy virtual operands.
13594         (gimple_duplicate_sese_region): Adjust.
13595         (gimple_duplicate_sese_tail): Likewise.
13596         (mark_virtual_ops_in_region): Remove.
13597         (move_sese_region_to_fn): Do not call it.
13598         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
13599         and pass_simple_dse.
13600         (execute_function_todo): Handle TODO_update_address_taken,
13601         call execute_update_addresses_taken for TODO_rebuild_alias.
13602         (execute_todo): Adjust.
13603         (execute_one_pass): Init dump files early.
13604         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
13605         call-clobbered.
13606         (create_general_new_stmt): Clear vops.
13607         * tree-ssa-reassoc.c (get_rank): Adjust.
13608         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
13609         symbols for renaming.
13610         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
13611         (PARAM_AVG_ALIASED_VOPS): Likewise.
13612         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
13613         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
13614         * tree-ssa-operands.c: Simplify for new virtual operand representation.
13615         (operand_build_cmp, copy_virtual_operands,
13616         create_ssa_artificial_load_stmt, add_to_addressable_set,
13617         gimple_add_to_addresses_taken): Remove public functions.
13618         (unlink_stmt_vdef): New function.
13619
13620 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
13621
13622         * config.gcc (powerpc-*-linux*): Merge variants.
13623
13624 2009-04-02  Chao-ying Fu  <fu@mips.com>
13625             James Grosbach  <james.grosbach@microchip.com>
13626
13627         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
13628         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
13629         cop0_sp_offset.
13630         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
13631         keep_interrupts_masked_p, use_debug_exception_return_p.
13632         (mips_attribute_table): Add interrupt, use_shadow_register_set,
13633         keep_interrupts_masked, use_debug_exception_return.
13634         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
13635         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
13636         New functions.
13637         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
13638         (mips_print_operand): Process COP0 registers to print $0 .. $31
13639         correctly for GAS to process.
13640         (mips_interrupt_extra_call_saved_reg_p): New function.
13641         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
13642         extra registers.
13643         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
13644         (mips_compute_frame_info): Add supports for interrupt context that
13645         includes doubleword accumulators and COP0 registers.
13646         (mips_for_each_saved_acc): New function.
13647         (mips_for_each_saved_gpr_and_fpr): Change the function name from
13648         mips_for_each_saved_reg.
13649         (mips_save_reg): Save accumulators.
13650         (mips_kernel_reg_p): A new for_each_rtx callback.
13651         (mips_expand_prologue): Support interrupt handlers.
13652         (mips_restore_reg): Restore accumulators.
13653         (mips_expand_epilogue): Support interrupt handlers.
13654         (mips_can_use_return_insn): Return false for interrupt handlers.
13655         (mips_epilogue_uses): New function.
13656         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
13657         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
13658         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
13659         cop0_move): New instructions.
13660         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
13661         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
13662         defines.
13663         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
13664         New defines.
13665         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
13666         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
13667         interrupt handlers, we use K0 as the temporary register.
13668         (EPILOGUE_USES): Change to a function call.
13669         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
13670         handlers, we use K0 as the temporary register.
13671
13672         * doc/extend.texi (Function Attributes): Document interrupt,
13673         use_shadow_register_set, keep_interrupts_masked,
13674         use_debug_exception_return for MIPS attributes.
13675
13676 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
13677
13678         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
13679         Remove a number of t-files from tmake_file.
13680         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
13681         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
13682         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
13683         target_prototype, not TARGET_PROTOTYPE.
13684         (LINK_OS_GNU_SPEC): Define.
13685         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
13686         and darwin-ldoubdle.c.
13687
13688 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13689
13690         PR driver/39293
13691         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
13692         (cpp_options): Ditto.
13693         (default_compilers): Ditto.
13694         (display_help): Ditto.
13695         (process_command): Ditto.
13696         (do_spec_1): Ditto.
13697         (set_input): Use lbasename instead of duplicate code.
13698         (save_temps_prefix): New static for -save-temps=obj.
13699         (save_temps_length): Ditto.
13700
13701         * doc/invoke.texi (-save-temps=obj): Document new variant to
13702         -save-temps switch.
13703
13704 2009-04-02  Jeff Law  <law@redhat.com>
13705
13706         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
13707         variable.
13708
13709 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
13710
13711         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
13712         * configure: Regenerated.
13713
13714 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
13715
13716         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
13717         share the argument list.
13718
13719 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
13720
13721         Merge
13722
13723         2009-02-12  Diego Novillo  <dnovillo@google.com>
13724
13725         * varpool.c (debug_varpool): New.
13726         * cgraph.h (debug_varpool): Declare.
13727
13728 2009-04-02  Jan Hubicka  <jh@suse.cz>
13729
13730         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
13731         pass.
13732
13733 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
13734
13735         * config/i386/i386.c (ix86_abi): Move initialization to ...
13736         (override_options): Here.
13737
13738 2009-04-02  Christian Bruel  <christian.bruel@st.com>
13739
13740         * config/sh/sh.c (sh_dwarf_register_span): New function.
13741         (TARGET_DWARF_REGISTER_SPAN): Define.
13742         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
13743
13744 2009-04-02  Ira Rosen  <irar@il.ibm.com>
13745
13746         PR tree-optimization/39595
13747         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
13748         interleaved loads group is not  greater than the SLP group size.
13749
13750 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
13751
13752         * builtins.c (is_builtin_name): New.
13753         (called_as_built_in): Use is_builtin_name.
13754         * tree.h (is_builtin_name): New.
13755         * varasm.c (incorporeal_function_p): Use is_builtin_name
13756
13757 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
13758
13759         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
13760
13761 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
13762
13763         PR c++/26693
13764         * c-decl.c (clone_underlying_type): Move this ...
13765         * c-common.c (set_underlying_type): ... here.
13766         Also, make sure the function properly sets TYPE_STUB_DECL() on
13767         the newly created typedef variant type.
13768         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
13769         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
13770         points.
13771
13772 2009-04-02  Richard Guenther  <rguenther@suse.de>
13773
13774         PR tree-optimization/37221
13775         * tree-flow.h (degenerate_phi_result): Declare.
13776         * tree-ssa-dom.c (degenerate_phi_result): Export.
13777         * tree-scalar-evolution.c (analyze_initial_condition): If
13778         the initial condition is defined by a degenerate PHI node
13779         use the degenerate value.
13780
13781 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
13782
13783         PR rtl-optimization/39588
13784         * combine.c (merge_outer_ops): Do not set the constant when this
13785         is not necessary.
13786         (simplify_shift_const_1): Do not modify it either in this case.
13787
13788 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
13789
13790         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
13791         tuning is deprecated if -mtune value is set to an Itanium1 variant.
13792
13793 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
13794
13795         PR c/29027
13796         * c-lex.c (interpret_float): Default (no suffix) is double.
13797
13798 2009-04-1  Xinliang David Li  <davidxl@google.com>
13799
13800         * config/i386/i386.c (legitimate_constant_p): Recognize
13801         all one vector constant.
13802
13803 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13804
13805         * config/vax/vax.c: Add #includes to silence warnings.
13806         Change #include order to silence two warnings.
13807
13808 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13809
13810         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
13811         (ASM_SPEC): Pass -k to the assembler for PIC code.
13812
13813 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13814
13815         * config.gcc: Add vax-*-linux* to the switch.
13816         * config/vax/linux.h: New file. (TARGET_VERSION,
13817         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
13818
13819 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13820
13821         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
13822         Use predicate macros instead of GET_CODE() == foo.
13823         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
13824         ashlsi3, rotrsi3, <unnamed>): Likewise.
13825
13826 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13827
13828         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
13829         jbbccihi, jbbccisi): Remova trailing whitespace.
13830         * config/vax/constraints.md: Likewise.
13831         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
13832         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
13833         * config/vax/predicates.md: Likewise.
13834         * config/vax/vax.c (print_operand_address, vax_output_int_move,
13835         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
13836         * config/vax/vax.h: Likewise.
13837         * config/vax/vax.md (nonlocal_goto): Likewise.
13838
13839 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13840
13841         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
13842         (indirectable_address_p, adjacent_operands_p): Add spaces around
13843         braces.
13844         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
13845
13846 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13847
13848         * config/vax/vax.c (legitimate_constant_address_p,
13849         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
13850         index_term_p, reg_plus_index_p, legitimate_address_p,
13851         vax_mode_dependent_address_p): Update comments to match functions
13852         modified by the recent int->bool conversion.
13853
13854 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13855
13856         * config/vax/builtins.md: Update copyright message.
13857         * config/vax/constraints.md: Likewise.
13858         * config/vax/netbsd-elf.h: Likewise.
13859         * config/vax/predicates.md: Likewise.
13860         * config/vax/vax-protos.h: Likewise.
13861         * config/vax/vax.c: Likewise.
13862         * config/vax/vax.h: Likewise.
13863         * config/vax/vax.md: Likewise.
13864         * config/vax/vax.opt: Likewise.
13865
13866 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13867
13868         * config/vax/builtins.md (ffssi2, ffssi2_internal,
13869         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
13870         * config/vax/constraints.md (B, R): Likewise.
13871         * config/vax/predicates.md (external_memory_operand,
13872         nonimmediate_addsub_di_operand): Likewise.
13873         * config/vax/vax.c (vax_output_int_add): Likewise.
13874         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
13875         untyped_call): Likewise.
13876
13877 2009-04-01  Matt Thomas  <matt@3am-software.com>
13878
13879         * config/vax/predicates.md: New file.
13880         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
13881         external_const_operand, nonsymbolic_operand, external_memory_operand,
13882         indirect_memory_operand, indexed_memory_operand,
13883         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
13884         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
13885         predicate.
13886         * config/vax/constraints.md: New file.
13887         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
13888         New constraint.
13889         * config/vax/builtins.md: New file.
13890         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
13891         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
13892         jbbccisi): Define.
13893         * config/vax/vax.opt (mqmath): Add option.
13894         * config/vax/vax.md (isfx): Extend with DI.
13895         (VAXintQH, VAXintQHSD): Define.
13896         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
13897         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
13898         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
13899         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
13900         (movdi): Update constraints and use vax_output_int_move().
13901         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
13902         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
13903         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
13904         nonlocal_goto): New.
13905         (mov<mode>): Extend accepted operand types.
13906         (subdi3_old): Rename from subdi3, change update constraints and use
13907         a new implementation.
13908         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
13909         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
13910         MOVE_RATIO, CLEAR_RATIO): Define.
13911         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
13912         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
13913         (PRINT_OPERAND): Redefine using a function instead of inlined code.
13914         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
13915         (split_quadword_operands): Make static and really allow variable
13916         splitting.
13917         (print_operand_address): Update for PIC generation.
13918         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
13919         indexable_address_p, fixup_mathdi_operand,
13920         vax_expand_addsub_di_operands, adjacent_operands_p): New.
13921         (vax_float_literal, legitimate_constant_p,
13922         indirectable_constant_address_p, index_term_p,
13923         reg_plus_index_p): Return bool instead of int.
13924         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
13925         where needed.
13926         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
13927         generation.
13928         (vax_output_conditional_branch): Indent.
13929         (legitimate_constant_address_p, indirectable_constant_address_p,
13930         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
13931         vax_mode_dependent_address_p): Return bool instead of int, update for
13932         PIC generation.
13933         * config/vax/vax-protos.h (legitimate_constant_address_p,
13934         legitimate_constant_p, legitimate_address_p,
13935         vax_mode_dependent_address_p): Change declaration to bool.
13936         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
13937         vax_expand_addsub_di_operands, vax_output_int_subtract,
13938         vax_output_movmemsi): Declare.
13939         (split_quadword_operands, vax_float_literal): Delete declaration.
13940         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
13941         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
13942         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
13943         ASM_OUTPUT_DWARF_PCREL): Define.
13944         (ASM_SPEC): Change definition to allow PIC generation.
13945
13946 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
13947
13948         * doc/sourcebuild.texi: Update front-end requirements.
13949
13950 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
13951
13952         PR target/39226
13953         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
13954         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
13955         (booldi3_internal3): Use boolean_or_operator instead of
13956         boolean_operator.
13957
13958 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
13959
13960         PR c/39605
13961         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
13962         declarator whose size is not an integer constant expression but
13963         folds to an integer constant, then treat it as a constant
13964         subsequently.
13965
13966 2009-04-01  Richard Guenther  <rguenther@suse.de>
13967
13968         * fold-const.c (fold_plusminus_mult_expr): Do not fold
13969         i * 4 + 2 to (i * 2 + 1) * 2.
13970
13971 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
13972
13973         PR c/37772
13974         * c-parser.c (c_parser_asm_statement): Skip until close paren and
13975         return if c_parser_asm_string_literal returned NULL.
13976
13977 2009-04-01  Nick Clifton  <nickc@redhat.com>
13978
13979         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
13980         already defined.
13981         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
13982         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
13983         other typedefs to avoid conflicts with libgcc2.c.  Define labels
13984         to gain 16-bit bit-manipulation functions from libgcc2.c and then
13985         include it.
13986         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
13987         to gain 16-bit trapping arithmetic functions from libgcc2.c and
13988         then include it.
13989
13990 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
13991
13992         * varasm.c (default_function_rodata_section): Declare DOT as
13993         const char*.
13994
13995 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
13996             Andrey Galkin  <agalkin@hypercom.com>
13997
13998         PR/39492
13999         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
14000         Make object_name unique for each process.
14001
14002 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
14003
14004         PR other/39591
14005         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
14006         addressable variables in the parallel that could go out of scope while
14007         running queued tasks.
14008
14009 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
14010
14011         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
14012         (CASE_VALUES_THRESHOLD): Redefine.
14013         * config/avr/avr.c (avr_override_options): Remove initialization of
14014         avr_case_values_threshold variable.
14015         (avr_case_values_threshold): Remove variable. Add new function.
14016         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
14017         * config/avr/avr.opt (mno-tablejump): Remove option.
14018         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
14019
14020 2009-04-01  DJ Delorie  <dj@redhat.com>
14021
14022         * varasm.c (default_function_rodata_section): Don't assume
14023         anything about where the first '.' in the section name is.
14024
14025 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
14026
14027         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
14028         rs6000_emit_stack_tie.
14029
14030 2009-03-31  Ian Lance Taylor  <iant@google.com>
14031
14032         * tree-eh.c (tree_remove_unreachable_handlers): Compare
14033         gimple_code with GIMPLE_RESX, not RESX.
14034
14035 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14036
14037         * c-common.c (c_get_ident): New.
14038         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
14039
14040 2009-04-01  Ben Elliston  <bje@au.ibm.com>
14041
14042         * config/rs6000/sysv4.opt (msdata): Improve option description.
14043
14044 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
14045
14046         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
14047         (divdf3_internal_lat): Remove.
14048         (divxf3_internal_lat): Remove.
14049         (divxf3_internal_thr): Remove.
14050         (divxf): Use divxf3_internal.
14051         * config/ia64/div.md (divsf3_internal_lat): New.
14052         (divdf3_internal_lat): New.
14053         (divxf3_internal): New.
14054
14055 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14056
14057         PR c/448
14058         * Makefile.in (USE_GCC_STDINT): Define.
14059         (stmp-int-hdrs): Install stdint.h if applicable.
14060         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
14061         if known.
14062         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
14063         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
14064         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
14065         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14066         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14067         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14068         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14069         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14070         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
14071         (c_common_nodes_and_builtins): Initialize
14072         underlying_wchar_type_node.  Do not initialize
14073         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
14074         nodes for new types.
14075         (c_stddef_cpp_builtins): Define macros for new types.
14076         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
14077         Remove.
14078         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
14079         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
14080         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
14081         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
14082         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
14083         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
14084         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
14085         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
14086         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
14087         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
14088         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
14089         int16_type_node, int32_type_node, int64_type_node,
14090         uint8_type_node, uint16_type_node, c_uint32_type_node,
14091         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
14092         int_least32_type_node, int_least64_type_node,
14093         uint_least8_type_node, uint_least16_type_node,
14094         uint_least32_type_node, uint_least64_type_node,
14095         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
14096         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
14097         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
14098         uintptr_type_node): Define.
14099         * c-cppbuiltin.c (builtin_define_constants,
14100         builtin_define_type_minmax): New.
14101         (builtin_define_stdint_macros): Define more macros.
14102         (c_cpp_builtins): Define more limit macros.
14103         (type_suffix): New.
14104         (builtin_define_type_max): Define in terms of
14105         builtin_define_type_minmax.  Remove is_long parameter.  All
14106         callers changed.
14107         * config.gcc (use_gcc_stdint): Define.
14108         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
14109         Add newlib-stdint.h for generic targets.
14110         * config/glibc-stdint.h, config/newlib-stdint.h,
14111         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
14112         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
14113         * config/score/score.h (UINTPTR_TYPE): Define.
14114         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
14115         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
14116         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14117         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14118         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14119         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14120         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14121         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
14122         * config/spu/spu.h (STDINT_LONG32): Define.
14123         * configure.ac (use_gcc_stdint): Substitute.
14124         * configure: Regenerate.
14125         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
14126         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
14127         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
14128         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
14129         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
14130         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
14131         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
14132         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
14133         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
14134         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
14135         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
14136         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
14137         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
14138         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
14139         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
14140         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
14141         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
14142         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
14143         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
14144         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
14145         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
14146         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
14147         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
14148         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14149         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14150         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14151         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14152         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14153         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
14154
14155 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
14156
14157         * loop-iv.c (suitable_set_for_replacement): Renamed from
14158         simplify_using_assignment; changed to return bool and to accept new
14159         args DEST and SRC.  Return true iff we find a source/destination pair
14160         that can be used to make a replacement, and fill SRC and DEST if so.
14161         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
14162         changed.
14163         (simplify_using_initial_values): Deal with altered regs here and track
14164         more precisely the effect they have on the validity of our expression.
14165
14166         * loop-iv.c (simplify_using_condition): A condition of the form
14167         (EQ REG CONST) can be used to simply make a substitution.
14168         (simplify_using_initial_values): Keep track of conditions we have seen
14169         and keep using them to simplify new expressions, while applying the
14170         same substitutions to them as to the expression.
14171
14172         * simplify-rtx.c (simplify_relational_operation_1): Simplify
14173         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
14174         GEU/LTU reversed.
14175
14176         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
14177         changed.  Use this when trying to improve the upper bound.
14178         Generate the comparison by using simplify_gen_relational.
14179
14180         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
14181
14182         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
14183         functions.
14184         (simplify_using_assignment, simplify_using_initial_values): Call
14185         replace_in_expr to make replacements.  Call replace_single_def_regs
14186         once on the initial version of the expression.
14187
14188 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14189
14190         PR target/27237
14191         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
14192
14193 2009-03-31  Richard Guenther  <rguenther@suse.de>
14194
14195         PR middle-end/31029
14196         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
14197         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
14198
14199 2009-03-31  Richard Guenther  <rguenther@suse.de>
14200
14201         * tree.h (div_if_zero_remainder): Declare.
14202         * fold-const.c (div_if_zero_remainder): Export.
14203         * tree-ssa-forwprop.c
14204         (forward_propagate_addr_into_variable_array_index): Handle
14205         constant array index addition outside of the variable index.
14206
14207 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14208
14209         PR target/39592
14210         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
14211         define_splits, floatunssi<mode>2): Require x87 conversions from
14212         DImode to be permitted.
14213
14214 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14215
14216         PR preprocessor/15638
14217         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
14218
14219 2009-03-31  Richard Guenther  <rguenther@suse.de>
14220
14221         PR middle-end/23401
14222         PR middle-end/27810
14223         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
14224         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
14225         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
14226         a separate statement.
14227         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
14228         (lookup_tmp_var): Likewise.
14229         (is_gimple_formal_tmp_or_call_rhs): Remove.
14230         (is_gimple_reg_or_call_rhs): Rename to ...
14231         (is_gimple_reg_rhs_or_call): ... this.
14232         (is_gimple_mem_or_call_rhs): Rename to ...
14233         (is_gimple_mem_rhs_or_call): ... this.
14234         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
14235         DECL_GIMPLE_REG_P only if is_formal is true.
14236         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
14237         for non-proper post-modify expression gimplification.
14238         (gimplify_self_mod_expr): For post-modify expressions gimplify
14239         the lvalue to a minimal lvalue.
14240         (rhs_predicate_for): Remove formal temp case.
14241         (gimplify_modify_expr_rhs): Likewise.
14242         (gimplify_addr_expr): Use is_gimple_reg.
14243         (gimplify_expr): Remove formal temp cases.
14244         (gimple_regimplify_operands): Likewise.
14245         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
14246         and FILTER_EXPR like constants.
14247         * gimple.c (walk_gimple_op): Fix val_only initialization, use
14248         is_gimple_reg.
14249         (is_gimple_formal_tmp_rhs): Remove.
14250         (is_gimple_reg_rhs): Remove special casing.
14251         (is_gimple_mem_rhs): Fix.
14252         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
14253         (is_gimple_formal_tmp_var): Remove.
14254         (is_gimple_formal_tmp_reg): Likewise.
14255         (is_gimple_min_lval): Allow invariant component ref parts.
14256         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
14257         is_gimple_formal_tmp_reg): Remove declarations.
14258         * tree-cfg.c (verify_expr): Verify that variables with address
14259         taken do not have DECL_GIMPLE_REG_P set.
14260         * tree-mudflap.c (mf_build_check_statement_for): Use
14261         force_gimple_operand instead of gimplify_expr.
14262
14263 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
14264
14265         * modulo-sched.c (sms_schedule_by_order): Pass the actual
14266         schedulable rows to compute_split_row.
14267
14268 2009-03-31  Ben Elliston  <bje@au.ibm.com>
14269
14270         PR target/31635
14271         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
14272         OPT_mvrsave.
14273
14274 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
14275
14276         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
14277         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
14278         * configure: Regenerate.
14279         * config.in: Regenerate.
14280         * config/rs6000/rs6000.opt (mtls-markers): Add.
14281         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
14282         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
14283         (tls_ld_aix, tls_ld_sysv): Likewise.
14284         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
14285         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
14286
14287 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
14288
14289         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
14290
14291 2009-03-30  Jan Hubicka  <jh@suse.cz>
14292
14293         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
14294         out of RESX.
14295         (tree_remove_unreachable_handlers): Cleanup EH predecestor
14296         detection and label handling.
14297
14298 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
14299
14300         * ira-int.h (ira_allocno): Rename left_conflicts_num to
14301         left_conflicts_size.
14302         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
14303         ALLOCNO_LEFT_CONFLICTS_SIZE.
14304
14305         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
14306         remove_allocno_from_bucket_and_push,
14307         allocno_spill_priority_compare, push_allocnos_to_stack,
14308         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
14309         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
14310         (setup_allocno_left_conflicts_num): Ditto.  Rename to
14311         setup_allocno_left_conflicts_size.
14312         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
14313         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
14314         setup_allocno_left_conflicts_size instead of
14315         setup_allocno_left_conflicts_num.
14316
14317         * ira-build.c (ira_create_allocno): Use
14318         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
14319         ALLOCNO_LEFT_CONFLICTS_NUM.
14320
14321 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
14322
14323         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
14324         instead of DF_LR_OUT.
14325
14326         * ira-lives.c (process_bb_node_lives): Ditto.
14327
14328         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
14329         instead of DF_LR_{OUT,IN}.
14330
14331         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
14332
14333         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
14334
14335 2009-03-30  Jan Hubicka  <jh@suse.cz>
14336
14337         * except.c (label_to_region_map): Fix thinko.
14338
14339 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
14340
14341         PR middle-end/38237
14342         * tree.h (tree_find_value): New declaration.
14343         * tree.c (tree_find_value): New function.
14344         * varasm.c (assemble_external): Avoid duplicate entries on lists.
14345
14346 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
14347
14348         PR debug/39563
14349         * c-decl.c (struct c_binding): Add locus field.
14350         (bind): Add locus argument, set locus field from it.
14351         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
14352         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
14353         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
14354         implicitly_declare, undeclared_variable, lookup_label,
14355         declare_label, c_make_fname_decl, c_builtin_function,
14356         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
14357         bind callers.
14358
14359 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
14360
14361         PR target/38781
14362         * config/i386/i386.c (classify_argument): Check total size of
14363         structure.
14364
14365 2009-03-30  Martin Jambor  <mjambor@suse.cz>
14366
14367         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
14368         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
14369         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
14370         respectively.
14371
14372         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
14373         seen_variable_array_ref while also traversing a union.
14374
14375         * tree-inline.c (optimize_inline_calls): Do not call
14376         cgraph_node_remove_callees.
14377         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
14378         (pass_remove_cgraph_callee_edges): New variable.
14379         * passes.c (init_optimization_passes): Add
14380         pass_remove_cgraph_callee_edges after early inlining and before all
14381         late intraprocedural passes.
14382
14383         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
14384
14385 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14386
14387         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
14388         Fix typos in names.
14389
14390 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14391
14392         * combine.c (simplify_comparison): Use have_insn_for.
14393         * dojump.c (do_jump): Likewise.
14394
14395 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14396
14397         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
14398         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
14399         sparc_compare_op0 like sparc_compare_emitted used to be handled.
14400         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
14401         instead of sparc_compare_emitted.
14402         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
14403         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
14404         instead of sparc_compare_emitted.
14405
14406 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14407
14408         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
14409         enter/exit cfglayout mode.
14410         (pass_partition_block): Require it.
14411         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
14412         (combine_instructions): Track basic blocks instead of labels.
14413         (update_cfg_for_uncondjump): New.
14414         (try_combine): Use it.  Update jumps after rescanning.
14415         (pass_combine): Require PROP_cfglayout.
14416         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
14417
14418 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14419
14420         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
14421         Provide/destroy PROP_cfglayout respectively.
14422         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
14423         * tree-pass.h (PROP_cfglayout): New.
14424
14425 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14426
14427         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
14428         fold_convert_const_fixed_from_fixed,
14429         fold_convert_const_fixed_from_int,
14430         fold_convert_const_fixed_from_real, fold_negate_const): Do not
14431         set TREE_CONSTANT_OVERFLOW.
14432         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
14433         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
14434
14435 2009-03-30  Ira Rosen  <irar@il.ibm.com>
14436
14437         * tree-vect-loop-manip.c: New file.
14438         * tree-vectorizer.c: Update documentation and included files.
14439         (vect_loop_location): Make extern.
14440         (rename_use_op): Move to tree-vect-loop-manip.c
14441         (rename_variables_in_bb, rename_variables_in_loop,
14442         slpeel_update_phis_for_duplicate_loop,
14443         slpeel_update_phi_nodes_for_guard1,
14444         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
14445         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
14446         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
14447         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
14448         find_loop_location): Likewise.
14449         (new_stmt_vec_info): Move to tree-vect-stmts.c.
14450         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
14451         get_vectype_for_scalar_type, vect_is_simple_use,
14452         supportable_widening_operation, supportable_narrowing_operation):
14453         Likewise.
14454         (bb_in_loop_p): Move to tree-vect-loop.c.
14455         (new_loop_vec_info, destroy_loop_vec_info,
14456         reduction_code_for_scalar_code, report_vect_op,
14457         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
14458         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
14459         (vect_supportable_dr_alignment): Likewise.
14460         * tree-vectorizer.h (tree-data-ref.h): Include.
14461         (vect_loop_location): Declare.
14462         Reorganize function declarations according to the new file structure.
14463         * tree-vect-loop.c: New file.
14464         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
14465         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
14466         * tree-vect-data-refs.c: New file.
14467         * tree-vect-patterns.c (timevar.h): Don't include.
14468         * tree-vect-stmts.c: New file.
14469         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
14470         tree-vect-slp.c, tree-vect-loop.c.
14471         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
14472         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
14473         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
14474         (tree-vect-analyze.o): Remove.
14475         (tree-vect-transform.o): Likewise.
14476         (tree-vect-data-refs.o): Add rule.
14477         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
14478         tree-vect-slp.o): Likewise.
14479         (tree-vect-patterns.o): Remove redundant dependencies.
14480         (tree-vectorizer.o): Likewise.
14481         * tree-vect-slp.c: New file.
14482
14483 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14484
14485         * optc-gen.awk: Warn if an option flag has multiple different
14486         help strings.
14487
14488 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
14489
14490         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
14491         -floop-block): Document dependences on PPL, CLooG and Graphite.
14492
14493 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
14494
14495         PR rtl-optimization/323
14496         * c-common.c (c_fully_fold, convert_and_check,
14497         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
14498         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
14499         * c-common.def (EXCESS_PRECISION_EXPR): New.
14500         * c-cppbuiltin.c (builtin_define_float_constants): Define
14501         constants with enough digits for long double.
14502         * c-lex.c (interpret_float): Interpret constant with excess
14503         precision where appropriate.
14504         * c-opts.c (c_common_post_options): Set
14505         flag_excess_precision_cmdline.  Give an error for
14506         -fexcess-precision=standard for C++ for processors where the
14507         option is significant.
14508         * c-parser.c (c_parser_conditional_expression): Handle excess
14509         precision in condition.
14510         * c-typeck.c (convert_arguments): Handle arguments with excess
14511         precision.
14512         (build_unary_op): Move excess precision outside operation.
14513         (build_conditional_expr): Likewise.
14514         (build_compound_expr): Likewise.
14515         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
14516         (build_modify_expr): Handle excess precision in RHS.
14517         (convert_for_assignment): Handle excess precision in converted
14518         value.
14519         (digest_init, output_init_element, process_init_element): Handle
14520         excess precision in initializer.
14521         (c_finish_return): Handle excess precision in return value.
14522         (build_binary_op): Handle excess precision in operands and add
14523         excess precision as needed for operation.
14524         * common.opt (-fexcess-precision=): New option.
14525         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
14526         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
14527         For standard excess precision, output explicit conversion to and
14528         truncation from XFmode.
14529         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
14530         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
14531         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
14532         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
14533         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
14534         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
14535         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
14536         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
14537         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
14538         define_splits, sqrt<mode>2): Disable where appropriate for
14539         standard excess precision.
14540         * convert.c (convert_to_real): Do not shorten arithmetic to type
14541         for which excess precision would be used.
14542         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
14543         * doc/invoke.texi (-fexcess-precision=): Document option.
14544         (-mfpmath=): Correct index entry.
14545         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
14546         flag_excess_precision): New.
14547         * langhooks.c (lhd_post_options): Set
14548         flag_excess_precision_cmdline.
14549         * opts.c (common_handle_option): Handle -fexcess-precision=.
14550         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
14551         init_excess_precision): New.
14552         (lang_dependent_init_target): Call init_excess_precision.
14553         * tree.c (excess_precision_type): New.
14554         * tree.h (excess_precision_type): Declare.
14555
14556 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
14557
14558         PR c/35235
14559         * c-typeck.c (build_component_ref): Do not copy qualifiers from
14560         non-lvalue to component.
14561
14562 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
14563
14564         PR preprocessor/34695
14565         * Makefile.in (c-opts.o): Depend on c-tree.h.
14566         * c-common.c: Move down include of diagnostic.h.
14567         (done_lexing, c_cpp_error): New.
14568         * c-common.h (done_lexing): Declare.
14569         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
14570         (parse_in).
14571         * c-opts.c: Include c-tree.h.
14572         (c_common_init_options): Set preprocessor error callback.
14573         (c_common_handle_option): Do not set preprocessor
14574         inhibit_warnings, warnings_are_errors, warn_system_headers,
14575         pedantic_errors or inhibit_warnings flags.
14576         (c_common_post_options): Do not check cpp_errors (parse_in).
14577         (c_common_finish): Do not output dependencies if there were
14578         errors.  Do not check return value of cpp_finish.
14579         * c-ppoutput.c (pp_file_change): Set input_location.
14580         * c-tree.h (c_cpp_error): Declare.
14581         * diagnostic.c (diagnostic_set_info_translated): Also initialize
14582         override_column.
14583         (diagnostic_build_prefix): Check override_column.
14584         * diagnostic.h (diagnostic_info): Add override_column field.
14585         (diagnostic_override_column): Define.
14586
14587 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
14588
14589         * c-common.c (c_expand_expr, c_staticp): Remove.
14590         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
14591         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
14592         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
14593         * c-gimplify.c (gimplify_compound_literal_expr,
14594         optimize_compound_literals_in_ctor): Remove.
14595         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
14596         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
14597         * c-semantics.c (emit_local_var): Remove.
14598
14599         * langhooks-def.h (lhd_expand_expr): Remove.
14600         * langhooks.c (lhd_expand_expr): Remove.
14601         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
14602
14603         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
14604         handling from c-semantics.c; don't call into langhook.
14605         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
14606         * gimplify.c (gimplify_compound_literal_expr,
14607         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
14608         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
14609         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
14610         as was done in c-gimplify.c.
14611         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
14612         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
14613         Move from c-common.h.
14614         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
14615
14616         * tree.c (staticp): Do not call langhook.
14617         * langhooks.c (lhd_staticp): Delete.
14618         * langhooks-def.h (lhd_staticp): Delete prototype.
14619         (LANG_HOOKS_STATICP): Delete.
14620         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
14621
14622         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
14623         instead of DECL_STMTs.
14624
14625 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
14626
14627         PR c/456
14628         PR c/5675
14629         PR c/19976
14630         PR c/29116
14631         PR c/31871
14632         PR c/35198
14633         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
14634         void_type_node.
14635         (fold_call_expr): Return a NOP_EXPR from folding rather than the
14636         contained expression.
14637         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
14638         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
14639         conditional expressions for C.
14640         (decl_constant_value_for_optimization): Move from
14641         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
14642         whether optimizing and that the expression is a VAR_DECL not of
14643         array type instead of doing such checks in the caller.  Do not
14644         check pedantic.  Call gcc_unreachable for C++.
14645         * c-common.def (C_MAYBE_CONST_EXPR): New.
14646         * c-common.h (c_fully_fold, c_save_expr,
14647         decl_constant_value_for_optimization): New prototypes.
14648         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
14649         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
14650         EXPR_INT_CONST_OPERANDS): Define.
14651         * c-convert.c (convert): Strip nops from expression.
14652         * c-decl.c (groktypename): Take extra parameters expr and
14653         expr_const_operands.  Update call to grokdeclarator.
14654         (start_decl): Update call to grokdeclarator.  Add statement for
14655         expressions used in type of decl.
14656         (grokparm): Update call to grokdeclarator.
14657         (push_parm_decl): Update call to grokdeclarator.
14658         (build_compound_literal): Add parameter non_const and build a
14659         C_MAYBE_COSNT_EXPR if applicable.
14660         (grokdeclarator): Take extra parameters expr and
14661         expr_const_operands.  Track expressions used in declaration
14662         specifiers and declarators.  Fold array sizes and track whether
14663         they are constant expressions and whether they are integer
14664         constant expressions.
14665         (parser_xref_tag): Set expr and expr_const_operands fields in
14666         return value.
14667         (grokfield): Update call to grokdeclarator.
14668         (start_function): Update call to grokdeclarator.
14669         (build_null_declspecs): Set expr and expr_const_operands fields in
14670         return value.
14671         (declspecs_add_type): Handle expressions in typeof specifiers.
14672         * c-parser.c (c_parser_declspecs): Set expr and
14673         expr_const_operands fields for declaration specifiers.
14674         (c_parser_enum_specifier): Likewise.
14675         (c_parser_struct_or_union_specifier): Likewise.
14676         (c_parser_typeof_specifier): Likewise.  Update call to
14677         groktypename.  Fold expression as needed.  Return expressions with
14678         type instead of adding statements.
14679         (c_parser_attributes): Update calls to c_parser_expr_list.
14680         (c_parser_statement_after_labels): Fold expression before passing
14681         to objc_build_throw_stmt.
14682         (c_parser_condition): Fold expression.
14683         (c_parser_asm_operands): Fold expression.
14684         (c_parser_conditional_expression): Use c_save_expr.  Update call
14685         to build_conditional_expr.
14686         (c_parser_alignof_expression): Update call to groktypename.
14687         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
14688         original_code.  Fold expression argument of va_arg.  Create
14689         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
14690         argument to va_arg.  Update calls to groktypename.  Fold array
14691         index for offsetof.  Verify that first argument to
14692         __builtin_choose_expr has integer type.
14693         (c_parser_postfix_expression_after_paren_type): Update calls to
14694         groktypename and build_compound_literal.  Handle expressions with
14695         side effects in type name.
14696         (c_parser_postfix_expression_after_primary): Update call to
14697         c_parser_expr_list.  Set original_code for calls to
14698         __builtin_constant_p.
14699         (c_parser_expr_list): Take extra parameter fold_p.  Fold
14700         expressions if requested.
14701         (c_parser_objc_type_name): Update call to groktypename.
14702         (c_parser_objc_synchronized_statement): Fold expression.
14703         (c_parser_objc_receiver): Fold expression.
14704         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
14705         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
14706         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
14707         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
14708         (struct c_typespec): Add elements expr and expr_const_operands.
14709         (struct c_declspecs): Add elements expr and expr_const_operands.
14710         (groktypename, build_conditional_expr, build_compound_literal):
14711         Update prototypes.
14712         (in_late_binary_op): Declare.
14713         * c-typeck.c (note_integer_operands): New function.
14714         (in_late_binary_op): New variable.
14715         (decl_constant_value_for_broken_optimization): Move to c-common.c
14716         and rename to decl_constant_value_for_optimization.
14717         (default_function_array_conversion): Do not strip nops.
14718         (default_conversion): Do not call
14719         decl_constant_value_for_broken_optimization.
14720         (build_array_ref): Do not fold result.
14721         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
14722         result when operand is a VLA.
14723         (c_expr_sizeof_type): Update call to groktypename.  Handle
14724         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
14725         result when operand names a VLA type.
14726         (build_function_call): Update call to build_compound_literal.
14727         Only fold result for calls to __builtin_* functions.  Strip
14728         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
14729         the function designator.
14730         (convert_arguments): Fold arguments.  Update call to
14731         convert_for_assignment.
14732         (build_unary_op): Handle increment and decrement of
14733         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
14734         decrement earlier.  Fold operand of increment and decrement.
14735         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
14736         built for integer operand.  Wrap returns that are INTEGER_CSTs
14737         without being integer constant expressions or that have integer
14738         constant operands without being INTEGER_CSTs.
14739         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
14740         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
14741         result is an integer constant expression or can be used in
14742         unevaluated parts of one and avoid folding and wrap as
14743         appropriate.  Fold operands before possibly doing -Wsign-compare
14744         warnings.
14745         (build_compound_expr): Wrap result for C99 if operands can be used
14746         in integer constant expressions.
14747         (build_c_cast): Update call to digest_init.  Do not ignore
14748         overflow from casting floating-point constants to integers.  Wrap
14749         results that could be confused with integer constant expressions,
14750         null pointer constants or floating-point constants.
14751         (c_cast_expr): Update call to groktypename.  Handle expressions
14752         included in type name.
14753         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
14754         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
14755         Update calls to convert_for_assignment.
14756         (convert_for_assignment): Take new parameter
14757         null_pointer_constant.  Do not strip nops or call
14758         decl_constant_value_for_broken_optimization.  Set
14759         in_late_binary_op for conversions to boolean.
14760         (store_init_value): Update call to digest_init.
14761         (digest_init): Take new parameter null_pointer_constant.  Do not
14762         call decl_constant_value_for_broken_optimization.  pedwarn for
14763         initializers not constant expressions.  Update calls to
14764         convert_for_assignment.
14765         (constructor_nonconst): New.
14766         (struct constructor_stack): Add nonconst element.
14767         (really_start_incremental_init, push_init_level, pop_init_level):
14768         Handle constructor_nonconst and nonconst element.
14769         (set_init_index): Call constant_expression_warning for array
14770         designators.
14771         (output_init_element): Fold value.  Set constructor_nonconst as
14772         applicable.  pedwarn for initializers not constant expressions.
14773         Update call to digest_init.  Call constant_expression_warning
14774         where constant initializers are required.
14775         (process_init_element): Use c_save_expr.
14776         (c_finish_goto_ptr): Fold expression.
14777         (c_finish_return): Fold return value.  Update call to
14778         convert_for_assignment.
14779         (c_start_case): Fold switch expression.
14780         (c_process_expr_stmt): Fold expression.
14781         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
14782         ensure statement expression is not evaluated in constant expression.
14783         (build_binary_op): Track whether results are integer constant
14784         expressions or may occur in such, disable folding and wrap results
14785         as applicable.  Fold operands for -Wsign-compare warnings unless
14786         in_late_binary_op.
14787         (c_objc_common_truthvalue_conversion): Handle results folded to
14788         integer constants that are not integer constant expressions.
14789         * doc/extend.texi: Document when typeof operands are evaluated,
14790         that condition of __builtin_choose_expr is an integer constant
14791         expression, and more about use of __builtin_constant_p in
14792         initializers.
14793
14794 2009-03-29  Richard Guenther  <rguenther@suse.de>
14795
14796         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
14797         propagate addresses of array references.
14798
14799 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
14800
14801         * regmove.c (perhaps_ends_bb_p): Remove.
14802         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
14803         from INSN and check that the main loop stays within that basic block.
14804         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
14805         (regmove_forward_pass): Split out from regmove_optimize.  Use
14806         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
14807         (regmove_backward_pass): Split out from regmove_optimize.  Use
14808         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
14809         (regmove_optimize): Simplify.
14810
14811 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
14812
14813         PR target/39545
14814         * config/i386/i386.c (classify_argument): Ignore flexible array
14815         member in struct and warn ABI change.
14816
14817 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
14818
14819         * config/i386/i386-protos.h (ix86_agi_dependent): New.
14820
14821         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
14822         (ix86_adjust_cost): Updated.
14823
14824 2009-03-29  Jan Hubicka  <jh@suse.cz>
14825
14826         PR middle-end/28850
14827         * tree-pass.h (pass_cleanup_eh): New function.
14828         (remove_unreachable_regions): Break code handling RTL
14829         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
14830         that can not be reached by runtime.
14831         (can_be_reached_by_runtime): New function.
14832         (label_to_region_map): New function.
14833         (num_eh_regions): New function.
14834         (rtl_remove_unreachable_regions): New function.
14835         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
14836         (remove_eh_region): New function.
14837         * except.h: Include sbitmap and vecprim.
14838         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
14839         num_eh_regions): Declare.
14840         * passes.c (init_optimization_passes): Schedule cleanup_eh.
14841         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
14842         * tree-eh.c (tree_remove_unreachable_handlers): New function.
14843         (tree_empty_eh_handler_p): New function.
14844         (cleanup_empty_eh): New function.
14845         (cleanup_eh): New function.
14846         (pass_cleanup_eh): New function.
14847
14848 2009-03-29  Jan Hubicka  <jh@suse.cz>
14849
14850         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
14851         for removed regions.
14852
14853 2009-03-29  Jan Hubicka  <jh@suse.cz>
14854
14855         * except.c (dump_eh_tree): Dump all datastructures.
14856
14857 2009-03-29  Jan Hubicka  <jh@suse.cz>
14858
14859         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
14860         (duplicate_eh_regions_1): Likewise.
14861         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
14862         vector; call EH verification.
14863         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
14864         Be ready for region being removed.
14865
14866 2009-03-29  Jan Hubicka  <jh@suse.cz>
14867
14868         * bitmap.c (bitmap_last_set_bit): New function.
14869         * bitmap.h (bitmap_last_set_bit): Declare.
14870
14871 2009-03-29  David Ayers  <ayers@fsfe.org>
14872
14873         PR objc/27377
14874         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
14875         by calling objc_compare_types and surpress warnings about
14876         incompatible C pointers that are compatible ObjC pointers.
14877
14878 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
14879
14880         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
14881         call initialize_inline_failed.
14882         (initialize_inline_failed): Move it from here ...
14883         * cgraph.c (initialize_inline_failed): ... to here.
14884         (cgraph_create_edge): Call initialize_inline_failed rather than
14885         setting inline_failed directly.
14886
14887 2009-03-29  Ben Elliston  <bje@au.ibm.com>
14888
14889         PR target/32542
14890         * sysv4.opt (msdata): Improve comment.
14891         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
14892         * sysv4.h (SVR4_ASM_SPEC): Likewise.
14893
14894 2009-03-29  Ben Elliston  <bje@au.ibm.com>
14895
14896         PR target/30451
14897         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
14898         load and store attributes.
14899
14900 2009-03-29  Ben Elliston  <bje@au.ibm.com>
14901
14902         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
14903         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
14904         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
14905         * doc/extend.texi (X86 Built-in Functions): Add index entries for
14906         __builtin_infq and __builtin_huge_valq.
14907
14908 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
14909
14910         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
14911         atmega8m1 devices.
14912         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14913         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
14914
14915 2009-03-28  Xinliang David Li  <davidxl@google.com>
14916
14917         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
14918         (do_dbg_cnt): New function.
14919
14920 2009-03-28  Jan Hubicka  <jh@suse.cz>
14921
14922         Merge from pretty-ipa:
14923
14924         2009-03-27  Jan Hubicka  <jh@suse.cz>
14925
14926         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
14927         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
14928         * passes.c (function_called_by_processed_nodes_p): New.
14929         * ipa-pure-const.c (check_call): Fix handling of operands.
14930         (analyze_function): Dump debug output for skipped bodies.
14931         (local_pure_const): Use function_called_by_processed_nodes_p.
14932         * dwarf2out.c (reference_to_unused): Use output.
14933         * passes.c (do_per_function_toporder): Likewise.
14934
14935         2008-11-12  Jan Hubicka  <jh@suse.cz>
14936
14937         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
14938         * ipa-pure-const.c (funct_state_d): Add can throw field; make
14939         state_set_in_source enum
14940         (check_decl): Ignore memory tags; do not set fake looping flags;
14941         dump diagnostics.
14942         (check_operand, check_tree, check_rhs_var, check_lhs_var,
14943         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
14944         (check_call, analyze_function): Rewrite.
14945         (check_stmt): New.
14946         (add_new_function): Update call of analyze_function.
14947         (generate_summary): Add call of analyze_function.
14948         (propagate): Propagate can_throw; handle state_set_in_source correctly.
14949         (local_pure_const): New function.
14950         (pass_local_pure_const): New pass.
14951         * ipa-inline.c (inline_transform): Set after_inlining.
14952         * tree-eh.c (stmt_can_throw_external): New.
14953         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
14954         work with aliasing built.
14955         * tree-flow.h (stmt_can_throw_external): New.
14956         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
14957         and local pure/const pass in early and late optimization queue.
14958
14959 2009-03-28  Martin Jambor  <mjambor@suse.cz>
14960
14961         * fold-const.c (get_pointer_modulus_and_residue): New parameter
14962         allow_func_align.
14963         (fold_binary): Allow function decl aligment consideration is the
14964         second argument is integer constant one.
14965         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
14966         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
14967         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
14968
14969 2009-03-28  Jan Hubicka  <jh@suse.cz>
14970
14971         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
14972         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
14973         * function.h (rtl_data): Add nothrow flag.
14974         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
14975         set DECL_NOTHROW for AVAILABLE functions.
14976
14977 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
14978
14979         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
14980         following vector keyword has expansion starting with pixel or bool
14981         keyword, expand vector to __vector and pixel or bool to __pixel or
14982         __bool.
14983
14984         PR c++/39554
14985         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
14986         warn_if_disallowed_function_p): Removed.
14987         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
14988         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
14989         warning_if_disallowed_function_p.
14990         * flags.h (warn_if_disallowed_function_p,
14991         warn_disallowed_functions): Removed.
14992         * common.opt (Wdisallowed-function-list=): Removed.
14993         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
14994
14995 2009-03-28  Richard Guenther  <rguenther@suse.de>
14996
14997         PR tree-optimization/38723
14998         * tree-ssa-pre.c (compute_avail): Add all default definitions to
14999         the entry block.
15000
15001 2009-03-28  Jan Hubicka  <jh@suse.cz>
15002
15003         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
15004         test introduced by my previous patch.
15005
15006 2009-03-28  Richard Guenther  <rguenther@suse.de>
15007
15008         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
15009         the PHIs value undefined.
15010
15011 2009-03-28  Jan Hubicka  <jh@suse.cz>
15012
15013         * tree-pass.h (pass_fixup_cfg): New pass.
15014         * ipa-inline.c (inline_transform): Set
15015         always_inline_functions_inlined/after_inlining.
15016         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
15017         (pass_fixup_cfg): New pass.
15018         * passes.c (init_optimization_passes): Add fixup_cfg.
15019
15020 2009-03-28  Richard Guenther  <rguenther@suse.de>
15021
15022         PR tree-optimization/38458
15023         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
15024         argument use the arguments copy-of value.
15025
15026 2009-03-28  Richard Guenther  <rguenther@suse.de>
15027
15028         PR tree-optimization/38180
15029         * tree-ssa-ccp.c (get_default_value): Simplify.
15030         (likely_value): Likewise.
15031         (surely_varying_stmt_p): Properly handle VOP case.
15032         (ccp_initialize): Likewise.
15033         (ccp_fold): Handle propagating through *&.
15034         (fold_const_aggregate_ref): Also handle decls.
15035
15036 2009-03-28  Jan Hubicka  <jh@suse.cz>
15037
15038         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
15039         * cgraph.h (cgraph_node): Likewise.
15040         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
15041         (cgraph_reset_node): Use process flag.
15042         (cgraph_mark_functions_to_output): Likewise.
15043         (cgraph_expand_function): Likewise.
15044         (cgraph_expand_all_functions): Likewise.
15045         (cgraph_output_in_order): Likewise.
15046         * dwarf2out.c (reference_to_unused): Likewise.
15047         * passes.c do_per_function_toporder): Likewise.
15048
15049 2009-03-28  Jan Hubicka  <jh@suse.cz>
15050
15051         Bring from lto-branch:
15052
15053         2008-09-03  Doug Kwan  <dougkwan@google.com>
15054
15055         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
15056         enums instead of reason strings.
15057         * cgraph.c (cgraph_create_edge): Same.
15058         (cgraph_inline_failed_string): New function.
15059         * cgraph.h (cgraph_inline_failed_t): New enum type.
15060         (cgraph_inline_failed_string): New prototype.
15061         (struct cgraph_edge): Change type of INLINED_FAILED from constant
15062         char pointer to cgraph_inline_failed_t.
15063         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
15064         (cgraph_default_inline_p): Ditto.
15065         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
15066         to cgraph_inline_failed_t pointer.
15067         * cif-code.def: New file.
15068         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
15069         reason string.
15070         (cgraph_check_inline_limits): Change type of REASON to pointer to
15071         cgraph_inline_failed_t.  Replace reason strings with enums.
15072         (cgraph_default_inline_p): Ditto.
15073         (cgraph_recursive_inlining_p): Ditto.
15074         (update_caller_keys): Change type of FAILED_REASON to
15075         cgraph_inline_failed_t.
15076         (cgraph_set_inline_failed): Change type of REASON to pointer to
15077         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
15078         convert enums to strings for text output.
15079         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
15080         to be of type cgraph_inline_failed_t.  Replace reason strings with
15081         enums.  Call cgraph_inline_failed_string to covert enums
15082         to strings for text output.
15083         (cgraph_decide_inlining): Replace reason strings with enums.
15084         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
15085         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
15086         for text output.
15087         * tree-inline.c (expand_call_inline): Change type of REASON
15088         to cgraph_inline_failed_t.  Replace reason strings with enums.
15089         Call cgraph_inline_failed_string for text output.
15090         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
15091         (cgraph.o): Ditto.
15092
15093 2009-03-28  Jan Hubicka  <jh@suse.cz>
15094
15095         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
15096         cgraph_clone_node): Remove master clone handling.
15097         (cgraph_is_master_clone, cgraph_master_clone): Remove.
15098         * cgraph.h (master_clone): Remove.
15099         (cgraph_is_master_clone, cgraph_master_clone): Remove.
15100         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
15101         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
15102
15103 2009-03-28  Jan Hubicka  <jh@suse.cz>
15104
15105         * cgraph.c (cgraph_function_body_availability): Functions declared
15106         inline are always safe to assume that it is not going to be replaced.
15107
15108 2009-03-28  Richard Guenther  <rguenther@suse.de>
15109
15110         PR tree-optimization/38513
15111         * tree-ssa-pre.c (eliminate): Remove redundant stores.
15112         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
15113         EXC_PTR_EXPR and FILTER_EXPR.
15114         (get_ref_from_reference_ops): Likewise.
15115
15116 2009-03-28  Richard Guenther  <rguenther@suse.de>
15117
15118         PR tree-optimization/38968
15119         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
15120         Use FLOOR_MOD_EXPR to compute misalignment.
15121
15122 2009-03-28  Richard Guenther  <rguenther@suse.de>
15123
15124         PR tree-optimization/37795
15125         * tree.h (combine_comparisons): Declare.
15126         * fold-const.c (combine_comparisons): Export.
15127         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
15128         comparisons.
15129         (ifcombine_iforif): Use combine_comparisons.
15130
15131 2009-03-28  Jan Hubicka  <jh@suse.cz>
15132
15133         * tree-eh.c (inlinable_call_p): New function.
15134         (make_eh_edges): Use it.
15135         (verify_eh_edges): Use it.
15136         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
15137         * except.c (reachable_next_level): Add inlinable_function argument
15138         (sjlj_find_directly_reachable_regions): Update.
15139         (add_reachable_handler): Do not set saw_any_handlers.
15140         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
15141         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
15142         Add new inlinable call parameter.
15143         (can_throw_internal, can_throw_external): Update.
15144         * except.h (can_throw_internal_1, can_throw_external_1,
15145         foreach_reachable_handler): Update declaration.
15146
15147 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
15148
15149         * config/arm/t-arm-coff, config/h8300/coff.h,
15150         config/i386/i386-aout.h, config/i386/i386-coff.h,
15151         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
15152         config/pdp11/2bsd.h, config/rs6000/aix41.h,
15153         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
15154         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
15155         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
15156         sys-types.h: Remove.
15157         * Makefile.in: Remove protoize and fixproto support and references
15158         in comments.
15159         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
15160         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
15161         Remove.
15162         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
15163         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
15164         unprotoize$(exeext).
15165         (rest.encap): Don't depend on $(STMP_FIXPROTO)
15166         (.PHONY): Don't depend on proto.
15167         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
15168         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
15169         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
15170         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
15171         build/gen-protos.o, build/scan.o, xsys-protos.h,
15172         build/fix-header$(build_exeext), build/fix-header.o,
15173         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
15174         stmp-install-fixproto): Remove.
15175         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
15176         SYSCALLS.c or fixproto files.
15177         (install-common): Don't install protoize.
15178         (install-headers-tar, install-headers-cpio, install-headers-cp):
15179         Don't depend on $(STMP_FIXPROTO).
15180         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
15181         install fixproto files or write out fixproto settings.
15182         (uninstall): Don't uninstall protoize.
15183         * config.gcc (use_fixproto): Remove.
15184         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
15185         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
15186         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
15187         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
15188         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
15189         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
15190         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
15191         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
15192         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
15193         * config/t-vxworks (STMP_FIXPROTO): Remove.
15194         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
15195         STMP_FIXPROTO): Remove.
15196         * config.in, configure: Regenerate.
15197         * crtstuff.c (gid_t, uid_t): Don't undefine.
15198         * doc/install.texi: Change m68k-coff to m68k-elf in example.
15199         (arm-*-coff, arm-*-aout: Remove target entries.
15200         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
15201         Remove mention of AIX 4.1.
15202         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
15203         * doc/invoke.texi (Running Protoize): Remove.
15204         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
15205         (Protoize Caveats): Remove.
15206         * tsystem.h: Update comments on headers assumed to exist.
15207
15208 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
15209
15210         * genautomata.c: Add a new year to the copyright.  Add a new
15211         reference.
15212         (struct insn_reserv_decl): Add comments for member bypass_list.
15213         (find_bypass): Remove.
15214         (insert_bypass): New.
15215         (process_decls): Use insert_bypass.
15216         (output_internal_insn_latency_func): Output all bypasses with the
15217         same input insn in one switch case.
15218
15219         * rtl.def (define_bypass): Describe bypass choice.
15220         * doc/md.texi (define_bypass): Ditto.
15221
15222 2009-03-27  Richard Guenther  <rguenther@suse.de>
15223
15224         * gimplify.c (mark_addressable): Export.
15225         * tree-flow.h (mark_addressable): Declare.
15226         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
15227         * tree-ssa.c (verify_phi_args): Verify that address taken
15228         variables have TREE_ADDRESSABLE set.
15229
15230 2009-03-27  Richard Guenther  <rguenther@suse.de>
15231
15232         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
15233         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
15234         Do not mark decls TREE_ADDRESSABLE.
15235         (build_fold_addr_expr): Adjust.
15236         (fold_addr_expr): Remove.
15237         (fold_unary): Use build_fold_addr_expr.
15238         (fold_comparison): Likewise.
15239         (split_address_to_core_and_offset): Likewise.
15240         * coverage.c (tree_coverage_counter_addr): Mark the array decl
15241         TREE_ADDRESSABLE.
15242         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
15243         (gimplify_modify_expr_to_memcpy): Mark source and destination
15244         addressable.
15245         * omp-low.c (create_omp_child_function): Mark the object decl
15246         TREE_ADDRESSABLE.
15247         (lower_rec_input_clauses): Mark the var we take the address of
15248         TREE_ADDRESSABLE.
15249         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
15250
15251 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15252
15253         PR middle-end/39315
15254         * cfgexpand.c (expand_one_stack_var_at): Change alignment
15255         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
15256
15257 2009-03-27  Richard Guenther  <rguenther@suse.de>
15258
15259         PR tree-optimization/39120
15260         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
15261         constraints.
15262         (handle_lhs_call): Process return constraints.  Add escape
15263         constraints if necessary.
15264         (handle_const_call): Fill out return constraints.  Make nested
15265         case more precise.  Avoid consttmp if possible.
15266         (handle_pure_call): Fill out return constraints.  Avoid
15267         callused if possible.
15268         (find_func_aliases): Simplify call handling.
15269
15270 2009-03-27  Richard Guenther  <rguenther@suse.de>
15271
15272         PR tree-optimization/39120
15273         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
15274         as a representative.
15275         (solve_graph): Do propagate CALLUSED.
15276         (handle_pure_call): Use a scalar constraint from CALLUSED for
15277         the return value.
15278         (find_what_p_points_to): CALLUSED shall not appear in poins-to
15279         solutions.
15280
15281 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15282
15283         PR c/39323
15284         * c-common.c (handle_aligned_attribute): Properly check alignment
15285         overflow.  Use (1U << i) instead of (1 << i).
15286
15287         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
15288
15289         * expr.h (get_mem_align_offset): Updated.
15290
15291         * tree.h (tree_decl_common): Change align to "unsigned int" and
15292         move it before pointer_alias_set.
15293
15294 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15295             Jakub Jelinek  <jakub@redhat.com>
15296
15297         PR target/38034
15298         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
15299         gr_register_operand with gr_reg_or_0_operand.
15300         (cmpxchg_rel_di): Likewise.
15301         (sync_lock_test_and_set<mode>): Likewise.
15302
15303 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15304
15305         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
15306         (true_regnum): Likewise.
15307
15308         * rtlanal.c (subreg_info): Moved to ...
15309         * rtl.h (subreg_info): Here.  New.
15310         (subreg_get_info): New.
15311
15312         * rtlanal.c (subreg_get_info): Make it extern.
15313
15314 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15315
15316         PR target/39472
15317         * config/i386/i386.c (ix86_abi): New.
15318         (override_options): Handle -mabi=.
15319         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
15320         (ix86_call_abi_override): Likewise.
15321         (init_cumulative_args): Likewise.
15322         (function_arg_advance): Likewise.
15323         (function_arg_64): Likewise.
15324         (function_arg): Likewise.
15325         (ix86_pass_by_reference): Likewise.
15326         (ix86_function_value_regno_p): Likewise.
15327         (ix86_build_builtin_va_list_abi): Likewise.
15328         (setup_incoming_varargs_64): Likewise.
15329         (is_va_list_char_pointer): Likewise.
15330         (ix86_init_machine_status): Likewise.
15331         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
15332         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
15333         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
15334         (ix86_function_abi): Make it static and return enum calling_abi.
15335         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
15336         with ix86_abi.
15337         (ix86_fn_abi_va_list): Updated.
15338
15339         * config/i386/i386.h (ix86_abi): New.
15340         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
15341         (CONDITIONAL_REGISTER_USAGE): Likewise.
15342         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
15343         (machine_function): Likewise.
15344
15345         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
15346         with ix86_abi.
15347         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
15348         (STACK_BOUNDARY): Likewise.
15349         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
15350
15351         * config/i386/i386.opt (mabi=): New.
15352
15353         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
15354         return enum calling_abi.
15355         (ix86_function_type_abi): Likewise.
15356         (ix86_function_abi): Removed.
15357
15358         * doc/invoke.texi: Document -mabi= option for x86.
15359
15360 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15361
15362         * builtins.c (real_dconstp): Delete.
15363         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
15364
15365 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
15366             Jakub Jelinek  <jakub@redhat.com>
15367
15368         PR debug/37959
15369         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
15370         (gen_subprogram_die): When a function is explicit, generate the
15371         DW_AT_explicit attribute.
15372         * langhooks.h (struct lang_hooks_for_decls): Add
15373         function_decl_explicit_p langhook.
15374         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
15375         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
15376
15377 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
15378
15379         * builtins.c (fold_builtin_memory_op): Optimize memmove
15380         into memcpy if we can prove source and destination don't overlap.
15381
15382         * tree-inline.c: Include gt-tree-inline.h.
15383         (clone_fn_id_num): New variable.
15384         (clone_function_name): New function.
15385         (tree_function_versioning): Use it.
15386         * Makefile.in (GTFILES): Add tree-inline.c.
15387
15388 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
15389
15390         * BASE-VER: Change to 4.5.0.
15391
15392 2009-03-27  Xinliang David Li  <davidxl@google.com>
15393
15394         PR tree-optimization/39557
15395         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
15396
15397 2009-03-27  Xinliang David Li  <davidxl@google.com>
15398
15399         PR tree-optimization/39548
15400         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
15401         candidate check.
15402
15403 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15404
15405         * c-common.c (pointer_int_sum): Use %wd on return from
15406         tree_low_cst.
15407
15408 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15409
15410         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
15411         on return from tree_low_cst.
15412
15413 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15414
15415         PR c++/36799
15416         * ginclude/stdarg.h (va_copy): Define also for
15417         __GXX_EXPERIMENTAL_CXX0X__.
15418
15419 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15420
15421         PR c++/35652
15422         * builtins.h (c_strlen): Do not warn here.
15423         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
15424         * c-common.c (pointer_int_sum): Take an explicit location.
15425         Warn about offsets out of bounds.
15426         * c-common.h (pointer_int_sum): Adjust declaration.
15427
15428 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15429
15430         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
15431         markup glitch.
15432
15433 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
15434
15435         PR c++/39554
15436         * opts.c (warn_if_disallowed_function_p): Don't assume
15437         get_callee_fndecl must return non-NULL.
15438
15439 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
15440
15441         PR rtl-optimization/39522
15442         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
15443         when reg_reloaded_valid is set.
15444
15445 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15446
15447         * config/spu/divv2df3.c: New file.
15448         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
15449         (DPBIT_FUNCS): Filter out _div_df.
15450
15451 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
15452
15453         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
15454         a jump insn, count that jump in the distance to the loop start.
15455
15456 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
15457
15458         PR target/39523
15459         * config/sh/sh.c (calc_live_regs): Fix condition for global
15460         registers except PIC_OFFSET_TABLE_REGNUM.
15461
15462 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
15463
15464         PR/39518
15465         * doc/invoke.texi (-mconsole): New.
15466         (-mcygwin): New.
15467         (-mno-cygwin): New.
15468         (-mdll): New.
15469         (-mnop-fun-dllimport): New.
15470         (-mthread): New.
15471         (-mwin32): New.
15472         (-mwindows): New.
15473         (sub section "i386 and x86-64 Windows Options"): New.
15474
15475 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
15476
15477         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
15478         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
15479
15480 2009-03-25  Richard Guenther  <rguenther@suse.de>
15481
15482         PR middle-end/39497
15483         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
15484         of -Wno-error.
15485
15486 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
15487
15488         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
15489         neither of haifa/selective schedulers are working.
15490
15491 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15492
15493         * doc/invoke.texi (Debugging Options): Fix description of
15494         -fno-merge-debug-strings.
15495
15496 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
15497
15498         * config/cris/libgcc.ver: New version-script.
15499         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
15500
15501         * configure.ac <GAS features, nop mnemonic>: Add pattern
15502         crisv32-*-* for "nop".
15503         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
15504         * configure: Regenerate.
15505
15506 2009-03-24  Ira Rosen  <irar@il.ibm.com>
15507
15508         PR tree-optimization/39529
15509         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
15510         mark_sym_for_renaming for the tag copied to the new vector
15511         pointer.
15512
15513 2009-03-24  Arthur Loiret  <aloiret@debian.org>
15514
15515         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
15516         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
15517         EXTRA_SPEC_FUNCTIONS.
15518         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
15519         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
15520         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
15521         -march and -mtune options.
15522
15523 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
15524
15525         * config/m68k/t-rtems: Add m5329 multilib.
15526
15527 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
15528             Jakub Jelinek  <jakub@redhat.com>
15529
15530         PR debug/39524
15531         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
15532         nodes.
15533
15534 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
15535
15536         PR c/39495
15537         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
15538         instead of c_parser_expression_conv, if original_code isn't one of the
15539         4 allowed comparison codes, fail.
15540
15541 2009-03-23  Richard Guenther  <rguenther@suse.de>
15542
15543         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
15544         * tree.h (struct tree_type): Likewise.
15545         * reload.h (struct insn_chain): Likewise.
15546         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
15547         * function.h (struct function): Likewise.
15548         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
15549
15550 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
15551
15552         PR tree-optimization/39516
15553         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
15554
15555 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
15556
15557         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
15558         should be set true if BITS_PER_WORD of target is bigger than 32
15559
15560 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
15561
15562         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
15563         Translate -B-options to -rpath-link.  Correct existing
15564         rpath-link and conditionalize on !nostdlib.
15565
15566 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15567
15568         * doc/extend.texi (Function Attributes, Variable Attributes):
15569         Fix typos.
15570         * doc/invoke.texi (Debugging Options, Optimize Options)
15571         (i386 and x86-64 Options, MCore Options): Likewise.
15572
15573 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
15574
15575         PR debug/37890
15576         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
15577         it for block local namespace aliases.
15578         (gen_decl_die): Pass context_die to gen_namespace_die.
15579
15580 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
15581
15582         PR c/39495
15583         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
15584         minimum or maximum value.
15585
15586 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
15587
15588         * reginfo.c (globalize_reg): Recompute derived reg sets.
15589
15590 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
15591
15592         PR target/39063
15593         * libgcc2.c (mprotect): Do not use signed arguments for
15594         VirtualProtect, use DWORD arguments.  Also fix the 'may
15595         be used uninitialized' warning for the np variable.
15596
15597 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
15598
15599         PR target/39496
15600         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
15601         functions using regparm calling conventions when not optimizing.
15602         (ix86_function_sseregparm): Similarly for sseregparm calling
15603         conventions.
15604
15605 2009-03-19  Li Feng  <nemokingdom@gmail.com>
15606
15607         PR middle-end/39500
15608         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
15609         dependence if the first conflict is after niter iterations.
15610
15611 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
15612
15613         PR middle-end/38609
15614         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
15615         functions with dynamic stack-pointer adjustments.
15616
15617 2009-03-19  Ben Elliston  <bje@au.ibm.com>
15618
15619         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
15620         option; change to -msdata=data.
15621
15622 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15623
15624         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
15625         and -fopenmp.
15626
15627 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
15628
15629         PR target/35180
15630         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
15631
15632 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
15633
15634         * doc/invoke.texi (Code Gen Options): Expand discussion of
15635         -fno-common.
15636
15637 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
15638
15639         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
15640         * matrix-reorg.c (struct matrix_info): Likewise.
15641         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
15642         * rtl.h (struct mem_attrs): Likewise.
15643         * df.h (struct df): Likewise.
15644         * tree-data-ref.h (struct data_dependence_relation): Likewise.
15645         * ira-int.h (struct ira_allocno): Likewise.
15646         * df-scan.c (struct df_collection_rec): Likewise.
15647         * ira.c (struct equivalence): Likewise.
15648         * function.c (struct temp_slot): Likewise.
15649         * cfgloop.h (struct loop): Likewise.
15650
15651         PR debug/39485
15652         * function.c (use_register_for_decl): When not optimizing, disregard
15653         register keyword for variables with types containing methods.
15654
15655 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
15656
15657         PR middle-end/39447
15658         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
15659         (is_simple_operand): Call contains_component_ref_p before calling data
15660         reference analysis that would fail on COMPONENT_REFs.
15661
15662         * tree-vrp.c (search_for_addr_array): Fix formatting.
15663
15664 2009-03-18  Richard Guenther  <rguenther@suse.de>
15665
15666         * tree-vect-transform.c (vect_loop_versioning): Fold the
15667         generated comparisons.
15668         * tree-vectorizer.c (set_prologue_iterations): Likewise.
15669         (slpeel_tree_peel_loop_to_edge): Likewise.
15670
15671 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15672
15673         PR middle-end/37805
15674         * opts.c (print_specific_help): In addition to `undocumented',
15675         accept `separate' and `joined' flags if passed alone.  Describe
15676         output by the first matched one of those.
15677         (common_handle_option): Skip over empty strings.
15678         * gcc.c (display_help): Fix help string for `--help='.
15679         * doc/invoke.texi (Option Summary, Overall Options): With
15680         `--help=', classes and qualifiers can both be repeated, but
15681         only the latter can be negated.  One should not pass only
15682         negated qualifiers.  Fix markup and examples.
15683
15684         Revert
15685         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
15686         PR middle-end/37805
15687         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
15688         and -fhelp=separate.
15689
15690 2009-03-17  Jing Yu  <jingyu@google.com>
15691
15692         PR middle-end/39378
15693         * function.h (struct rtl_data): Move is_thunk from here...
15694         (struct function): ...to here.
15695         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
15696         * varasm.c (assemble_start_function): Change is_thunk from crtl to
15697         cfun.
15698         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
15699         cfun.
15700         (alpha_does_function_need_gp, alpha_start_function): Likewise.
15701         (alpha_output_function_end_prologue): Likewise.
15702         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
15703         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
15704         (rs6000_output_function_epilogue): Likewise.
15705         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
15706
15707 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
15708
15709         PR target/39482
15710         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
15711         from different units in a single alternative.
15712         (*truncdfsf_i387): Ditto.
15713         (*truncxfsf2_mixed): Ditto.
15714         (*truncxfdf2_mixed): Ditto.
15715
15716 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
15717
15718         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
15719         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
15720
15721         PR debug/39474
15722         * tree-ssa-live.c (remove_unused_locals): Don't remove local
15723         unused non-artificial variables when not optimizing.
15724
15725         PR debug/39471
15726         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
15727         DW_TAG_imported_module even if decl is IMPORTED_DECL with
15728         NAMESPACE_DECL in its DECL_INITIAL.
15729
15730         PR middle-end/39443
15731         * optabs.c (set_user_assembler_libfunc): New function.
15732         * expr.h (set_user_assembler_libfunc): New prototype.
15733         * c-common.c: Include libfuncs.h.
15734         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
15735         for memcmp, memset, memcpy, memmove and abort.
15736         * Makefile.in (c-common.o): Depend on libfuncs.h.
15737
15738         PR debug/39412
15739         * dwarf2out.c (gen_inlined_enumeration_type_die,
15740         gen_inlined_structure_type_die, gen_inlined_union_type_die,
15741         gen_tagged_type_instantiation_die): Removed.
15742         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
15743         do nothing.
15744
15745 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
15746
15747         PR testsuite/38526
15748         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
15749         its use.
15750         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
15751         (check-parallel-%): Ditto.
15752         (check-consistency): Ditto.
15753
15754 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
15755
15756         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
15757         local variable rhs by NULL_TREE.
15758
15759 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
15760
15761         PR target/39477
15762         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
15763
15764 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
15765
15766         PR target/39476
15767         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
15768
15769 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
15770
15771         PR target/39473
15772         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
15773         for ms->sysv ABI calls only in 64bit mode.
15774
15775         * config/i386/i386.md (untyped_call): Support 32bit.
15776
15777 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
15778
15779         * doc/extend.texi: Replace x86_65 with x86_64.
15780
15781 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
15782
15783         PR tree-optimization/39455
15784         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
15785         mismatches for POINTER_TYPE_P (type).
15786         (number_of_iterations_le): Likewise.
15787
15788 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
15789
15790         * config/picochip/picochip.c: Removed profiling support.
15791         * config/picochip/picochip.md: Removed profiling instruction.
15792         * config/picochip/picochip.h: Removed profiling builtin.
15793
15794 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
15795
15796         * doc/install.texi (--with-host-libstdcxx): Document.
15797
15798 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
15799
15800         PR target/34299
15801         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
15802         generate a warning if the function name does not begin with
15803         "__vector" and the function has either the 'signal' or 'interrupt'
15804         attribute, from here to ...
15805         (avr_declare_function_name): ...here. New function.
15806         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
15807         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
15808
15809 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
15810
15811         PR bootstrap/39454
15812         * cse.c (fold_rtx): Don't modify original const_arg1 when
15813         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
15814         separate variable instead.
15815         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
15816         from out of range shift counts.
15817         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
15818
15819 2009-03-13  Catherine Moore  <clm@codesourcery.com>
15820
15821         * config/i386/x-mingw32 (host-mingw32.o): Replace
15822         diagnostic.h with $(DIAGNOSTIC_H).
15823
15824 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
15825
15826         PR target/39431
15827         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
15828         predicate.
15829         * config/i386/sync.md (sync_compare_and_swap<mode>,
15830         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
15831         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
15832         into a register.
15833         (sync_double_compare_and_swapdi_pic,
15834         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
15835         cmpxchg8b_pic_memory_operand instead of just memory_operand.
15836
15837 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
15838
15839         PR target/39445
15840         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
15841
15842 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
15843
15844         PR target/39327
15845         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
15846         (avx_addsubv4df3): Likewise.
15847         (*avx_addsubv4sf3): Likewise.
15848         (sse3_addsubv4sf3): Likewise.
15849
15850 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
15851
15852         PR target/38824
15853         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
15854
15855 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
15856
15857         PR debug/39432
15858         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
15859         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
15860         registers for allocnos created from user-defined variables.
15861
15862 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15863
15864         PR target/39181
15865         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
15866         of non-integer mode as well.
15867
15868 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
15869
15870         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
15871         for functions for which the parameter types are unknown.
15872
15873 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
15874
15875         PR target/39137
15876         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
15877         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
15878         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
15879         * config/i386/i386.c (ix86_local_alignment): For
15880         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
15881         long long variables on the stack to avoid dynamic realignment.
15882         Allow the first argument to be a decl rather than type.
15883         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
15884
15885 2009-03-11  Nick Clifton  <nickc@redhat.com>
15886
15887         PR target/5362
15888         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
15889         options.
15890         Add description to mno-lsim option.
15891         * config/mcore/mcore.h: Remove comment about deprecated m4align
15892         option.
15893         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
15894         * doc/invoke.texi: Add description of mno-lsim and
15895         mstack-increment options.
15896
15897         * config/fr30/fr30.opt: Document the -mno-lsim option.
15898         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
15899         and -mno-lsim options.
15900
15901 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15902
15903         * fold-const.c (fold_comparison): Only call fold_inf_compare
15904         if the mode supports infinities.
15905
15906 2009-03-11  Jason Merrill  <jason@redhat.com>
15907
15908         PR debug/39086
15909         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
15910         end already did.  Notice GIMPLE_CALL modifications of the result.
15911         Don't copy debug information from an ignored decl or a decl from
15912         another function.
15913
15914 2009-03-10  Richard Guenther  <rguenther@suse.de>
15915             Nathan Froyd  <froydnj@codesourcery.com>
15916
15917         PR middle-end/37850
15918         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
15919         (__divMODE3): Likewise.
15920
15921 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
15922
15923         PR tree-optimization/39394
15924         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
15925         DECL_SIZE_UNIT of variable length FIELD_DECLs.
15926
15927 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15928
15929         * recog.c (verfiy_changes): Disallow renaming of hard regs in
15930         inline asms for register asm ("") declarations.
15931
15932 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
15933
15934         * fold-const.c (fold_unary): Fix comment.
15935
15936 2009-03-07  Jan Hubicka  <jh@suse.cz>
15937
15938         PR target/39361
15939         * tree-inline.c (setup_one_parameter): Do replacement of const
15940         argument by constant in SSA form.
15941
15942 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15943
15944         PR middle-end/38028
15945         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
15946         determine alignment passed to assign_stack_local.
15947         (assign_parms_unsplit_complex): Likewise.
15948         * except.c (sjlj_build_landing_pads): Likewise.
15949
15950 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
15951
15952         PR middle-end/39360
15953         * tree-flow.h (add_referenced_var): Return bool instead of void.
15954         * tree-dfa.c (add_referenced_var): Return result of
15955         referenced_var_check_and_insert call.
15956         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
15957         of referenced_var_check_and_insert.
15958
15959         PR debug/39372
15960         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
15961         (gen_variable_die): Emit DW_AT_location on abstract static variable's
15962         DIE, don't emit it if abstract origin already has it.
15963         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
15964         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
15965
15966 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
15967
15968         * genpreds.c (needs_variable): Fix parentheses at variable name
15969         detection.
15970         (write_tm_constrs_h): Indent generated code.
15971
15972 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15973
15974         * doc/extend.texi (Function Attributes): Add documentation
15975         for isr attributes.
15976
15977 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
15978
15979         PR debug/39387
15980         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
15981         take locus from its DECL_SOURCE_LOCATION instead of input_location.
15982
15983 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
15984
15985         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
15986         the loop as bad.
15987
15988 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
15989
15990         PR debug/39379
15991         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
15992         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
15993
15994 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
15995
15996         * config/i386/i386.md (R8_REG, R9_REG): New constants.
15997         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
15998         constants instead of magic numbers.
15999         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
16000         (QI_REG_P): Ditto.
16001         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
16002         (x86_64_ms_abi_int_parameter_registers): Ditto.
16003         (x86_64_int_return_registers): Ditto.
16004         (ix86_maybe_switch_abi): Ditto.
16005         (ix86_expand_call): Ditto for clobbered_registers array.
16006         (ix86_hard_regno_mode_ok): Ditto.
16007         (x86_extended_QIreg_mentioned_p): Ditto.
16008
16009 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
16010
16011         PR tree-optimization/39349
16012         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
16013
16014         * combine.c (gen_lowpart_for_combine): Use omode when generating
16015         clobber.
16016
16017 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
16018
16019         PR rtl-optimization/39235
16020         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
16021
16022 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
16023
16024         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
16025
16026 2009-03-04  Richard Guenther  <rguenther@suse.de>
16027
16028         PR tree-optimization/39362
16029         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
16030         that occur in abnormal PHIs should be varying.
16031
16032 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
16033
16034         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
16035         Extend comments.
16036         (simple_iv):  Take loop as an argument instead of statement.
16037         * tree-scalar-evolution.h (simple_iv): Declaration changed.
16038         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
16039         to simple_iv.
16040         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
16041         Ditto.
16042         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
16043         * matrix-reorg.c (analyze_transpose): Ditto.
16044         * tree-data-ref.c (dr_analyze_innermost): Ditto.
16045         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
16046         * tree-predcom.c (ref_at_iteration): Ditto.
16047         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
16048
16049 2009-03-04  Richard Guenther  <rguenther@suse.de>
16050
16051         PR tree-optimization/39358
16052         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
16053         escaped_id and callused_id.
16054         (solve_graph): Likewise.
16055
16056 2009-03-04  Richard Guenther  <rguenther@suse.de>
16057
16058         PR tree-optimization/39339
16059         * tree-sra.c (try_instantiate_multiple_fields): Make it
16060         no longer ICE on the above.
16061
16062 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
16063
16064         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
16065         that fits within Pmode.
16066
16067 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
16068
16069         PR middle-end/10109
16070         * tm.texi (LIBCALL_VALUE): Update description.
16071
16072 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
16073
16074         PR middle-end/34443
16075         * doc/extend.texi (section): Update description.
16076
16077 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
16078
16079         PR middle-end/39345
16080         * tree-inline.c (remapped_type): New.
16081         (can_be_nonlocal): Call remapped_type instead of remap_type.
16082
16083 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
16084
16085         PR fortran/39354
16086         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
16087         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
16088
16089 2009-03-03  Richard Guenther  <rguenther@suse.de>
16090
16091         PR middle-end/39272
16092         * tree.c (tree_nonartificial_location): New function.
16093         * tree.h (tree_nonartificial_location): Declare.
16094         * builtins.c (expand_builtin_memory_chk): Provide location
16095         of the call location for artificial function pieces.
16096         (maybe_emit_chk_warning): Likewise.
16097         (maybe_emit_sprintf_chk_warning): Likewise.
16098         (maybe_emit_free_warning): Likewise.
16099         * expr.c (expand_expr_real_1): Likewise.
16100
16101 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
16102
16103         PR tree-optimization/39343
16104         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
16105         COMPONENT_REF t has ARRAY_TYPE.
16106
16107 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
16108
16109         PR middle-end/39335
16110         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
16111         when the type precision of the induction variable should be
16112         larger than the type precision of nit.
16113         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
16114         * graphite.c (graphite_loop_normal_form): Same.
16115         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
16116
16117 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
16118
16119         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
16120         (*call_1_rex64_ms_sysv): Use named constants instead of magic
16121         numbers to describe clobbered registers.
16122         (*call_value_0_rex64_ms_sysv): Ditto.
16123         * config/i386/mmx.md (mmx_emms): Ditto.
16124         (mmx_femms): Ditto.
16125
16126 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
16127
16128         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
16129         of ABI_64.
16130
16131 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16132
16133         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
16134         (spu_section_type_flags): New function.
16135
16136 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
16137
16138         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
16139         reg_class_contents of FLOAT_REGS into a temporary.
16140
16141 2009-03-02  Richard Guenther  <rguenther@suse.de>
16142             Ira Rosen  <irar@il.ibm.com>
16143
16144         PR tree-optimization/39318
16145         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
16146         information to the vectorized statement.
16147
16148 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
16149
16150         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
16151         variable.  Use defined names instead of magic constants for REX SSE
16152         registers.
16153
16154 2009-03-01  Richard Guenther  <rguenther@suse.de>
16155
16156         PR tree-optimization/39331
16157         * omp-low.c (lower_send_shared_vars): Do not receive new
16158         values for the reference of DECL_BY_REFERENCE parms or results.
16159
16160 2009-03-01  Jan Hubicka  <jh@suse.cz>
16161
16162         PR debug/39267
16163         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
16164         BLOCK_NONLOCALIZED_VAR): New macros.
16165         (tree_block): Add nonlocalized_vars.
16166         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
16167         gen_decl_die): Add origin argument.  Allow generation of die with
16168         origin at hand only.
16169         (gen_member_die, gen_type_die_with_usage, force_decl_die,
16170         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
16171         of gen_*.
16172         (gen_block_die): Fix checking for unused blocks.
16173         (process_scope_var): Break out from .... ; work with origins only.
16174         (decls_for_scope) ... here; process nonlocalized list.
16175         (dwarf2out_ignore_block): Look for nonlocalized vars.
16176         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
16177         vars.
16178         (dump_scope_block): Dump them.
16179         * tree-inline.c (remap_decls): Handle nonlocalized vars.
16180         (remap_block): Likewise.
16181         (can_be_nonlocal): New predicate.
16182         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
16183
16184 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16185
16186         * configure: Regenerate.
16187
16188 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16189
16190         * optc-gen.awk: No need to duplicate option flags twice.
16191         Reuse help texts for duplicate options which do not have any.
16192
16193         * gcc.c (display_help): Document --version.
16194
16195         * gcc.c (main): If print_help_list and verbose_flag, ensure
16196         driver output comes before subprocess output.
16197
16198         * optc-gen.awk: Assign all remaining fields to help string,
16199         space-separated, for multi-line help in *.opt.
16200
16201         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
16202         -Wno-pedantic-ms-format is for MinGW targets only.
16203
16204         * doc/options.texi (Option file format): Fix bad indentation,
16205         restoring dropped sentence.
16206
16207 2009-02-28  Jan Hubicka  <jh@suse.cz>
16208
16209         * tree-inline.c (tree_function_versioning): Output debug info.
16210
16211 2009-02-28  Jan Hubicka  <jh@suse.cz>
16212
16213         PR debug/39267
16214         * tree-inline.c (setup_one_parameter): Do not copy propagate
16215         arguments when not optimizing.
16216
16217 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
16218
16219         PR target/39327
16220         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
16221         (avx_addsubv4df3): Likewise.
16222         (*avx_addsubv4sf3): Likewise.
16223         (sse3_addsubv4sf3): Likewise.
16224         (*avx_addsubv2df3): Likewise.
16225         (sse3_addsubv2df3): Likewise.
16226         (avx_unpckhps256): Correct item selectors.
16227         (avx_unpcklps256): Likewise.
16228         (avx_unpckhpd256): Likewise.
16229         (avx_unpcklpd256): Likewise.
16230
16231 2009-02-28  Jan Hubicka  <jh@suse.cz>
16232
16233         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
16234         static vars.
16235         (copy_arguments_for_versioning): If var is declared don't declare it.
16236         (tree_function_versioning): First setup substitutions and then copy
16237         args.
16238
16239 2009-02-27  Jan Hubicka  <jh@suse.cz>
16240
16241         PR debug/39267
16242         * cgraph.h (varpool_output_debug_info): Remove.
16243         * cgraphunit.c (varpool_output_debug_info): Remove.
16244         * dwarf2out.c (deferred_locations_struct): New struct
16245         (deferred_locations): New type.
16246         (deferred_locations_list): New static var.
16247         (deffer_location): New function.
16248         (gen_variable_die): Use it.
16249         (decls_for_scope): Output info on local static vars.
16250         (dwarf2out_finish): Process deferred locations.
16251         * varpool.c (varpool_output_debug_info): Remove.
16252
16253 2009-02-27  Jan Hubicka  <jh@suse.cz>
16254
16255         PR debug/39267
16256         * tree.h (TREE_PROTECTED): Fix comment.
16257         (BLOCK_HANDLER_BLOCK): Remove.
16258         (struct tree_block): Remove handler_block add body_block.
16259         (inlined_function_outer_scope_p): New.
16260         (is_body_block): Remove.
16261         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
16262         * dwarf2out.c (is_inlined_entry_point): Remove.
16263         (add_high_low_attributes): Use inlined_function_outer_scope_p.
16264         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
16265         code.
16266         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
16267         * gimplify.c (gimplify_expr): Gimplify body blocks.
16268         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
16269         block with multiple subblocks.
16270         (dump_scope_block): Prettier output; dump more flags and info.
16271         (dump_scope_blocks): New.
16272         (remove_unused_locals): Use dump_scope_blocks.
16273         * tree-flow.h (dump_scope_blocks): Declare.
16274         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
16275         * stmt.c (is_body_block): Remove.
16276         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
16277         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
16278
16279 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
16280
16281         PR middle-end/39308
16282         * graphite.c (graphite_loop_normal_form): Do not call
16283         number_of_iterations_exit from a gcc_assert.
16284
16285 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16286
16287         * config/s390/s390.c (s390_swap_cmp): Look for conditional
16288         jumps if COND is NULL.
16289         (find_cond_jump): New function.
16290         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
16291         * config/s390/s390.md: Remove z10_cobra attribute value.
16292
16293 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
16294
16295         * config/alpha/alpha.h (alpha_expand_mov): Return false if
16296         force_const_mem returns NULL_RTX.
16297
16298 2009-02-26  Jan Hubicka  <jh@suse.cz>
16299
16300         PR debug/39267
16301         * cgraph.h (varpool_output_debug_info): Remove.
16302         * cgraphunit.c (varpool_output_debug_info): Remove.
16303         * dwarf2out.c (deferred_locations_struct): New struct
16304         (deferred_locations): New type.
16305         (deferred_locations_list): New static var.
16306         (deffer_location): New function.
16307         (gen_variable_die): Use it.
16308         (decls_for_scope): Output info on local static vars.
16309         (dwarf2out_finish): Process deferred locations.
16310         * varpool.c (varpool_output_debug_info): Remove.
16311
16312 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
16313
16314         PR rtl-optimization/39241
16315         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
16316         to subreg_offset_representable_p.
16317
16318 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
16319
16320         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
16321         execute function prototype.  Get f and nregs from max_reg_num
16322         and get_insns.  Remove the first backward pass as it's dead,
16323         guard the forward pass by flag_expensive_optimizations.
16324         (rest_of_handle_regmove): Delete.
16325         (pass_regmove): Replace it with regmove_optimize.
16326
16327 2009-02-25  Martin Jambor  <mjambor@suse.cz>
16328
16329         PR tree-optimization/39259
16330         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
16331         calls_alloca function flags.
16332         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
16333         calls are detected.
16334
16335 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
16336
16337         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
16338         flags_set_1_rtx, flags_set_1_set): Delete.
16339         (regmove_optimize): Do not call mark_flags_life_zones.
16340
16341 2009-02-24  Julian Brown  <julian@codesourcery.com>
16342
16343         PR target/35965
16344         * config/arm/arm.c (require_pic_register): Only set
16345         cfun->machine->pic_reg once per function.
16346
16347 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
16348
16349         * doc/invoke.texi (Link Options): Document an easier way to pass
16350         options that take arguments to the GNU linker using -Xlinker and -Wl.
16351
16352 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
16353
16354         PR target/33785
16355         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
16356
16357 2009-02-24  Richard Guenther  <rguenther@suse.de>
16358
16359         PR debug/39285
16360         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
16361
16362 2009-02-24  Richard Guenther  <rguenther@suse.de>
16363             Zdenek Dvorak  <ook@ucw.cz>
16364
16365         PR tree-optimization/39233
16366         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
16367         from converting them to a generic type.
16368
16369 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
16370
16371         PR tree-optimization/39260
16372         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
16373         contains a condition with a real type.
16374         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
16375
16376 2009-02-23  Jason Merrill  <jason@redhat.com>
16377
16378         PR c++/38880
16379         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
16380         narrowing_initializer_constant_valid_p.
16381         (narrowing_initializer_constant_valid_p): Don't return
16382         null_pointer_node for adding a pointer to itself.
16383
16384 2009-02-23  Jan Hubicka  <jh@suse.cz>
16385
16386         PR c/12245
16387         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
16388         resizing.
16389
16390 2009-02-23  Jan Hubicka  <jh@suse.cz>
16391
16392         PR tree-optimization/37709
16393         * tree.c (block_ultimate_origin): Move here from dwarf2out.
16394         * tree.h (block_ultimate_origin): Declare.
16395         * dwarf2out.c (block_ultimate_origin): Move to tree.c
16396         * tree-ssa-live.c (remove_unused_scope_block_p):
16397         Eliminate blocks containig no instructions nor live variables nor
16398         nested blocks.
16399         (dump_scope_block): New function.
16400         (remove_unused_locals): Enable removal of dead blocks by default;
16401         enable dumping at TDF_DETAILS.
16402
16403 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
16404
16405         * config/i386/i386.c (classify_argument): Don't allow COImode
16406         and OImode.
16407         (function_arg_advance_32): Don't allow OImode.
16408         (function_arg_32): Likewise.
16409         (function_value_32): Likewise.
16410         (return_in_memory_32): Likewise.
16411         (function_arg_64): Remove OImode comment.
16412
16413 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
16414
16415         PR target/39261
16416         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
16417         ix86_expand_vector_set for V4DImode in 64bit mode only.
16418         (ix86_expand_vector_init_one_var): Likewise.
16419
16420 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
16421
16422         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
16423
16424 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
16425
16426         PR bootstrap/39257
16427         * loop-iv.c: Revert last change.
16428         * emit-rtl.c: Likewise.
16429
16430 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
16431
16432         PR target/39256
16433         * config/i386/i386.c (type_natural_mode): Remove an extra
16434         space in the warning message.
16435         (function_value_32): Handle 32-byte vector modes.
16436         (return_in_memory_32): Likewise.
16437
16438 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
16439
16440         * loop-iv.c (truncate_value): New function.
16441         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
16442         of lowpart_subreg.
16443         (lowpart_subreg): Move to...
16444         * emit-rtl.c: ...here.
16445
16446 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
16447
16448         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
16449         accidental and undocumented change at revision 140860.
16450
16451 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
16452
16453         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
16454         take gimple_seq * arguments.
16455         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
16456         types_compatible_p langhook.
16457
16458 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
16459             Joseph Myers  <joseph@codesourcery.com>
16460
16461         * config/arm/arm.c (arm_builtin_va_list): New function.
16462         (arm_expand_builtin_va_start): Likewise.
16463         (arm_gimplify_va_arg_expr): Likewise.
16464         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
16465         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
16466         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
16467         (va_list_type): New variable.
16468         (arm_mangle_type): Mangle va_list_type appropriately.
16469
16470 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
16471
16472         PR middle-end/39157
16473         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
16474         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
16475         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
16476         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
16477         parameter to 1000 for -O1 by default.
16478         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
16479         parameter.
16480         * loop-invariant.c: Include params.h.
16481         (move_loop_invariants): Don't call move_single_loop_invariants on
16482         very large loops.
16483
16484 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
16485
16486         * calls.c (emit_library_call_value_1): Use slot_offset instead of
16487         offset when calculating bounds for indexing stack_usage_map.  Fixes
16488         a buffer overflow with certain target setups.
16489
16490 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
16491
16492         PR target/39240
16493         * calls.c (expand_call): Clear try_tail_call if caller and callee
16494         disagree in promotion of function return value.
16495
16496 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
16497
16498         PR target/39175
16499         * c-common.c (c_determine_visibility): If visibility changed and
16500         DECL_RTL has been already set, call make_decl_rtl to update symbol
16501         flags.
16502
16503 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
16504
16505         PR c++/39188
16506         * varasm.c (assemble_variable): Don't check DECL_NAME when
16507         globalizing a variable.
16508
16509 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
16510
16511         PR c/38483
16512         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
16513         expression before any __builtin_trap call.
16514         * c-typeck.c (build_function_call): Convert and check function
16515         arguments before generating a call to a trap.  Evaluate the
16516         function arguments before the trap.
16517
16518 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
16519
16520         PR target/39228
16521         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
16522         (UNSPEC_FXAM_MEM): New unspec.
16523         (fxam<mode>2_i387_with_temp): New insn and split pattern.
16524         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
16525         memory using fxam<mode>2_i387_with_temp to remove excess precision.
16526
16527 2009-02-19  Richard Guenther  <rguenther@suse.de>
16528
16529         PR tree-optimization/39207
16530         PR tree-optimization/39074
16531         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
16532         storedanything_tree): New.
16533         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
16534         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
16535         (build_succ_graph): Add edges from STOREDANYTHING to all
16536         non-direct nodes.
16537         (init_base_vars): Initialize STOREDANYTHING.
16538         (compute_points_to_sets): Free substitution info after
16539         building the succ graph.
16540         (ipa_pta_execute): Likewise.
16541
16542         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
16543         field.
16544         (do_ds_constraint): Do not add to special var or non-pointer
16545         field solutions.
16546         (type_could_have_pointers): Split out from ...
16547         (could_have_pointers): ... here.  For arrays use the element type.
16548         (create_variable_info_for): Initialize may_have_pointers.
16549         (new_var_info): Likewise.
16550         (handle_lhs_call): Make the HEAP variable unknown-sized.
16551         (intra_create_variable_infos): Use a type with pointers for
16552         PARM_NOALIAS, make it unknown-sized.
16553
16554 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
16555
16556         PR target/39224
16557         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
16558
16559 2009-02-18  Jason Merrill  <jason@redhat.com>
16560
16561         PR target/39179
16562         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
16563         value if DECL_EXTERNAL.
16564         * tree-sra.c (sra_walk_gimple_assign): Likewise.
16565         * target.h (gcc_target::binds_local_p): Clarify "module".
16566         * tree.h (TREE_PUBLIC): Clarify "module".
16567
16568 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
16569
16570         PR target/38891
16571         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
16572         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
16573
16574 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
16575
16576         PR target/39082
16577         * c.opt (Wabi): Support C and ObjC.
16578         (Wpsabi): New.
16579
16580         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
16581
16582         * config/i386/i386.c (classify_argument): Warn once about the ABI
16583         change when passing union with long double.
16584
16585         * doc/invoke.texi: Update -Wabi for warning psABI changes.
16586
16587 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
16588
16589         PR c/35447
16590         * c-parser.c (c_parser_compound_statement): Always enter and leave
16591         a scope.
16592
16593 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16594
16595         PR target/34587
16596         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
16597
16598 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
16599
16600         PR tree-optimization/36922
16601         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
16602         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
16603         Likewise.
16604
16605 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
16606
16607         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
16608         to 0 for EABI64.
16609
16610 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
16611
16612         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
16613
16614 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
16615
16616         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
16617         tree sharing.
16618
16619 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
16620             Richard Sandiford  <rdsandiford@googlemail.com>
16621
16622         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
16623         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
16624         (loongson_biadd): ...this.
16625
16626 2009-02-17  Richard Guenther  <rguenther@suse.de>
16627
16628         PR tree-optimization/39202
16629         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
16630         a var make sure to follow existing collapses.
16631
16632 2009-02-17  Richard Guenther  <rguenther@suse.de>
16633
16634         PR middle-end/39214
16635         * langhooks.c (lhd_print_error_function): Check for NULL block.
16636
16637 2009-02-17  Richard Guenther  <rguenther@suse.de>
16638
16639         PR tree-optimization/39204
16640         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
16641         of the PHI arg.
16642
16643 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
16644
16645         * config/soft-fp/double.h: Update from glibc CVS.
16646
16647 2009-02-17  Richard Guenther  <rguenther@suse.de>
16648
16649         PR tree-optimization/39207
16650         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
16651         strict-aliasing warnings for pointers pointing to NULL.
16652
16653 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
16654
16655         PR c/35446
16656         * c-parser.c (c_parser_braced_init): Call pop_init_level when
16657         skipping until next close brace.
16658
16659 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
16660
16661         PR target/37049
16662         * config/i386/i386.c (ix86_expand_push): Set memory alignment
16663         to function argument boundary.
16664
16665 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
16666
16667         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
16668         in the lea_add. Reload eventually constraints it properly.
16669         * config/picochip/constraints.md: Remove the target constraint
16670         "b", since it is not needed anymore.
16671
16672 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
16673
16674         * gthr-dce.h: Uglify function parameter and local variable names.
16675         * gthr-gnat.h: Likewise.
16676         * gthr-mipssde.h: Likewise.
16677         * gthr-nks.h: Likewise.
16678         * gthr-posix95.h: Likewise.
16679         * gthr-posix.h: Likewise.
16680         * gthr-rtems.h: Likewise.
16681         * gthr-single.h: Likewise.
16682         * gthr-solaris.h: Likewise.
16683         * gthr-tpf.h: Likewise.
16684         * gthr-vxworks.h: Likewise.
16685         * gthr-win32.h: Likewise.
16686
16687 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
16688
16689         PR target/39196
16690         * config/i386/i386.md: Restrict the new peephole2 to move
16691         between MMX/SSE registers.
16692
16693 2009-02-15  Richard Guenther  <rguenther@suse.de>
16694
16695         Revert
16696         2009-02-13  Richard Guenther  <rguenther@suse.de>
16697
16698         * configure.ac: Enable LFS.
16699         * configure: Re-generate.
16700         * config.in: Likewise.
16701
16702 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16703
16704         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
16705         spu_srqwbyte, spu_srqwbytebc): Define.
16706         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
16707         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
16708         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
16709         "shrqby_<mode>"): New insn-and-split patterns.
16710         * config/spu/spu.c (expand_builtin_args): Determine and return
16711         number of operands using spu_builtin_description data.
16712         (spu_expand_builtin_1): Use it.
16713
16714 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
16715
16716         PR target/38056
16717         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
16718         TARGET_CONST_GP.
16719
16720 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
16721
16722         PR target/39149
16723         * config/i386/i386.c (override_options): Correct warning
16724         messages for -malign-loops, -malign-jumps and -malign-functions.
16725
16726 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
16727
16728         PR target/39152
16729         * config/i386/i386.md: Restrict the new peephole2 to move
16730         between the general purpose registers.
16731
16732 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
16733
16734         PR target/39162
16735         * config/i386/i386.c (type_natural_mode): Add a new argument.
16736         Return the original mode and warn ABI change if vector size is 32byte.
16737         (function_arg_advance): Updated.
16738         (function_arg): Likewise.
16739         (ix86_function_value): Likewise.
16740         (ix86_return_in_memory): Likewise.
16741         (ix86_sol10_return_in_memory): Likewise.
16742         (ix86_gimplify_va_arg): Likewise.
16743         (function_arg_32): Don't warn ABX ABI change here.
16744         (function_arg_64): Likewise.
16745
16746 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
16747
16748         * loop-iv.c (implies_p): In the final case, test that operands 0
16749         of the two comparisons match.
16750
16751         * config/bfin/bfin.c (find_prev_insn_start): New function.
16752         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
16753         (find_next_insn_start): Move.
16754
16755 2009-02-13  Richard Guenther  <rguenther@suse.de>
16756
16757         * configure.ac: Enable LFS.
16758         * configure: Re-generate.
16759         * config.in: Likewise.
16760
16761 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
16762
16763         PR c/35444
16764         * c-parser.c (c_parser_parms_list_declarator): Discard pending
16765         sizes on syntax error after some arguments have been parsed.
16766
16767 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
16768
16769         * doc/invoke.texi (-fira): Remove.
16770
16771 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
16772
16773         * caller-save.c: Replace regclass.c with reginfo.c in comments.
16774         * recog.c: Likewise.
16775         * rtl.h: Likewise.
16776
16777 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
16778
16779         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
16780         (umul_ppmm): Likewise.
16781         (count_leading_zeros): Likewise.
16782         (count_trailing_zeros): Likewise.
16783         (UMUL_TIME): Likewise.
16784
16785 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
16786
16787         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
16788         soft-fp/t-softfp to tmake_file.
16789
16790         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
16791         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
16792         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
16793         IA64_BUILTIN_INFQ]: New.
16794         (ia64_init_builtins): Initialize __builtin_infq,
16795         __builtin_fabsq and __builtin_copysignq if not HPUX.
16796         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
16797         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
16798
16799         * config/ia64/lib1funcs.asm (__divtf3): Define only if
16800         SHARED is defined.
16801         (__fixtfti): Likewise.
16802         (__fixunstfti): Likewise.
16803         (__floattitf): Likewise.
16804
16805         * config/ia64/libgcc-glibc.ver: New.
16806         * config/ia64/t-fprules-softfp: Likewise.
16807         * config/ia64/sfp-machine.h: Likewise.
16808
16809         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
16810         (LIBGCC2_TF_CEXT): Likewise.
16811         (TF_SIZE): Likewise.
16812         (TARGET_INIT_LIBFUNCS): Likewise.
16813
16814         * config/ia64/t-glibc (SHLINB_MAPFILES):
16815         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
16816
16817 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
16818
16819         * config/i386/i386.c (construct_container): Rewrite processing
16820         BLKmode with X86_64_SSE_CLASS.
16821
16822 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
16823
16824         PR target/39152
16825         * config/i386/i386.md: Replace simplify_replace_rtx with
16826         replace_rtx in the new peephole2.
16827
16828 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
16829
16830         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
16831         loop unrolling do not happen at -O2.
16832
16833 2009-02-12  Michael Matz  <matz@suse.de>
16834
16835         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
16836
16837 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
16838
16839         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
16840         for -g3.
16841
16842 2009-02-12  Ben Elliston  <bje@au.ibm.com>
16843
16844         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
16845         patterns when updating the back chain.  Missed in the 2009-02-10
16846         change.
16847
16848 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
16849
16850         * doc/extend.texi (Decimal Floating Types): Update identifier of
16851         draft TR and list of missing support.
16852
16853 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
16854
16855         PR middle-end/39154
16856         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
16857         bit to variable length decl's flags, add it also to its
16858         pointer replacement variable.
16859
16860 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
16861             Jakub Jelinek  <jakub@redhat.com>
16862
16863         PR target/39118
16864         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
16865         (memory_blockage): New expander.
16866         (*memory_blockage): New insn pattern.
16867         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
16868         instead of general blockage at the end of function prologue when
16869         frame pointer is used to access red zone area.  Do not emit blockage
16870         when profiling, it is emitted in generic code.
16871         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
16872         function epilogue when frame pointer is used to access red zone area.
16873
16874 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
16875
16876         PR target/38824
16877         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
16878         by arithmetic with memory operands.
16879         * config/i386/predicates.md (commutative_operator): New.
16880
16881 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
16882
16883         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
16884         bulleted lists.
16885
16886 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
16887
16888         * alias.h (record_alias_subset): Declare.
16889         * alias.c (record_alias_subset): Make global.
16890
16891 2009-02-10  Nick Clifton  <nickc@redhat.com>
16892
16893         * tree-parloops.c: Change license to GPLv3.
16894         * ipa-struct-reorg.c: Change license to GPLv3.
16895         * ipa-struct-reorg.h: Change license to GPLv3.
16896
16897 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
16898
16899         PR c/39084
16900         * c-decl.c (start_struct): Return NULL on error.
16901
16902 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
16903
16904         PR middle-end/39124
16905         * cfgloopmanip.c (remove_path): Call remove_bbs after
16906         cancel_loop_tree, not before it.
16907
16908         PR target/39139
16909         * function.h (struct function): Add has_local_explicit_reg_vars bit.
16910         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
16911         VAR_DECLs were seen.
16912         * tree-ssa-live.c (remove_unused_locals): Recompute
16913         cfun->has_local_explicit_reg_vars.
16914         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
16915         copies or clearings if cfun->has_local_explicit_reg_vars.
16916
16917 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
16918
16919         PR target/39118
16920         * config/i386/i386.c (expand_prologue): Emit blockage at the end
16921         of function prologue when frame pointer is used to access
16922         red zone area.
16923
16924 2009-02-10  Richard Guenther  <rguenther@suse.de>
16925
16926         PR middle-end/39127
16927         * gimplify.c (gimple_regimplify_operands): Always look if
16928         we need to create a temporary.
16929
16930 2009-02-10  Richard Guenther  <rguenther@suse.de>
16931
16932         PR tree-optimization/39132
16933         * tree-loop-distribution.c (todo): New global var.
16934         (generate_memset_zero): Trigger TODO_rebuild_alias.
16935         (tree_loop_distribution): Return todo.
16936
16937 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
16938
16939         PR target/39119
16940         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
16941         (x86_64_reg_class_name): Removed.
16942         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
16943         first one isn't X86_64_SSE_CLASS or any other ones aren't
16944         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
16945         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
16946         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
16947         and 3 X86_64_SSEUP_CLASS.
16948         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
16949         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
16950
16951 2009-02-10  Ben Elliston  <bje@au.ibm.com>
16952
16953         * config/rs6000/rs6000.md (allocate_stack): Always use an update
16954         form instruction to update the stack back chain word, even if the
16955         user has disabled the generation of update instructions.
16956         (movdi_<mode>_update_stack): New.
16957         (movsi_update_stack): Likewise.
16958         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
16959         always use an update form instruction to update the stack back
16960         chain word.
16961
16962 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
16963
16964         PR middle-end/38953
16965         * graphite.c (if_region_set_false_region): After moving a region in
16966         the false branch of a condition, remove the empty dummy basic block.
16967         (gloog): Remove wrong fix for PR38953.
16968
16969 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16970
16971         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
16972         generation due to implicit sign extension.
16973
16974 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
16975
16976         PR middle-end/38981
16977         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
16978         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
16979
16980 2009-02-09  Richard Guenther  <rguenther@suse.de>
16981
16982         PR middle-end/35202
16983         * convert.c (convert_to_real): Disable (float)fn((double)x)
16984         to fnf(x) conversion if errno differences may occur and
16985         -fmath-errno is set.
16986
16987 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
16988
16989         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
16990         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
16991         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
16992
16993 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
16994
16995         PR c/35434
16996         * c-common.c (handle_alias_attribute): Disallow attribute for
16997         anything not a FUNCTION_DECL or VAR_DECL.
16998
16999 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
17000
17001         PR c/39035
17002         * real.c (do_compare): Special-case compare of zero against
17003         decimal float value.
17004
17005 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
17006
17007         PR c/36432
17008         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
17009         as indicating flexible array members unless the field itself is
17010         being declarared as the incomplete array.
17011
17012 2009-02-06  Jan Hubicka  <jh@suse.cz>
17013
17014         PR tree-optimization/38844
17015         * ipa-inline.c (try_inline): Stop inlining recursion when edge
17016         is already inlined.
17017
17018 2009-02-06  Richard Guenther  <rguenther@suse.de>
17019
17020         PR middle-end/38977
17021         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
17022         fork because we may expand it as __gcov_fork.
17023
17024 2009-02-06  Nick Clifton  <nickc@redhat.com>
17025
17026         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
17027
17028 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
17029
17030         PR tree-optimization/35659
17031         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
17032         vn_phi_eq): Shortcut if hashcode does not match.
17033         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
17034         NULL operands.
17035         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
17036         and avoid iterative_hash_expr.
17037         (FOR_EACH_VALUE_ID_IN_SET): New.
17038         (value_id_compare): Remove.
17039         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
17040         sort expressions by value id.
17041
17042 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
17043
17044         PR target/38991
17045         * config/sh/predicates.md (general_movsrc_operand): Don't check
17046         the subreg of system registers here.
17047
17048 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
17049
17050         PR c++/39106
17051         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
17052         on the copied decl.
17053
17054 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
17055
17056         PR rtl-optimization/39110
17057         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
17058         addresses, not aligned ones.
17059
17060 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
17061             Richard Guenther  <rguenther@suse.de>
17062
17063         PR tree-optimization/39100
17064         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
17065         comment says and add edges.
17066
17067 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
17068
17069         PR c/35435
17070         * c-common.c (handle_tls_model_attribute): Ignore attribute for
17071         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
17072
17073 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
17074
17075         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
17076         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
17077         register_bb_in_sese, new_sese, free_sese): Moved.
17078         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
17079         outermost_loop_in_scop, build_scop_iteration_domain,
17080         expand_scalar_variables_ssa_name, get_vdef_before_scop,
17081         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
17082         Use loop_in_sese_p instead of loop_in_scop_p.
17083         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
17084         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
17085         (scopdet_basic_block_info): Fix bug in scop detection.
17086         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
17087         eq_loop_to_cloog_loop): Remove.
17088         (nb_loops_around_loop_in_scop, nb_loop
17089         ref_nb_loops): Moved here...
17090         * graphite.h (ref_nb_loops): ... from here.
17091         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
17092         (loop_domain_dim, loop_iteration_vector_dim): Remove.
17093         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
17094         * testsuite/gcc.dg/graphite/scop-19.c: New
17095
17096 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
17097             Hans-Peter Nilsson  <hp@axis.com>
17098
17099         PR rtl-optimization/37889
17100         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
17101         Move offset handling from PLUS to before the switch.  Use new
17102         arguments when considering SYMBOL_REFs too.
17103         (rtx_addr_can_trap_p): Pass dummy offset and size.
17104         (enum may_trap_p_flags): Remove.
17105         (may_trap_p_1): Pass size from MEM_SIZE.
17106
17107         PR rtl-optimization/38921
17108         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
17109         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
17110         * rtlanal.c (may_trap_after_code_motion_p): Delete.
17111         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
17112
17113 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
17114
17115         AVX Programming Reference (January, 2009)
17116         * config/i386/sse.md (*vpclmulqdq): New.
17117
17118 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
17119
17120         PR tree-optimization/38977
17121         PR gcov-profile/38292
17122         * calls.c (special_function_p): Disregard __builtin_ prefix.
17123
17124 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
17125
17126         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
17127         non-indexable addresses even before reload.
17128
17129 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
17130
17131         PR c/29129
17132         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
17133         as having variable size.  Do not give an error for unnamed
17134         parameters with [*] declarators.  Give a warning for type names
17135         with [*] declarators and mark them as variable size.
17136         * c-parser.c (c_parser_sizeof_expression): Do not give an error
17137         for sizeof applied to [*] type names.
17138
17139 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17140
17141         PR C++/36607
17142         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
17143
17144 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
17145
17146         * gcc.c (process_command): Update copyright notice dates.
17147         * gcov.c (print_version): Likewise.
17148         * gcov-dump.c (print_version): Likewise.
17149         * mips-tfile.c (main): Likewise.
17150         * mips-tdump.c (main): Likewise.
17151
17152 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
17153
17154         PR c/35433
17155         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
17156         for composite type involving a zero-length array type.
17157
17158 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
17159
17160         PR target/35318
17161         * function.c (match_asm_constraints_1): Skip over
17162         initial optional % in the constraint.
17163
17164         PR inline-asm/39059
17165         * c-parser.c (c_parser_postfix_expression): If fixed point is not
17166         supported, don't accept FIXED_CSTs.
17167         * c-decl.c (finish_declspecs): Error if fixed point is not supported
17168         and _Sat is used without _Fract/_Accum.  Set specs->type to
17169         integer_type_node for cts_fract/cts_accum if fixed point is not
17170         supported.
17171
17172 2009-02-02  Catherine Moore  <clm@codesourcery.com>
17173
17174         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
17175
17176 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
17177
17178         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
17179         (ABI_HAS_64BIT_SYMBOLS): Use it.
17180         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
17181
17182 2009-02-02  Paul Brook  <paul@codesourcery.com>
17183
17184         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
17185
17186 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
17187
17188         PR inline-asm/39058
17189         * recog.h (asm_operand_ok): Add constraints argument.
17190         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
17191         recurse on matching constraint.
17192         (check_asm_operands): Pass constraints as 3rd argument to
17193         asm_operand_ok.  Don't look up matching constraint here.
17194         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
17195         to asm_operand_ok.
17196
17197 2009-02-02  Ben Elliston  <bje@au.ibm.com>
17198
17199         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
17200         TARGET_NARROW_VOLATILE_BITFIELD macro names.
17201
17202 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17203
17204         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
17205         information.  Remove some obsolete information.  Reorganize.
17206
17207         * config/pa/fptr.c: Revert license to GPL 2.
17208         * config/pa/milli64.S: Likewise.
17209
17210 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
17211
17212         PR target/38904
17213         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
17214         LIBRARY name in, instead of hard-coding it.
17215         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
17216         extra target make frag to tmake_files according to EH model.
17217         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
17218         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
17219         frags that define makefile variable EH_MODEL appropriately.
17220         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
17221         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
17222         to "-sjlj" according to type of EH configured.
17223         (LIBGCC_SONAME):  Concatenate it to shared library base name.
17224         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
17225         to "_sjlj" according to type of EH configured.
17226         (LIBGCC_SONAME):  Concatenate it to shared library base name.
17227         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
17228         (SHLIB_LINK):  Add missing semicolon to if-else construct.
17229         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
17230         string value of "pe_dll" command-line option.
17231         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
17232         (SHLIB_SONAME):  Use it when overriding t-cygming default.
17233         (SHLIB_IMPLIB):  Override t-cygming default.
17234         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
17235         string value of "pe_dll" command-line option.
17236
17237 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
17238
17239         PR target/38952
17240         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
17241         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
17242
17243 2009-01-31  Richard Guenther  <rguenther@suse.de>
17244
17245         PR tree-optimization/38937
17246         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
17247         computing the transitive closure.
17248
17249 2009-01-30  Richard Guenther  <rguenther@suse.de>
17250
17251         PR tree-optimization/39041
17252         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
17253         Propagate variable indices only if the types match for this stmt.
17254
17255 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
17256
17257         PR target/39013
17258         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
17259         inline but never defined.
17260
17261 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
17262
17263         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
17264         (*insv_h_di_reg_extimm): New insn.
17265         (*insv_l<mode>_reg_extimm): New insn.
17266
17267 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
17268
17269         * config/picochip/picochip.c (flag_conserve_stack): set
17270         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
17271         fconserve-stack. Reduce call-overhead used by inliner.
17272
17273 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
17274
17275         PR/38157
17276         * common.opt (flag_conserve_stack): Initialised to zero.
17277
17278 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
17279
17280         PR/39002
17281         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
17282         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
17283         method.
17284
17285 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
17286
17287         * ira-color.c (allocno_reload_assign): Update comments.
17288         * regmove.c (regmove_optimize): Likewise.
17289
17290         * ra.h: Removed.
17291
17292 2009-01-29  Robert Millan  <rmh@aybabtu.com>
17293
17294         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
17295         * config/i386/kopensolaris-gnu.h: New file.  Undefine
17296         `MD_UNWIND_SUPPORT'.
17297         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
17298
17299 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
17300
17301         PR tree-optimization/39007
17302         * tree-loop-distribution.c (generate_builtin): Use
17303         recompute_dominator to compute the immediate dominator of the
17304         basic block just after the loop.
17305
17306 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17307
17308         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
17309         (ASM_OUTPUT_DWARF_PCREL): Define.
17310
17311 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
17312
17313         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
17314         * doc/passes.texi: Remove entries about regclass, local-alloc, and
17315         global.  Modify entries about regmove and IRA.
17316
17317         * ra-conflict.c: Remove the file.
17318
17319         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
17320
17321         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
17322         (pass_regclass_init): Rename to pass_reginfo_init.
17323
17324         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
17325
17326         * toplev.h (flag_ira): Remove.
17327
17328         * caller-save.c (setup_save_areas): Remove flag_ira.
17329
17330         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
17331
17332         * global.c: Remove the file.
17333
17334         * opts.c (decode_options): Remove flag_ira.
17335
17336         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
17337
17338         * regmove.c: Modify file description.
17339         (find_use_as_address, try_auto_increment): Define them only if
17340         AUTO_INC_DEC is defined.
17341         (replacement_quality, replace_in_call_usage, fixup_match_1,
17342         stable_and_no_regs_but_for_p): Remove.
17343         (reg_set_in_bb): Make it static.
17344         (regmove_optimize): Remove flag_ira and code which worked for
17345         !flag_ira.
17346
17347         * local-alloc.c: Remove the file.
17348
17349         * common.opt (fira): Remove.
17350
17351         * ira.c: Include except.h.
17352         (eliminable_regset): Move from global.c.
17353         (mark_elimination): Ditto.  Remove flag_ira.
17354         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
17355         equiv_mem_modified, validate_equiv_mem_from_store,
17356         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
17357         contains_replace_regs, memref_referenced_p, memref_used_between_p,
17358         no_equiv, recorded_label_ref): Move from local-alloc.c.
17359         (update_equiv_regs): Ditto.  Make it static.
17360         (print_insn_chain, print_insn_chains): Move it from global.c.
17361         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
17362         (build_insn_chain): Ditto.  Make it static.
17363         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
17364         Rename to init_live_subregs.
17365         (gate_ira): Remove flag_ira.
17366
17367         * regclass.c: Rename reginfo.c.  Change file description.
17368         (FORBIDDEN_INC_DEC_CLASSES): Remove.
17369         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
17370         (init_reg_sets_1): Remove code for evaluation of
17371         reg_class_superclasses and losing_caller_save_reg_set.
17372         (init_regs): Remove init_reg_autoinc.
17373         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
17374         ok_for_base_p_nonstrict): Remove.
17375         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
17376         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
17377         corresponding entries.
17378         (dump_regclass, record_operand_costs, scan_one_insn,
17379         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
17380         record_address_regs, auto_inc_dec_reg_p): Remove.
17381         (gt-regclass.h): Rename to gt-reginfo.h.
17382
17383         * rtl.h (dump_global_regs, retry_global_alloc,
17384         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
17385
17386         * Makefile.in (RA_H): Remove.
17387         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
17388         Rename regclass.o to reginfo.o.
17389         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
17390         gt-reginfo.h.
17391         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
17392         (GTFILES): Rename regclass.c to reginfo.c.
17393
17394         * passes.c (init_optimization_passes): Remove pass_local_alloc and
17395         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
17396
17397         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
17398         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
17399         Remove flag_ira.
17400         (finish_spills): Ditto.  Remove code for !flag_ira.
17401
17402 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
17403
17404         PR middle-end/35854
17405         * doc/invoke.texi (rtl debug options): Complete rewrite.
17406         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
17407         to auto_inc_dec".
17408         * mode-switching.c (pass_mode_switching): Rename pass from
17409         "mode-sw" to "mode_sw".
17410         * except.c (pass_convert_to_eh_ranges): Rename pass from
17411         "eh-ranges" to "eh_ranges".
17412         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
17413         to "subreg1".
17414
17415
17416 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
17417             Alexander Monakov  <amonakov@ispras.ru>
17418
17419         PR middle-end/38857
17420         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
17421         register.
17422         (move_exprs_to_boundary): Change return type and pass through
17423         should_move from move_op.  Relax assert.  Update usage ...
17424         (schedule_expr_on_boundary): ... here.  Use should_move instead of
17425         cant_move.
17426         (move_op_orig_expr_found): Indicate that insn was disconnected from
17427         stream.
17428         (code_motion_process_successors): Do not call after_merge_succs
17429         callback if original expression was not found when traversing any of
17430         the branches.
17431         (code_motion_path_driver): Change return type.  Update prototype.
17432         (move_op): Update comment.  Add a new parameter (should_move).  Update
17433         prototype.  Set *should_move based on indication provided by
17434         move_op_orig_expr_found.
17435
17436 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
17437
17438         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
17439         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
17440         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
17441         * config/rs6000/rs6000.c (rs6000_override_options): Default
17442         avoid-indexed-addresses on for Power6, off for everything else.
17443         (avoiding_indexed_address_p): New function.
17444         (rs6000_legitimize_address): Use it.
17445         (rs6000_legitimate_address): Likewise.
17446         * config/rs6000/rs6000.md (movXX_updateX): Likewise
17447
17448 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
17449
17450         PR tree-optimization/38997
17451         * tree-loop-distribution.c (generate_memset_zero): Use
17452         POINTER_PLUS_EXPR for a pointer addition.
17453
17454 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
17455
17456         * config/s390/s390.md (bswap<mode>2): New pattern added.
17457
17458 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
17459
17460         * config/s390/s390.md (*tls_load_31): Added type attribute.
17461
17462 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
17463
17464         * config/s390/s390.md: Fix a few comments.
17465
17466 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
17467
17468         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
17469         (*tm<mode>_full): Fixed z10prop attribute.
17470         (*tst<mode>_extimm): Fixed z10prop attribute.
17471         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
17472         (*tstqiCCT_cconly): Fixed z10prop attribute.
17473         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
17474         (*movsi_larl): Fixed z10prop attribute.
17475         (*movsi_zarch): Fixed z10prop attribute.
17476         (*movsi_eas): Fixed z10prop attribute.
17477         (*movhi): Fixed z10prop attribute.
17478         (*movqi): Fixed z10prop attribute.
17479         (*movstrictqi): Fixed z10prop attribute.
17480         (*mov<mode>): Fixed z10prop attribute.
17481         (*movcc): Fixed z10prop attribute.
17482         (*sethighpartdi_64): Fixed z10prop attribute.
17483         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
17484         (*negdi2_sign_cc): Fixed z10prop attribute.
17485         (*negdi2_sign): Fixed z10prop attribute.
17486         (*absdi2_sign_cc): Fixed z10prop attribute.
17487         (*absdi2_sign): Fixed z10prop attribute.
17488         (*negabsdi2_sign_cc): Fixed z10prop attribute.
17489         (*negabsdi2_sign): Fixed z10prop attribute.
17490         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
17491         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
17492         (doloop_si64): Fixed z10prop attribute.
17493         (doloop_si31): Fixed z10prop attribute.
17494         (doloop_long): Fixed z10prop attribute.
17495         (indirect_jump): Fixed z10prop attribute.
17496         (nop): Fixed z10prop attribute.
17497         (main_base_64): Fixed z10prop attribute.
17498         (reload_base_64): Fixed z10prop attribute.
17499
17500 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
17501
17502         PR rtl-optimization/38740
17503         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
17504         if !optimize.
17505         * config/mips/mips.c (mips_reorg): Likewise.
17506
17507 2009-01-28  Richard Guenther  <rguenther@suse.de>
17508
17509         PR tree-optimization/38926
17510         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
17511         with the correct value id to a value.
17512         (do_regular_insertion): Use the value number of edoubleprime
17513         for the value number of the expr.
17514
17515         Revert
17516         2008-08-21  Richard Guenther  <rguenther@suse.de>
17517
17518         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
17519         a PHI ask VN if it is already available.
17520         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
17521         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
17522
17523 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
17524
17525         PR middle-end/38934
17526         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
17527         set to varying whenever max has TREE_OVERFLOW set, similarly
17528         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
17529
17530 2009-01-28  Richard Guenther  <rguenther@suse.de>
17531
17532         PR middle-end/38908
17533         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
17534         uninitialized aggregate uses in call arguments.
17535
17536 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
17537
17538         PR tree-optimization/38984
17539         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
17540         the nothing_id variable if -fno-delete-null-pointer-checks.
17541
17542 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
17543
17544         PR target/38988
17545         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
17546         (set_got_offset_rex64): Ditto.
17547
17548 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
17549
17550         PR target/38941
17551         * doc/extend.texi: Improve local variable with asm reg.
17552
17553 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
17554
17555         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
17556         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
17557         was not supplied then set warn_packed_bitfield_compat to the
17558         default value of 1.
17559         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
17560         against 1.
17561
17562 2009-01-27  Richard Guenther  <rguenther@suse.de>
17563
17564         PR tree-optimization/38503
17565         * cfgexpand.c (expand_gimple_basic_block): Ignore
17566         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
17567         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
17568         variables that cannot have TBAA applied.
17569         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
17570         statements.
17571
17572 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
17573
17574         PR middle-end/38969
17575         * calls.c (initialize_argument_information): Do not wrap complex
17576         arguments in SAVE_EXPR.
17577
17578 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
17579
17580         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
17581         (INSTALL_LIBGCC): Revert typo commit.
17582
17583 2009-01-26  Richard Guenther  <rguenther@suse.de>
17584
17585         PR tree-optimization/38745
17586         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
17587         from special handling.
17588
17589 2009-01-26  Richard Guenther  <rguenther@suse.de>
17590
17591         PR tree-optimization/38745
17592         * tree-ssa.c (execute_update_addresses_taken): Do not include
17593         variables that cannot possibly be a register in not_reg_needs.
17594         Do not clear TREE_ADDRESSABLE on vars that may not become
17595         registers.
17596         * tree-ssa.c (update_alias_info_1): Include those in the set
17597         of addressable vars.
17598
17599 2009-01-26  Richard Guenther  <rguenther@suse.de>
17600
17601         PR middle-end/38851
17602         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
17603         * tree-ssa-dse.c: Include langhooks.h
17604         (execute_simple_dse): Remove stores with zero size.
17605
17606 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
17607
17608         PR c/38957
17609         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
17610         as PLUS_EXPR.
17611
17612 2009-01-24  Julian Brown  <julian@codesourcery.com>
17613
17614         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
17615         config/arm/linux-atomic.c.
17616         * config/arm/linux-atomic.c: New.
17617
17618 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
17619
17620         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
17621         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
17622         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
17623
17624 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
17625
17626         PR c/38938
17627         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
17628         properly.
17629
17630 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
17631
17632         PR tree-optimization/38953
17633         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
17634         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
17635         (gloog): Split the exit of the scop when the scop exit is a loop exit.
17636         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
17637         changed the CFG.
17638
17639 2009-01-24  Paul Brook  <paul@codesourcery.com>
17640
17641         * config/arm/neon.md (neon_type): Move to arm.md.
17642         (neon_mov<VSTRUCT>): Add neon_type attribute.
17643         * config/arm/arm.md (neon_type): Move to here.
17644         (conds): Add "unconditioal" and use as default for NEON insns.
17645
17646 2009-01-24  Ben Elliston  <bje@au.ibm.com>
17647
17648         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
17649         void *' warning from -Wc++-compat.
17650         * Makefile.in (dominance.o-warn): Remove.
17651
17652 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
17653
17654         PR tree-optimization/38932
17655         * fold-const.c (fold_unary_ignore_overflow): New.
17656         * tree.h (fold_unary_ignore_overflow): Declare.
17657         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
17658         * tree-ssa-sccvn.c (visit_reference_op_load,
17659         simplify_unary_expression): Likewise.
17660
17661 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
17662
17663         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
17664         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
17665         regardless of their type.
17666         * c-common.c (handle_packed_attribute): Don't ignore packed on
17667         bitfields.
17668         * c.opt (Wpacked-bitfield-compat): New warning option.
17669         * stor-layout.c (place_field): Warn if offset of a field changed.
17670         * doc/extend.texi (packed): Mention the ABI change.
17671         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
17672         (Warning Options): Add it to the list.
17673
17674 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
17675
17676         * c-opts.c (c_common_post_options): Fix a typo in comments.
17677
17678 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
17679
17680         PR middle-end/38615
17681         * gimplify.c (gimplify_init_constructor): Fix promotion of const
17682         variables to static.
17683         * doc/invoke.texi (-fmerge-all-constants): Update description.
17684
17685 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
17686
17687         PR target/38931
17688         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
17689         (*movdi_1_rex64): Use type "mmx" for alternative 5.
17690
17691 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
17692
17693         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
17694         a word boundary.
17695         (LOCAL_ALIGNMENT): Similarly.
17696
17697 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
17698             Joseph Myers  <joseph@codesourcery.com>
17699
17700         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
17701         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
17702         * config/arm/arm-tune.md: Regenerate.
17703         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
17704         -march=iwmmxt2.
17705
17706 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
17707
17708         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
17709         version number to five.
17710
17711 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
17712
17713         PR c++/38930
17714         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
17715         * c-common.c (set_underlying_type): Likewise.
17716         (is_typedef_decl ): Likewise
17717         * tree.h: Likewise
17718         (set_underlying_type): Likewise.
17719         (is_typedef_type): Likewise.
17720
17721 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
17722
17723         PR middle-end/38587
17724         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
17725         crossing setjmps.
17726
17727 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
17728
17729         PR bootstrap/37660
17730         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
17731         (LIBGCC_SPEC):  Don't define.
17732         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
17733
17734 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
17735
17736         PR rtl-optimization/38879
17737         * alias.c (base_alias_check): Unaligned access via AND address can
17738         alias all surrounding object types except those with sizes equal
17739         or wider than the size of unaligned access.
17740
17741 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
17742
17743         PR c++/26693
17744         * c-decl.c (clone_underlying_type): Move this ...
17745         * c-common.c (set_underlying_type): ... here.
17746         Also, make sure the function properly sets TYPE_STUB_DECL() on
17747         the newly created typedef variant type.
17748         (is_typedef_decl ): New entry point.
17749         * tree.h: Added a new member member_types_needing_access_check to
17750         struct tree_decl_non_common.
17751         (set_underlying_type): New entry point.
17752         (is_typedef_type): Likewise.
17753
17754 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
17755
17756         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
17757         Check whether two instructions have memory references that
17758         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
17759         are helper functions for traversing.
17760         * alias.h (insn_alias_sets_confilict_p): New prototypes.
17761         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
17762         not to draw dependency edge for instructions with non-conflicting
17763         alias sets.
17764
17765 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
17766
17767         PR other/38758
17768         * longlong.h: Update copyright years.  Use soft-fp license notice.
17769         Sync __clz_tab declaration with glibc.
17770
17771 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
17772
17773         PR target/30687
17774         * doc/extend.texi (syscall_linkage): New.
17775         (version_id): Modify.
17776
17777 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17778             Richard Guenther  <rguenther@suse.de>
17779
17780         PR tree-optimization/38747
17781         PR tree-optimization/38748
17782         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
17783         conversion if the base address is an indirect reference and the
17784         aliasing sets could cause issues.
17785
17786 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
17787
17788         * common.opt (fgraphite, fgraphite-identity): Add comment for
17789         explaining why these options are not documented.
17790
17791 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
17792
17793         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
17794         gimple_call_lhs is NULL.
17795
17796 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
17797
17798         PR target/38868
17799         * emit-rtl.c (adjust_address_1): Make sure memref is never
17800         overwritten.
17801
17802 2009-01-20  Ben Elliston  <bje@au.ibm.com>
17803
17804         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
17805         const qualifier from arg parameter. Remove unnecessary cast to char *.
17806         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
17807         const qualifier from arg 2.
17808
17809 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
17810
17811         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
17812
17813 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
17814
17815         PR c/38869
17816         * rtl.h (reinit_regs): New prototype.
17817         * regclass.c: Include ira.h.
17818         (reinit_regs): New.
17819         * Makefile.in (regclass.o): Add ira.h.
17820         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
17821
17822 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
17823
17824         PR target/38736
17825         * c-common.c (handle_aligned_attribute): Use
17826         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
17827         default alignment value.
17828
17829         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
17830
17831         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
17832         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
17833
17834         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
17835         __BIGGEST_ALIGNMENT__.
17836
17837         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
17838
17839 2009-01-18  Richard Guenther  <rguenther@suse.de>
17840
17841         PR tree-optimization/38819
17842         * tree-flow.h (operation_could_trap_helper_p): Declare.
17843         * tree-eh.c (operation_could_trap_helper_p): Export.
17844         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
17845         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
17846         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
17847         are about to insert a possibly trapping instruction and fail
17848         in this case.
17849
17850 2009-01-18  Andreas Schwab  <schwab@suse.de>
17851
17852         * doc/install.texi (Configuration): Remove obsolete paragraph
17853         about use of --with-gnu-ld with --with-gnu-as.
17854
17855 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
17856
17857         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
17858         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
17859         Follow spelling conventions.
17860
17861 2009-01-18  Ben Elliston  <bje@au.ibm.com>
17862
17863         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
17864         C++ warning about implicit conversion from void * to struct
17865         bitmap_head_def *.
17866         (bitmap_obstack_free): Likewise for bitmap_element *.
17867         * Makefile.in (bitmap.o-warn): Remove.
17868
17869 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
17870
17871         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
17872
17873 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
17874             Tobias Grosser  <tobi.grosser@amd.com>
17875
17876         * graphite.c (graphite_trans_scop_block): Do not block single
17877         nested loops.
17878
17879 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
17880
17881         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
17882         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
17883         test with assertion.
17884
17885 2009-01-16  Richard Guenther  <rguenther@suse.de>
17886
17887         PR tree-optimization/38835
17888         PR middle-end/36227
17889         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
17890         and INT + PTR -> (INT)(PTR p+ INT) folding.
17891         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
17892
17893 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
17894
17895         PR target/38554
17896         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
17897         the subreg from a lowpart subreg if it is also casting the value.
17898
17899 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
17900             Tobias Grosser  <tobi.grosser@amd.com>
17901
17902         * graphite.c (compare_prefix_loops): New.
17903         (build_scop_canonical_schedules): Rewritten.
17904         (graphite_transform_loops): Move build_scop_canonical_schedules
17905         after build_scop_iteration_domain.
17906
17907 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
17908             Tobias Grosser  <tobi.grosser@amd.com>
17909
17910         * graphite.c (add_conditions_to_domain): Add the loops to
17911         the dimension of the iteration domain.  Do copy the domain
17912         only when it exists.
17913         (build_scop_conditions_1): Do not call add_conditions_to_domain.
17914         (add_conditions_to_constraints): New.
17915         (can_generate_code_stmt, can_generate_code): Removed.
17916         (gloog): Do not call can_generate_code.
17917         (graphite_transform_loops): Call add_conditions_to_constraints
17918         after building the iteration domain.
17919
17920 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
17921
17922         PR tree-optimization/38789
17923         * tree-ssa-threadedge.c
17924         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
17925         __builtin_constant_p.
17926
17927 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
17928
17929         * dce.c (delete_unmarked_insns): Reversed the order that insns are
17930         examined before deleting them.
17931
17932 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
17933
17934         * function.c (aggregate_value_p): Correctly extract the function
17935         type from CALL_EXPR_FN lookup.
17936
17937 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
17938
17939         * config/picochip/picochip.c (picochip_override_options): Revert
17940         CFI asm flag disable commited previously.
17941
17942 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
17943             Tobias Grosser  <tobi.grosser@amd.com>
17944             Jan Sjodin  <jan.sjodin@amd.com>
17945
17946         * graphite.c (scan_tree_for_params): On substractions negate
17947         all the coefficients of the term.
17948         (clast_to_gcc_expression_red): New.  Handle reduction expressions
17949         of more than two operands.
17950         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
17951         (get_vdef_before_scop): Handle also the case of default definitions.
17952
17953 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
17954
17955         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
17956         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
17957         Also use them when walking CALL_INSN_FUNCTION_USAGE.
17958
17959 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
17960             Joey Ye  <joey.ye@intel.com>
17961
17962         PR middle-end/37843
17963         * cfgexpand.c (expand_stack_alignment): Don't update stack
17964         boundary nor check incoming stack boundary here.
17965         (gimple_expand_cfg): Update stack boundary and check incoming
17966         stack boundary here.
17967
17968 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
17969
17970         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
17971
17972 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
17973
17974         PR rtl-optimization/38245
17975         * calls.c (expand_call): Add stack arguments to
17976         CALL_INSN_FUNCTION_USAGE even for pure calls (when
17977         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
17978         in regs and partially in memory or BLKmode arguments.
17979         (emit_library_call_value_1): Add stack arguments to
17980         CALL_INSN_FUNCTION_USAGE even for pure calls (when
17981         ACCUMULATE_OUTGOING_ARGS).
17982         * dce.c: Include tm_p.h.
17983         (find_call_stack_args): New function.
17984         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
17985         argument.
17986         (mark_insn): Call find_call_stack_args for CALL_Ps.
17987         (prescan_insns_for_dce): Walk insns backwards in bb rather than
17988         forwards.  Allocate and free arg_stores bitmap if needed, pass it
17989         down to deletable_insn_p, don't mark stores set in arg_stores
17990         bitmap, clear the bitmap at the beginning of each bb.
17991         * Makefile.in (dce.o): Depend on $(TM_P_H).
17992
17993 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
17994
17995         PR target/22599
17996         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
17997         to make sure the insn is a conditional test (bug 22599).  Reformat a
17998         few long lines.
17999
18000 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
18001
18002         PR middle-end/38431
18003         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
18004         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
18005         (gloog): Do not call cleanup_tree_cfg.
18006         (graphite_transform_loops): Call cleanup_tree_cfg after all
18007         scops have been code generated.
18008
18009 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
18010         * doc/gty.texi (Invoking the garbage collector): Added new node
18011         and section documenting ggc_collect.
18012
18013 2009-01-14  Richard Guenther  <rguenther@suse.de>
18014
18015         PR tree-optimization/38826
18016         PR middle-end/38477
18017         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
18018         initialization notes only if we actually emitted a warning.
18019         (intra_create_variable_infos): Add constraints for a result decl
18020         that is passed by hidden reference.
18021         (build_pred_graph): Mark all related variables non-direct on
18022         address-taking.
18023
18024 2009-01-14  Nick Clifton  <nickc@redhat.com>
18025
18026         * ira-conflicts.c: Include addresses.h for the definition of
18027         base_reg_class.
18028         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
18029         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
18030
18031 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
18032
18033         PR target/38811
18034         * Makefile.in (ira-lives.o): Add except.h.
18035
18036         * ira-lives.c: Include except.h.
18037         (process_bb_node_lives): Process can_throw_internal.
18038
18039 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
18040
18041         PR rtl-optimization/38774
18042         * combine.c (simplify_set): When undoing cc_use change, don't do
18043         PUT_CODE on the newly created comparison, but instead put back the
18044         old comparison.
18045
18046 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
18047
18048         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
18049         values.  Remove duplicate arm8 entry.
18050
18051 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
18052
18053         PR tree-optimization/38786
18054         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
18055         the SSA_NAME case of expand_scalar_variables_expr.
18056         Set the type of an expression to the type of its assign statement.
18057         (expand_scalar_variables_expr): Also gather the scalar computation
18058         used to index the memory access.  Do not pass loop_p.
18059         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
18060         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
18061         the gimple_stmt_iterator where it inserts new code.
18062         Do not pass loop_p.
18063         (copy_bb_and_scalar_dependences): Do not pass loop_p.
18064         (translate_clast): Update call to copy_bb_and_scalar_dependences.
18065
18066 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
18067
18068         * graphite.h (debug_value): Removed.
18069         * graphite.c (debug_value): Removed.
18070
18071 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
18072
18073         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
18074         ldrd/strd with two 32-bit instructions.
18075
18076 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
18077
18078         * config/arm/arm.c (struct processors): Pass for speed down into
18079         cost helper functions.
18080         (const_ok_for_op): Handle COMPARE and inequality nodes.
18081         (arm_rtx_costs_1): Rewrite.
18082         (arm_size_rtx_costs): Update prototype.
18083         (arm_rtx_costs): Pass speed down to helper functions.
18084         (arm_slowmul_rtx_costs): Rework cost calculations.
18085         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
18086         (arm_9e_rtx_costs): Likewise.
18087
18088 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
18089
18090         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
18091         relocations of local symbols wider than UNITS_PER_WORD are not valid.
18092         (alpha_legitimize_address): Do not split local symbols wider than
18093         UNITS_PER_WORD into HIGH/LO_SUM parts.
18094
18095 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
18096
18097         PR bootstrap/38580
18098         * gcc.c (process_command): Replace call to execvp with calls
18099         to pex_one and exit.
18100
18101 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
18102
18103         PR target/29141
18104         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
18105         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
18106         variant for devices with 3-byte PC.
18107         (__tablejump_elpm__): New.
18108
18109 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
18110
18111         PR c/32041
18112         * c-parser.c (c_parser_postfix_expression): Allow `->' in
18113         offsetof member-designator, handle it as `[0].'.
18114
18115 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18116
18117         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
18118         function when not using named sections on targets with named sections
18119         if branch distance is less than 262132.
18120
18121 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
18122
18123         * combine.c (combine_instructions):  Recompute
18124         optimize_this_for_speed_p  for each BB in the main combine loop.
18125
18126 2009-01-12  Tomas Bily  <tbily@suse.cz>
18127
18128         PR middlend/38385
18129         * tree-loop-distribution.c (prop_phis): New function.
18130         (generate_builtin): Call prop_phis.
18131         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
18132
18133 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
18134
18135         PR tree-optimization/38807
18136         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
18137         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
18138
18139 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
18140
18141         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
18142         subreg of op0 to the original op0.
18143
18144 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
18145
18146         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
18147
18148 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
18149
18150         PR debug/7055
18151         * mips-tfile.c (parse_def): Fix parsing of def strings
18152         starting with digits.
18153
18154 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
18155
18156         PR target/38695
18157         * config/arm/arm.c (arm_is_long_call_p): Don't call
18158         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
18159
18160 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
18161
18162         * regrename.c (regrename_optimize): Fix dumping.
18163         (find_oldest_value_reg): Preserve REG_POINTER.
18164         (copy_hardreg_forward_1): Likewise.
18165
18166 2009-01-09  Diego Novillo  <dnovillo@google.com>
18167
18168         * gimple.h (struct gimple_statement_base) <uid>: Document
18169         the restrictions on its use.
18170         (gimple_uid): Tidy.
18171         (gimple_set_uid): Tidy.
18172
18173 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
18174
18175         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
18176         zero guard even if align_bytes != 0 and count is smaller than
18177         size_needed.
18178
18179 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
18180
18181         PR rtl-optimization/38495
18182         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
18183         (add_range_and_copies_from_move_list): Print all added ranges.
18184         Add ranges to memory optimized destination.
18185
18186 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
18187
18188         PR target/38686
18189         PR target/38708
18190         * config/i386/i386.c (override_options): Reject
18191         -mstringop-strategy=rep_8byte with -m32.
18192         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
18193         to 1.  Do count comparison against epilogue_size_needed at compile
18194         time even when count_exp was constant forced into register.  For
18195         size_needed don't jump to epilogue, instead just avoid aligning
18196         and invoke the body algorithm.  If need_zero_guard, add zero guard
18197         even if count is non-zero, but smaller than size_needed + number of
18198         bytes that could be stored for alignment.
18199         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
18200         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
18201         but smaller than size_needed + number of bytes that could be stored
18202         for alignment.  Compare size_needed with epilogue_size_needed instead
18203         of desired_align - align, don't adjust size_needed, pass
18204         epilogue_size_needed to the epilogue expanders.
18205
18206         PR c/35742
18207         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
18208
18209 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18210
18211         * pa.c (last_address): Change to unsigned.
18212         (update_total_code_bytes): Change argument to unsigned.  Don't
18213         check if insn addresses are set.
18214         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
18215         addresses are not set.
18216         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
18217
18218 2009-01-09  Nick Clifton  <nickc@redhat.com>
18219
18220         * config/sh/symbian.c: Replace uses of DECL_INLINE with
18221         DECL_DECLARED_INLINE_P.
18222
18223 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
18224
18225         PR middle-end/38347
18226         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
18227         GET_MODE (op0) in operand_subword_force calls.
18228
18229         PR middle-end/38771
18230         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
18231         fold_convert arg0 operands to TREE_TYPE (op0) first.
18232
18233 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
18234
18235         * params.def (ira-max-conflict-table-size): Decrease default value
18236         to 1000.
18237
18238 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
18239
18240         PR tree-optimization/37031
18241         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
18242         on parameter_set.
18243         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
18244         allocate it using gc instead of heap, use VEC_quick_push instead of
18245         VEC_safe_push.
18246         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
18247         instead of heap, use VEC_quick_push instead of VEC_safe_push.
18248         * tree-data-ref.h (struct access_matrix): Change matrix to gc
18249         allocated vector from heap allocated.
18250         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
18251         * tree-loop-linear.c (linear_transform_loops): Allocate nest
18252         vector only after perfect_loop_nest_depth call.
18253
18254 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
18255             Jan Sjodin  <jan.sjodin@amd.com>
18256
18257         PR tree-optimization/38559
18258         * graphite.c (debug_value, copy_constraint,
18259         swap_constraint_variables, scale_constraint_variable, ): New.
18260         (get_lower_bound, get_upper_bound): Removed.
18261         (graphite_trans_bb_strip_mine): Clean up this code that works
18262         only for constant number of iterations.  Fully copy upper and
18263         lower bound constraints, not only the constant part of them.
18264         * graphite.h (debug_value): Declared.
18265
18266 2009-01-08  Ira Rosen  <irar@il.ibm.com>
18267
18268         PR tree-optimization/37194
18269         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
18270         Don't add the cost of cost model guard in prologue to scalar
18271         outside cost in case of known number of iterations.
18272
18273 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
18274             Alan Modra  <amodra@bigpond.net.au>
18275
18276         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
18277         non-word-aligned REG+CONST addressing.
18278
18279 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
18280
18281         PR target/38706
18282         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
18283         free_after_compilation when outputting a thunk.
18284         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
18285         Do not call free_after_compilation here.
18286
18287 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
18288
18289         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
18290         (ix86_valid_target_attribute_inner_p): Ditto.
18291
18292 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
18293
18294         PR tree-optimization/38492
18295         PR tree-optimization/38498
18296         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
18297         * tree-chrec.h (scev_is_linear_expression): Declared.
18298         * graphite.c (graphite_cannot_represent_loop_niter): New.
18299         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
18300         (graphite_loop_normal_form): Use gcc_assert.
18301         (scan_tree_for_params): Use CASE_CONVERT.
18302         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
18303         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
18304         Use gcc_assert.  Discard scops that contain unhandled cases.
18305         (build_scop_conditions): Return a boolean status for unhandled cases.
18306         (strip_mine_profitable_p): Print the loop number, not its depth.
18307         (is_interchange_valid): Pass the depth of the loop nest, don't
18308         recompute it wrongly.
18309         (graphite_trans_bb_block): Same.
18310         (graphite_trans_bb_block): Print tentative of loop blocking.
18311         (graphite_trans_scop_block): Do not print that the loop has been
18312         blocked.
18313         (graphite_transform_loops): Do not handle scops that contain condition
18314         scalar phi nodes.
18315
18316 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
18317
18318         AVX Programming Reference (December, 2008)
18319         * config/i386/avxintrin.h (_mm256_stream_si256): New.
18320         (_mm256_stream_pd): Likewise.
18321         (_mm256_stream_ps): Likewise.
18322
18323         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
18324         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
18325         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
18326         (bdesc_special_args): Add __builtin_ia32_movntdq256,
18327         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
18328         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
18329         (ix86_expand_special_args_builtin): Likewise.
18330
18331         * config/i386/sse.md (AVXMODEDI): New.
18332         (avx_movnt<mode>): Likewise.
18333         (avx_movnt<mode>): Likewise.
18334         (<sse>_movnt<mode>): Remove AVX support.
18335         (sse2_movntv2di): Likewise.
18336
18337 2009-01-07  Richard Guenther  <rguenther@suse.de>
18338
18339         PR middle-end/38751
18340         * fold-const.c (extract_muldiv): Remove obsolete comment.
18341         (fold_plusminus_mult_expr): Undo MINUS_EXPR
18342         to PLUS_EXPR canonicalization for the canonicalization.
18343
18344 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
18345
18346         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
18347         hosted cross-compilers generating less efficient code.
18348
18349 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
18350
18351         * function.h (rtl_data): Add a dbr_scheduled_p field.
18352         * reorg.c (dbr_schedule): Set it.
18353         (gate_handle_delay_slots): Check it.
18354         * config/mips/mips.c (mips_base_delayed_branch): Delete.
18355         (mips_reorg): Check flag_delayed_branch instead of
18356         mips_base_delayed_branch.
18357         (mips_override_options): Don't set mips_base_delayed_branch
18358         or flag_delayed_branch.
18359
18360 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
18361
18362         PR rtl-optimization/38426.
18363         * ira.c (ira): Set current_function_is_leaf earlier.
18364
18365 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
18366
18367         PR rtl-optimization/38722
18368         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
18369         too early, only set a flag and modify after last possible
18370         undo_all point.
18371
18372 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
18373
18374         PR c/34252
18375         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
18376         * real.c (decimal_single_format): Correct values of emin and emax.
18377         (decimal_double_format): Ditto.
18378         (decimal_quad_format): Ditto.
18379         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
18380         computation of DECnn_MIN and DECnn_MAX for corrected values of
18381         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
18382         __DECnn_MIN__, and adjust its computation for the corrected value
18383         of emin.
18384
18385 2009-01-06  Jan Hubicka  <jh@suse.cz>
18386
18387         PR target/38744
18388         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
18389
18390 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
18391
18392         * doc/contrib.texi (Contributors): Slightly adjust the end note.
18393         Add Robert Clark to the list of testers.
18394
18395 2009-01-06  Jan Hubicka  <jh@suse.cz>
18396             Kai Tietz  <kai.tietz@onevision.com>
18397
18398         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
18399         * config/i386/i386.c (ix86_expand_call): Add clobbers.
18400
18401 2009-01-06  Jan Hubicka  <jh@suse.cz>
18402             Kai Tietz  <kai.tietz@onevision.com>
18403
18404         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
18405         for w64 ABI.
18406         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
18407         (ix86_nsaved_regs): Count only general purpose regs.
18408         (ix86_nsaved_sseregs): New.
18409         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
18410         to 16 for w64; compute padding and size of sse reg save area.
18411         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
18412         general purpose regs.
18413         (ix86_emit_save_sse_regs_using_mov): New.
18414         (ix86_expand_prologue): Save SSE regs if needed.
18415         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
18416         (ix86_emit_restore_sse_regs_using_mov): New.
18417         (ix86_expand_epilogue): Save SSE regs if needed.
18418
18419 2009-01-06  Jan Hubicka  <jh@suse.cz>
18420             Kai Tietz  <kai.tietz@onevision.com>
18421
18422         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
18423         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
18424         functions when accumulate outgoing args is off.
18425
18426 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
18427
18428         PR bootstrap/38742
18429         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
18430         before using pseudos_have_intersected_live_ranges_p.
18431
18432         * ira-int.h (ira_assert): Always define.
18433
18434 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
18435
18436         AVX Programming Reference (December, 2008)
18437         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
18438         (_mm256_permute2_pd): Likewise.
18439         (_mm_permute2_ps): Likewise.
18440         (_mm256_permute2_ps): Likewise.
18441         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
18442         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
18443
18444         * config/i386/i386.c (ix86_builtins): Remove
18445         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
18446         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
18447         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
18448         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
18449         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
18450         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
18451         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
18452         __builtin_ia32_vpermil2ps256.
18453         (ix86_init_mmx_sse_builtins): Updated.
18454         (ix86_expand_args_builtin): Likewise.
18455
18456 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18457
18458         * pa.c (output_call): Relocate non-jump insns in the delay slot of
18459         long absolute calls when generating PA 2.0 code.
18460
18461 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
18462
18463         PR rtl-optimization/38583
18464         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
18465
18466         * params.def (ira-max-conflict-table-size): New.
18467
18468         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
18469
18470         * ira.h (ira_conflicts_p): New external definition.
18471
18472         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
18473         table.  Report this.  Return result of building.
18474         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
18475         building conflict table.
18476
18477         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
18478         (ira_color): Use ira_conflicts_p.
18479
18480         * global.c: Include ira.h.
18481         (pseudo_for_reload_consideration_p, build_insn_chain): Use
18482         ira_conflicts_p.
18483
18484         * Makefile.in (global.o): Add ira.h.
18485
18486         * ira-build.c (mark_all_loops_for_removal,
18487         propagate_some_info_from_allocno): New.
18488         (remove_unnecessary_allocnos): Call
18489         propagate_some_info_from_allocno.
18490         (remove_low_level_allocnos): New.
18491         (remove_unnecessary_regions): Add parameter.  Call
18492         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
18493         parameter to remove_unnecessary_regions.
18494         (ira_build): Remove all regions but root if the conflict table was
18495         not built.  Update conflict hard regs for allocnos crossing calls.
18496
18497         * ira.c (ira_conflicts_p): New global.
18498         (ira): Define and use ira_conflicts_p.
18499
18500         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
18501         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
18502         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
18503
18504 2009-01-06  Ben Elliston  <bje@au.ibm.com>
18505
18506         * gengtype-lex.l (YY_NO_INPUT): Define.
18507
18508 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18509
18510         PR c/34911
18511         * c-common.c (handle_vector_size_attribute): Also reject
18512         BOOLEAN_TYPE types.
18513
18514 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
18515
18516         PR tree-optimization/38492
18517         * graphite.c (rename_map_elt, debug_rename_elt,
18518         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
18519         rename_map_elt_info, eq_rename_map_elts,
18520         get_new_name_from_old_name, bb_in_sese_p): Moved around.
18521         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
18522         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
18523         (sese_build_livein_liveouts): New.
18524         (new_sese, free_sese): New.
18525         (new_scop): Call new_sese.
18526         (free_scop): Call free_sese.
18527         (rename_variables_from_edge, rename_phis_end_scop): Removed.
18528         (register_old_new_names): Renamed register_old_and_new_names.
18529         (register_scop_liveout_renames, add_loop_exit_phis,
18530         insert_loop_close_phis, struct igp,
18531         default_liveout_before_guard, add_guard_exit_phis,
18532         insert_guard_phis, copy_renames): New.
18533         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
18534         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
18535         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
18536         (scop_adjust_phis_for_liveouts): New.
18537         (gloog): Call scop_adjust_phis_for_liveouts.
18538
18539         * graphite.h (struct sese): Documented.  Added fields liveout,
18540         num_ver and livein.
18541         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
18542         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
18543         (struct scop): Added field liveout_renames.
18544         (SCOP_LIVEOUT_RENAMES): New.
18545
18546 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
18547
18548         PR tree-optimization/38510
18549         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
18550         (translate_clast): Call recompute_all_dominators before
18551         graphite_verify.
18552         (gloog): Call recompute_all_dominators before graphite_verify.
18553
18554 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
18555             Jan Sjodin  <jan.sjodin@amd.com>
18556
18557         PR tree-optimization/38500
18558         * graphite.c (create_sese_edges): Call fix_loop_structure after
18559         splitting blocks.
18560
18561 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
18562
18563         * config.gcc: Add m32r*-*-rtems*.
18564         * config/m32r/rtems.h: New file.
18565
18566 2009-01-05  Ben Elliston  <bje@au.ibm.com>
18567
18568         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
18569         (.po.pox): Likewise.
18570         (po/gcc.pot): Likewise.
18571
18572 2009-01-04  David S. Miller  <davem@davemloft.net>
18573
18574         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
18575         (STARTING_FRAME_OFFSET): Always set to zero.
18576
18577 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
18578
18579         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
18580         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
18581         fixed-point types, and vectors of the same.
18582
18583 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
18584
18585         * config/mips/sync.md (*mb_barrier): Rename to...
18586         (*memory_barrier): ...this.
18587
18588 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
18589
18590         * doc/extend.texi (Function Attributes): Move @cindex after @item
18591         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
18592         and put in alphabetical order. Fix 'target' name and put in order.
18593         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
18594         typos.
18595
18596 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
18597
18598         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
18599         (memory_barrier): Expand as unspec instead of unspec_volatile.
18600         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18601         (*memory_barrier): Define as unspec instead of unspec_volatile.
18602         Use (match_dup 0) as input operand.
18603
18604         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
18605         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
18606         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
18607         scratch register.  Remove operand 1.
18608         (*stbar): Define as unspec instead of unspec_volatile.
18609         Use (match_dup 0) as input operand, remove (const_int 8).
18610         (*membar): Define as unspec instead of unspec_volatile.
18611         Use (match_dup 0) as input operand, remove input operand 2.
18612
18613         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
18614         (memory_barrier): Expand as unspec instead of unspec_volatile.
18615         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18616         (*memory_barrier): Define as unspec instead of unspec_volatile.
18617         Use (match_dup 0) as input operand.
18618
18619         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
18620         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18621         Set volatile flag on operand 0.
18622         (*memory_barrier): New insn pattern.
18623
18624         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
18625         insn operands.
18626         (*memory_barrier): Use (match_dup 0) as input operand.
18627
18628         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
18629         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18630         Set volatile flag on operand 0.
18631         (*mb_internal): New insn pattern.
18632
18633         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
18634
18635 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
18636
18637         PR middle-end/38586
18638         * function.c (struct temp_slot): Move to the section of the file
18639         that deals with temp slots.  Remove field 'address'.
18640         (temp_slot_address_table): New hash table of address -> temp slot.
18641         (struct temp_slot_address_entry): New struct, items for the table.
18642         (temp_slot_address_compute_hash, temp_slot_address_hash,
18643         temp_slot_address_eq, insert_temp_slot_address): Support functions
18644         for the new table.
18645         (find_temp_slot_from_address): Rewrite to use the new hash table.
18646         (remove_unused_temp_slot_addresses): Remove addresses of temp
18647         slots that have been made available.
18648         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
18649         worker function for remove_unused_temp_slot_addresses.
18650         (assign_stack_temp_for_type): Don't clear the temp slot address list.
18651         Add the temp slot address to the address -> temp slot map.
18652         (update_temp_slot_address): Update via insert_temp_slot_address.
18653         (free_temp_slots): Call remove_unused_temp_slot_addresses.
18654         (pop_temp_slots): Likewise.
18655         (init_temp_slots): Allocate the address -> temp slot map, or empty
18656         the map if it is already allocated.
18657         (prepare_function_start): Initialize temp slot processing.
18658
18659 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
18660
18661         PR middle-end/38584
18662         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
18663         Calculate the size of all stack vars assuming no packing of stack
18664         vars will happen, replacing a quadratic algorithm with a linear one.
18665
18666 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
18667
18668         PR target/38707
18669         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
18670         can't be used.
18671
18672 2009-01-03  Diego Novillo  <dnovillo@google.com>
18673
18674         * doc/contrib.texi: Update contributions.
18675
18676 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
18677
18678         PR c++/38705
18679         * builtins.c (fold_builtin_memory_op): Give up if either operand
18680         is volatile.  Set srctype or desttype to non-qualified version
18681         of the other type.
18682
18683         PR c/38700
18684         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
18685         and FUNCTION_DECLs.
18686
18687 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
18688
18689         PR rtl-optimization/35805
18690         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
18691         problem if fast dce is able to remove any instructions.
18692         * dce.c (dce_process_block): Fix dump message.
18693
18694 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
18695
18696         PR 33649
18697         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
18698
18699 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
18700
18701         PR middle-end/38690
18702         * tree-flow.h (op_code_prio, op_prio): New prototypes.
18703         * tree-pretty-print.c (op_code_prio): New function.
18704         (op_prio): No longer static.  Use op_code_prio.
18705         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
18706         Use op_prio and op_code_prio to determine if () should be
18707         printed around operand(s) or not.
18708
18709         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
18710         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
18711         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
18712         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
18713         pp_character instead of pp_string for single letter printing.
18714
18715 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
18716
18717         * doc/extend.texi: Fix '#pragma GCC option' typo.
18718
18719 2009-01-02  Richard Guenther  <rguenther@suse.de>
18720
18721         * doc/install.texi (--enable-checking): Mention different
18722         default for stage1.
18723         (--enable-stage1-checking): Document.
18724
18725 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
18726
18727         PR middle-end/30142
18728         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
18729         case to be an error.
18730
18731 2009-01-02  Ben Elliston  <bje@au.ibm.com>
18732
18733         * config/fp-bit.h (pack_d): Constify argument.
18734         * config/fp-bit.c (makenan): Constify return type. Remove casts.
18735         (isnan): Constify argument.
18736         (isinf): Likewise.
18737         (iszero): Likewise.
18738         (pack_d): Likewise.
18739         (_fpadd_parts): Constify return type.
18740         (_fpmul_parts): Likewise.
18741         (_fpdiv_parts): Likewise.
18742
18743 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
18744
18745         PR c/36489
18746         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
18747         warn about overwriting initializer with side-effects or
18748         -Woverride-init if !IMPLICIT.
18749         (output_init_element): Likewise.  Pass IMPLICIT down to
18750         add_pending_init.
18751         (process_init_element): Add IMPLICIT argument.  Pass it down
18752         to output_init_element.
18753         (push_init_element, pop_init_level, set_designator): Adjust
18754         process_init_element callers.
18755         (set_nonincremental_init, set_nonincremental_init_from_string):
18756         Adjust add_pending_init callers.
18757         (output_pending_init_elements): Adjust output_init_element callers.
18758         * c-tree.h (process_init_element): Adjust prototype.
18759         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
18760         process_init_element callers.
18761
18762 \f
18763 Copyright (C) 2009 Free Software Foundation, Inc.
18764
18765 Copying and distribution of this file, with or without modification,
18766 are permitted in any medium without royalty provided the copyright
18767 notice and this notice are preserved.