OSDN Git Service

2009-07-15 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-07-15  Richard Guenther  <rguenther@suse.de>
2
3         PR middle-end/40753
4         * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL
5         bases.
6
7 2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
8
9         * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
10         handle 2.6.30 kernel.
11
12 2009-07-15  DJ Delorie  <dj@redhat.com>
13
14         * config/mep/mep.md (sibcall_internal): Change register to allow
15         for 24-bit addresses.
16         (sibcall_value_internal): Likewise.
17
18 2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>
19         
20         * doc/invoke.texi: Added descriptions of the 
21         scheduling heuristics that are enabled/disabled 
22         by the flags introduced by a previous patch.
23         
24 2009-07-14  DJ Delorie  <dj@redhat.com>
25
26         * config/mep/mep.md (sibcall_internal): Include non-toggling
27         non-jmp case.
28         (sibcall_value_internal): Likewise.
29
30 2009-07-14  Taras Glek  <tglek@mozilla.com>
31             Rafael Espindola  <espindola@google.com>
32
33         * doc/sourcebuild.texi: Document install-plugin target.
34         * configure.ac: Added install-plugin target to language makefiles.
35         * configure: Regenerate.
36         * Makefile.in: (install-plugin): Install more headers,
37         depend on lang.install-plugin.
38
39 2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
40
41         * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
42         translation.
43         
44 2009-07-14  DJ Delorie  <dj@redhat.com>
45
46         * config/mep/mep.c (mep_vliw_jmp_match): New function.
47         * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
48         * config/mep/mep.md (sibcall_internal): Change test from
49         mep_vliw_mode_match to mep_vliw_jmp_match.
50         (sibcall_value_internal): Likewise.
51
52 2009-07-14  Uros Bizjak  <ubizjak@gmail.com>
53
54         * config/i386/sse.md (copysign<mode>3): New expander.
55         * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
56         * config/i386/i386.c (ix86_build_signbit_mask): Make public.
57         Use ix86_build_const_vector.
58         (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
59         IX86_BUILTIN_CPYSGNPD.
60         (builtin_description): Add __builtin_ia32_copysignps and
61         __builtin_ia32_copysignpd.
62         (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
63         and BUILT_IN_COPYSIGNF.
64
65 2009-07-13  Jason Merrill  <jason@redhat.com>
66
67         * builtins.c (can_trust_pointer_alignment): New fn.
68         (get_pointer_alignment): Factor it out from here.
69         * tree.h: Declare it.
70
71 2009-07-14  David Edelsohn  <edelsohn@gnu.org>
72
73         * config/rs6000/predicates.md (offsettable_mem_operand): Test
74         RTX_AUTOINC class.
75
76 2009-07-14  Dodji Seketeli  <dodji@redhat.com>
77
78         PR debug/40705
79         PR c++/403057
80         * dwarf2.out.c (gen_type_die_with_usage): Added comment.
81
82 2009-07-14  Richard Guenther  <rguenther@suse.de>
83             Andrey Belevantsev <abel@ispras.ru>
84
85         PR middle-end/40745
86         * cfgexpand.c (partition_stack_vars): Do not bother to update
87         alias information when not optimizing.
88
89 2009-07-14  Richard Guenther  <rguenther@suse.de>
90         Andrey Belevantsev <abel@ispras.ru>
91
92         * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
93         (pt_solution_set): Likewise.
94         * tree-ssa-alias.c (refs_may_alias_p_1): Export.
95         * tree-ssa-structalias.c (pt_solution_set): New function.
96         * final.c (rest_of_clean_state): Free SSA data structures.
97         * print-rtl.c (print_decl_name): Remove.
98         (print_mem_expr): Implement in terms of print_generic_expr.
99         * alias.c (ao_ref_from_mem): New function.
100         (rtx_refs_may_alias_p): Likewise.
101         (true_dependence): Query alias-export info.
102         (canon_true_dependence): Likewise.
103         (write_dependence_p): Likewise.
104         * tree-dfa.c (get_ref_base_and_extent): For void types leave
105         size unknown.
106         * emit-rtl.c (component_ref_for_mem_expr): Remove.
107         (mem_expr_equal_p): Use operand_equal_p.
108         (set_mem_attributes_minus_bitpos): Do not use
109         component_ref_for_mem_expr.
110         * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
111         (update_alias_info_with_stack_vars): Likewise.
112         (partition_stack_vars): Call update_alias_info_with_stack_vars.
113         * tree-ssa.c (delete_tree_ssa): Do not release SSA names
114         explicitly nor clear stmt operands.
115         Free the decl-to-pointer map.
116         * tree-optimize.c (execute_free_datastructures): Do not free
117         SSA data structures here.
118         * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
119         * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
120         (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
121         dependencies.
122         (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
123
124 2009-07-13  DJ Delorie  <dj@redhat.com>
125
126         * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
127         unrolling at the right iteration count.
128
129         * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
130         calculations.
131
132 2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
133         
134         * haifa-sched.c (rank_for_schedule): Introduced flags to
135         enable/disable individual scheduling heuristics.
136         * common.opt: Introduced flags to enable/disable individual
137         heuristics in the scheduler.    
138         * doc/invoke.texi: Introduced flags to enable/disable individual
139         heuristics in the scheduler.
140         
141 2009-07-13  Kai Tietz  <kai.tietz@onevision.com>
142
143         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
144         config/i386/mingw-tls.c.
145         * config/i386/mingw-tls.c: Removed.
146
147 2009-07-13  Ira Rosen  <irar@il.ibm.com>
148
149         * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the 
150         checks access only relevant statements.
151         (vectorizable_reduction): Likewise.
152
153 2009-07-12  Kai Tietz  <kai.tietz@onevision.com>
154
155         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
156         just for 32-bit case.
157
158 2009-07-12  Jan Hubicka  <jh@suse.cz>
159
160         PR tree-optimization/40585
161         * except.c (expand_resx_expr): When there already is resume
162         instruction, produce linked list.
163         (build_post_landing_pads): Assert that resume is empty.
164         (connect_post_landing_pads): Handle resume lists.
165         (dump_eh_tree): Dump resume list.
166
167 2009-07-12  Ira Rosen  <irar@il.ibm.com>
168
169         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
170         with additional argument.
171         * tree-vectorizer.h (enum vect_def_type): Add
172         vect_double_reduction_def.
173         (vect_is_simple_reduction): Add argument.
174         * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
175         indentation.
176         (vect_analyze_scalar_cycles_1): Detect double reduction. Call
177         vect_is_simple_reduction with additional argument.
178         (vect_analyze_loop_operations): Handle exit phi nodes in case of
179         double reduction.
180         (reduction_code_for_scalar_code): Handle additional codes by
181         returning ERROR_MARK for them. Fix comment and indentation.
182         (vect_is_simple_reduction): Fix comment, add argument to specify
183         double reduction. Detect double reduction.
184         (get_initial_def_for_induction): Fix indentation.
185         (get_initial_def_for_reduction): Fix comment and indentation.
186         Handle double reduction. Create initial definitions that do not
187         require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
188         (vect_create_epilog_for_reduction): Fix comment, add argument to
189         handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
190         epilogue result extraction. Create double reduction phi node and
191         replace relevant uses.
192         (vectorizable_reduction): Call vect_is_simple_reduction with
193         additional argument. Fix indentation. Update epilogue code treatment
194         according to the changes in reduction_code_for_scalar_code. Check
195         for double reduction. Call vect_create_epilog_for_reduction with
196         additional argument.
197         * tree-vect-stmts.c (process_use): Handle double reduction, update
198         documentation.
199         (vect_mark_stmts_to_be_vectorized): Handle double reduction.
200         (vect_get_vec_def_for_operand): Likewise.
201
202 2009-07-12  Danny Smith  <dansmister@gmail.com>
203
204         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
205         dllexport if !TREE_PUBLIC.
206         (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
207
208 2009-07-11  Anatoly Sokolov  <aesok@post.ru>
209
210         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
211         (avr_extra_arch_macro) Remove declatation.
212         * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
213         (avr_extra_arch_macro) Declare as static.
214         * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
215
216 2009-07-11  Jan Hubicka  <jh@suse.cz>
217
218         PR middle-end/48388
219         * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
220
221 2009-07-11  Jakub Jelinek  <jakub@redhat.com>
222
223         PR debug/40713
224         * dwarf2out.c (dw_fde_struct): Add in_std_section and
225         cold_in_std_section bits.
226         (dwarf2out_begin_prologue): Initialize them.
227         (dwarf2out_finish): Don't emit FDE range into .debug_ranges
228         if already covered by text_section or cold_text_section range.
229
230         PR rtl-optimization/40667
231         * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
232         * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
233         * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
234         * config/i386/i386.c (ix86_minimum_alignment): New function.
235         * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
236         * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
237         * emit-rtl.c (gen_reg_rtx): Likewise.
238         * function.c (assign_parms): Likewise.  If nominal_type needs
239         bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
240         rather than passed_type's alignment.
241
242         PR target/40668
243         * function.c (assign_parm_setup_stack): Adjust
244         MEM_OFFSET (data->stack_parm) if promoted_mode is different
245         from nominal_mode on big endian.
246
247 2009-07-11  Paolo Bonzini  <bonzini@gnu.org>
248
249         * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
250
251 2009-07-10  DJ Delorie  <dj@redhat.com>
252
253         * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
254
255 2009-07-10  Mark Mitchell  <mark@codesourcery.com>
256
257         * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
258         attribute.
259         (thumb2_cbnz): Likewise.
260
261 2009-07-10  David Daney  <ddaney@caviumnetworks.com>
262
263         PR target/39079
264         * config.gcc (supported_defaults): Add synci.
265         (with_synci): Add validation.
266         (all_defaults): Add synci.
267         * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
268         ISA_HAS_SYNCI.
269         (synci): Same.
270         * config/mips/mips.opt (msynci): New option.
271         * config/mips/mips.c (mips_override_options): Warn on use of
272         -msynci for targets that do now support it.
273         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
274         msynci.
275         * gcc/doc/invoke.texi (-msynci): Document the new option.
276         * doc/install.texi (--with-synci): Document the new option.
277
278 2009-07-10  Richard Guenther  <rguenther@suse.de>
279
280         PR tree-optimization/40496
281         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
282         the PHI result with a compatible type.
283
284 2009-07-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
285
286         PR 25509
287         PR 40614
288         * c.opt (Wunused-result): New.
289         * doc/invoke.texi: Document it.
290         * c-common.c (c_warn_unused_result): Use it.
291
292 2009-07-09  DJ Delorie  <dj@redhat.com>
293
294         * targhooks.c (default_target_can_inline_p): Rename from
295         default_target_option_can_inline_p.
296         * targhooks.h (default_target_can_inline_p): Likewise.
297         * target-def.h (TARGET_CAN_INLINE_P): Rename from
298         TARGET_OPTION_CAN_INLINE_P.
299         * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
300         * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
301         (mep_target_can_inline_p): Rename from
302         mep_target_option_can_inline_p.
303
304         PR target/40626
305         * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
306         registers used to pass vectors.
307
308         * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
309
310 2009-07-09  Tom Tromey  <tromey@redhat.com>
311
312         * unwind-dw2-fde-darwin.c: Include dwarf2.h.
313         * config/mmix/mmix.c: Include dwarf2.h.
314         * config/rs6000/darwin-fallback.c: Include dwarf2.h.
315         * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
316         * config/sh/sh.c: Include dwarf2.h.
317         * config/i386/i386.c: Include dwarf2.h.
318         * Makefile.in (DWARF2_H): Remove 'elf'.
319         * except.c: Include dwarf2.h.
320         * unwind-dw2.c: Include dwarf2.h.
321         * dwarf2out.c: Include dwarf2.h.
322         * unwind-dw2-fde-glibc.c: Include dwarf2.h.
323         * unwind-dw2-fde.c: Include dwarf2.h.
324         * dwarf2asm.c: Include dwarf2.h.
325
326 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
327
328         * haifa-sched.c (insn_finishes_cycle_p): New static function.
329         (max_issue): Use it.
330         * sched-int.h (struct sched_info: insn_finishes_block_p): New
331         scheduler hook.
332         * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
333         (region_sched_info): Update.
334         * sched-ebb.c (ebb_sched_info): Update.
335         * modulo-sched.c (sms_sched_info): Update.
336         * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
337
338 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
339
340         * varasm.c (build_constant_desc): Don't share RTL in pool entries.
341
342 2009-07-09  Basile Starynkevitch  <basile@starynkevitch.net>
343
344         * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen. 
345
346 2009-07-09  Jakub Jelinek  <jakub@redhat.com>
347
348         PR middle-end/40692
349         * fold-const.c (fold_cond_expr_with_comparison): Don't replace
350         arg1 with arg01 if arg1 is already INTEGER_CST.
351
352 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
353
354         * simplify-rtx.c (simplify_binary_operation_1) <AND>:
355         Transform (and (truncate)) into (truncate (and)).
356
357 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
358
359         * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
360         creating LHS paradoxical subregs.  Fix surrounding returns to
361         use NULL_RTX rather than 0.
362
363 2009-07-08  DJ Delorie  <dj@redhat.com>
364
365         * config/mep/mep.c: (mep_option_can_inline_p): New.
366         (TARGET_OPTION_CAN_INLINE_P): Define.
367
368 2009-07-08  Mark Wielaard  <mjw@redhat.com>
369
370         PR debug/40659
371         * dwarf2out.c (add_data_member_location_attribute): When we have
372         only a constant offset don't emit a new location description using
373         DW_OP_plus_uconst, but just add the constant with add_AT_int, when
374         dwarf_version > 2.
375
376 2009-07-08  Richard Henderson  <rth@redhat.com>
377
378         PR target/38900
379         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
380         (enum reg_class): Add CLOBBERED_REGS.
381         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
382         * config/i386/i386.c (ix86_conditional_register_usage): Moved
383         from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
384         (ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
385         (ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
386         force 64-bit sibcalls into R11.
387         * config/i386/constraints.md (U): New constraint.
388         * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
389         (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
390         (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
391
392 2009-07-08  Shujing Zhao  <pearly.zhao@oracle.com>
393
394         * basic-block.h (dump_regset, debug_regset): Remove duplicate
395         prototypes.
396         * c-objc-common.h (c_initialize_diagnostics): Ditto.
397         * ebitmap.h (dump_ebitmap): Ditto.
398         * optabs.h (optab_libfunc): Ditto.
399         * tree.h (tree_expr_nonzero_warnv_p): Ditto.
400         * tree-flow.h (vect_can_force_dr_alignment_p,
401         get_vectype_for_scalar_type): Ditto.
402         (vectorize_loops): Move prototype to ...
403         * tree-vectorizer.h: ... here. Also, adjust comment.
404         (vect_set_verbosity_level): Remove duplicate prototype.
405         * tree-ssa-loop.c: Include tree-vectorizer.h.
406         * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
407
408 2009-07-08  Nick Clifton  <nickc@redhat.com>
409
410         * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
411         forward slash.
412
413 2009-07-08  DJ Delorie  <dj@redhat.com>
414
415         * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
416         cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
417         cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
418         written to.
419         * config/mep/intrinsics.md: Regenerated.
420         * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
421         registers when asm() or calls are detected.
422
423 2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
424
425         PR c++/31246
426         * gimplify.c (gimplify_expr): Propagate no_warning flag when
427         gimplifying.
428         * gimple (gimple_build_call_from_tree): Likewise.
429         * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
430         no_warning flag before warning.
431
432 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
433
434         * tree.c (set_expr_locus): Remove.
435         * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
436         * c-typeck.c (c_finish_stmt_expr):  Replace EXPR_LOCUS by
437         EXPR_LOCATION.
438         * gimplify.c (internal_get_tmp_var): Likewise.
439         (gimplify_call_expr): Likewise.
440         (gimplify_one_sizepos): Likewise.
441
442 2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>
443
444         PR debug/40666
445         * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
446         to variables for debugging purposes.
447
448 2009-06-23  Mark Loeser  <mark@halcy0n.com>
449
450         PR build/40010
451         * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
452
453 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
454
455         * pretty-print.c (pp_base_format): Remove %J.
456         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
457         gcc_cxxdiag_char_table): Likewise.
458         (init_dynamic_diag_info): Likewise.
459
460 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
461
462         * pretty-print.c (pp_base_format): Remove %H.
463         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
464         gcc_cxxdiag_char_table): Likewise.
465         (init_dynamic_diag_info): Likewise.
466         * config/mep/mep.c (mep_select_section): Likewise.
467
468 2009-07-07  Duncan Sands  <baldrick@free.fr>
469
470         * final.c (pass_clean_state): Give the pass a name.
471         * passes.c (pass_rest_of_compilation): Likewise.
472         * tree-optimize.c (pass_all_optimizations): Likewise.
473
474 2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>
475
476         * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
477         an extra 'decl' for error_at.
478
479 2009-07-07  Jakub Jelinek  <jakub@redhat.com>
480
481         PR middle-end/40669
482         * tree-tailcall.c (adjust_return_value_with_ops,
483         create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
484         if it has complex or vector type.
485
486 2009-07-07  Olivier Hainque  <hainque@adacore.com>
487
488         * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
489         pthread symbols.
490
491 2009-07-07  Basile Starynkevitch  <basile@starynkevitch.net>
492
493         * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
494
495 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
496
497         * cgraphunit.c: Replace %J by an explicit location.  Update all calls.
498         * c-decl.c: Likewise.
499         * function.c: Likewise.
500         * varasm.c: Likewise.
501         * tree-ssa.c: Likewise.
502         * c-common.c: Likewise.
503         * tree-cfg.c: Likewise.
504         * config/spu/spu.c: Likewise.
505         * config/ia64/ia64.c: Likewise.
506         * config/v850/v850.c: Likewise.
507
508 2009-07-06  DJ Delorie  <dj@redhat.com>
509
510         * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
511         * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
512         unspecified accesses to control registers.
513         * config/mep/intrinsics.md: Regenerate.
514         * config/mep/intrinsics.h: Regenerate.
515         * config/mep/mep-intrin.h: Regenerate.
516
517 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
518
519         * c-lex.c: Replace %H by an explicit location. Update all calls.
520         * c-common.c: Likewise.
521         * c-decl.c: Likewise.
522         * c-typeck.c: Likewise.
523         * fold-const.c: Likewise.
524         * gimplify.c: Likewise.
525         * stmt.c: Likewise.
526         * tree-cfg.c: Likewise.
527         * tree-ssa-loop-niter.c: Likewise.
528         * tree-vrp.c: Likewise.
529         * value-prof.c: Likewise.
530
531 2009-07-06  Diego Novillo  <dnovillo@google.com>
532
533         * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
534         if it has one.  Handle cases where VAR does not have an
535         annotation or cfun is NULL.
536
537 2009-07-06  Diego Novillo  <dnovillo@google.com>
538
539         * tree.c: Include debug.h.
540         (initialize_tree_contains_struct): New.
541         (init_ttree): Call it.
542         (tree_node_structure_for_code): Factor out of ...
543         (tree_node_structure): ... here.
544         * treestruct.def (TS_PHI_NODE): Remove.
545         (TS_GIMPLE_STATEMENT): Remove.
546
547 2009-07-06  Diego Novillo  <dnovillo@google.com>
548
549         * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
550         (debug_tree_chain): Handle cycles.
551
552 2009-07-06  Nick Clifton  <nickc@redhat.com>
553             DJ Delorie  <dj@redhat.com>
554
555         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
556         __FMOVD_ENABLED__ is defined.
557         * config/sh/sh.h
558         (TARGET_FMOVD): Provide a default definition.
559         (MASK_FMOVD): Likewise.
560         (TARGET_CPU_CPP_BUILTINS): Define
561         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
562         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
563         two fmov instructions depending upon whether TARGET_FMOVD is enabled.
564         (split for DF load from memory into register): Also handle
565         MEMs which consist of REG+DISP addressing.
566         (split for DF store from register to memory): Likewise.
567         (movsf_ie): Always use single fp_mode.
568         * config/sh/sh.c (sh_override_options): Do not automatically
569         enable TARGET_MOVD for the SH2A when supporting doubles - leave
570         that to the -mfmovd command line switch.
571         (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
572         (fldi_ok): Always allow.
573         * config/sh/sh.opt (mfmovd): Remove this switch.
574         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
575
576 2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
577             Kaz Kojima  <kkojima@gcc.gnu.org>
578
579         PR rtl-optimization/30807
580         * postreload.c (reload_combine): For every new use of REG_SUM,
581         record the use of BASE.
582
583 2009-07-06  Jan Hubicka  <jh@suse.cz>
584
585         * params.def: Revert my accidental commit at 2009-06-30.
586
587 2009-07-04  Ian Lance Taylor  <iant@google.com>
588
589         PR target/40636
590         * config/i386/msformat-c.c (mingw_format_attributes): Declare as
591         EXPORTED_CONST.
592         (mingw_format_attribute_overrides): Likewise.
593
594 2009-07-04  Jakub Jelinek  <jakub@redhat.com>
595
596         PR debug/40596
597         * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
598         don't check cfa.reg.  Instead of cfa.indirect use
599         fde && fde->drap_reg != INVALID_REGNUM test.
600
601 2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>
602
603         * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
604
605 2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
606
607         PR target/40587
608         * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
609
610 2009-07-03  Richard Guenther  <rguenther@suse.de>
611
612         PR tree-optimization/40640
613         * tree-switch-conversion.c (build_arrays): Perform arithmetic
614         in original type.
615
616 2009-07-03  Jan Hubicka  <jh@suse.cz>
617
618         * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
619         for size, reduce amount of inlining.
620
621 2009-07-03  Richard Guenther  <rguenther@suse.de>
622
623         PR middle-end/34163
624         * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
625         if t +- x is known to not overflow and the conversion widens the
626         operation.
627         * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
628
629 2009-07-03  Jan Hubicka  <jh@suse.cz>
630
631         * ipa-pure-const.c (analyze): Update loop optimizer init.
632         * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
633         try_remove_empty_loop, remove_empty_loops): Remove.
634         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
635         * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
636         to mark regular loops as neccesary.
637         (degenerate_phi_p): New function.
638         (propagate_necessity, remove_dead_phis): Use it.
639         (forward_edge_to_pdom): Likewise.
640         (eliminate_unnecessary_stmts): Take care to remove uses of results of
641         virtual PHI nodes that became unreachable.
642         (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
643         * tree-flow.h (remove_empty_loops): Remove.
644         * passes.c (init_optimization_passes): Remove.
645
646 2009-07-03  Uros Bizjak  <ubizjak@gmail.com>
647
648         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
649         can_create_pseudo_p.
650         (*fix_trunc<mode>_i387_1): Ditto.
651         (*floathi<mode>2_1): Ditto.
652         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
653         (*fistdi2_1): Ditto.
654         (*fist<mode>2_1): Ditto.
655         (frndintxf2_floor): Ditto.
656         (*fist<mode>2_floor_1): Ditto.
657         (frndintxf2_ceil): Ditto.
658         (*fist<mode>2_ceil_1): Ditto.
659         (frndintxf2_trunc): Ditto.
660         (frndintxf2_mask_pm): Ditto.
661         (fxam<mode>2_i387_with_temp): Ditto.
662         * config/i386/sse.md (mulv16qi3): Ditto.
663         (*sse2_mulv4si3): Ditto.
664         (mulv2di3): Ditto.
665         (sse4_2_pcmpestr): Ditto.
666         (sse4_2_pcmpistr): Ditto.
667
668 2009-07-03  Jan Hubicka  <jh@suse.cz>
669
670         * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
671         (mark_stmt_necessary): Set it.
672         (mark_operand_necessary): Set it.
673         (mark_control_dependent_edges_necessary): Set it.
674         (mark_virtual_phi_result_for_renaming): New function.
675         (get_live_post_dom): New function.
676         (forward_edge_to_pdom): New function.
677         (remove_dead_stmt): Fix handling of control dependences.
678         (tree_dce_init): Init new bitmap.
679         (tree_dce_done): Free it.
680
681 2009-07-02  Richard Guenther  <rguenther@suse.de>
682
683         PR bootstrap/40617
684         * tree-ssa-structalias.c (new_var_info): Initialize
685         is_restrict_var.
686
687 2009-07-02  Jan Hubicka  <jh@suse.cz>
688
689         * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
690         local.
691
692 2009-07-02  Paolo Bonzini  <bonzini@gnu.org>
693
694         * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
695         instead of recomputing it.  Adjust calls.
696         (emit_store_flag): Adjust recursive calls.
697
698 2009-07-02  Richard Guenther  <rguenther@suse.de>
699
700         * tree-ssa-live.c (remove_unused_locals): Do not remove
701         heap variables.
702         * tree-ssa-structalias.c (handle_lhs_call): Delay setting
703         of DECL_EXTERNAL for HEAP variables.
704         (compute_points_to_sets): Set DECL_EXTERNAL for escaped
705         HEAP variables.  Do not adjust RESTRICT vars.
706         (find_what_var_points_to): Nobody cares if something
707         points to READONLY.
708
709 2009-07-02  Ben Elliston  <bje@au.ibm.com>
710
711         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
712         pc_low and pc_high declarations to the top of the function.
713
714 2009-07-01  DJ Delorie  <dj@redhat.com>
715
716         * config/mep/mep.c (mep_handle_option): Leave IVC2 control
717         registers as fixed.
718         (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
719         * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
720         unspecified accesses to control registers.
721         * config/mep/intrinsics.md: Regenerate.
722         * config/mep/intrinsics.h: Regenerate.
723         * config/mep/mep-intrin.h: Regenerate.
724
725 2009-07-01  Anthony Green  <green@moxielogic.com>
726
727         * config/moxie/moxie.c (moxie_expand_prologue): Use dec
728         instruction when possible.
729         (moxie_expand_prologue): Ditto.  Also, save an instruction and
730         some complexity by popping off of $r12 instead of $sp.
731         * config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
732         operands.
733
734 2009-07-01  Richard Henderson  <rth@redhat.com>
735
736         PR bootstrap/40347
737         * function.c (reposition_prologue_and_epilogue_notes): If epilogue
738         contained no insns, reposition note before last insn.
739
740 2009-07-01  Richard Henderson  <rth@redhat.com>
741
742         PR debug/40431
743         * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
744         DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
745
746 2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
747
748         PR bootstrap/40558
749         * config/rs6000/rs6000.c (print_operand): Undo change that breaks
750         darwin9 for printing reg addresses with %y.
751
752 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
753
754         * combine.c (force_to_mode): Handle TRUNCATE.  Factor out
755         truncation from operands in binary operations.
756
757 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
758
759         Revert:
760         2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
761         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
762         subreg of op0 to the original op0.
763
764         * expmed.c (store_bit_field_1): Use a temporary as the destination
765         instead of a paradoxical subreg when we need to truncate the result.
766
767 2009-07-01  DJ Delorie  <dj@redhat.com>
768
769         * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
770         names to VLIW variants.
771         (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
772         * config/mep/intrinsics.md: Regenerate.
773         * config/mep/intrinsics.h: Regenerate.
774         * config/mep/mep-intrin.h: Regenerate.
775
776 2009-07-01  Jakub Jelinek  <jakub@redhat.com>
777
778         PR debug/40462
779         * jump.c (returnjump_p): Revert last patch.
780         * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
781
782 2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
783
784         PR target/40575
785         * pa.md (casesi32p): Use jump table label to determine the offset
786         of the jump table.
787         (casesi64p): Likewise.
788
789         * pa.c (forward_branch_p): Return bool type.  Use instruction
790         addresses when available.  Assert that INSN has a jump label.
791         (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
792         have a jump label.
793
794 2009-07-01  Richard Guenther  <rguenther@suse.de>
795
796         PR tree-optimization/19831
797         * tree-ssa-dce.c (propagate_necessity): Calls to functions
798         that only act as barriers do not make any previous stores necessary.
799         * tree-ssa-structalias.c (handle_lhs_call): Delay making
800         HEAP variables global, do not add a constraint from nonlocal.
801         (find_func_aliases): Handle escapes through return statements.
802         (compute_points_to_sets): Make escaped HEAP variables global.
803
804 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
805
806         PR bootstrap/40597
807         * expmed.c (emit_store_flag): Perform a conversion if necessary,
808         after reducing a DImode cstore to SImode.
809
810 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
811
812         * expr.c (expand_expr_real_1): Reinstate fallthrough to
813         TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
814
815 2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>
816
817         * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
818         * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
819         to 0.
820         * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
821         and umod_optab if TARGET_BSD_DIVMOD.
822         * config/vax/lib1funcs.asm: New file.
823         * config/vax/t-linux: New file.
824         * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
825
826 2009-06-30  Jakub Jelinek  <jakub@redhat.com>
827
828         PR c++/40566
829         * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
830         to type arguments that have void type.
831
832         PR debug/40573
833         * dwarf2out.c (gen_formal_parameter_die): Call
834         equate_decl_number_to_die if node is different from origin.
835
836 2009-06-30  Anthony Green  <green@moxielogic.com>
837
838         Clean up moxie port for --enable-build-with-cxx.
839         * config/moxie/moxie.c (moxie_function_value): First two
840         parameters are const_tree, not tree.
841         * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
842         (REG_CLASS_NAMES): Ditto.
843         (REGNO_REG_CLASS): Ditto.
844         * config/moxie/moxie-protos.h (moxie_override_options): Declare.
845         (moxie_function_value): Fix constyness of arguments.
846
847 2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
848
849         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
850         finalize_size_functions before further processing.
851         * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
852         (variable_size): Call self_referential_size on size expressions
853         that contain a PLACEHOLDER_EXPR.
854         (size_functions): New static variable.
855         (copy_self_referential_tree_r): New static function.
856         (self_referential_size): Likewise.
857         (finalize_size_functions): New global function.
858         * tree.c: Include tree-inline.h.
859         (push_without_duplicates): New static function.
860         (find_placeholder_in_expr): New global function.
861         (substitute_in_expr) <tcc_declaration>: Return the replacement object
862         on equality.
863         <tcc_expression>: Likewise.
864         <tcc_vl_exp>: If the replacement object is a constant, try to inline
865         the call in the expression.
866         * tree.h (finalize_size_functions): Declare.
867         (find_placeholder_in_expr): Likewise.
868         (FIND_PLACEHOLDER_IN_EXPR): New macro.
869         (substitute_placeholder_in_expr): Update comment.
870         * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
871         is true.
872         (copy_tree_body_r): Likewise.
873         (copy_tree_body): New static function.
874         (maybe_inline_call_in_expr): New global function.
875         * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
876         (maybe_inline_call_in_expr): Declare.
877         * Makefile.in (tree.o): Depend on TREE_INLINE_H.
878         (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
879         GIMPLE_H.
880
881 2009-06-30  Richard Guenther  <rguenther@suse.de>
882
883         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
884         continue walking.
885         (propagate_necessity): Do not mark reaching defs of stores
886         as necessary.
887
888 2009-06-30  Jan Hubicka  <jh@suse.cz>
889
890         * cfgloopanal.c (check_irred): Move into ...
891         (mark_irreducible_loops): ... here; return true if ireducible
892         loops was found.
893         * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
894         (analyze_function): Try to prove loop finiteness.
895         * cfgloop.h (mark_irreducible_loops): Update prototype.
896         * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
897
898 2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>
899
900         * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
901
902 2009-06-30  Ira Rosen  <irar@il.ibm.com>
903
904         PR tree-optimization/40542
905         * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile 
906         types.
907
908 2009-06-30  Martin Jambor  <mjambor@suse.cz>
909
910         PR tree-optimization/40582
911         * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
912         than useless_type_conversion_p.
913         (generate_subtree_copies): Increment sra_stats.subtree_copies at a
914         proper place.
915
916 2009-06-30  Martin Jambor  <mjambor@suse.cz>
917
918         PR middle-end/40554
919         * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
920
921 2009-06-30  Richard Guenther  <rguenther@suse.de>
922
923         * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
924         use ao_ref references.
925         (walk_aliased_vdefs): Likewise.
926         * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
927         * tree-ssa-dce.c (struct ref_data): Remove.
928         (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
929         (mark_aliased_reaching_defs_necessary): Adjust.
930         (mark_all_reaching_defs_necessary_1): Likewise.
931
932 2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
933
934         PR boostrap/40597
935         * expmed.c (emit_cstore): New name of emit_store_flag_1.
936         (emit_store_flag_1): Extract from emit_store_flag, adjust
937         calls to (what now is) emit_cstore.
938         (emit_store_flag): Call emit_store_flag_1 and also use it
939         for what used to be recursive calls.
940
941 2009-06-30  Wei Guozhi  <carrot@google.com>
942
943         PR/40416
944         * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
945         if the target bb post dominates from bb.
946         * config/i386/i386.c (memory_address_length): Check existence of base
947         register before using it.
948
949 2009-06-30  Nick Clifton  <nickc@redhat.com>
950             DJ Delorie  <dj@redhat.com>
951
952         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
953         __FMOVD_ENABLED__ is defined.
954         * config/sh/sh.h
955         (TARGET_FMOVD): Provide a default definition.
956         (MASK_FMOVD): Likewise.
957         (TARGET_CPU_CPP_BUILTINS): Define
958         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
959         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
960         two fmov instructions depending upon whether TARGET_FMOVD is
961         enabled.
962         (split for DF load from memory into register): Also handle
963         MEMs which consist of REG+DISP addressing.
964         (split for DF store from register to memory): Likewise.
965         * config/sh/sh.opt (mfmovd): Remove this switch.
966         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
967         * config/sh/sh.c (sh_override_options): Do not automatically
968         enable TARGET_MOVD for the SH2A when supporting doubles - leave
969         that to the -mfmovd command line switch.
970
971         * config/sh/sh.c (broken_move): Do not restrict fldi test to only
972         the SH4 and SH4A.
973         (fldi_ok): Always allow.
974         * config/sh/sh.md (movsf_ie): Always use single fp_mode.
975
976 2009-06-29  DJ Delorie  <dj@redhat.com>
977
978         * doc/install.texi (mep-x-elf): Correct chip's full name.
979
980 2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
981
982         * doc/extend.texi: Fix typo.
983
984 2009-06-29  Tom Tromey  <tromey@redhat.com>
985
986         * dwarf2.h: Remove.
987         * Makefile.in (DWARF2_H): New variable.
988         (except.o): Use it.
989         (dwarf2out.o): Likewise.
990         (dwarf2asm.o): Likewise.
991         * config/i386/t-i386: Use DWARF2_H.
992         * except.c: Include elf/dwarf2.h.
993         * unwind-dw2.c: Include elf/dwarf2.h.
994         * dwarf2out.c: Include elf/dwarf2.h.
995         (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
996         <dtprel>: New field.
997         (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
998         (size_of_loc_descr): Likewise.
999         (output_loc_operands_raw): Likewise.
1000         (output_loc_operands): Handle new dtprel field.
1001         (loc_checksum): Update.
1002         (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
1003         * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
1004         * unwind-dw2-fde.c: Include elf/dwarf2.h.
1005         * dwarf2asm.c: Include elf/dwarf2.h.
1006         * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
1007         * config/mmix/mmix.c: Include elf/dwarf2.h.
1008         * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
1009         * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
1010         * config/sh/sh.c: Include elf/dwarf2.h.
1011         * config/i386/i386.c: Include elf/dwarf2.h.
1012
1013 2009-06-29  DJ Delorie  <dj@redhat.com>
1014
1015         * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
1016
1017         * doc/extend.texi: Add MeP attributes and pragmas.
1018         * doc/invoke.text: Add MeP Options.
1019         * doc/contrib.texi: Add MeP contribution.
1020         * doc/md.texi: Add MeP constraints.
1021         * doc/install.texi: Add MeP target.
1022
1023 2009-06-30  Anatoly Sokolov  <aesok@post.ru>
1024
1025         * target.h (struct gcc_target): Add frame_pointer_required field.
1026         * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
1027         (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
1028         * ira.c (setup_eliminable_regset): Use frame_pointer_required target
1029         hook.
1030         * reload1.c (update_eliminables): (Ditto.).
1031         * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
1032         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1033         (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
1034
1035         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
1036
1037         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
1038         * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1039         (arm_frame_pointer_required): New function.
1040
1041         * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
1042         * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1043         (avr_frame_pointer_required_p): Declare as static.
1044         * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
1045
1046         * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
1047         * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1048         (bfin_frame_pointer_required): Make as static, change return type
1049         to bool.
1050         * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
1051
1052         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
1053         * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1054         (cris_frame_pointer_required): New function.
1055         
1056         * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
1057
1058         * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
1059         * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1060         (fr30_frame_pointer_required): New function.
1061         
1062         * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
1063         * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1064         (frv_frame_pointer_required): Make as static, change return type
1065         to bool.
1066         * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
1067
1068         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
1069         * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1070         (ix86_frame_pointer_required): Make as static, change return type to
1071         bool.
1072         * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
1073
1074         * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
1075         * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1076
1077         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
1078
1079         * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
1080         
1081         * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
1082
1083         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
1084         * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1085         (mips_frame_pointer_required): Make as static.
1086         * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
1087         
1088         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
1089         * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1090         (mmix_frame_pointer_required): Mew function.
1091
1092         * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
1093         * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1094
1095         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
1096
1097         * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
1098
1099         * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
1100
1101         * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
1102         (CAN_ELIMINATE): Redefine.
1103         * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1104         (sparc_frame_pointer_required): New function.
1105         (sparc_can_eliminate): New function.
1106         * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
1107
1108         * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
1109         * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1110
1111         * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
1112         * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1113         (xtensa_frame_pointer_required): Make as static, change return type
1114         to bool.
1115         * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
1116         Remove.
1117
1118 2009-06-29  Olatunji Ruwase  <tjruwase@google.com>
1119
1120         * doc/plugins.texi: Document PLUGIN_START_UNIT.
1121         * toplev.c (compile_file): Call PLUGIN_START_UNIT.
1122         * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
1123         * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
1124         (register_callback): Handle PLUGIN_START_UNIT.
1125         (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
1126
1127 2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1128
1129         * tree.c (process_call_operands): Propagate TREE_READONLY from the
1130         operands.
1131         (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
1132         (build3_stat): Propagate TREE_READONLY for COND_EXPR.
1133
1134 2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
1135
1136         * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
1137         move cost.
1138
1139 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
1140
1141         * doc/extend.texi (Additional Floating Types): __float128 is also
1142         supported on i386 targets.
1143
1144 2009-06-29  Richard Guenther  <rguenther@suse.de>
1145
1146         PR middle-end/14187
1147         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
1148         flag.
1149         (pt_solutions_same_restrict_base): Declare.
1150         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
1151         flag.
1152         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
1153         (make_constraint_from, make_copy_constraint): Move earlier.
1154         (make_constraint_from_heapvar): New function.
1155         (make_constraint_from_restrict): Likewise.
1156         (handle_lhs_call): Use it.
1157         (find_func_aliases): Use it to track conversions to restrict
1158         qualified pointers.
1159         (struct fieldoff): Add only_restrict_pointers flag.
1160         (push_fields_onto_fieldstack): Initialize it.
1161         (create_variable_info_for): Track global restrict qualified pointers.
1162         (intra_create_variable_infos): Use make_constraint_from_heapvar.
1163         Track restrict qualified pointer arguments.
1164         (set_uids_in_ptset): Use varinfo is_global_var flag.
1165         (find_what_var_points_to): Set the vars_contains_restrict flag.
1166         Always create the points-to solution for sets including restrict tags.
1167         (pt_solutions_same_restrict_base): New function.
1168         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
1169         qualified pointers use pt_solutions_same_restrict_base as
1170         additional source for disambiguation.
1171
1172 2009-06-29  Richard Guenther  <rguenther@suse.de>
1173
1174         PR middle-end/38212
1175         * alias.c (find_base_decl): Remove.
1176         (get_deref_alias_set_1): Remove restrict handling.
1177         * c-common.c (c_apply_type_quals_to_decl): Do not set
1178         DECL_POINTER_ALIAS_SET.
1179         * gimplify.c (find_single_pointer_decl_1): Remove.
1180         (find_single_pointer_decl): Likewise.
1181         (internal_get_tmp_var): Remove restrict handling.
1182         (gimple_regimplify_operands): Likewise.
1183         * omp-low.c (expand_omp_atomic_pipeline): Do not set
1184         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
1185         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
1186         * tree.c (restrict_base_for_decl): Remove.
1187         (init_ttree): Do not allocate it.
1188         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
1189         LABEL_DECL_UID for label decls.
1190         (copy_node_stat): Do not copy restrict information.
1191         (decl_restrict_base_lookup): Remove.
1192         (decl_restrict_base_insert): Likewise.
1193         (print_restrict_base_statistics): Likewise.
1194         (dump_tree_statistics): Do not call print_restrict_base_statistics.
1195         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
1196         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
1197         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
1198         (LABEL_DECL_UID): Adjust.
1199         (DECL_BASED_ON_RESTRICT_P): Remove.
1200         (DECL_GET_RESTRICT_BASE): Likewise.
1201         (SET_DECL_RESTRICT_BASE): Likewise.
1202         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
1203
1204         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
1205         instead of DECL_POINTER_ALIAS_SET.
1206         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
1207         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
1208         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
1209
1210 2009-06-29  Richard Guenther  <rguenther@suse.de>
1211
1212         PR tree-optimization/40579
1213         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
1214         the IL to simplify has constants that overflowed.
1215
1216 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
1217
1218         PR tree-optimization/40550
1219         * tree-vect-generic.c (expand_vector_operations_1): Compute in
1220         vector_compute_type only when the size of vector_compute_type is
1221         less than the size of type.
1222
1223 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1224
1225         * fold-const.c (contains_label_1): Fix comments.
1226         (contains_label_p): Do not walk trees multiple time.
1227
1228 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1229
1230         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
1231         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
1232         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
1233         ix86_fp_comparison_operator.
1234         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
1235         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
1236         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
1237         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
1238         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
1239         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
1240         (related splits): Change predicate to ix86_fp_comparison_operator.
1241         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
1242         instead of ix86_fp_comparison_codes.
1243         (ix86_trivial_fp_comparison_operator,
1244         ix86_fp_comparison_operator): New.
1245         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
1246         (ix86_expand_compare): Eliminate last two parameters.
1247         (ix86_fp_jump_nontrivial_p): Kill.
1248         * config/i386/i386.c (put_condition_code): Eliminate call to
1249         ix86_fp_comparison_codes and subsequent assertion.
1250         (ix86_fp_comparison_codes): Eliminate.
1251         (ix86_fp_swap_condition): New.
1252         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
1253         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
1254         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
1255         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
1256         and ix86_fp_swap_condition.
1257         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
1258         Use ix86_fp_comparison_strategy.
1259         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
1260         (ix86_fp_jump_nontrivial_p): Eliminate.
1261         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
1262         call to ix86_expand_compare.
1263         (ix86_split_fp_branch, ix86_expand_setcc,
1264         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
1265         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
1266
1267 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1268
1269         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
1270         related to jump_clobbers.
1271         * config/arm/arm.md (conds): Remove jump_clob case.
1272         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
1273         splits): Change comparison_operator to arm_comparison_operator.
1274         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
1275         Eliminate.
1276
1277 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1278
1279         * dojump.c (do_compare_rtx_and_jump): Try swapping the
1280         condition for floating point modes.
1281         * expmed.c (emit_store_flag_1): Move here a bigger part
1282         of emit_store_flag.
1283         (emit_store_flag): Try swapping the condition for floating point
1284         modes.
1285         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
1286
1287 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1288
1289         * expr.c (expand_expr_real_1): Just use do_store_flag.
1290         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
1291         emit_store_flag_force.
1292         * expmed.c (emit_store_flag_force): Copy here trick
1293         previously in expand_expr_real_1.  Try reversing the comparison.
1294         (emit_store_flag_1): Work if target is NULL.
1295         (emit_store_flag): Work if target is NULL, using the result mode
1296         from the comparison.  Use split_comparison, restructure final part
1297         to simplify conditionals.
1298
1299 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
1300
1301         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
1302         * dojump.c (do_jump): Change handling of floating-point
1303         ops to use just do_compare_and_jump.
1304         (split_comparison): New.
1305         (do_compare_rtx_and_jump): Add here logic coming previously
1306         in do_jump, using split_comparison.
1307
1308 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
1309
1310         PR target/40489
1311         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
1312
1313 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1314
1315         * tree-ssa-alias.c: Fix unintentional commit.
1316
1317 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1318
1319         * passes.c (execute_one_pass): Fix unintentional commit.
1320
1321 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1322
1323         * df-problems.c (df_set_seen, df_unset_seen): Delete.
1324         (df_rd_local_compute, df_md_local_compute): Inline them.
1325
1326         (df_md_scratch): New.
1327         (df_md_alloc, df_md_free): Allocate/free it.
1328         (df_md_local_compute): Only include live registers in init.
1329         (df_md_transfer_function): Prune the in-set computed by
1330         the confluence function, and the gen-set too.
1331
1332 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1333
1334         PR rtl-optimization/26854
1335         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
1336         * df-problems.c (df_rd_add_problem): Fix comment.
1337         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
1338         df_md_simulate_artificial_defs_at_top,
1339         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
1340         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
1341         df_md_transfer_function, df_md_init, df_md_confluence_0,
1342         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
1343         problem_MD, df_md_add_problem): New.
1344         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
1345         df_md_get_bb_info): New.
1346         (DF_LAST_PROBLEM_PLUS1): Adjust.
1347
1348         * Makefile.in (fwprop.o): Include domwalk.h.
1349         * fwprop.c: Include domwalk.h.
1350         (reg_defs, reg_defs_stack): New.
1351         (bitmap_only_bit_between): Remove.
1352         (process_defs): New.
1353         (process_uses): Use reg_defs and local_md instead of
1354         bitmap_only_bit_between and local_rd.
1355         (single_def_use_enter_block): New, from build_single_def_use_links.
1356         (single_def_use_leave_block): New.
1357         (build_single_def_use_links): Remove code moved to
1358         single_def_use_enter_block, invoke domwalk.
1359         (use_killed_between): Adjust comment.
1360
1361 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1362
1363         * bitmap.h (bitmap_ior_and_into): New.
1364         * bitmap.c (bitmap_ior_and_into): New.
1365
1366 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
1367
1368         * domwalk.h (struct dom_walk_data): Remove all callbacks except
1369         before_dom_children_before_stmts and after_dom_children_after_stmts.
1370         Rename the two remaining callbacks to just before_dom_children and 
1371         after_dom_children. Remove other GIMPLE statement walking bits.
1372         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
1373         * graphite.c: Do not include domwalk.h.
1374         * tree-into-ssa.c (interesting_blocks): New global.
1375         (struct mark_def_sites_global_data): Remove it and names_to_rename.
1376         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
1377         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
1378         now that they're not domwalk callbacks.
1379         (rewrite_initialize_block): Rename to...
1380         (rewrite_enter_block): ... this, place after called functions.  Test
1381         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
1382         (rewrite_finalize_block): Rename to...
1383         (rewrite_leave_block): ... this, place after called functions.
1384         (rewrite_update_init_block): Rename to...
1385         (rewrite_update_enter_block): ... this, place after called functions.
1386         Test interesting_blocks, call rewrite_update_stmt and 
1387         rewrite_update_phi_arguments.
1388         (rewrite_update_fini_block): Rename to...
1389         (rewrite_leave_block): ... this, place after called functions.
1390         (rewrite_blocks): Remove last argument, simplify initialization of
1391         walk_data.
1392         (mark_def_sites_initialize_block): Rename to...
1393         (mark_def_sites_block): ... this, call mark_def_sites.
1394         (mark_def_sites_blocks): Remove argument, simplify initialization of
1395         walk_data.
1396         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
1397         (update_ssa): Likewise.
1398         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
1399         callback.
1400         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
1401         (dom_opt_initialize_block): Rename to...
1402         (dom_opt_enter_block): ... this, place after called functions.  Walk
1403         statements here, inline propagate_to_outgoing_edges.
1404         (dom_opt_finalize_block): Rename to...
1405         (dom_opt_leave_block): ... this, place after called functions.
1406         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
1407         domwalk callback.
1408         (dse_enter_block, dse_record_phi): New.
1409         (dse_record_phis): Delete.
1410         (dse_finalize_block): Rename to...
1411         (dse_leave_block): ... this.
1412         (tree_ssa_dse): Simplify initialization of walk_data.
1413         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
1414         Adjust initialization of walk_data.
1415         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
1416         * tree-ssa-loop-phiopt.c (get_non_trapping):
1417         Adjust initialization of walk_data.
1418         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
1419         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
1420         it's not a domwalk callback.
1421         (uncprop_initialize_block): Rename to...
1422         (dse_enter_block): ... this, call uncprop_into_successor_phis.
1423         (dse_finalize_block): Rename to...
1424         (dse_leave_block): ... this.
1425         (tree_ssa_uncprop): Simplify initialization of walk_data.
1426         * Makefile.in: Adjust dependencies.
1427
1428 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
1429
1430         * arm.md (casesi): Fix test for Thumb1.
1431         (thumb1_casesi_internal_pic): Likewise.
1432         (thumb1_casesi_dispatch): Likewise.
1433
1434 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
1435
1436         * config/arm/arm-cores.def: Added core cortex-m0.
1437         * config/arm/arm-tune.md: Regenerated.
1438         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
1439
1440 2009-06-26  DJ Delorie  <dj@redhat.com>
1441
1442         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
1443
1444         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
1445         the scheduler doesn't tag jump insns.
1446
1447 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
1448
1449         * c-decl.c (merge_decls): Re-indent.
1450
1451 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
1452
1453         PR c/39902
1454         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
1455         Special-case decimal float constants.
1456
1457 2009-06-26  Richard Henderson  <rth@redhat.com>
1458
1459         * function.h (struct function): Add cannot_be_copied_reason,
1460         and cannot_be_copied_set.
1461         * tree-inline.c (has_label_address_in_static_1): Rename from
1462         inline_forbidden_p_2; don't set inline_forbidden_reason here.
1463         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
1464         don't set inline_forbidden_reason.
1465         (copy_forbidden): New function, split out of inline_forbidden_p.
1466         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
1467         (inline_forbidden_p): Use copy_forbidden.
1468         (tree_versionable_function_p): Likewise.
1469         (inlinable_function_p): Merge into tree_inlinable_function_p.
1470         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
1471         * ipa-cp.c (ipcp_versionable_function_p): New function.
1472         (ipcp_cloning_candidate_p): Use it.
1473         (ipcp_node_modifiable_p): Likewise.
1474
1475 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
1476
1477         * builtins.c (expand_builtin_alloca): Handle builtin alloca
1478         that is marked not to be inlined. Remove flag_mudflap use.
1479         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
1480         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
1481
1482 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
1483
1484         PR bootstrap/40338
1485         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
1486         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
1487
1488 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
1489
1490         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
1491         shared libgcc.
1492         (__mingwthr_remove_key_dtor): Likewise.
1493
1494 2009-06-26  Richard Guenther  <rguenther@suse.de>
1495
1496         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
1497
1498 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
1499
1500         PR middle-end/40525
1501         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
1502         try the non-cond_exec path also.
1503
1504 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1505
1506         PR target/40468
1507         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
1508         (output_cbranch): Use new functions.
1509         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
1510         Likewise.
1511
1512 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
1513             Pat Haugen  <pthaugen@us.ibm.com>
1514             Revital Eres <ERES@il.ibm.com>
1515
1516         * config/rs6000/rs6000.c (print_operand): Correct lossage message
1517         for %c error.  Add %x support to print VSX registers as a unified
1518         register set, instead of separate float and altivec registers.
1519         Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
1520         %y case, and add support for VSX pre-modify addresses.
1521         (output_toc): Add assert for CONST containing an integer constant
1522         in the PLUS case.
1523         (rs6000_adjust_cost): Add POWER7 support.
1524         (insn_must_be_first_in_group): Ditto.
1525         (insn_must_be_last_in_group): Ditto.
1526         (rs6000_emit_popcount): Ditto.
1527         (rs6000_vector_mode_supported_p): Ditto.
1528
1529         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
1530         Change some of the functions called by macros to being called
1531         through a pointer, so debug functions can be inserted if
1532         -mdebug=addr or -mdebug=cost. 
1533         (rs6000_preferred_reload_class_ptr): Ditto.
1534         (rs6000_secondary_reload_class_ptr): Ditto.
1535         (rs6000_secondary_memory_needed_ptr): Ditto.
1536         (rs6000_cannot_change_mode_class_ptr): Ditto.
1537         (rs6000_secondary_reload_inner): Ditto.
1538         (rs6000_legitimize_reload_address): Ditto.
1539         (rs6000_legitimize_reload_address_ptr): Ditto.
1540         (rs6000_mode_dependent_address): Ditto.
1541         (rs6000_mode_dependent_address_ptr): Ditto.
1542
1543         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
1544         function to return true if the mode allows reg + integer
1545         addresses.
1546         (virtual_stack_registers_memory_p): New function to return true if
1547         the address refers to a virtual stack register.
1548         (rs6000_legitimate_offset_address_p): Move code to say whether a
1549         mode supports reg+int addressing to reg_offset_addressing_ok_p and
1550         call it.
1551         (rs6000_legitimate_address_p): Add checks for modes that only can
1552         do reg+reg addressing.  Start adding VSX support.
1553         (rs6000_legitimize_reload_address): Ditto.
1554         (rs6000_legitimize_address): Ditto.
1555         (rs6000_debug_legitimate_address_p): New debug functions for
1556         -mdebug=addr and -mdebug=cost.
1557         (rs6000_debug_rtx_costs): Ditto.
1558         (rs6000_debug_address_costs): Ditto.
1559         (rs6000_debug_adjust_cost): Ditto.
1560         (rs6000_debug_legitimize_address): Ditto.
1561         (rs6000_legitimize_reload_address_ptr): Point to call normal
1562         function or debug function.  Make functions called via pointer
1563         static.
1564         (rs6000_mode_dependent_address_ptr): Ditto.
1565         (rs6000_secondary_reload_class_ptr): Ditto.
1566         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
1567         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
1568         into a friendlier error.
1569         (rs6000_init_builtins): Add initial VSX support.
1570         (rs6000_adjust_cost): Fix some spacing issues.
1571
1572         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
1573         (REG_CLASS_NAMES): Ditto.
1574         (REG_CLASS_CONTENTS): Ditto.
1575         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
1576         pointer, to add -mdebug=addr support.
1577         (CANNOT_CHANGE_MODE_CLASS): Ditto.
1578         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
1579         -mdebug=addr support.
1580         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
1581         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
1582         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
1583
1584         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
1585         16-bit values.
1586         (bswapsi*): Set attribute types for load/store.  Add combiner
1587         patterns to eliminate zero extend on 64-bit.
1588         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
1589         stdbrx if the hardware supports those instructions.
1590
1591 2009-06-25  Ian Lance Taylor  <iant@google.com>
1592
1593         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
1594         (Link Options): Document -static-libstdc++.
1595
1596 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1597
1598         PR target/38731
1599         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
1600         DATA_ALIGNMENT instead.
1601
1602 2009-06-25  Richard Guenther  <rguenther@suse.de>
1603
1604         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
1605         indirect references against the callused/escaped solutions.
1606         (call_may_clobber_ref_p_1): Likewise.
1607
1608 2009-06-25  Martin Jambor  <mjambor@suse.cz>
1609
1610         PR tree-optimization/40493
1611         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
1612         (enum unscalarized_data_handling): New type.
1613         (handle_unscalarized_data_in_subtree): Return what has been done.
1614         (load_assign_lhs_subreplacements): Handle left flushes differently.
1615         (sra_modify_assign): Use unscalarized_data_handling, simplified
1616         condition determining whether to remove the statement.
1617
1618 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
1619
1620         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
1621         excerpt - @ should be doubled for texinfo.
1622
1623 2009-06-24  Ian Lance Taylor  <iant@google.com>
1624
1625         * config/arc/arc.c: Include "df.h".
1626         (arc_attribute_table): Make static.  Move higher in file.
1627         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
1628         (output_shift): Initialize n later to avoid warning.
1629         * config/arm/arm.c (arm_attribute_table): Make static.  Move
1630         higher in file.
1631         * config/avr/avr.c (avr_attribute_table): Make static.  Move
1632         higher in file.
1633         (reg_class_tab): Change array type from int to enum reg_class.
1634         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
1635         LABEL_REF.
1636         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
1637         (lshrhi3_out): Likewise.
1638         (class_likely_spilled_p): Change return type to bool.
1639         (avr_rtx_costs): Use local code variable with enum type.
1640         * config/avr/avr.md (movmemhi): Use add_reg_note.
1641         (andhi3, andsi3): Don't use AS2 with "and".
1642         (iorhi3, iorsi3): Don't use AS2 with "or".
1643         * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
1644         * config/crx/crx.c: Include "df.h".
1645         (crx_attribute_table): Make static.
1646         * config/m32r/m32r.c: Include "df.h".
1647         (m32r_attribute_table): Make static.  Move higher in file.
1648         (pop): Use add_reg_note.
1649         (block_move_call): Change 0 to LCT_NORMAL in function call.
1650         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
1651         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
1652         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
1653         declare, not just when TREE_CODE is defined.
1654         * config/m68hc11/m68hc11.c: Include "expr.h".
1655         (m68hc11_attribute_table): Make static.  Move higher in file.
1656         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
1657         function call.
1658         (m68hc11_register_indirect_p): Likewise.
1659         (m68hc11_function_arg_padding): Change return type to enum
1660         direction.
1661         (emit_move_after_reload): Use add_reg_note.
1662         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
1663         (m68hc11_split_logical): Likewise.
1664         (m68hc11_rtx_costs): Add local code_and outer_code variables with
1665         enum type.
1666         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
1667         to VOIDmode in function call.
1668         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
1669         tree is defined.
1670         (m68hc11_split_logical): Update declaration.
1671         (m68hc11_function_arg_padding): Update declaration.
1672         * config/mcore/mcore.c (regno_reg_class): Change form array of int
1673         to array of enum reg_class.
1674         (mcore_attribute_table): Make static.  Move higher in file.
1675         (mcore_rtx_costs): Add cast to enum type.
1676         * config/mcore/mcore.h (regno_reg_class): Update declaration.
1677         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
1678         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
1679         in file.
1680         * config/sh/predicates.md (trapping_target_operand): Rename and to
1681         and_expr.
1682         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
1683         higher in file.
1684         * config/spu/spu.c (spu_attribute_table): Make static.  Move
1685         higher in file.
1686         * config/v850/v850.c (v850_attribute_table): Make static.  Move
1687         higher in file.
1688         (v850_rtx_costs): Use local code with enum type.
1689         (expand_epilogue): Add cast.
1690         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
1691
1692 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
1693
1694         PR target/40515
1695         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
1696         -m2a-single-only and -m2a-nofpu.
1697         * config/sh/sh.opt: Document m2a generates FPU code.  
1698
1699 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
1700
1701         * defaults.h (CAN_ELIMINATE): Provide default.
1702         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
1703         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
1704         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
1705         * config/spu/spu.h (CAN_ELIMINATE): Delete.
1706         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
1707         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
1708         * config/cris/cris.h (CAN_ELIMINATE): Delete.
1709         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
1710         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
1711         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
1712
1713 2009-06-24  DJ Delorie  <dj@redhat.com>
1714
1715         * mep-ext-cop.cpu: Fix copyright notice.
1716         * mep-default: Fix copyright notice.
1717         * mep-core: Fix copyright notice.
1718         * mep: Fix copyright notice.
1719         * mep-ivc2: Fix copyright notice.
1720         * mep-c5: Fix copyright notice.
1721
1722 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
1723
1724         * doc/contrib.texi (Contributors): 
1725
1726 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1727         
1728         PR middle-end/40501
1729         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
1730         src and dst operands if necessary.
1731
1732 2009-06-23  DJ Delorie  <dj@redhat.com>
1733
1734         Add MeP port.
1735         * config.gcc: Add mep support.
1736         * recog.c: Resurrect validate_replace_rtx_subexp().
1737         * recog.h: Likewise.
1738         * config/mep/: Add new port:
1739         * config/mep/constraints.md: New file.
1740         * config/mep/default.h: New file.
1741         * config/mep/intrinsics.h: New file.
1742         * config/mep/intrinsics.md: New file.
1743         * config/mep/ivc2-template.h: New file.
1744         * config/mep/mep-c5.cpu: New file.
1745         * config/mep/mep-core.cpu: New file.
1746         * config/mep/mep-default.cpu: New file.
1747         * config/mep/mep-ext-cop.cpu: New file.
1748         * config/mep/mep-intrin.h: New file.
1749         * config/mep/mep-ivc2.cpu: New file.
1750         * config/mep/mep-lib1.asm: New file.
1751         * config/mep/mep-lib2.c: New file.
1752         * config/mep/mep-pragma.c: New file.
1753         * config/mep/mep-protos.h: New file.
1754         * config/mep/mep-tramp.c: New file.
1755         * config/mep/mep.c: New file.
1756         * config/mep/mep.cpu: New file.
1757         * config/mep/mep.h: New file.
1758         * config/mep/mep.md: New file.
1759         * config/mep/mep.opt: New file.
1760         * config/mep/predicates.md: New file.
1761         * config/mep/t-mep: New file.
1762
1763 2009-06-23  Ian Lance Taylor  <iant@google.com>
1764
1765         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
1766         from loose_warn into c_loose_warn and from strict_warn into
1767         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
1768         --enable-build-with-cxx.  Set and substitute
1769         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
1770         * Makefile.in (CXXFLAGS): New variable.
1771         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
1772         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
1773         the default is the same as $(STRICT_WARN).
1774         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
1775         (CXX): New variable.
1776         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
1777         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
1778         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
1779         (HOST_LIBS): New variable.
1780         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
1781         (ALL_CXXFLAGS): New variable.
1782         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
1783         * doc/install.texi (Configuration): Document
1784         --enable-build-with-cxx, --with-stage1-ldflags,
1785         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
1786         * configure: Rebuild.
1787
1788 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1789
1790         * config/arm/arm.c (arm_override_options): Fix braces and formatting
1791         from previous commit.
1792
1793 2009-06-23  Ian Lance Taylor  <iant@google.com>
1794
1795         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
1796
1797 2009-06-23  Ian Lance Taylor  <iant@google.com>
1798
1799         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
1800         with ATTRIBUTE_UNUSED.
1801
1802 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1803             Pat Haugen  <pthaugen@us.ibm.com>
1804             Revital Eres  <eres@il.ibm.com>
1805
1806         * config.in (HAVE_AS_POPCNTD): Add default definition.
1807         (HAVE_AS_LWSYNC): Ditto.
1808
1809         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
1810         release number.
1811         (gcc_cv_as_powerpc_cmpb): Ditto.
1812         (gcc_cv_as_powerpc_dfp): Ditto.
1813         (gcc_cv_as_powerpc_vsx): Ditto.
1814         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
1815         supporting the popcntd/lwsync instructions.
1816         (gcc_cv_as_powerpc_lwsync): Ditto.
1817         * configure: Regenerate.
1818
1819         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
1820         -mcpu=native and -mcpu=power7.
1821         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
1822
1823         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
1824         a variable instead of a mask to reduce the number of mask bits.
1825         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1826         (-mbit-word): Ditto.
1827         (-mregnames): Ditto.
1828         * config/rs6000/rs6000.opt (-mupdate): Ditto.
1829         (-mfused-madd): Ditto.
1830
1831         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
1832         2.06 instructions.
1833         (-mvsx): New switch for VSX instructions.
1834         (-misel): Move from a variable to a mask to allow it to be set by
1835         -mcpu=.
1836
1837         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
1838         function declaration to an array declaration.
1839         (rs6000_hard_regno_nregs): New external array declaration.
1840
1841         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
1842         files included by rs6000.md.
1843
1844         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1845         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
1846
1847         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
1848         a target mask.
1849         (rs6000_debug_reg): New -mdebug= variables.
1850         (rs6000_debug_addr): Ditto.
1851         (rs6000_debug_cost): Ditto.
1852         (rs6000_pmode): New variable to hold Pmode.
1853         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
1854         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
1855         calculated at compiler start.
1856         (rs6000_hard_regno_nregs): Change function to an array which holds
1857         HARD_REGNO_NREGS calculated at compiler start.
1858         (rs6000_explicit_options): Delete isel field.
1859         (rs6000_vector_unit): New array to hold which vector unit
1860         supports arithmetic options for a given type.
1861         (rs6000_vector_mem): New array to hold which vector unit supports
1862         memory reference operations for a given type.
1863         (rs6000_vector_align): New array to given the alignment of each
1864         vector type.
1865         (power7_cost): New basic costs for power7.
1866         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
1867         (rs6000_hard_regno_nregs_internal): New function, moved from
1868         HARD_REGNO_NREGS, to calculate the number of registers each hard
1869         register takes for each type.
1870         (rs6000_debug_reg_print): New function for -mdebug=reg support.
1871         (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
1872         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
1873         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
1874         unit information here so it is calculated once at compiler startup
1875         time.
1876         (rs6000_override_options): Make -misel a target mask.  Add more
1877         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
1878         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
1879         -mdebug=cost.
1880         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
1881         (rs6000_handle_option): Move -misel from variable to target mask.
1882         (rs6000_builtin_mask_for_load): Add VSX support.
1883         (rs6000_conditional_register_usage): Ditto.
1884         (USE_ALTIVEC_FOR_ARG_P): Ditto.
1885         (function_arg_boundary): Ditto.
1886         (rs6000_expand_builtin): Ditto.
1887         (def_builtin): Make abort message a little friendlier.
1888         (rs6000_emit_int_cmove): Add support for 64-bit isel.
1889
1890         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
1891         assembler support the popcntd instruction instead of a vsx
1892         instruction to enable power7 support.
1893         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
1894         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
1895         option to the assembler if -mcpu=native.
1896         (ASM_CPU_NATIVE_SPEC): Ditto.
1897         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
1898         ISA 2.06 features.
1899         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
1900         the lwsync instruction.
1901         (enum processor_type): Add PROCESSOR_POWER7.
1902         (rs6000_debug_reg): New -mdebug= options.
1903         (rs6000_debug_addr): Ditto.
1904         (rs6000_debug_cost): Ditto.
1905         (rs6000_isel): Delete.
1906         (enum rs6000_vector): New enum to say what vector unit we have.
1907         (VECTOR_UNIT_*): New macros to say which vector unit has
1908         arithmetic operations for a given type.
1909         (VECTOR_MEM_*): New macros to say which vector unit has memory
1910         operations for a given type.
1911         (TARGET_LDBRX): Whether the machine supports the ldbrx
1912         instruction.
1913         (TARGET_ISEL): Delete, -misel moved to be a mask.
1914         (TARGET_ISEL64): New macro for 64-bit isel support.
1915         (UNITS_PER_VSX_WORD): New macro.
1916         (POINTER_SIZE): Move to be an external variable, rather than
1917         calculating whether we are generating 32 ot 64-bit code.
1918         (Pmode): Ditto.
1919         (STACK_BOUNDARY): Add VSX support.
1920         (LOCAL_ALIGNMENT): Ditto.
1921         (SLOW_UNALIGNED_ACCESS): Ditto.
1922         (VSX_REGNO_P): New macro for VSX support.
1923         (VFLOAT_REGNO_P): Ditto.
1924         (VINT_REGNO_P): Ditto.
1925         (VLOGICAL_REGNO_P): Ditto.
1926         (VSX_VECTOR_MODE): Ditto.
1927         (VSX_SCALAR_MODE): Ditto.
1928         (VSX_MODE): Ditto.
1929         (VSX_MOVE_MODE): Ditto.
1930         (VSX_REG_CLASS_P): Ditto.
1931         (HARD_REGNO_NREGS): Instead of calling a function, use an array
1932         lookup.
1933         (UNITS_PER_SIMD_WORD): Add VSX support.
1934         (MODES_TIEABLE_P): Ditto.
1935         (STARTING_FRAME_OFFSET): Ditto.
1936         (STACK_DYNAMIC_OFFSET): Ditto.
1937         (EPILOGUE_USES): Ditto.
1938         (REGNO_REG_CLASS): Move to array lookup.
1939         (CLASS_MAX_NREGS): Ditto.
1940         (rs6000_vector_reg_class): Add declaration.
1941         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
1942         overlap with the floating point and Altivec registers.
1943
1944         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
1945
1946         * config/rs6000/driver-rs6000.c (asm_names): New static array to
1947         give the appropriate asm switches if -mcpu=native.
1948         (host_detect_local_cpu): Add support for "asm".
1949         (host_detect_local_cpu): Follow GNU code guidelines for name.
1950
1951         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
1952         -mbit-word to a variable instead of being a target mask.
1953
1954         * config/rs6000/sync.md (lwsync): If the assembler supports it,
1955         emit the lwsync instruction instead of emitting the instruction as
1956         an integer constant.
1957
1958         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
1959         fixuns_trundfsi2, move expander into rs6000.md.
1960
1961         * config/rs6000/rs6000.md (cpu): Add power7.
1962         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
1963         (logical predicate patterns): Change the single instruction
1964         primitives that set CR0 to be fast_compare instead of compare.
1965         (norsi*): Ditto.
1966         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
1967         (popcntddi2): Ditto.
1968         (popcount<mode>): Ditto.
1969         (floating multiply/add insns): Name the floating point
1970         multiply/add insns.
1971         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
1972         (isel_unsigned_<mode>): Ditto.
1973         (fixuns_trundfsi2): Move expander here from spe.md.
1974         (smindi3): Define if we have -misel on 64-bit systems.
1975         (smaxdi3): Ditto.
1976         (umindi3): Ditto.
1977         (umaxdi3): Ditto.
1978
1979 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
1980
1981         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
1982         extra_objs.
1983         * config/avr/avr.c (avr_current_device): New variable.
1984         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
1985         (avr_arch, mcu_type_s): Move to avr.h.
1986         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
1987         default_data_section_start fields.
1988         (avr_arch): Moved from avr.c.
1989         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
1990         library_name fields.
1991         (avr_current_device, avr_mcu_types, avr_arch_types,
1992         avr_device_to_arch, avr_device_to_data_start,
1993         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
1994         (EXTRA_SPEC_FUNCTIONS): Define.
1995         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
1996         options mapping. Use device_to_arch and device_to_data_start insted.
1997         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
1998         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
1999         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
2000         * config/avr/driver-avr.c: New file.
2001         * config/avr/avr-devices.c: New file.
2002
2003 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
2004
2005         * var-tracking.c (unshare_variable): Force initialized to
2006         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
2007         (set_variable_part): Likewise.
2008         (struct variable_union_info): Remove pos_src field.
2009         (vui_vec, vui_allocated): New variables.
2010         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
2011         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
2012         == 1 use a simpler sorting algorithm.  Compute pos field right
2013         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
2014         Avoid quadratic comparison if !flag_var_tracking_uninit.
2015         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
2016         unshare_variable unconditionally.   
2017         (dataflow_set_different_2): Removed.
2018         (dataflow_set_different): Don't traverse second hash table.
2019         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
2020         unconditionally to var_reg_set or var_mem_set.
2021         (emit_notes_in_bb): Likewise.
2022         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
2023         unshare_variable.
2024         (emit_note_insn_var_location): Don't set initialized to
2025         VAR_INIT_STATUS_INITIALIZED early.
2026         (vt_finalize): Free vui_vec if needed, clear vui_vec and
2027         vui_allocated.
2028         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
2029
2030         * tree-object-size.c (addr_object_size): Instead of checking
2031         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
2032         are no FIELD_DECLs following it.
2033
2034 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
2035
2036         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
2037         order to match bswaps with signed source operands.
2038
2039 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2040
2041         * sdbout.c (sdbout_one_type): Fix braces in switch.
2042
2043 2009-06-23  Richard Guenther  <rguenther@suse.de>
2044
2045         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
2046         member.
2047         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
2048         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
2049         var_callused, callused_tree, var_storedanything, storedanything_tree,
2050         var_integer, integer_tree): Remove global variables.
2051         (new_var_info): Do not pass new id, append the new var to the
2052         global variable vector.
2053         (do_ds_constraint): Use is_global_var member of the variable-info.
2054         (new_scalar_tmp_constraint_exp): Adjust.
2055         (create_function_info_for): Likewise.
2056         (create_variable_info_for): Likewise.
2057         (find_what_var_points_to): Remove dead code.
2058         (init_base_vars): Simplify.
2059         (compute_points_to_sets): Adjust.
2060
2061 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
2062
2063         * combine.c (try_combine): Dump information about the insns we're
2064         combining.
2065
2066 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
2067
2068         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
2069         check when calling force_to_mode on TRUNCATE's operand.
2070
2071 2009-06-22  Ian Lance Taylor  <iant@google.com>
2072
2073         * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
2074
2075 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2076
2077         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
2078
2079 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2080
2081         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
2082         override library linkage flags such as -static-libgcc or
2083         -shared-libgcc.
2084
2085 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2086
2087         * config/m68k/m68k-devices.def: Add line for MCF5221x.
2088
2089 2009-06-22  Ian Lance Taylor  <iant@google.com>
2090
2091         * config/linux.opt: Put mglibc ahead of muclibc.
2092
2093         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
2094         for duplicate decls.
2095
2096 2009-06-22  Matthias Klose  <doko@ubuntu.com>
2097
2098         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
2099
2100 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
2101
2102         PR objc/28050
2103         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
2104         instead of NULL if a parser error occurs.
2105
2106 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2107
2108         * dwarf2out.c (dwarf2_debug_hooks): Initialize
2109         non-DWARF2_DEBUGGING_INFO version.
2110
2111 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
2112
2113         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
2114         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2115
2116         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
2117         (LIBGCC2_TF_CEXT): Define.
2118         (TF_SIZE): Define.
2119
2120 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2121
2122         PR target/40463
2123         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
2124
2125 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2126
2127         * config/arm/arm.c (arm_override_options): Disable
2128         -mcaller-super-interworking and -mcallee-super-interworking.
2129         * doc/invoke.texi (ARM Options): Document this.
2130
2131 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2132
2133         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
2134         * config/arm/constraints.md (j): New constraint for movw operands.
2135         (N): Remove thumb2 meaning.
2136         * config/arm/arm.md (*arm_movw): Delete.
2137         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
2138         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
2139         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
2140
2141 2009-06-22  Martin Jambor  <mjambor@suse.cz>
2142
2143         PR tree-optimization/40492
2144         * tree-sra.c (sra_modify_assign): Pass zero offsets to
2145         build_ref_for_offset.
2146
2147 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
2148
2149         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
2150         JUMP_TABLE_DATA_P predicates where applicable.
2151         * auto-inc-dec.c: Ditto.
2152         * builtins.c: Ditto.
2153         * caller-save.c: Ditto.
2154         * calls.c: Ditto.
2155         * cfgcleanup.c: Ditto.
2156         * cfglayout.c: Ditto.
2157         * cfgrtl.c: Ditto.
2158         * combine.c: Ditto.
2159         * combine-stack-adj.c: Ditto.
2160         * cse.c: Ditto.
2161         * cselib.c: Ditto.
2162         * dbxout.c: Ditto.
2163         * df-scan.c: Ditto.
2164         * dse.c: Ditto.
2165         * dwarf2asm.c: Ditto.
2166         * dwarf2out.c: Ditto.
2167         * emit-rtl.c: Ditto.
2168         * except.c: Ditto.
2169         * explow.c: Ditto.
2170         * expmed.c: Ditto.
2171         * expr.c: Ditto.
2172         * final.c: Ditto.
2173         * function.c: Ditto.
2174         * fwprop.c: Ditto.
2175         * gcse.c: Ditto.
2176         * genpreds.c: Ditto.
2177         * genrecog.c: Ditto.
2178         * ifcvt.c: Ditto.
2179         * ira-costs.c: Ditto.
2180         * ira-lives.c: Ditto.
2181         * jump.c: Ditto.
2182         * loop-iv.c: Ditto.
2183         * lower-subreg.c: Ditto.
2184         * modulo-sched.c: Ditto.
2185         * optabs.c: Ditto.
2186         * postreload.c: Ditto.
2187         * print-rtl.c: Ditto.
2188         * recog.c: Ditto.
2189         * reginfo.c: Ditto.
2190         * regmove.c: Ditto.
2191         * reload1.c: Ditto.
2192         * reload.c: Ditto.
2193         * reorg.c: Ditto.
2194         * rtlanal.c: Ditto.
2195         * rtl.c: Ditto.
2196         * sched-vis.c: Ditto.
2197         * sdbout.c: Ditto.
2198         * sel-sched-ir.c: Ditto.
2199         * simplify-rtx.c: Ditto.
2200         * targhooks.c: Ditto.
2201         * var-tracking.c: Ditto.
2202         * vmsdbgout.c: Ditto.
2203
2204 2009-06-22  Matthias Klose  <doko@ubuntu.com>
2205
2206         * Makefile.in (install-plugin): Always use DESTDIR.
2207
2208 2009-06-22  Olivier Hainque  <hainque@adacore.com>
2209         
2210         * config/pa/pa.c (output_call): Don't optimize post call jumps
2211         into return address adjustments if the call may throw.
2212
2213 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
2214
2215         * arm.c (thumb1_output_casesi): New function.
2216         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
2217         optimizing for size or PIC.
2218         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
2219         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
2220         (casesi): Handle Thumb-1 when optimizing for size or PIC.
2221         (thumb1_casesi_internal_pic): New expand rule.
2222         (thumb1_casesi_dispatch): New pattern.
2223         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
2224         thumb-1 mode.
2225         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
2226         in the text seciton when PIC or optimizing for size.
2227         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
2228         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
2229         preservation properties of code.
2230         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
2231         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
2232         (__gnu_thumb1_case_si): New function.
2233         * t-arm (LIB1ASMSRC): Define here.
2234         (LIB1ASMFUNCS): Add some common functions.
2235         * t-arm-elf (LIB1ASMSRC): Delete.
2236         (LIB1ASMFUNCS): Append to existing set.
2237         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2238         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2239         * t-symbian (LIB1ASMFUNCS): Likewise.
2240         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2241         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2242
2243 2009-06-21  Richard Guenther  <rguenther@suse.de>
2244
2245         PR tree-optimization/38729
2246         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
2247         to loops with a single exit if -fno-expensive-optimizations.
2248
2249 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
2250
2251         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
2252         (dataflow_set): Change vars type from htab_t to shared_hash.
2253         (shared_hash_pool, empty_shared_hash): New variables.
2254         (vars_clear): Removed.
2255         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
2256         shared_hash_find_slot_unshare, shared_hash_find_slot,
2257         shared_hash_find_slot_noinsert, shared_hash_find): New
2258         static inlines.
2259         (shared_hash_unshare, shared_hash_destroy): New functions.
2260         (unshare_variable): Unshare set->vars if shared, use
2261         shared_hash_htab.
2262         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
2263         (get_init_value, find_src_set_src, dump_dataflow_set,
2264         clobber_variable_part, emit_notes_for_differences): Use
2265         shared_hash_htab.
2266         (dataflow_set_init): Remove second argument, set vars to
2267         empty_shared_hash instead of creating a new htab.
2268         (dataflow_set_clear): Call shared_hash_destroy and set vars
2269         to empty_shared_hash instead of calling vars_clear.
2270         (dataflow_set_copy): Don't call vars_copy, instead just share
2271         the src htab with dst.
2272         (variable_union): Use shared_hash_*, use initially NO_INSERT
2273         lookup if set->vars is shared.  Don't keep slot cleared before
2274         calling unshare_variable.  Unshare set->vars if needed.
2275         Even ->refcount == 1 vars must be unshared if set->vars is shared
2276         and var needs to be modified.
2277         (variable_canonicalize): New function.
2278         (dataflow_set_union): If dst->vars is empty, just share src->vars
2279         with dst->vars and traverse with variable_canonicalize to canonicalize
2280         and unshare what is needed.
2281         (dataflow_set_different): If old_set and new_set use the same shared
2282         htab, they aren't different.  If number of htab elements is different,
2283         htabs are different.  Use shared_hash_*.
2284         (dataflow_set_destroy): Call shared_hash_destroy instead of
2285         htab_delete.
2286         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
2287         second argument to dataflow_set_init.
2288         (vt_initialize): Likewise.  Initialize shared_hash_pool and
2289         empty_shared_hash, move bb in/out initialization afterwards.
2290         Use variable_htab_free instead of NULL as changed_variables del hook.
2291         (variable_was_changed): Change type of second argument to pointer to
2292         dataflow_set.  When inserting var into changed_variables, bump
2293         refcount.  Unshare set->vars if set is shared htab and slot needs to
2294         be cleared.
2295         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
2296         lookup if set->vars is shared.  Unshare set->vars if needed.
2297         Even ->refcount == 1 vars must be unshared if set->vars is shared
2298         and var needs to be modified.  Adjust variable_was_changed caller.
2299         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
2300         vars must be unshared if set->vars is shared and var needs to be
2301         modified.  Adjust variable_was_changed caller.
2302         (emit_note_insn_var_location): Don't pool_free var.
2303         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
2304         instead of 1.
2305         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
2306         free_alloc_pool on shared_hash_pool.
2307
2308 2009-06-20  Anthony Green  <green@moxielogic.com>
2309
2310         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
2311         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
2312
2313 2009-06-20  Richard Guenther  <rguenther@suse.de>
2314
2315         * tree-ssa-structalias.c (find_func_aliases): For memset use
2316         a constraint from NULL if we memset to zero.
2317         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
2318         we explicitly handle that do not read from memory.
2319         (call_may_clobber_ref_p_1): Properly handle builtins that may
2320         set errno.
2321
2322 2009-06-20  Richard Guenther  <rguenther@suse.de>
2323
2324         PR tree-optimization/40495
2325         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
2326         (new_scalar_tmp_constraint_exp): New function.
2327         (process_constraint): Do not create temporary decls.
2328         (process_all_all_constraints): Likewise.
2329         (handle_const_call): Likewise.
2330         (create_function_info_for): Do not set decl.
2331
2332 2009-06-19  Ian Lance Taylor  <iant@google.com>
2333
2334         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
2335         (rs6000_attribute_table): Make static; move before use.
2336
2337 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
2338
2339         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
2340         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
2341         Propagate the TREE_READONLY flag without overwriting it.
2342         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
2343         Propagate the TREE_READONLY flag onto the result.
2344         (process_call_operands): Move around.  Use correct constant value.
2345
2346 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2347
2348         PR target/40482
2349         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
2350         * config/arm/arm.md: Likewise.
2351
2352 2009-06-19  Ian Lance Taylor  <iant@google.com>
2353
2354         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
2355         to GIMPLE_ERROR_MARK.
2356
2357         * c-typeck.c (build_conditional_expr): Add op1_original_type and
2358         op2_original_type parameters.  Warn about using different enum types.
2359         * c-parser.c (c_parser_conditional_expression): Pass original
2360         types to build_conditional_expr.
2361         * c-tree.h (build_conditional_expr): Update declaration.
2362
2363 2009-06-19  Ian Lance Taylor  <iant@google.com>
2364
2365         * config/i386/i386.c (ix86_function_specific_save): Test that
2366         fields match values, rather than testing the values are in a
2367         certain range.
2368
2369 2009-06-19  Richard Guenther  <rguenther@suse.de>
2370
2371         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2372         ADDR_EXPR pointers.
2373         (ptr_derefs_may_alias_p): Likewise.
2374         (ptr_deref_may_alias_ref_p_1): New function.
2375         (ptr_deref_may_alias_ref_p): Likewise.
2376         (ref_maybe_used_by_call_p_1): Handle builtins that are not
2377         covered by looking at the ESCAPED solution.
2378         (call_may_clobber_ref_p_1): Likewise.
2379         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
2380         Handle NULL_TREE offset.  Do not produce redundant constraints.
2381         (process_all_all_constraints): New helper function.
2382         (do_structure_copy): Use it.
2383         (handle_lhs_call): Likewise.
2384         (find_func_aliases): Handle some builtins with pointer arguments
2385         and/or return values explicitly.
2386
2387 2009-06-19  Ian Lance Taylor  <iant@google.com>
2388
2389         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
2390
2391 2009-06-19  Ian Lance Taylor  <iant@google.com>
2392
2393         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
2394
2395 2009-06-19  Ian Lance Taylor  <iant@google.com>
2396
2397         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
2398         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
2399         version.
2400
2401         * c-decl.c (finish_decl): If -Wc++-compat, warn about
2402         uninitialized const.
2403
2404 2009-06-19  Ian Lance Taylor  <iant@google.com>
2405
2406         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
2407         all uses.
2408
2409         * c-decl.c (in_struct, struct_types): Remove.
2410         (struct c_binding): Add in_struct field.
2411         (c_binding_ptr): Define type, along with VEC.
2412         (struct c_struct_parse_info): Define.
2413         (struct_parse_info): New static variable.
2414         (bind): Initialize in_struct field.
2415         (start_struct): Remove enclosing_in_struct and
2416         enclosing_struct_types parameters.  Add
2417         enclosing_struct_parse_info parameter.  Change all callers.  Set
2418         struct_parse_info rather than in_struct and struct_types.
2419         (grokfield): If -Wc++-compat and there is a symbol binding for the
2420         field name, set the in_struct flag and push it on the
2421         struct_parse_info->fields vector.
2422         (warn_cxx_compat_finish_struct): New static function.
2423         (finish_struct): Remove enclosing_in_struct and
2424         enclosing_struct_types parameters.  Add
2425         enclosing_struct_parse_info parameter.  Change all callers.  Don't
2426         set C_TYPE_DEFINED_IN_STRUCT here.  Call
2427         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
2428         parameter.  Only push on struct_types if warn_cxx_compat.
2429         (finish_enum): Only push on struct_types if warn_cxx_compat.
2430         (declspecs_add_type): Add loc parameter.  Change all callers.
2431         Change all error calls to error_at.  Pass loc, not input_location,
2432         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
2433         defined in a struct.  If -Wc++-compat and parsing a struct, record
2434         that a typedef name was used.
2435         * c-parser.c (c_parser_declspecs): Get location to pass to
2436         declspecs_add_type.
2437         (c_parser_struct_or_union_specifier): Update calls to start_struct
2438         and finish_struct.
2439         * c-tree.h (struct c_struct_parse_info): Declare.
2440         (finish_struct, start_struct): Update declarations.
2441         (declspecs_add_type): Update declaration.
2442
2443 2009-06-19  Ian Lance Taylor  <iant@google.com>
2444
2445         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
2446         variable with an anonymous type.
2447
2448 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
2449
2450         * see.c: Remove for real.
2451
2452 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
2453
2454         * optabs.h (enum optab_index): Add new OTI_significand.
2455         (significand_optab): Define corresponding macro.
2456         * optabs.c (init_optabs): Initialize significand_optab.
2457         * genopinit.c (optabs): Implement significand_optab using
2458         significand?f2 patterns.
2459         * builtins.c (expand_builtin_mathfn): Handle
2460         BUILT_IN_SIGNIFICAND{,F,L}.
2461         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
2462         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2463
2464         * config/i386/i386.md (significandxf2, significand<mode>2): New
2465         expanders to implement significandf, significand and significandl
2466         built-ins as inline x87 intrinsics.
2467
2468 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
2469
2470         * config/avr/avr.c (avr_override_options): Remove setting value of
2471         PARAM_INLINE_CALL_COST.
2472
2473 2009-06-18  Richard Henderson  <rth@redhat.com>
2474
2475         PR 40488
2476         * tree-pass.h (TDF_ASMNAME): New.
2477         * tree-dump.c (dump_options): Add asmname.
2478         * doc/invoke.texi: Document it.
2479
2480         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
2481         (dump_decl_name): ...here.
2482         (dump_function_name): New flags arg; mind TDF_ASMNAME.
2483         (dump_generic_node): Update dump_function_name calls.
2484         (print_call_name): New flags arg; update all dump calls.
2485         * diagnostic.h (print_call_name): Update.
2486         * gimple-pretty-print.c (dump_gimple_call): Update.
2487
2488 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2489
2490         PR target/40470
2491         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
2492
2493 2009-06-18  Diego Novillo  <dnovillo@google.com>
2494
2495         * doc/plugins.texi: Document plugin_is_GPL_compatible.
2496         * plugin.c (str_license): Declare.
2497         (try_init_one_plugin): Assert that the symbol
2498         'plugin_is_GPL_compatible' exists.
2499
2500 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
2501
2502         * see.c: Remove.
2503         * Makefile.in (OBJS-common): Remove see.o.
2504         (see.o): Remove.
2505         * common.opt (fsee): Mark as preserved for backward compatibility.
2506         * opts.c (common_handle_option): Add OPT_fsee to the backward 
2507         compatibility section.
2508         * passes.c (init_optimization_passes, pass_see): Remove pass.
2509         * timevar.def (TV_SEE): Remove.
2510         * tree-pass.h (pass_see): Remove declaration.
2511         * doc/invoke.texi (-fsee): Remove documentation.
2512         
2513 2009-06-18  Martin Jambor  <mjambor@suse.cz>
2514
2515         * tree-sra.c: Include statistics.h
2516         (sra_stats): New variable.
2517         (sra_initialize): Clear sra_stats.
2518         (create_access_replacement): Increment sra_stats.replacements.
2519         (get_access_replacement): Do not return twice.
2520         (analyze_all_variable_accesses): Increment statistics counter by the
2521         number of scalarized aggregates.
2522         (generate_subtree_copies): Increment sra_stats.subtree_copies.
2523         (sra_modify_expr): Increment sra_stats.exprs.
2524         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
2525         (sra_modify_assign): Increment sra_stats.exprs,
2526         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
2527         (perform_intra_sra): Update statistics counters.
2528         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
2529
2530 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
2531
2532         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
2533         (arm_scalar_mode_supported_p): New function.
2534
2535 2009-06-18  Paul Brook  <paul@codesourcery.com>
2536             Sandra Loosemore  <sandra@codesourcery.com>
2537
2538         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
2539         (__extendhfsf2, __truncsfhf2): Define.
2540         * config/arm/fp16.c: New file.
2541         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
2542         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
2543
2544 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
2545
2546         * doc/extend.texi (Half-Precision): New section.
2547         * doc/invoke.texi (Option Summary): List -mfp16-format.
2548         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
2549         * config/arm/arm.opt (mfp16-format=): New.
2550         * config/arm/arm.c: Include intl.h.
2551         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
2552         (TARGET_INVALID_RETURN_TYPE): Redefine.
2553         (TARGET_PROMOTED_TYPE): Redefine.
2554         (TARGET_CONVERT_TO_TYPE): Redefine.
2555         (arm_fp16_format): Define.
2556         (all_fpus): Add entry for neon-fp16.
2557         (fp_model_for_fpu): Likewise.
2558         (struct fp16_format): Declare.
2559         (all_fp16_formats): Define.
2560         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
2561         functions.
2562         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
2563         and no ldrh.
2564         (arm_legitimate_index_p): Treat HFmode like HImode.
2565         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
2566         (coproc_secondary_reload_class): Special-case HFmode.
2567         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
2568         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
2569         (arm_init_fp16_builtins): New.
2570         (arm_init_builtins): Call it.
2571         (arm_invalid_parameter_type): New.
2572         (arm_invalid_return_type): New.
2573         (arm_promoted_type): New.
2574         (arm_convert_to_type).
2575         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
2576         format.
2577         (arm_emit_fp16_const): New function.
2578         (arm_mangle_type): Mangle __fp16 as "Dh".
2579         * config/arm/arm.h (TARGET_VFPD32): Make it know about
2580         FPUTYPE_NEON_FP16.
2581         (TARGET_NEON_FP16): New.
2582         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
2583         (enum fputype): Add FPUTYPE_NEON_FP16.
2584         (enum arm_fp16_format_type): Declare.
2585         (arm_fp16_format): Declare.
2586         (LARGEST_EXPONENT_IS_NORMAL): Define.
2587         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
2588         * config/arm/arm-modes.def (HFmode): Define.
2589         * config/arm/vfp.md: (*movhf_vfp): New.
2590         (extendhfsf2): New.
2591         (truncsfhf2): New.
2592         * config/arm/arm.md: (fpu): Add neon_fp16.
2593         (floatsihf2, floatdihf2): New.
2594         (fix_trunchfsi2, fix_trunchfdi2): New.
2595         (truncdfhf2): New.
2596         (extendhfdf2): New.
2597         (movhf): New.
2598         (*arm32_movhf): New.
2599         (*thumb1_movhf): New.
2600         (consttable_2): Add check for HFmode constants.
2601         (consttable_4): Handle HFmode constants.
2602
2603 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
2604
2605         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
2606
2607 2009-06-17  Olivier Hainque  <hainque@adacore.com>
2608
2609         * collect2.c (main): Use CONST_CAST2 to perform char ** to
2610         const char ** conversion in AIX specific section.
2611         
2612 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
2613
2614         * config/i386/i386.c (ix86_special_builtin_type): Remove
2615         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
2616         (bdesc_special_args): Updated.
2617         (ix86_init_mmx_sse_builtins): Likewise.
2618         (ix86_expand_special_args_builtin): Likewise.
2619
2620 2009-06-17  Richard Henderson  <rth@redhat.com>
2621
2622         * tree-pretty-print.c (maybe_dump_asm_name): New.
2623         (dump_decl_name): Use it.
2624         (PRINT_FUNCTION_NAME): Merge into...
2625         (dump_function_name): ... here.  Use maybe_dump_asm_name.
2626
2627 2009-06-17  Cary Coutant  <ccoutant@google.com>
2628
2629         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
2630         Change caller.
2631         * debug.c (struct gcc_debug_hooks): Change placeholder for
2632         source_line hook.
2633         (debug_nothing_int_charstar_int): Replaced by...
2634         (debug_nothing_int_charstar_int_bool): ...this.
2635         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
2636         source_line prototype.
2637         (debug_nothing_int_charstar_int): Replaced by...
2638         (debug_nothing_int_charstar_int_bool): ...this.
2639         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
2640         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
2641         Output is_stmt operand when necessary.
2642         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
2643         (notice_source_line): Add is_stmt parameter.
2644         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
2645         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
2646         Change callers.
2647         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
2648         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
2649
2650 2009-06-17  Ian Lance Taylor  <iant@google.com>
2651
2652         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
2653         Change all uses.
2654         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
2655         call uses.
2656
2657 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
2658
2659         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
2660         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
2661         tree_strip_sign_nop_conversions and
2662         tree_ssa_strip_useless_type_conversions rather than stripping
2663         the operations here.
2664         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
2665         Declare them.
2666         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
2667         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
2668         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
2669         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
2670         functions.
2671
2672 2009-06-17  Michael Eager  <eager@eagercon.com>
2673
2674         * config/rs6000/constraints.md (register_constraint "d"): New.
2675         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
2676         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
2677         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
2678         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
2679         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
2680         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
2681         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
2682         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
2683         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
2684         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
2685         __fctiwz): Same.
2686         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
2687         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
2688         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
2689         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
2690         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2691         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
2692         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
2693         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
2694         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
2695         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
2696         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
2697         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
2698         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
2699         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
2700
2701 2009-06-16  Ian Lance Taylor  <iant@google.com>
2702
2703         * profile.c (total_num_never_executed): Don't define.
2704         (compute_branch_probabilities): Don't count or print
2705         num_never_executed.
2706         (init_branch_prob): Don't set total_num_never_executed.
2707         (end_branch_prob): Don't print total_num_never_executed.
2708
2709 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
2710
2711         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
2712
2713 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
2714
2715         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
2716         (nabstd2_fpr): Same.
2717
2718 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
2719
2720         * expr.c (expand_assignment): Change complex type check.
2721
2722 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
2723
2724         * doc/plugins.texi (Building GCC plugins): Added new section. 
2725
2726 2009-06-17  Ian Lance Taylor  <iant@google.com>
2727
2728         * c-pch.c (get_ident): Don't set size of templ array.
2729         (pch_init): Don't set size of partial_pch array.
2730
2731         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
2732         string constant to intialize an array whose size is the length of
2733         the string.
2734
2735 2009-06-17  Richard Guenther  <rguenther@suse.de>
2736
2737         PR tree-optimization/40389
2738         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
2739         to addressable types.
2740         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
2741
2742 2009-06-17  Richard Guenther  <rguenther@suse.de>
2743
2744         PR middle-end/40460
2745         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
2746         if there is no evolution of left in the loop bail out.
2747         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
2748         chrec_fold_multiply.
2749
2750 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
2751             Janis Johnson  <janis187@us.ibm.com>
2752
2753         PR target/39254
2754         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
2755         for the symbol ref of a constant that is the source of a move
2756         - nor for any other not-obvious-label-ref constants.
2757
2758 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
2759
2760         * plugin.c (position_pass): Skip newly inserted pass during list
2761         traversal to avoid repeated insertion.
2762
2763 2009-06-16  Ian Lance Taylor  <iant@google.com>
2764
2765         * vec.h (VEC_stack_alloc): Define different version if
2766         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
2767         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
2768         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
2769         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
2770
2771 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
2772
2773         * config.gcc (extra_headers): Add ia32intrin.h for x86.
2774
2775         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
2776         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
2777         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
2778         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
2779         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
2780         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
2781         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
2782         (bdesc_special_args): Add __builtin_ia32_rdtsc and
2783         __builtin_ia32_rdtscp.
2784         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
2785         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
2786         and __builtin_ia32_rorhi.
2787         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
2788         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
2789         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
2790         (ix86_expand_args_builtin): Likewise.
2791         (ix86_expand_special_args_builtin): Likewise.
2792
2793         * config/i386/i386.md (UNSPECV_RDTSCP): New.
2794         (UNSPECV_RDTSC): Likewise.
2795         (UNSPECV_RDPMC): Likewise.
2796         (*bsr): Renamed to ...
2797         (bsr): This
2798         (*bsr_rex64): Renamed to ...
2799         (bsr_rex64): This.
2800         (rdpmc): New.
2801         (*rdpmc): Likewise.
2802         (*rdpmc_rex64): Likewise.
2803         (rdtsc): Likewise.
2804         (*rdtsc): Likewise.
2805         (*rdtsc_rex64): Likewise.
2806         (rdtscp): Likewise.
2807         (*rdtscp): Likewise.
2808         (*rdtscp_rex64): Likewise.
2809
2810         * config/i386/ia32intrin.h: New.
2811
2812         * config/i386/x86intrin.h: Include <ia32intrin.h>.
2813
2814 2009-06-16  Ian Lance Taylor  <iant@google.com>
2815
2816         * ira-build.c (copy_info_to_removed_store_destinations):
2817         Initialize parent_a.
2818
2819 2009-06-16  Ian Lance Taylor  <iant@google.com>
2820
2821         * c-decl.c (grokdeclarator): Change size_varies to bool.
2822
2823 2009-06-16  Ian Lance Taylor  <iant@google.com>
2824
2825         * sel-sched.c: Make forward declarations of move_op_hooks and
2826         fur_hooks explicitly extern.
2827
2828 2009-06-16  Ian Lance Taylor  <iant@google.com>
2829
2830         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
2831         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
2832
2833 2009-06-16  Ian Lance Taylor  <iant@google.com>
2834
2835         * resource.c (mark_referenced_resources): Change
2836         include_delayed_effects parameter to bool.  Change all callers.
2837         (mark_end_of_function_resources): Likewise.
2838         * reorg.c (insn_references_resource_p): Likewise.
2839         (insn_sets_resource_p): Likewise.
2840         * resource.h (mark_referenced_resources): Update declaration.
2841         (mark_end_of_function_resources): Update declaration.
2842
2843 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
2844
2845         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
2846
2847 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
2848
2849         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
2850         GCC can bootstrap on AIX with GNU Binutils 2.20.
2851
2852 2009-06-16  Ian Lance Taylor  <iant@google.com>
2853
2854         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
2855
2856 2009-06-16  Ian Lance Taylor  <iant@google.com>
2857
2858         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
2859         inline, not extern inline.
2860         (exact_log2): Likewise.
2861         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
2862         test CLZ_HWI.
2863         (exact_log2): Likewise, but don't test CTZ_HWI.
2864
2865 2009-06-16  Ian Lance Taylor  <iant@google.com>
2866
2867         * bitmap.c (bitmap_clear): Don't declare as inline.
2868         * gimple.c (gimplify_assign): Likewise.
2869         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
2870         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
2871         (sched_scan_info): Remove duplicate definition.
2872
2873 2009-06-16  Ian Lance Taylor  <iant@google.com>
2874
2875         * c-common.c (skip_evaluation): Don't define.
2876         (c_inhibit_evaluation_warnings): Define global variable.
2877         (overflow_warning): Check c_inhibit_evaluation_warnings rather
2878         than skip_evaluation.
2879         (convert_and_check, warn_for_div_by_zero): Likewise.
2880         * c-common.h (skip_evaluation): Don't declare.
2881         (c_inhibit_evaluation_warnings): Declare.
2882         * c-parser.c (c_parser_typeof_specifier): Set
2883         c_inhibit_evaluation_warnings rather than skip_evaluation.
2884         (c_parser_conditional_expression): Likewise.
2885         (c_parser_binary_expression): Likewise.
2886         (c_parser_sizeof_expression): Likewise.
2887         (c_parser_alignof_expression): Likewise.
2888         * c-typeck.c (build_indirect_ref): Check
2889         c_inhibit_evaluation_warnings rather than skip_evaluation.
2890         (build_conditional_expr, build_binary_op): Likewise.
2891
2892 2009-06-16  Richard Guenther  <rguenther@suse.de>
2893
2894         * tree-ssa-alias.c (is_escape_site): Remove.
2895         * tree-ssa-alias.h (enum escape_type): Remove.
2896         (is_escape_site): Likewise.
2897         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
2898         via casts and asms without deferring to is_escape_site.
2899
2900 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
2901
2902         PR middle-end/40446
2903         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
2904         use gen_lowpart if op0 has complex mode.
2905
2906 2009-06-16  Richard Guenther  <rguenther@suse.de>
2907
2908         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
2909         variables add them to ESCAPED.
2910         (find_func_aliases): Do not make all indirectly stored values escaped.
2911
2912 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
2913
2914         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
2915         make_decl_one_only.
2916
2917 2009-06-16  Martin Jambor  <mjambor@suse.cz>
2918
2919         PR tree-optimization/40432
2920         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
2921         check whether we need to force gimple register operand.
2922
2923 2009-06-16  Martin Jambor  <mjambor@suse.cz>
2924
2925         PR tree-optimization/40413
2926         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
2927         build_ref_for_offset.
2928         (propagate_subacesses_accross_link): Fix a typo in a comment.
2929
2930 2009-06-16  Ira Rosen  <irar@il.ibm.com>
2931
2932         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
2933         with additional parameter.
2934         * tree-vectorizer.h (enum vect_def_type): Add new value
2935         vect_nested_cycle.
2936         (enum vect_relevant): Add comments.
2937         (vect_is_simple_reduction): Add new argument.
2938         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
2939         Detect nested cycles.
2940         (vect_is_simple_reduction): Update documentation, add an argument to
2941         distinguish inner-loop reduction from nested cycle, detect nested
2942         cycles, fix printings and indentation, don't swap operands in case
2943         of nested cycle.
2944         (get_initial_def_for_reduction): Handle subtraction.
2945         (vect_create_epilog_for_reduction): Add new argument to specify
2946         reduction variable.
2947         (vect_finalize_reduction): Handle subtraction, fix comments.
2948         (vectorizable_reduction): Handle nested cycles. In case of nested
2949         cycle keep track of the reduction variable position. Call 
2950         vect_is_simple_reduction with additional parameter. Use original
2951         statement code in reduction epilogue for nested cycle. Call
2952         vect_create_epilog_for_reduction with additional parameter.
2953         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
2954         inner-loop vectorization.
2955         (vect_recog_widen_sum_pattern): Likewise.
2956         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
2957         and reductions.
2958         (vect_mark_stmts_to_be_vectorized): Likewise.
2959         (vect_get_vec_def_for_operand): Handle nested cycles.
2960
2961 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2962
2963         * doc/invoke.texi (Debugging Options): Fix option index entries
2964         for -fdump-statistics, -frandom-seed add entries for
2965         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
2966         (FRV Options): Fix entries for -mTLS, -mtls.
2967         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
2968         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
2969         (M68hc1x Options): Fix @itemx for -mnominmax.
2970         (MCore Options): Fix entry for -mno-lsim.
2971         (MMIX Options): Fix entry for -mabi=mmixware.
2972         (PDP-11 Options): Fix entry for -mbcopy-builtin.
2973
2974 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
2975
2976         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
2977         Mention the plugin mode of gengtype.
2978         * doc/gty.texi (Source Files Containing Type Information): Likewise.
2979         * gengtype.c: Updated copyright.
2980         (plugin_files, nb_plugin_files) Added new static variables.
2981         (measure_input_list) Care about plugin_files.
2982         (write_rtx_next): Added early return in plugin mode.
2983         (create_file): Updated copyright year in generated file. Added
2984         asserts.
2985         (oprintf): Added early return if NULL outf.
2986         (get_output_file_with_visibility): Care of plugin_files.
2987         (get_output_file_name): May return null.
2988         (write_local): Added early return.
2989         (put_mangled_filename): Ditto.
2990         (finish_root_table): Added check for base_files.
2991         (write_roots): Care about null when plugins.
2992         (main): Added plugin mode.
2993
2994 2009-06-15  Ian Lance Taylor  <iant@google.com>
2995
2996         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
2997         * gcov.c (read_count_file): Add braces around variables declared
2998         before label.
2999
3000         * c.opt (Wjump-misses-init): New warning.
3001         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
3002         -Wall and -Wc++-compat if not already set.
3003         (c_common_post_options): Clear warn_jump_misses_init if it was not
3004         set.
3005         * c-decl.c (struct c_binding): Change type field to a union with
3006         new label field.  Make it the first field in the struct.  Update
3007         references to type to use u.type instead.
3008         (struct c_spot_bindings): Define.
3009         (struct c_goto_bindings): Define.
3010         (c_goto_bindings_p): Define, along with VECs.
3011         (struct c_label_vars): Define.
3012         (struct c_scope): Add has_label_bindings field.
3013         (bind_label, set_spot_bindings): New static functions.
3014         (decl_jump_unsafe, update_spot_bindings): New static functions.
3015         (update_label_decls): New static function.
3016         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
3017         Update binding u.label field to shadowed field.
3018         (c_binding_start_stmt_expr): New function.
3019         (c_binding_end_stmt_expr): New function.
3020         (pushdecl): Don't call c_begin_vm_scope.
3021         (make_label): Add defining and p_label_vars parameters.  Change
3022         all callers.
3023         (lookup_label): Correct test for whether a label has not yet been
3024         defined.  Call bind_label rather than bind.
3025         (warn_about_goto): New static function.
3026         (lookup_label_for_goto): New function.
3027         (declare_label): Call bind_label rather than bind.
3028         (check_earlier_gotos): New static function.
3029         (define_label): Don't give errors about jumping into statement
3030         expressions or scopes of variably modified types.  Call
3031         set_spot_bindings and check_earlier_gotos.  Call bind_label
3032         instead of bind.  Don't set label_context_stack_se or
3033         label_context_stack_vm.
3034         (c_get_switch_bindings): New function.
3035         (c_release_switch_bindings): New function.
3036         (c_check_switch_jump_warnings): New function.
3037         (start_function): Don't set label_context_stack_se or
3038         label_context_stack_vm.
3039         (finish_function): Likewise.
3040         * c-typeck.c (label_context_stack_se): Don't define.
3041         (label_context_stack_vm): Don't define.
3042         (c_finish_goto_label): Call lookup_label_for_goto rather than
3043         lookup_label.  Don't give errors about jumping into a statement
3044         expression or the scope of a variably modified type.  Don't set
3045         label_context_stack_se or label_context_stack_vm.
3046         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
3047         fields.  Add bindings field.
3048         (c_start_case): Don't set deleted fields.  Set bindings field.
3049         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
3050         or blocked_vm.  Call c_check_switch_jump_warnings.
3051         (c_finish_case): Don't test blocked_stmt_expr field.  Call
3052         c_release_switch_bindings.
3053         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
3054         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
3055         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
3056         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
3057         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
3058         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
3059         (c_begin_vm_scope, c_end_vm_scope): Don't define.
3060         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
3061         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
3062         (C_DECL_UNJUMPABLE_VM): Don't define.
3063         (C_DECL_UNDEFINABLE_VM): Don't define.
3064         (struct c_label_list): Don't define.
3065         (struct c_label_context_se): Don't define.
3066         (struct c_label_context_vm): Don't define.
3067         (struct c_spot_bindings): Declare.
3068         (c_bindings_start_stmt_expr): Declare.
3069         (c_bindings_end_stmt_expr): Declare.
3070         (lookup_label_for_goto): Declare.
3071         (c_get_switch_bindings, c_release_switch_bindings): Declare.
3072         (c_check_switch_jump_warnings): Declare.
3073         (label_context_stack_se, label_context_stack_vm): Don't declare.
3074         (c_finish_goto_label): Update declaration.
3075         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
3076         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
3077         (Warning Options): Document -Wjump-misses-init.
3078
3079 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
3080
3081         * tree-object-size.c (addr_object_size): Fix a pasto in the last
3082         change.
3083
3084 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
3085
3086         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
3087
3088 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
3089
3090         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
3091
3092 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
3093
3094         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
3095
3096 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
3097
3098         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
3099         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
3100         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
3101         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
3102         * dwarf2asm.c (dw2_force_const_mem): Update call to
3103         make_decl_one_only.
3104         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
3105         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
3106         * langhooks.c (lhd_comdat_group): Remove.
3107         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
3108         * tree.h (DECL_COMDAT_GROUP): New.
3109         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
3110         (tree_decl_with_vis): Add comdat_group. Remove one_only.
3111         (make_decl_one_only): Change signature.
3112         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
3113         make_decl_one_only.
3114         (make_decl_one_only): Change signature.
3115         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
3116
3117 2009-06-15  Richard Guenther  <rguenther@suse.de>
3118
3119         PR middle-end/40439
3120         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
3121
3122 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3123
3124         * tree-ssa-math-opts.c: Remove extra divide.
3125
3126 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3127
3128         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
3129
3130 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3131
3132         * passes.c: Add bswap pass.
3133         * tree-pass.h: Add pass_optimize_bswap declaration.
3134         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
3135         Include rtl.h, expr.h and optabs.h for optab_handler check.
3136         (struct symbolic_number, pass_optimize_bswap): New definition.
3137         (do_shift_rotate, verify_symbolic_number_p): New functions.
3138         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
3139         (gate_optimize_bswap): New function.
3140         * tree.c (widest_int_cst_value): New function.
3141         * tree.h (widest_int_cst_value): Prototype added.
3142
3143 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
3144
3145         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
3146         REG_EQUAL/REG_EQUIV notes.
3147
3148 2009-06-14  Richard Guenther  <rguenther@suse.de>
3149
3150         PR middle-end/40389
3151         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
3152         has its address taken if NRV was applied and it is addressable.
3153         * tree-ssa-structalias.c (get_constraint_for_address_of): New
3154         function split out from ...
3155         (get_constraint_for_1): ... here.
3156         (handle_rhs_call): Use it to mark the return slot escaped if
3157         it is addressable and NRV was applied.
3158
3159 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
3160
3161         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
3162         Change first argument type to location_t.
3163         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
3164         Do not set input_location.
3165         Use loc instead of input_location throughout.
3166
3167 2009-06-13  Richard Guenther  <rguenther@suse.de>
3168
3169         PR tree-optimization/40421
3170         * tree-predcom.c (should_unroll_loop_p): Remove.
3171         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
3172
3173 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
3174
3175         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3176         Add location argument.
3177
3178 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
3179
3180         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
3181         build_decl.
3182         * config/s390/s390.c (s390_build_builtin_va_list): Same.
3183         (s390_gimplify_va_arg): Pass location to create_artificial_label.
3184         * config/spu/spu-protos.h: Add location to
3185         spu_resolve_overloaded_builtin.
3186         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
3187         spu_build_builtin_va_list.
3188         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
3189         argument.  Pass location to build_function_call_vec.
3190         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
3191         build_decl.
3192         (emit_fpu_switch): Same.
3193         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
3194         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
3195         to build_decl and create_artificial_label.
3196         (xtensa_gimplify_va_arg_expr): Same.
3197         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
3198         (xstormy16_gimplify_va_arg_expr): Same.
3199         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
3200         * config/arm/arm.c (arm_build_builtin_va_list): Same.
3201         * config/mips/mips.c (mips_build_builtin_va_list): Same.
3202         (mips16_build_function_stub): Same.
3203         (mips16_build_call_stub): Same.
3204
3205 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
3206
3207         PR target/40327
3208         * arm/constraints.md (Pa, Pb): New constraints.
3209         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
3210         split pattern to deal with them.
3211
3212 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
3213
3214         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
3215         fix index entry for -Xpreprocessor.
3216
3217 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
3218
3219         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3220         Add location argument to build_decl call.
3221         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
3222         (rs6000_init_builtins): Same.
3223         (spe_init_builtins): Same.
3224         (rs6000_gimplify_va_arg): Add location argument to
3225         create_artificial_label call.
3226
3227 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
3228
3229         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
3230         * combine-stack-adj.c (pass_stack_adjustments): Use it.
3231         * Makefile.in: Fix GGC dependency for gcse.o.
3232
3233 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
3234
3235         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
3236         * gimple-pretty-print.c (dump_gimple_stmt): Same.
3237         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
3238         created.
3239         * c-parser.c (c_parser_binary_expression): Use current column while
3240         building binary operations.
3241         * common.opt (fshow-column): Enable by default.
3242         * tree-vrp.c (check_array_ref): Use warning_at.
3243         (check_array_bounds): Use location from call back if expr has no
3244         location.
3245         * tree.h: Add location argument to maybe_fold_*.
3246         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
3247         (maybe_fold_offset_to_array_ref): Add location argument and use it.
3248         (maybe_fold_offset_to_component_ref): Same.
3249         (maybe_fold_offset_to_reference): Same.
3250         (maybe_fold_offset_to_address): Same.
3251         (maybe_fold_stmt_indirect): Same.
3252         (maybe_fold_stmt_addition): Same.
3253         (fold_stmt_r): Pass location to maybe_fold_*.
3254         (fold_gimple_assign): Same.
3255         * c-tree.h: Add location argument to finish_decl,
3256         default_function_array_conversion, store_init_value.
3257         * c-decl.c (define_label): Use error_at.
3258         (c_make_fname_decl): Pass location to finish_decl.
3259         (finish_decl): New location argument.
3260         (build_compound_literal): Pass location to store_init_value.
3261         (grokdeclarator): Pass location to finish_decl.
3262         (grokfield): Same.
3263         * c-typeck.c (array_to_pointer_conversion): New location argument.
3264         (function_to_pointer_conversion): Same.
3265         (default_function_array_conversion): Same.
3266         (parser_build_unary_op): Pass location to overflow_warning.
3267         (parser_build_binary_op): Same.  Use warning_at.
3268         (build_unary_op): Pass location to array_to_pointer_conversion.
3269         (build_c_cast): Pass location to digest_init.
3270         (build_modify_expr): New location argument.
3271         (convert_for_assignment): Same.
3272         (store_init_value): Same.
3273         (digest_init): Same.
3274         (output_init_element): Pass location to digest_init and
3275         array_to_pointer_conversion.
3276         (c_finish_return): Pass location to convert_for_assignment.
3277         * gimplify.c (gimplify_conversion): Pass location to
3278         maybe_fold_offset_to_address.
3279         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
3280         to maybe_fold_stmt_addition.
3281         * c-omp.c (c_finish_omp_atomic): Pass new location to
3282         build_modify_expr.
3283         (c_finish_omp_for): Same.
3284         * c-common.c (overflow_warning): New argument.
3285         * c-common.h: New argument to build_modify_expr, overflow_warning.
3286         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
3287         finish_decl.
3288         (c_parser_initializer): Pass location to
3289         default_function_array_conversion.
3290         (c_parser_initelt): Same.
3291         (c_parser_initval): Same.
3292         (c_parser_asm_operands): Same.
3293         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
3294         (c_parser_conditional_expression): Same.
3295         (c_parser_binary_expression): Add location info to stack.  Use it.
3296         (c_parser_unary_expression): Pass location to
3297         default_function_array_conversion, parser_build_unary_op,
3298         build_indirect_ref, c_parser_postfix_expression_after_primary.
3299         (c_parser_postfix_expression_after_primary): New location argument.
3300         Use it.
3301         (c_parser_expression_conv): Pass location to
3302         default_function_array_conversion.
3303         (c_parser_expr_list): Same.
3304         (c_parser_omp_atomic): Same.
3305         (c_parser_omp_for_loop): Same.
3306         * c-tree.h: (struct c_declarator): Add comment to id_loc.
3307         (build_array_declarator): New argument.
3308         * c-decl.c (build_array_declarator): Add location argument.
3309         (grokdeclarator): Set id_loc for cdk_array.
3310         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
3311         build_array_declarator.
3312         * tree.c (build_omp_clause): Add location argument.
3313         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
3314         (OMP_CLAUSE_LOCATION): New macro.
3315         (struct tree_omp_clause): Add location field.
3316         (build_omp_clause): Add argument.
3317         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
3318         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
3319         build_omp_clause.
3320         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
3321         (cp_parser_omp_clause_collapse): Same.
3322         (cp_parser_omp_clause_default): Same.
3323         (cp_parser_omp_clause_if): Same.
3324         (cp_parser_omp_clause_nowait): Same.
3325         (cp_parser_omp_clause_num_threads): Same.
3326         (cp_parser_omp_clause_ordered): Same.
3327         (cp_parser_omp_clause_schedule): Same.
3328         (cp_parser_omp_clause_untied): Same.
3329         (cp_parser_omp_for_loop): Same.
3330         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
3331         * c-tree.h (c_start_case): Add location argument.
3332         (c_process_expr_stmt): Same.
3333         (c_finish_goto_*): Same.
3334         * tree-parloops.c (initialize_reductions): Pass location to
3335         build_omp_clause.
3336         (create_parallel_loop): Same.
3337         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
3338         (gfc_trans_omp_reduction_list): Same.
3339         (gfc_trans_omp_clauses): Same.
3340         (gfc_trans_omp_do): Same.
3341         * c-typeck.c (c_finish_goto_label): Same.
3342         (c_finish_goto_ptr): New location argument.
3343         (c_start_case): Same.
3344         (emit_side_effect_warnings): Same.
3345         (c_process_expr_stmt): Same.
3346         (c_finish_stmt_expr): Same.
3347         (c_finish_omp_clauses): Use error_at instead of error.
3348         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
3349         build_omp_clause.
3350         * c-omp.c (c_split_parallel_clauses): New location argument.
3351         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
3352         to build_omp_clause.
3353         (convert_local_reference_stmt): Same.
3354         (convert_gimple_call): Same.
3355         * c-common.h (c_split_parallel_clauses): New argument.
3356         * c-parser.c (c_parser_statement_after_labels): Pass location to
3357         c_finish_goto_label.
3358         (c_parser_switch_statement): Pass location to c_start_case.
3359         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
3360         and c_process_expr_stmt.
3361         (c_parser_omp_variable_list): Add location argument.
3362         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
3363         (c_parser_omp_clause_default): Same.
3364         (c_parser_omp_clause_if): Same.
3365         (c_parser_omp_clause_num_threads): Same.
3366         (-c_parser_omp_clause_ordered): Same.
3367         (c_parser_omp_clause_reduction): Pass location to
3368         c_parser_omp_variable_list.
3369         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
3370         (c_parser_omp_clause_untied): Same.
3371         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
3372         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
3373
3374         * c-tree.h (check_for_loop_decls, undeclared_variable,
3375         build_component_ref, build_array_ref, build_external_ref,
3376         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
3377         build_conditional_expr, build_compound_expr, c_cast_expr,
3378         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
3379         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
3380         argument.
3381         * c-semantics.c (build_stmt): Same.
3382         (build_case_label): Same.
3383         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
3384         (undeclared_variable): New argument.
3385         (make_label): Same.
3386         (lookup_label): Pass location on down.
3387         (define_label): Same.
3388         (finish_decl): Same.
3389         (build_compound_literal): Same.
3390         (finish_struct): Same.
3391         (finish_function): Do not set location here.
3392         (check_for_loop_decls): New argument.
3393         * tree.c (save_expr): Set location.
3394         (build_empty_stmt): New argument.
3395         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
3396         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
3397         * builtins.c (gimplify_va_arg_expr): Use locations.
3398         (expand_builtin_sync_operation): Same.
3399         * c-typeck.c (build_component_ref): New argument.
3400         (build_array_ref): Same.
3401         (build_external_ref): Same.
3402         (c_expr_sizeof_expr): Same.
3403         (c_expr_sizeof_type): Same.
3404         (parser_build_unary_op): Same.
3405         (build_conditional_expr): Same.
3406         (build_compound_expr): Pass location on down.
3407         (build_compound_expr): New argument.
3408         (build_c_cast): Same.
3409         (c_cast_expr): Same.
3410         (build_asm_expr): Same.
3411         (c_finish_return): Same.
3412         (c_process_expr_stmt): Pass location on down.
3413         (c_finish_stmt_expr): New argument.
3414         (push_clenaup): Same.
3415         (c_finish_omp_parallel): Same.
3416         (c_finish_omp_task): Same.
3417         * gimplify.c (gimplify_call_expr): Pass location on down.
3418         * c-omp.c (c_finish_omp_master): New argument.
3419         (c_finish_omp_critical): Same.
3420         (c_finish_omp_ordered): Same.
3421         (c_finish_omp_barrier): Same.
3422         (-c_finish_omp_taskwait): Same.
3423         (c_finish_omp_atomic): Same.
3424         (c_finish_omp_flush): Same.
3425         * tree-inline.c (copy_tree_body_r): Pass location on down.
3426         (inline_forbidden_p): Remove use of input_location.
3427         * c-gimplify.c (c_build_bind_expr): New argument.
3428         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
3429         (c_sizeof_or_alignof_type): New argument.
3430         (c_alignof_expr): Same.
3431         (build_va_arg): Same.
3432         (c_add_case_label): Same.
3433         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
3434         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
3435         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
3436         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
3437         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
3438         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
3439         New argument.
3440         * stub-objc.c (objc_build_selector_expr): Same.
3441         (objc_build_throw_stmt): Same.
3442         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
3443         (c_parser_initelt): Same.
3444         (c_parser_compound_statement): Same.
3445         (c_parser_compound_statement_nostart): Same.
3446         (c_parser_label): Same.
3447         (c_parser_statement_after_labels): Same.
3448         (c_parser_if_body): Same.
3449         (c_parser_else_body): Same.
3450         (c_parser_if_statement): Same.
3451         (c_parser_switch_statement): Same.
3452         (c_parser_while_statement): Same.
3453         (c_parser_do_statement): Same.
3454         (c_parser_for_statement): Same.
3455         (c_parser_asm_statement): Same.
3456         (c_parser_conditional_expression): Same.
3457         (c_parser_binary_expression): Same.
3458         (c_parser_cast_expression): Same.
3459         (c_parser_unary_expression): Same.
3460         (c_parser_sizeof_expression): Same.
3461         (c_parser_alignof_expression): Same.
3462         (c_parser_postfix_expression): Same.
3463         (c_parser_expression): Same.
3464         (c_parser_objc_receiver): Same.
3465         (c_parser_omp_variable_list): Same.
3466         (c_parser_omp_structured_block): Same.
3467         (c_parser_omp_atomic): New argument.
3468         (c_parser_omp_barrier): Same.
3469         (c_parser_omp_critical): Same.
3470         (c_parser_omp_flush): Pass location on down.
3471         (c_parser_omp_for_loop): New argument.
3472         (c_parser_omp_for): Same.
3473         (c_parser_omp_master): Same.
3474         (c_parser_omp_ordered): Same.
3475         (c_parser_omp_sections_scope): Same.
3476         (c_parser_omp_sections): Same.
3477         (c_parser_omp_parallel): Same.
3478         (c_parser_omp_single): Same.
3479         (c_parser_omp_task): Same.
3480         (c_parser_omp_taskwait): Pass location on down.
3481         (c_parser_omp_construct): Same.
3482         (c_parser_omp_threadprivate): Same.
3483         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
3484         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
3485         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
3486         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
3487         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
3488         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
3489         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
3490         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
3491         config/i386/i386.c, stmt.c:
3492         Add location argument to the following function definitions and/or
3493         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
3494         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
3495         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
3496         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
3497         do_case, c_finish_bc_stmt, build_compound_literal,
3498         build_function_call.
3499         * c-decl.c (build_compound_literal): Add location argument.
3500         Make all diagnostic calls use location.
3501         (start_struct): Same.
3502         (finish_struct): Same.
3503         (start_enum): Same.
3504         (build_enumerator): Same.
3505         (start_function): Same.
3506         (grokdeclarator): Make all diagnostic calls use location.
3507         (store_parm_decls_oldstyle): Same.
3508         * c-typeck.c (build_function_call): Add location argument.
3509         Make all diagnostic calls use location.
3510         (do_case): Same.
3511         (c_finish_bc_stmt): Same.
3512         * tree-nested.c (get_trampoline_type): Add argument.
3513         Pass location to build_decl.
3514         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
3515         * rtl.h (RTL_LOCATION): New.
3516         * c-common.c (c_add_case_label): Add location argument.
3517         Make all diagnostic calls use location.
3518         * c-common.h: Add location argument to make_fname_decl, do_case,
3519         c_add_case_label, build_function_call, resolve_overloaded_builtin.
3520         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
3521         Set it appropriately for every case.  Pass enum_loc to start_enum
3522         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
3523         parser_xref_tag.
3524         (c_parser_struct_or_union_specifier): Save location.  Use it for
3525         start_struct, finish_struct, and parser_xref_tag.
3526
3527 2009-06-12  Ian Lance Taylor  <iant@google.com>
3528
3529         * fold-const.c (fold_unary): Rename local variable and to and_expr.
3530
3531         * c-opts.c (c_common_handle_option): For -Wc++-compat set
3532         cpp_opts->warn_cxx_operator_names.
3533
3534 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3535
3536         PR tree-opt/38865
3537         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
3538         is returns NULL and OP is a VCE, look through the VCE.
3539
3540 2009-06-12  Ian Lance Taylor  <iant@google.com>
3541
3542         PR bootstrap/40430
3543         * collect2.c (main): Use CONST_CAST2 in code inside #if
3544         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
3545
3546 2009-06-12  Joey Ye  <joey.ye@intel.com>
3547
3548         PR middle-end/39146
3549         * cfgexpand.c (get_decl_align_unit): Update
3550         max_used_stack_slot_alignment with align instead of
3551         stack_alignment_needed.
3552
3553         * function.c (assign_stack_local_1): Update
3554         max_used_stack_slot_alignment with alignment_in_bits instead
3555         of stack_alignment_needed.
3556         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
3557         here.
3558
3559 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
3560
3561         * dwarf2out.c (last_var_location_insn): New variable.
3562         (dwarf2out_end_epilogue): Clear last_var_location_insn.
3563         (dwarf2out_var_location): Don't record anything after last real
3564         insn.  Only change labels if there were any real instructions
3565         in between last note and this one, or if changed sections.
3566
3567 2009-06-11  Richard Henderson  <rth@redhat.com>
3568
3569         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
3570         note when storing the frame pointer in a register.
3571         (FRP): Don't redefine to nothing for epilogue.
3572         (alpha_expand_epilogue): Mark register and sp restores.
3573         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
3574
3575         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
3576         when gen_lowpart is needed.
3577
3578 2009-06-11  Richard Henderson  <rth@redhat.com>
3579
3580         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
3581
3582         * dwarf2out.c (need_data_align_sf_opcode): New.
3583         (div_data_align): Move earlier.
3584         (def_cfa_1, reg_save): Use it.
3585
3586 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
3587
3588         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
3589         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
3590         (ix86_handle_option): Handle OPT_mcrc32.
3591         (ix86_target_string): Add -mcrc32.
3592         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
3593
3594         * config/i386/i386.h (TARGET_CRC32): New.
3595
3596         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
3597         (sse4_2_crc32di): Likewise.
3598
3599         * config/i386/i386.opt (mcrc32): New.
3600
3601         * doc/invoke.texi: Document -mcrc32.
3602
3603 2009-06-11  Richard Henderson  <rth@redhat.com>
3604
3605         * common.opt (gdwarf-): Accept a version number.
3606         * doc/invoke.texi (gdwarf-): Update docs.
3607         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
3608         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
3609         version level, and record it.
3610
3611         * dwarf2.h (DW_CIE_VERSION): Remove.
3612         * dwarf2out.c (DWARF_VERSION): Remove.
3613         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
3614         (output_call_frame_info): Use CIE version 3 for dwarf3,
3615         or if the return register column is out of range for version 1.
3616         (dwarf_stack_op_name): Add all dwarf3 values.
3617         (DEBUG_PUBTYPES_SECTION): New.
3618         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
3619         encoding change for dwarf3.
3620         (output_die) [dw_val_class_die_ref]: Likewise.
3621         (output_compilation_unit_header): Emit correct version for dwarf3.
3622         (output_line_info): Likewise.
3623         (output_pubnames): Update for DWARF_VERSION removal.
3624         (output_aranges): Likewise.
3625         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
3626         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
3627         (dwarf2out_finish): Likewise.
3628
3629 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
3630
3631         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
3632         in r148403.
3633
3634 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
3635
3636         PR c/39252
3637         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
3638         * builtins.c (expand_builtin_unreachable): New function.
3639         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
3640         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
3641         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
3642         successors.
3643         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
3644         searching for missing barriers.
3645
3646 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3647
3648         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
3649         when -fprofile-generate* was passed.
3650         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
3651
3652 2009-06-11  Anthony Green  <green@moxielogic.com>
3653
3654         * config/moxie/moxie.md: Define length attribute for all instructions.
3655         (rCC): Define.
3656         (*b<cond:code>): Support limited branch ranges for new PC-relative
3657         branch instructions.
3658         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
3659
3660 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
3661
3662         * config/i386/i386.c (min_insn_size): Use get_attr_length
3663         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
3664         For __asm return 0.
3665
3666         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
3667         instead of emit_insn_before.
3668
3669 2009-06-10  Ian Lance Taylor  <iant@google.com>
3670
3671         PR bootstrap/40408
3672         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
3673         GIMPLE_SWITCH.
3674
3675 2009-06-10  Revital Eres  <eres@il.ibm.com>
3676
3677         * passes.c (init_optimization_passes): Reschedule
3678         predictive-commoning pass before complete unroll pass.
3679
3680 2009-06-10  Martin Jambor  <mjambor@suse.cz>
3681
3682         * cgraph.c (cgraph_node_can_be_local_p): New function.
3683         (cgraph_make_node_local): New function.
3684         * cgraph.h (cgraph_node_can_be_local_p): Declare.
3685         (cgraph_make_node_local): Declare.
3686
3687 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
3688
3689         * tree.h (tree_base): Add packed_flag and user_align fields.
3690         Decrease size of spare field.
3691         (TYPE_USER_ALIGN): Use user_align from tree_base.
3692         (DECL_USER_ALIGN): Likewise.
3693         (TYPE_PACKED): Use packed_flag from tree_base.
3694         (DECL_PACKED): Likewise.
3695         (tree_type): Delete packed_flag and user_align fields.  Widen
3696         precision field.  Widen mode field and shuffle fields to align
3697         mode on an 8-bit boundary.
3698         (tree_decl_common): Delete decl_flag_1 and user_align fields.
3699         Renumber decl_flag_* fields.  Fix comments.  Widen
3700         decl_common_unused field.
3701         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
3702         (DECL_EXTERNAL): Likewise.
3703         (DECL_BIT_FIELD): Likewise.
3704         (DECL_NONADDRESSABLE_P): Likewise.
3705         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
3706         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
3707
3708 2009-06-10  Ian Lance Taylor  <iant@google.com>
3709
3710         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
3711         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
3712         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
3713         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
3714         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
3715         DEF_VEC_ALLOC_FUNC_P.
3716         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
3717         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
3718         DEF_VEC_ALLOC_FUNC_O.
3719         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
3720         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
3721         DEF_VEC_ALLOC_FUNC_I.
3722         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
3723         (vec_stack_p_reserve_exact_1): Declare.
3724         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
3725         (vec_stack_free): Declare.
3726         (VEC_stack_alloc): Define.
3727         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
3728         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
3729         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
3730         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
3731         for void_p.
3732         (stack_vecs): New static variable.
3733         (vec_stack_p_reserve_exact_1): New function.
3734         (vec_stack_o_reserve_1): New static function.
3735         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
3736         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
3737         (vec_stack_free): New function.
3738         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
3739         (VEC_df_ref_stack_alloc): Define.
3740         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
3741         DEF_VEC_ALLOC_P_STACK.
3742         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
3743         (struct df_collection_rec): Change _vec fields to VEC.  Remove
3744         _use fields.
3745         (df_free_collection_rec): Adjust for new fields.
3746         (df_insn_rescan): Use new df_collection_rec fields.
3747         (df_notes_rescan, df_canonize_collection_rec): Likewise.
3748         (df_ref_create_structure, df_ref_record): Likewise.
3749         (df_get_conditional_uses, df_get_call_refs): Likewise.
3750         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
3751         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
3752         (df_record_exit_block_uses, df_bb_verify): Likewise.
3753         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
3754         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
3755         Remove count parameter.  Change return type to void.  Change all
3756         callers.
3757         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
3758         Remove count parameter.  Change return type to void.  Change all
3759         callers.
3760         (df_install_refs): Change old_vec parameter to VEC.  Remove count
3761         parameter.  Change all callers.
3762         (df_install_mws): Change old_vec parameter to VEC.  Remove count
3763         parameter.  Change all callers.
3764         (df_refs_verify): Change new_rec parameter to VEC.  Change call
3765         callers.
3766         (df_mws_verify): Likewise.
3767
3768 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
3769
3770         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
3771
3772 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
3773
3774         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
3775
3776 2009-06-10  Anthony Green  <green@moxielogic.com>
3777
3778         * config/moxie/crti.asm: New file.
3779         * config/moxie/crtn.asm: New file.
3780         * config/moxie/moxie.c: New file.
3781         * config/moxie/moxie.h: New file.
3782         * config/moxie/sfp-machine.h: New file.
3783         * config/moxie/moxie-protos.h: New file.
3784         * config/moxie/t-moxie: Created.
3785         * config/moxie/t-moxie-softfp: Created.
3786         * config/moxie/moxie.md: Created.
3787         * config/moxie/constraints.md: Created.
3788         * config.gcc: Add moxie support.
3789         * doc/md.texi (Machine Constraints): Add moxie constraints.
3790         * doc/contrib.texi (Contributors): Mention moxie port.
3791         * doc/install.texi (Specific): Mention the moxie port.
3792
3793 2009-06-09  Ian Lance Taylor  <iant@google.com>
3794
3795         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
3796         compiling with C++.
3797         * optabs.c (optab_table): Only use designated initializers if
3798         HAVE_DESIGNATED_INITIALIZERS is defined.
3799         (convert_optab_table): Likewise.
3800         (init_optabs): Always call init_insn_codes if
3801         HAVE_DESIGNATED_INITIALIZERS is not defined.
3802
3803 2009-06-09  Ian Lance Taylor  <iant@google.com>
3804
3805         * targhooks.c (default_builtin_vectorized_function): Change fn
3806         parameter to unsigned int.
3807         (default_builtin_vectorized_conversion): Change code parameter to
3808         unsigned int.
3809         (default_builtin_reciprocal): Change fn parameter to unsigned int.
3810         * targhooks.h: Update declarations.
3811         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
3812         parameter to unsigned int.
3813
3814         * c-typeck.c (comptypes_check_enum_int): New static function.
3815         (comptypes_internal): Add enum_and_int_p parameter.  Change all
3816         callers.
3817         (comp_target_types): Add location parameter.  Change all callers.
3818         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
3819         Change all callers.
3820         (function_types_compatible_p, type_lists_compatible_p): Likewise.
3821         (build_conditional_expr): Add colon_loc parameter.  Change all
3822         callers.
3823         (convert_for_assignment): Add location parameter.  Change all callers.
3824         * c-parser.c (c_parser_conditional_expression): Pass location of
3825         colon to build_conditional_expr.
3826         * c-tree.h (build_conditional_expr): Update declaration.
3827
3828 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
3829
3830         * graphite.c: Revert previous patch.
3831
3832 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
3833
3834         PR bootstrap/40103
3835         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
3836
3837 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
3838
3839         * tree-ssa-loop-prefetch.c
3840         (loop_prefetch_arrays): Fixed a portability problem in printf format
3841         string.
3842
3843 2009-06-09  Martin Jambor  <mjambor@suse.cz>
3844
3845         PR tree-optimization/40351
3846         * tree-sra.c (propagate_subacesses_accross_link): Check that a
3847         refrence to a potential artifical subaccess can be constructed.
3848
3849 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
3850
3851         * config/sh/sh-protos.h (sh_optimization_options): Declare.
3852         (sh_override_options): Likewise.
3853         * config/sh/sh.c: Include params.h.
3854         (sh_optimization_options): New.
3855         (sh_override_options): Likewise.
3856         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
3857         (OVERRIDE_OPTIONS): Use sh_override_options.
3858
3859 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
3860
3861         * dwarf2out.c (emit_cfa_remember): New variable.
3862         (add_fde_cfi): If emit_cfa_remember, recurse to add
3863         DW_CFA_remember_state first.
3864         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
3865         instead just set emit_cfa_remember.
3866
3867 2009-06-08  Jan Hubicka  <jh@suse.cz>
3868
3869         PR debug/40126
3870         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
3871
3872 2009-06-08  Jan Hubicka  <jh@suse.cz>
3873
3874         PR middle-end/39834
3875         * cgraphunit.c (save_inline_function_body): Do not copy transform
3876         hooks for saved inline bodies.
3877         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
3878         for given function.
3879
3880 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
3881
3882         * jump.c (returnjump_p): Handle delayed branches.  Add missing
3883         function comment.
3884
3885 2009-06-08  Jan Hubicka  <jh@suse.cz>
3886
3887         PR middle-end/40102
3888         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
3889         original node might've been modified.
3890         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
3891
3892 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
3893
3894         * tree-object-size.c (addr_object_size): Add OSI argument.
3895         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
3896         (compute_builtin_object_size, expr_object_size): Adjust callers.
3897         (plus_stmt_object_size): Call addr_object_size instead of
3898         compute_builtin_object_size.
3899
3900 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
3901             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3902         
3903         * tree-ssa-loop-prefetch.c 
3904         (gather_memory_references): Introduced a counter for the number of 
3905         memory references.
3906         (anything_to_prefetch_p): Introduced a counter for the number of 
3907         prefetches.
3908         (is_loop_prefetching_profitable): New function with a cost model 
3909         for prefetching.
3910         (loop_prefetch_arrays): Use the new cost model to determine if 
3911         prefetching is profitable.
3912         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
3913         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
3914         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
3915         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
3916         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
3917         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
3918         
3919 2009-06-08  Michael Matz  <matz@suse.de>
3920
3921         PR debug/40012
3922         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
3923         partitions use the same.
3924         (expand_one_var): Deal with DECL_RTL sometimes begin set also
3925         for basevars of SSA_NAMEs.
3926         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
3927         to not expand them twice.
3928         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
3929         multiple places.
3930
3931 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
3932
3933         * common.opt (fcompare-debug=, fcompare-debug-second): New.
3934         (fdump-final-insns=, gtoggle): New.
3935         * doc/invoke.texi: Document them.
3936         * final.c (rest_of_clean_state): Dump final insn stream.
3937         * gcc.c (invoke_as): Hook in -fcompare-debug.
3938         (static_spec_functions): Add compare-debug-dump-opt,
3939         compare-debug-self-opt and compare-debug-auxbase-opt.
3940         (compare_debug, compare_debug_second, compare_debug_opt): New.
3941         (switches_debug_check, n_switches_debug_check): New.
3942         (debug_auxbase_opt, debug_check_temp_file): New.
3943         (process_command): Handle -fno-compare-debug, -fcompare-debug and
3944         -fcompare-debug=*.
3945         (do_self_spec): Handle arguments after switches.
3946         (do_spec_1): Add .gk extension to temp file basenames for compare.
3947         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
3948         (cc1_options): Use it instead of normal auxbase computation for
3949         the second compare-debug compilation.
3950         (compare_files): New.
3951         (main): Set up and implement compare debug mode.
3952         (compare_debug_dump_opt_spec_function): New.
3953         (compare_debug_self_opt_spec_function): New.
3954         (compare_debug_auxbase_opt_spec_function): New.
3955         * toplev.c (process_options): Handle flag_gtoggle,
3956         flag_dump_final_insns.
3957         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
3958         during -fcompare-debug-second compilation.
3959
3960 2009-06-07  Ian Lance Taylor  <iant@google.com>
3961
3962         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
3963         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
3964
3965         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
3966         with no default node.  Change warning with %H to warning_at.
3967         Don't clear warn_switch around case checking.
3968         * doc/invoke.texi (Warning Options): Clarify distinction between
3969         -Wswitch and -Wswitch-enum.
3970
3971 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3972
3973         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
3974
3975 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3976
3977         * gbl-ctors.h: Add header guard.
3978
3979 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3980
3981         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
3982         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
3983         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
3984         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
3985         prototypes for removed functions.
3986         (expressions_equal_p): Move to ...
3987         * tree-ssa-sccvn.h: ... here and ...
3988         * matrix-reorg.c: ... adjust includes.
3989
3990 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3991
3992         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
3993
3994 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3995
3996         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
3997         (finish_function): Remove erroneous whitespace.
3998
3999 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4000
4001         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
4002         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
4003
4004 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4005
4006         * errors.c (internal_error): Commentary typo fix.
4007         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
4008         * tree-ssa-pre.c: Ditto.
4009
4010 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4011
4012         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
4013         them is supposed to hold actual statements.
4014
4015 2009-06-06  Ian Lance Taylor  <iant@google.com>
4016
4017         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
4018         empty statements can now have attributes.
4019
4020 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
4021
4022         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
4023         * config/mips/mips.md: Ditto.
4024
4025 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
4026
4027         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
4028         _RELOCATABLE.
4029         (__eabi_uconvert): Likewise.
4030
4031 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
4032
4033         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
4034         CFI_* definitions with IN_GCC.
4035
4036 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
4037
4038         * xcoffout.h (xcoffout_source_line): Update prototype.
4039
4040 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4041
4042         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
4043         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
4044
4045 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
4046
4047         PR middle-end/40340
4048         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
4049         inlined_function_outer_scope_p blocks for artificial inlines
4050         even at -g0/-g1.
4051         * tree.c (tree_nonartificial_location): Rewrite using
4052         block_nonartificial_location.
4053
4054 2009-06-05  Revital Eres  <eres@il.ibm.com>
4055             Leehod Baruch  <leehod@il.ibm.com>
4056
4057         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
4058         (expand_expr_real_1): Remove comment.
4059         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4060         Vectorize misaligned access when the target supports it.
4061         (vect_supportable_dr_alignment): Check for unaligned access support.
4062         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
4063         and remove asset.
4064
4065 2009-06-05  Julian Brown  <julian@codesourcery.com>
4066
4067         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
4068         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
4069
4070 2009-06-05  Richard Guenther  <rguenther@suse.de>
4071
4072         PR bootstrap/40350
4073         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
4074         as possibly unused.
4075
4076 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
4077
4078         * config/s390/s390.c (global_not_special_regno_p): New static inline.
4079         (save_gprs): Don't tell unwinder when a global register is saved.
4080         (s390_emit_epilogue): Emit needed epilogue unwind info.
4081
4082 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
4083
4084         * dwarf2out.c (deferred_asm_name): New.
4085         (add_name_and_src_coords_attributes): Defer creation of
4086         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
4087         computed yet.
4088         (move_linkage_attr): New.
4089         (dwarf2out_finish): Revisit deferrals and emit attributes at the
4090         right place.
4091
4092 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
4093
4094         * tree-nested.c (finalize_nesting_tree_1): Declare the
4095         frame_decl in the binding tree.
4096
4097 2009-06-04  Cary Coutant  <ccoutant@google.com>
4098
4099         * basic-block.h (struct basic_block_def): Add discriminator field.
4100         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
4101         callers.
4102         * debug.c (do_nothing_debug_hooks): Add additional entry.
4103         (debug_nothing_int_charstar_int): New function.
4104         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
4105         (debug_nothing_int_charstar_int): New declaration.
4106         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
4107         discriminator value in .loc directive.
4108         * final.c (last_discriminator): New variable.
4109         (discriminator): New variable.
4110         (final_start_function): Initialize above variables, pass current
4111         discriminator to debug hook.
4112         (notice_source_line): Check for discriminator change.
4113         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
4114         * sdbout.c (sdbout_source_line): New parameter.
4115         * tree-cfg.c (struct locus_discrim_map): New structure type.
4116         (discriminator_per_locus): New hash table.
4117         (build_gimple_cfg): Allocate and free discriminator hash table.
4118         (make_edges): Call assign_discriminator.
4119         (locus_map_hash): New function.
4120         (locus_map_eq): New function.
4121         (next_discriminator_for_locus): New function.
4122         (same_line_p): New function.
4123         (assign_discriminator): New function.
4124         (make_cond_expr_edges): Call assign_discriminator.
4125         (make_gimple_switch_edges): Likewise.
4126         (first_non_label_stmt): New function.
4127         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
4128         all callers.
4129         * xcoffout.c (xcoffout_source_line): Add new parameter.
4130
4131         * configure.ac (gcc_cv_as_discriminator): New configury check for
4132         gas support for discriminator.
4133         * configure: Regenerate.
4134         * config.in: Regenerate.
4135
4136 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4137
4138         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
4139         val after checking for integers.
4140
4141 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
4142
4143         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
4144         X64_REGPARM_MAX.
4145         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
4146         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
4147         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
4148         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
4149         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
4150         X64_SSE_REGPARM_MAX.
4151         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
4152         X64_SSE_REGPARM_MAX.
4153
4154 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
4155
4156         * gcc.c (report_times_to_file): New.
4157         (execute): Implement it.
4158         (process_command): Support -time=.
4159         * doc/invoke.texi: Document it.
4160
4161 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
4162
4163         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
4164         that have value exprs.
4165
4166 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
4167
4168         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
4169         declarations for constants until...
4170         (dw2_output_indirect_constant_1): ... this point.
4171
4172 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
4173
4174         PR target/10242
4175         * arm.md (arm_addsi3): Don't try to split an add with an
4176         eliminable register until after reload has completed.
4177
4178 2009-06-03  Ian Lance Taylor  <iant@google.com>
4179
4180         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
4181         * genattrtab.c (write_length_unit_log): Likewise.
4182         * genchecksum.c (dosum): Likewise.
4183         * gengtype.c (write_rtx_next): Likewise.
4184         (finish_root_table, write_roots): Likewise.
4185         * gimple.c (gimple_ops_offset_): Likewise.
4186         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
4187         * config/arc/arc.c (arc_attribute_table): Likewise.
4188         * config/arm/arm.c (arm_attribute_table): Likewise.
4189         * config/avr/avr.c (avr_attribute_table): Likewise.
4190         * config/crx/crx.c (crx_attribute_table): Likewise.
4191         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
4192         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
4193         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
4194         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
4195         * config/sh/sh.c (sh_attribute_table): Likewise.
4196         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
4197         * config/spu/spu.c (spu_attribute_table): Likewise.
4198         * config/v850/v850.c (v850_attribute_table): Likewise.
4199
4200         * config/alpha/alpha.c (vms_attribute_table): Make static.
4201         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
4202         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
4203         * config/mips/mips.c (mips_attribute_table): Likewise.
4204
4205         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
4206         $(SYSTEM_H).
4207         (cc1-checksum.o): Likewise.
4208
4209 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
4210
4211         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
4212
4213 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
4214
4215         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
4216         insn if it is changing sp.  Use gen_add3_insn instead of
4217         conditionally gen_addsi3 and gen_adddi3.
4218         (offset_below_red_zone_p): New static inline function.
4219         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
4220         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
4221         * config/rs6000/ppc-asm.h: Include auto-host.h.
4222         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
4223         CFI_RESTORE): Define.
4224         * config/rs6000/crtresxgpr.asm: Add unwind info.
4225         * config/rs6000/crtresxfpr.asm: Likewise.
4226         * config/rs6000/crtresgpr.asm: Likewise.
4227         * config/rs6000/crtresfpr.asm: Likewise.
4228         * config/rs6000/crtsavgpr.asm: Likewise.
4229         * config/rs6000/crtsavfpr.asm: Likewise.
4230
4231         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
4232         argument of DWARF2_FRAME_REG_OUT macros.
4233
4234 2009-06-03  Julian Brown  <julian@codesourcery.com>
4235
4236         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
4237         words or less (including TImode) in core registers.
4238
4239 2009-06-03  Richard Guenther  <rguenther@suse.de>
4240
4241         PR middle-end/40328
4242         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
4243
4244 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
4245
4246         * statistics.c (statistics_counter_event): Do not record event 
4247         in pass dump if its number == -1.
4248         (curr_statistics_hash): Add assert that we never get passes 
4249         with static number == -1.
4250
4251 2009-06-03  Richard Guenther  <rguenther@suse.de>
4252             Andrey Belevantsev  <abel@ispras.ru>
4253
4254         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
4255         non-BLKmode arrays addressable.
4256
4257 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
4258
4259         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
4260         * config/m68k/m68k.h: ... here.
4261         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
4262         m68k and fido.
4263
4264 2009-06-03  Martin Jambor  <mjambor@suse.cz>
4265
4266         PR tree-optimization/40323
4267         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
4268         assignment.
4269
4270 2009-06-03  Richard Guenther  <rguenther@suse.de>
4271
4272         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
4273         consistently.
4274
4275 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
4276
4277         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
4278         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
4279         JUMP_TABLE_DATA_P where applicable.
4280         * config/sh/sh.c: Ditto.
4281         * config/sh/sh.h: Ditto.
4282         * config/sh/sh.md: Ditto.
4283         * config/sh/symbian.c: Ditto.
4284
4285 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
4286
4287         * config/i386/driver-i386.c (describe_cache): Optimize
4288         concatenation of strings.  Use snprintf instead of sprintf.
4289         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
4290         target when not compiling with GCC.
4291
4292 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
4293
4294         * config/sh/sh.c: Revert last change.
4295         (sh_expand_epilogue): Emit a blockage insn before the frame
4296         pointer adjustment unconditionally.
4297
4298 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4299
4300         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
4301         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
4302         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
4303         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
4304         to COLLECT_GCC_OPTIONS.
4305
4306 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4307
4308         * collect2.c (target_system_root): New variable.
4309         (main): Handle --sysroot=.
4310         (ignore_library): Strip the sysroot from the library path.
4311
4312 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4313
4314         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
4315         (collect2.o): Depend on collect2-aix.h.
4316         (collect2-aix.o): New rule.
4317         * collect2-aix.h: New file.
4318         * collect2-aix.c: Likewise.
4319         * collect2.c: Include collect2-aix.h.  Don't undefine
4320         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
4321         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
4322         Use TARGET_AIX_VERSION instead of _AIX51.
4323         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
4324         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
4325         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
4326         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
4327         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
4328
4329 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4330
4331         * collect2.c (ignore_library): Avoid premature post-increment
4332         and null deference.
4333
4334 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4335
4336         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
4337         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
4338         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
4339         CROSS_DIRECTORY_STRUCTURE too.
4340         (LINK_LIBG_SPEC): Likewise.
4341         (LIB_SPEC): Add %R to sysroot paths.
4342         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
4343         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
4344         * config/rs6000/aix51.h: As for aix43.h.
4345         * config/rs6000/aix52.h: Likewise.
4346         * config/rs6000/aix53.h: Likewise.
4347         * config/rs6000/aix61.h: Likewise.
4348         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
4349         to the beginning of sysroot paths.
4350
4351 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4352
4353         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
4354         INSN_LISTs that are out of the REG_NOTE range.
4355
4356 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4357
4358         * loop-unroll.c (struct iv_to_split): Add pointer to next.
4359         (struct var_to_expand): Likewise.
4360         (struct opt_info): Add head and tail for linked lists of the above.
4361         (analyze_insn_to_expand_var): Initialize next.
4362         (analyze_iv_to_split_insn): Likewise.
4363         (analyze_insns_in_loop): Create linked lists.
4364         (allocate_basic_variable): Simplify for use without hash table.
4365         (insert_var_expansion_initialization): Likewise, make it type-safer.
4366         (combine_var_copies_in_loop_exit): Likewise.
4367         (apply_opt_in_copies): Walk lists rather than hash tables.
4368         (release_var_copies): Simplified and inlined by hand into...
4369         (free_opt_info): ... this function.
4370
4371 2009-06-02  Richard Guenther  <rguenther@suse.de>
4372
4373         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
4374         for field decls.
4375
4376 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4377
4378         * cfgexpand.c (gimple_expand_cfg): Discard the source location
4379         only for builtins that are not overridden.
4380
4381 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4382
4383         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
4384         label string.
4385
4386 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4387
4388         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
4389
4390 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4391
4392         * combine.c (move_deaths): Compare LUIDs within the same BB only.
4393
4394 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
4395
4396         * common.opt (fdump-unnumbered-links): New.
4397         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
4398         * print-rtl.c (flag_dump_unnumbered_links): New.
4399         (print_rtx): Test it.
4400
4401 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
4402
4403         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
4404         push/pop multiple to 8-byte alignment.
4405
4406 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
4407
4408         * config/i386/i386.c (queued_cfa_restores): New static variable.
4409         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
4410         functions.
4411         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
4412         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
4413         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
4414         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
4415         note unconditionally.
4416         (ix86_emit_restore_regs_using_mov): Likewise.
4417         (ix86_emit_restore_sse_regs_using_mov): Likewise.
4418         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
4419         it through to ix86_emit_restore_reg_using_pop.
4420         (ix86_emit_leave): Add RED_OFFSET argument.  Call
4421         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
4422         instead of adding REG_CFA_OFFSET note unconditionally.
4423         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
4424         the above functions.  Call ix86_add_queued_cfa_restore_notes when
4425         needed.
4426
4427         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
4428         force output of the label even for dwarf2out_do_cfi_asm.
4429         (add_fde_cfi): If -g2 and above and cfi might change CFA,
4430         force creation of CFI label and chain DW_CFA_set_loc jumping to it
4431         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
4432         caller.
4433         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
4434         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
4435         dwarf2out_cfi_label callers.
4436         * tree.h (dwarf2out_cfi_label): Adjust prototype.
4437         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
4438         Adjust dwarf2out_cfi_label callers.
4439         * config/vax/vax.c (vax_output_function_prologue): Likewise.
4440
4441         * config/i386/i386.h (struct machine_cfa_state,
4442         struct machine_function): Guard with ifndef USED_FOR_TARGET
4443         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
4444
4445         PR other/40024
4446         * emutls.c (__emutls_get_address): Change arr->size to mean number
4447         of allocated arr->data entries instead of # of slots + 1.
4448
4449         PR middle-end/40316
4450         * recog.c (peep2_reinit_state): New function.
4451         (peephole2_init_state): Use it at the end of a basic block and also
4452         when seeing a RTX_FRAME_RELATED_P insn.
4453
4454 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
4455
4456         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
4457         fixuns_truncrfdi2): New.
4458         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
4459         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
4460         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
4461         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
4462         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
4463         *recip_approx): Remove.
4464         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
4465         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
4466         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
4467         move to div.md.
4468         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
4469         setf_exp_rf): New.
4470
4471 2009-06-01  Ian Lance Taylor  <iant@google.com>
4472
4473         * attribs.c (register_attribute): Use CONST_CAST.
4474         * collect2.c (main): Use CONST_CAST2.
4475         (scan_prog_file): Likewise.
4476         * gcc.c (process_command, main): Likewise.
4477         * toplev.c (toplev_main): Likewise.
4478
4479         * c-typeck.c (handle_warn_cast_qual): New static function,
4480         partially broken out of build_c_cast.
4481         (build_c_cast): Call handle_warn_cast_qual.
4482         * doc/invoke.texi (Warning Options): Document new effect of
4483         -Wcast-qual.
4484
4485 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
4486
4487         * diagnostic.c (diagnostic_build_prefix): Always print columns.
4488         (diagnostic_report_current_module): Print columns.
4489         * common.opt (flag_show_column): Enable by default.
4490
4491 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
4492
4493         * alias.c (find_base_term): Check for NULL term before returning.
4494
4495 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4496
4497         Revert due to PR40320:
4498         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4499         * calls.c (emit_library_call_value_1): Don't force_operand for move
4500         and push insns.
4501
4502 2009-06-01  Olivier Hainque  <hainque@adacore.com>
4503             Eric Botcazou  <ebotcazou@adacore.com>
4504
4505         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
4506         to be processed as a bitfield for constructor output purposes.
4507         * output.h (initializer_constant_valid_for_bitfield_p): Declare
4508         new function.
4509         * varasm.c (oc_local_state): New type, output_constructor
4510         local state to support communication with helpers.
4511         (oc_outer_state): New type, output_constructor outer state of
4512         relevance in recursive calls.
4513         (output_constructor_array_range): New output_constructor helper,
4514         extracted code for an array range element.
4515         (output_constructor_regular_field): New output_constructor helper,
4516         extracted code for an element that is not a bitfield.
4517         (output_constructor_bitfield): New output_constructor helper,
4518         extracted code for a bitfield element.  Accept an OUTER state
4519         argument for recursive processing.  Recurse on record or array
4520         CONSTRUCTOR values, possibly past noop conversions.
4521         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
4522         VALUE is a valid constant-valued expression for use in a static
4523         bit-field initializer.
4524         (output_constructor): Rework to use helpers.  Accept and honor an
4525         OUTER state argument for recursive calls.  Return total size.  Be
4526         prepared for nested constructors initializing bitfields.
4527         (output_constant): Feed OUTER in calls to output_constructor.
4528
4529 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
4530
4531         * calls.c (emit_library_call_value_1): Don't force_operand for move
4532         and push insns.
4533
4534 2009-06-01  Nick Clifton  <nickc@redhat.com>
4535
4536         * doc/invoke.texi (IA-64 Options): Fix typo.
4537
4538 2009-06-01  Ira Rosen  <irar@il.ibm.com>
4539
4540         PR tree-optimization/39129
4541         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
4542         printed message.
4543         (vect_do_peeling_for_loop_bound): Use
4544         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
4545         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
4546         (vect_loop_versioning): Likewise.
4547         (vect_create_cond_for_alias_checks): Fix indentation.
4548         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
4549         macros.
4550         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
4551         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
4552         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
4553         "control flow in loop".
4554         (vect_estimate_min_profitable_iters): Use
4555         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
4556         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
4557         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
4558         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
4559         * tree-vect-stmts.c (vectorizable_store): Replace the check that the
4560         statement belongs to a group of strided accesses with the exact code
4561         check.
4562         (vectorizable_load): Likewise.
4563         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
4564         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
4565
4566 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
4567
4568         * config/freebsd-stdint.h: New file.
4569         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
4570         Add freebsd-stdint.h to tm_file.
4571
4572 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
4573
4574         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
4575         (thumb2_extendhidi2): Likewise.
4576
4577 2009-05-31  Ian Lance Taylor  <iant@google.com>
4578
4579         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
4580
4581 2009-05-31  Ian Lance Taylor  <iant@google.com>
4582
4583         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
4584         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
4585         (ipa-reference.o): Depend upon gt-ipa-reference.h.
4586
4587 2009-05-31  Jason Merrill  <jason@redhat.com>
4588
4589         * tree-pretty-print.c (print_call_name): Take the callee, not the
4590         call itself.  Make non-static.  Use dump_function_name for functions.
4591         (dump_generic_node): Adjust.
4592         * diagnostic.h: Declare print_call_name.
4593         * gimple-pretty-print.c (dump_gimple_call): Use it.
4594
4595 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4596
4597         * config/sh/sh.md (ashldi3_std): New define_expand.
4598         (ashldi3): Use it.
4599
4600 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4601
4602         PR target/40313
4603         * config/sh/sh.c: Include debug.h.
4604         (sh_expand_epilogue): Emit a blockage insn before the frame
4605         pointer adjustment also when dwarf2out_do_frame returns true.
4606
4607 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
4608
4609         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
4610         (thumb2_extendqidi2): New pattern.
4611
4612 2009-05-31  Ira Rosen  <irar@il.ibm.com>
4613
4614         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
4615         mark phis for renaming.
4616         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
4617         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
4618         Call mark_sym_for_renaming.
4619         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
4620         * tree-vect-loop.c (vect_transform_loop): Remove
4621         vect_memsyms_to_rename initialization and a call to
4622         mark_set_for_renaming.
4623
4624 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
4625
4626         PR middle-end/40304
4627         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
4628         frame related even if !set_cfa && style < 0.
4629
4630 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
4631
4632         * config/i386/mingw-tls.c: New file.
4633         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
4634         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
4635         defining _WIN32 but not __CYGWIN__.
4636
4637 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4638
4639         * configure.ac: Add MPC support.
4640         
4641         * config.in, configure: Regenerate.     
4642
4643 2009-05-29  Richard Henderson  <rth@redhat.com>
4644
4645         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
4646         NOTE_INSN_BASIC_BLOCK.
4647         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
4648         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
4649         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
4650         to be deleted.
4651         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
4652         add in_use field.
4653         (add_cfi): Disable check redefining cfa away from drap.
4654         (lookup_cfa_1): Add remember argument; handle remember/restore.
4655         (lookup_cfa): Pass remember argument.
4656         (cfa_remember): New.
4657         (compute_barrier_args_size_1): Remove sibcall check.
4658         (dwarf2out_frame_debug_def_cfa): New.
4659         (dwarf2out_frame_debug_adjust_cfa): New.
4660         (dwarf2out_frame_debug_cfa_offset): New.
4661         (dwarf2out_frame_debug_cfa_register): New.
4662         (dwarf2out_frame_debug_cfa_restore): New.
4663         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
4664         (dwarf2out_begin_epilogue): New.
4665         (dwarf2out_frame_debug_restore_state): New.
4666         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
4667         DW_CFA_restore_state.
4668         (output_cfi_directive): Likewise.
4669         (convert_cfa_to_fb_loc_list): Likewise.
4670         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
4671         * dwarf2out.h: Update.
4672         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
4673         (copy_insn_1): Early out for null.
4674         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
4675         and dwarf2out_frame_debug_restore_state.
4676         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
4677         (prologue_insn_hash, epilogue_insn_hash): New.
4678         (free_after_compilation): Adjust freeing accordingly.
4679         (record_insns): Create hash table if needed; push insns into
4680         hash instead of array.
4681         (maybe_copy_epilogue_insn): New.
4682         (contains): Search hash table instead of array.
4683         (sibcall_epilogue_contains): Remove.
4684         (thread_prologue_and_epilogue_insns): Split eh_return insns
4685         and mark them as epilogues.
4686         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
4687         scanning in terms of basic blocks.
4688         * insn-notes.def (CFA_RESTORE_STATE): New.
4689         * jump.c (returnjump_p_1): Accept EH_RETURN.
4690         (eh_returnjump_p_1, eh_returnjump_p): New.
4691         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
4692         CFA_REGISTER, CFA_RESTORE): New.
4693         * rtl.def (EH_RETURN): New.
4694         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
4695
4696         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
4697         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
4698
4699         * config/i386/i386.c (gen_push): Update cfa state.
4700         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
4701         add a CFA_ADJUST_CFA note.
4702         (ix86_dwarf_handle_frame_unspec): Remove.
4703         (ix86_expand_prologue): Update cfa state.
4704         (ix86_emit_restore_reg_using_pop): New.
4705         (ix86_emit_restore_regs_using_pop): New.
4706         (ix86_emit_leave): New.
4707         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
4708         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
4709         * config/i386/i386.h (struct machine_cfa_state): New.
4710         (ix86_cfa_state): New.
4711         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
4712         (eh_return_internal): Merge from eh_return_<mode>,
4713         use eh_return rtx, split w/ epilogue.
4714
4715 2009-05-29  Ian Lance Taylor  <iant@google.com>
4716
4717         * builtins.c (validate_gimple_arglist): Don't use va_arg with
4718         enum type.
4719         * calls.c (emit_library_call_value_1): Likewise.
4720
4721         * c-typeck.c (c_build_va_arg): New function.
4722         * c-tree.h (c_build_va_arg): Declare.
4723         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
4724         instead of build_va_arg.
4725
4726 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
4727
4728         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
4729         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
4730         (ptr_difference_cost): Use affine combinations to compute it.
4731         (difference_cost): Likewise.
4732         (get_computation_cost_at): Compute more accurate cost for addresses
4733         if the ratio is a multiplier allowed in addresses.
4734         For non-addresses, consider that an additional offset or symbol is
4735         added only once.
4736
4737 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
4738
4739         * config/i386/i386.c (ix86_decompose_address): Avoid useless
4740         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
4741
4742         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
4743         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
4744         (prefix_rex): For UNIT_MMX don't imply the prefix by default
4745         if MODE_DI.
4746         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
4747         to 1 for TYPE_SSE{IADD1,CVT1}.
4748         (prefix_vex_imm8): Removed.
4749         (length_vex): Only pass 1 as second argument to
4750         ix86_attr_length_vex_default if prefix_extra is 0.
4751         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
4752         (length): For prefix vex computation use length_immediate
4753         attribute instead of prefix_vex_imm8.
4754         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
4755         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
4756         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
4757         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
4758         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
4759         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
4760         a space in between the operands.
4761         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
4762         if one operand is 0xff and the other one si, di, bp or sp.
4763         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
4764         other one si, di, bp or sp.
4765         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
4766         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
4767         type and mode attributes.
4768         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
4769         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
4770         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
4771         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
4772         prefix_data16 attribute iff MODE_DF.
4773         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
4774         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
4775         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
4776         constm128_operand in length_immediate computation.
4777         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
4778         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
4779         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
4780         length_immediate attribute to 1.
4781         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
4782         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
4783         for certain alternatives.
4784         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
4785         prefix_data16 attribute if MODE_V1DF.
4786         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
4787         length_immediate to 1.
4788         (set_got_rex64, set_rip_rex64): Remove length attribute, set
4789         length_address to 4, set mode attribute to MODE_DI.
4790         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
4791         (fxam<mode>2_i387): Set length attribute to 4.
4792         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
4793         *prefetch_3dnow_rex): Override length_address attribute.
4794         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
4795         attributes.
4796         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
4797         (constm128_operand): Removed.
4798         * config/i386/i386.c (memory_address_length): For
4799         disp && !index && !base in 64-bit mode account for SIB byte if
4800         print_operand_address can't optimize disp32 into disp32(%rip)
4801         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
4802         for fs: or gs: segment.
4803         (ix86_attr_length_immediate_default): When checking if shortform
4804         is possible, truncate immediate to the length of the non-shortened
4805         immediate.
4806         (ix86_attr_length_address_default): Ignore MEM_P operands
4807         with X constraint.
4808         (ix86_attr_length_vex_default): Only check for DImode on
4809         GENERAL_REG_P operands.
4810         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
4811         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
4812         (sse_cvttps2pi): Clear prefix_rep attribute.
4813         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
4814         attribute.
4815         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
4816         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
4817         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
4818         iff operand 2 is const_int_operand.
4819         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
4820         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
4821         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
4822         instead of vex.
4823         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
4824         prefix_data16.
4825         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
4826         prefix_data16 attribute for movlpd and movhpd instructions.
4827         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
4828         length_immediate for shufpd instruction.
4829         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
4830         (avx_cmpp<avxmodesuffixf2c><mode>3,
4831         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
4832         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
4833         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
4834         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
4835         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
4836         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
4837         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
4838         prefix_data16 attribute for the first alternative to 1.
4839         (*avx_loadlps): Override length_immediate for the first alternative.
4840         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
4841         attributes for second alternative.
4842         (*vec_concatv2sf_sse4_1): Override length_immediate and
4843         prefix_data16 attributes for second alternative.
4844         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
4845         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
4846         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
4847         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
4848         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
4849         prefix_data16 and length_immediate to 1.
4850         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
4851         to 1.
4852         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
4853         prefix_extra attribute for variants that don't have 0f prefix alone.
4854         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
4855         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
4856         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
4857         *sse4_1_pextrd): Set length_immediate to 1.
4858         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
4859         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
4860         to 1.
4861         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
4862         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
4863         length_immediate to 1 for second alternative.
4864         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
4865         prefix_extra and length_immediate attributes for the first
4866         alternative.
4867         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
4868         first alternative.
4869         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
4870         to 1 for the first and third alternative.
4871         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
4872         alternative.
4873         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
4874         attribute.
4875         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
4876         attribute to 0.
4877         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
4878         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
4879         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
4880         *avx_psign<mode>3): Set prefix_extra attribute to 1.
4881         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
4882         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
4883         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
4884         ssse3_psign<mode>3): Override prefix_rex attribute.
4885         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
4886         (ssse3_palignrti): Override length_immediate to 1.
4887         (ssse3_palignrdi): Override length_immediate to 1, override
4888         prefix_rex attribute.
4889         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
4890         (sse4a_extrqi): Override length_immediate to 2.
4891         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
4892         (sse4a_insertq): Override prefix_data16 to 0.
4893         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
4894         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
4895         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
4896         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
4897         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
4898         and length_immediate to 1.
4899         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
4900         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
4901         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
4902         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
4903         and length_immediate to 1.
4904         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
4905         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
4906         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
4907         avx_ptest256): Override prefix_extra to 1.
4908         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
4909         Override prefix_data16 and length_immediate to 1.
4910         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
4911         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
4912         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
4913         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
4914         prefix_data16 to 0 and prefix_extra to 2.
4915         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
4916         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
4917         attribute.
4918         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
4919         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
4920         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
4921         and prefix_extra to 2.
4922         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
4923         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
4924         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
4925         avx_vpermilvar<mode>3,
4926         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
4927         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
4928         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
4929         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
4930         Override prefix_extra to 1.
4931         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
4932         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
4933         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
4934         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
4935         prefix_extra and length_immediate to 1.
4936         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
4937         modrm to 0.
4938         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
4939         to 1 for the first alternative.
4940         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
4941         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
4942         cases.
4943         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
4944         *movv2sf_internal_avx, *movv2sf_internal): Override
4945         prefix_rep attribute for certain alternatives.
4946         (*mov<mode>_internal): Override prefix_rep or prefix_data16
4947         attributes for certain alternatives.
4948         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
4949         attributes for certain alternatives.
4950         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
4951         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
4952         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
4953         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
4954         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
4955         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
4956         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
4957         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
4958         length_immediate to 1 if operand 2 is const_int_operand.
4959         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
4960         *vec_extractv2si_1): Set length_immediate attribute to 1.
4961         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
4962         using old 3DNOW insn rather than SSE/3DNOW_A.
4963         (mmx_emms, mmx_femms): Clear modrm attribute.
4964
4965 2009-05-29  Martin Jambor  <mjambor@suse.cz>
4966
4967         * tree-sra.c:  New implementation of SRA.
4968
4969         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
4970         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
4971         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
4972         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
4973         (SRA_MAX_STRUCTURE_COUNT): Removed.
4974         (SRA_FIELD_STRUCTURE_RATIO): Removed.
4975         * doc/invoke.texi (sra-max-structure-size): Removed.
4976         (sra-field-structure-ratio): Removed.
4977
4978 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
4979
4980         PR middle-end/40291
4981         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
4982         before expansion.
4983
4984 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
4985
4986         PR rtl-optimization/40101
4987         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
4988         seqno.  Adjust comment.
4989         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
4990         inserting bookkeeping before a jump, the jump is not scheduled.
4991         When no positive seqno found, provide a value.  Add comment.
4992
4993 2009-05-29  Richard Guenther  <rguenther@suse.de>
4994
4995         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
4996         short-cutting on the first component.
4997
4998 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
4999
5000         PR middle-end/39958
5001         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
5002         for trees other than decls/types.
5003
5004 2009-05-29  Richard Guenther  <rguenther@suse.de>
5005
5006         * tree-ssa-operands.c (get_expr_operands): Do not handle
5007         INDIRECT_REFs in the handled-component case.  Remove
5008         unused get_ref_base_and_extent case.
5009         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
5010         tree_low_cst and host_integerp where possible.
5011         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
5012         codes for equivalence.
5013         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
5014
5015 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
5016
5017         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
5018         to tmake_file for i[34567]86-*-cygwin*. 
5019
5020 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
5021
5022         PR target/40017
5023         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
5024         (altivec_categorize_keyword, init_vector_keywords,
5025         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
5026         similar to bool.
5027
5028 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
5029
5030         * tree.c (handle_dll_attribute): Check if node is
5031         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
5032
5033 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
5034
5035         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
5036         component.
5037         (thumb2_zero_extendqidi2): Likewise.
5038
5039 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5040
5041         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
5042         instead of gen_movrt.
5043         * config/sh/sh.md (movrt): Remove.
5044
5045 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
5046
5047         * doc/invoke.texi (IA-64 Options):
5048         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
5049         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
5050         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
5051         -msched-prefer-non-control-spec-insns,
5052         -msched-stop-bits-after-every-cycle,
5053         -msched-count-spec-in-critical-path,
5054         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
5055         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
5056         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
5057         and -msched-spec-verbose.
5058
5059 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
5060
5061         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
5062         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
5063         error if used.
5064         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
5065
5066 2009-05-28  Richard Guenther  <rguenther@suse.de>
5067
5068         * tree-ssa-alias.c (ao_ref_init): New function.
5069         (ao_ref_base): Likewise.
5070         (ao_ref_base_alias_set): Likewise.
5071         (ao_ref_alias_set): Likewise.
5072         (refs_may_alias_p_1): Change signature.
5073         (refs_may_alias_p): Adjust.
5074         (refs_anti_dependent_p): Likewise.
5075         (refs_output_dependent_p): Likewise.
5076         (call_may_clobber_ref_p_1): Change signature.
5077         (call_may_clobber_ref_p): Adjust.
5078         (stmt_may_clobber_ref_p_1): New function split out from ...
5079         (stmt_may_clobber_ref_p): ... here.
5080         (maybe_skip_until): Adjust signature.
5081         (get_continuation_for_phi): Likewise.
5082         (walk_non_aliased_vuses): Likewise.
5083         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
5084         (ao_ref_init): Declare.
5085         (ao_ref_base): Likewise.
5086         (ao_ref_alias_set): Likewise.
5087         (stmt_may_clobber_ref_p_1): Likewise.
5088         (walk_non_aliased_vuses): Adjust.
5089         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
5090         (get_ref_from_reference_ops): remove.
5091         (vn_reference_lookup_2): Adjust signature.
5092         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
5093         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
5094         (vn_reference_lookup): Adjust.
5095         (vn_reference_insert): Likewise.
5096         (vn_reference_insert_pieces): Adjust signature.
5097         (visit_reference_op_call): Adjust.
5098         * tree-ssa-pre.c (get_expr_type): Simplify.
5099         (phi_translate_1): Adjust.
5100         (compute_avail): Likewise.
5101         (translate_vuse_through_block): Do not re-build trees.
5102         (value_dies_in_block_x): Likewise.
5103         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
5104         fields.
5105         (vn_reference_lookup_pieces): Adjust declaration.
5106         (vn_reference_insert_pieces): Likewise.
5107
5108 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
5109
5110         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
5111         with checking disabled.
5112
5113 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
5114
5115         PR target/37216
5116
5117         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
5118         macro definition for support of three-operand format aligned
5119         .comm directive in assembler on cygwin/pe/mingw target OS.
5120         * configure:  Regenerate.
5121         * config.h:  Regenerate.
5122
5123         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
5124         aligned form of .comm directive if -mpe-aligned-commons is in effect.
5125         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
5126
5127         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
5128         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
5129
5130 2009-05-28  Ira Rosen  <irar@il.ibm.com>
5131
5132         PR tree-optimization/40254
5133         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
5134         in analysis of basic blocks.
5135
5136 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
5137
5138         PR middle-end/33699
5139         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
5140         * target-def.h (TARGET_CONST_ANCHOR): New macro.
5141         (TARGET_INITIALIZER): Use it.
5142         * cse.c (CHEAPER): Move it up to the other macros.
5143         (insert): Rename this ...
5144         (insert_with_costs): ... to this.  Add cost parameters.  Update
5145         function comment.
5146         (insert): New function.  Call insert_with_costs.
5147         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
5148         find_reg_offset_for_const, try_const_anchors): New functions.
5149         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
5150         when using a const-anchor.  Call insert_const_anchors.
5151         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
5152         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
5153
5154 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
5155
5156         * tree-inline.c (remap_decls): Enable nonlocalized variables
5157         when not optimizing.
5158
5159 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
5160
5161         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
5162         Simplify other tests involving optimize.
5163
5164 2009-05-27  Tom Tromey  <tromey@redhat.com>
5165
5166         * unwind-dw2.c (_Unwind_DebugHook): New function.
5167         (uw_install_context): Call _Unwind_DebugHook.
5168
5169 2009-05-27  Tom Tromey  <tromey@redhat.com>
5170
5171         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
5172
5173 2009-05-27  Ian Lance Taylor  <iant@google.com>
5174
5175         * Makefile.in (LINKER, LINKER_FLAGS): Define.
5176         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
5177         (ALL_LINKERFLAGS): Define.
5178         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
5179         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
5180         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
5181         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
5182         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
5183         $(LINKER_FOR_BUILD).
5184         (build/gcov-iov$(build_exeext)): Likewise.
5185
5186 2009-05-27  Julian Brown  <julian@codesourcery.com>
5187
5188         * gcse.c (target.h): Include.
5189         (can_assign_to_reg_without_clobbers_p): Check that the target allows
5190         copy of argument to a pseudo register.
5191
5192 2009-05-27  Diego Novillo  <dnovillo@google.com>
5193
5194         * tree-ssa-live.c (dump_scope_block): Document arguments.
5195         (dump_scope_blocks): Document.
5196         (debug_scope_blocks): New.
5197         * tree-flow.h (debug_scope_blocks): Declare.
5198
5199 2009-05-21  Denis Chertykov  <denisc@overta.ru>
5200
5201         * doc/contrib.texi (Contributors): Add myself to the list.
5202
5203 2009-05-27  Olivier Hainque  <hainque@adacore.com>
5204
5205         * expr.c (target_align): New function.  Alignment the TARGET of an
5206         assignment may be assume to have.
5207         (highest_pow2_factor_for_target): Use it instead of relying on
5208         immediate tree attributes of TARGET, not necessarily honored when
5209         intermediate bitfields are involved.
5210         
5211 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5212
5213         PR target/40266
5214         * config/i386/driver-i386.c (host_detect_local_cpu): Support
5215         AVX, SSE4, AES, PCLMUL and POPCNT.
5216
5217 2009-05-27  Diego Novillo  <dnovillo@google.com>
5218
5219         * tree-pretty-print.c (dump_location): New.
5220         (dump_generic_node): Call it.
5221         Factor code to handle BLOCK nodes ...
5222         (dump_block_node): ... here.
5223
5224 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
5225
5226         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
5227         with it.
5228         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
5229         included.
5230         * gcc-plugin.h: Include config.h and system.h.
5231         (IN_GCC): Define if not defined.
5232
5233 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
5234
5235         PR middle-end/40249
5236         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
5237         with -fno-inline.
5238
5239 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
5240
5241         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
5242         applicable.
5243         * config/m32r/m32r.h: Ditto.
5244         * config/m32r/m32r.md: Ditto.
5245         * config/m32r/predicates.md: Ditto.
5246
5247 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
5248
5249         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
5250
5251 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
5252
5253         * doc/plugins.texi
5254         (Loading plugins): typo.
5255         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
5256         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
5257         (Interacting with the GCC Garbage Collector): Added new section.
5258         (Giving information about a plugin): Added new section for
5259         PLUGIN_INFO.
5260         * ggc.h (ggc_register_root_tab): Added declaration.
5261         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
5262         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
5263         (register_callback): Improved comment in declaration.
5264         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
5265         (extra_root_vec) Added static variable for dynamic roots registration.
5266         (ggc_register_root_tab) Added new routine.
5267         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
5268         PLUGIN_GGC_MARKING event.
5269         * ggc-zone.c: Include plugin.h.
5270         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
5271         * ggc-page.c: Include plugin.h.
5272         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
5273         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
5274         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
5275         (register_callback): check lack of callbacks for
5276         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
5277         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
5278         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
5279         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
5280         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
5281         dependency on plugin.h.
5282         (plugin.o): Added dependency on ggc.h...
5283
5284 2009-05-26  Richard Guenther  <rguenther@suse.de>
5285
5286         PR middle-end/40248
5287         Revert
5288         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
5289         with mismatched comparison modes.
5290
5291         * expr.c (expand_expr_real_1): Expand the operand of a
5292         VIEW_CONVERT_EXPR in its natural mode.
5293
5294 2009-05-26  Ian Lance Taylor  <iant@google.com>
5295
5296         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
5297         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
5298         (ALL_COMPILERFLAGS): Define.
5299         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
5300         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
5301         (collect2$(exeext), collect2.o): Likewise.
5302         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
5303         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
5304         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
5305         (libbackend.o, intl.o, cppdefault.o): Likewise.
5306         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
5307         (build/%.o): Use $(COMPILER_FOR_BUILD).
5308         (build/gen%$(build_exeext)): Likewise.
5309         (build/gcov-iov$(build_exeext)): LIkewise.
5310         * config/t-darwin (darwin.o): Use $(COMPILER).
5311         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
5312         * config/t-sol2 (sol2-c.o): Likewise.
5313         (sol2.o): Likewise.
5314         * config/t-vxworks (vxworks.o): Likewise.
5315         * config/x-darwin (host-darwin.o): Likewise.
5316         * config/x-hpux (host-hpux.o): Likewise.
5317         * config/x-linux (host-linux.o): Likewise.
5318         * config/x-solaris (host-solaris.o): Likewise.
5319         * config/alpha/x-alpha (driver-alpha.o): Likewise.
5320         * config/arm/t-arm (arm-c.o): Likewise.
5321         * config/arm/t-pe (pe.o): Likewise.
5322         * config/arm/t-wince-pe (pe.o): Likewise.
5323         * config/i386/t-cygming (winnt.o): Likewise.
5324         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
5325         * config/i386/t-cygwin (cygwin1.o): Likewise.
5326         (cygwin2.o): Likewise.
5327         * config/i386/t-i386 (i386-c.o): Likewise.
5328         * config/i386/t-interix (winnt.o): Likewise.
5329         * config/i386/t-netware (netware.o): Likewise.
5330         * config/i386/t-nwld (nwld.o): Likewise.
5331         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
5332         * config/i386/x-i386 (driver-i386.o): Likewise.
5333         * config/i386/x-cygwin (host-cygwin.o): Likewise.
5334         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
5335         * config/ia64/t-ia64 (ia64-c.o): Likewise.
5336         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
5337         * config/mips/x-native (driver-native.o): Likewise.
5338         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
5339         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
5340         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
5341         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
5342         * config/score/t-score-elf (score7.o): Likewise.
5343         (score3.o): Likewise.
5344         * config/sh/t-sh (sh-c.o): Likewise.
5345         * config/sh/t-symbian (sh-c.o): Likewise.
5346         (symbian.o): Likewise.
5347         * config/spu/t-spu-elf (spu-c.o): Likewise.
5348         * config/v850/t-v850 (v850-c.o): Likewise.
5349         * config/v850/t-v850e (v850-c.o): Likewise.
5350
5351 2009-05-26  Richard Guenther  <rguenther@suse.de>
5352
5353         PR tree-optimization/40122
5354         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
5355         VECTOR_CSTs if possible.
5356         (fold_gimple_assign): Likewise.
5357
5358 2009-05-26  Richard Guenther  <rguenther@suse.de>
5359
5360         PR middle-end/40252
5361         * fold-const.c (fold_binary): Use the correct types for building
5362         rotates.
5363
5364 2009-05-26  Richard Guenther  <rguenther@suse.de>
5365
5366         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
5367         redundant calls to merge_alias_info.
5368         (bump_vector_ptr): Likewise.
5369         * tree-ssa-copy.c (merge_alias_info): Remove.
5370         (replace_exp_1): Remove call to merge_alias_info.
5371         (propagate_tree_value): Likewise.
5372         (fini_copy_prop): Propagate points-to info.
5373         * tree-flow.h (merge_alias_info): Remove.
5374
5375 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
5376
5377         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
5378
5379 2009-05-25  Jan Hubicka  <jh@suse.cz>
5380
5381         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5382         * cgraph.h (struct inline_summary): New filed self_wize,
5383         size_inlining_benefit, self_time and time_inlining_benefit.
5384         (struct cgraph_global_info): Replace insns by time ans size fields.
5385         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5386         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5387         (ipcp_update_callgraph): Do not touch function bodies.
5388         * ipa-inline.c: Include except.h
5389         (MAX_TIME): New constant.
5390         (overall_insns): Remove.
5391         (leaf_node_p): New.
5392         (overall_size, max_benefit): New static variables.
5393         (cgraph_estimate_time_after_inlining): New function.
5394         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5395         (cgraph_clone_inlined_nodes): Update size.
5396         (cgraph_mark_inline_edge): Update size.
5397         (cgraph_estimate_growth): Use size info.
5398         (cgraph_check_inline_limits): Check size.
5399         (cgraph_default_inline_p): Likewise.
5400         (cgraph_edge_badness): Compute badness based on benefit and size cost.
5401         (cgraph_decide_recursive_inlining): Check size.
5402         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5403         and times.
5404         (cgraph_decide_inlining): Likewise.
5405         (cgraph_decide_inlining_incrementally): Likewise; honor
5406         PARAM_EARLY_INLINING_INSNS.
5407         (likely_eliminated_by_inlining_p): New predicate.
5408         (estimate_function_body_sizes): New function.
5409         (compute_inline_parameters): Use it.
5410         * except.c (must_not_throw_labels): New function.
5411         * except.h (must_not_throw_labels): Declare.
5412         * tree-inline.c (init_inline_once): Kill inlining_weigths
5413         * tree-ssa-structalias.c: Avoid uninitialized warning.
5414         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5415         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5416         (PARAM_INLINE_CALL_COST): Remove.
5417         (PARAM_EARLY_INLINING_INSNS): New.
5418
5419 2009-05-25  Richard Guenther  <rguenther@suse.de>
5420
5421         PR tree-optimization/36327
5422         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
5423         callback for reference translation or lookup at the point of may-defs.
5424         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
5425         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
5426         for union COMPONENT_REFs.
5427         (vn_reference_lookup_3): New callback.  Lookup from memset
5428         and CONSTRUCTOR assignment, translate through struct copies.
5429         (vn_reference_lookup_pieces): Make sure to not free the
5430         passed operands array.  Adjust walk_non_aliased_vuses call.
5431         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
5432         make sure we do not leak memory.
5433
5434 2009-05-25  Richard Guenther  <rguenther@suse.de>
5435
5436         * tree-ssa-alias.h (dump_points_to_solution): Declare.
5437         * tree-inline.c (expand_call_inline): Reset the escaped and
5438         callused solutions.
5439         * tree-ssa-structalias.c (pass_build_ealias): New.
5440         * tree-pass.h (pass_build_ealias): Declare.
5441         * passes.c (init_optimization_passes): Add PTA during 
5442         early optimizations.
5443         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
5444         and CALLUSED solutions.
5445         (dump_points_to_solution): New function, split out from ...
5446         (dump_points_to_info_for): ... here.
5447         * tree-parloops.c (parallelize_loops): Reset the escaped and
5448         callused solutions.
5449
5450 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5451
5452         PR bootstrap/40027
5453         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
5454         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
5455
5456 2009-05-25  Ira Rosen  <irar@il.ibm.com>
5457
5458         PR tree-optimization/40238
5459         * tree-vect-stmts.c (vect_init_vector): Insert initialization
5460         statements after basic block's labels.
5461         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
5462         to free the allocated memory.
5463
5464 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
5465
5466         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
5467         return address with a USE.
5468
5469 2009-05-24  Richard Guenther  <rguenther@suse.de>
5470
5471         PR middle-end/40233
5472         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
5473         array type from the main variant of the inner type.
5474
5475 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5476
5477         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
5478         definition to bool (from int) to un-break build.
5479         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
5480
5481 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
5482
5483         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
5484         discard_stmt_changes): Delete.
5485         * tree-ssa-operands.c (scb_stack): Delete.
5486         (init_ssa_operands): Do not initialize it.
5487         (fini_ssa_operands): Do not free it.
5488         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
5489
5490         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
5491         update_stmt, remove the others.  Fix comments.
5492         * tree-dfa.c (optimize_stack_restore): Likewise.
5493         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
5494         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
5495         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
5496         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
5497         Likewise.
5498         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
5499         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
5500         (dom_opt_finalize_block): Likewise, adjusting access to
5501         stmts_to_rescan.
5502         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
5503         (stmts_to_rescan): Change item type to gimple.
5504         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
5505
5506 2009-05-24  Ira Rosen  <irar@il.ibm.com>
5507
5508         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
5509         * tree-pass.h (pass_slp_vectorize): New pass.
5510         * params.h (SLP_MAX_INSNS_IN_BB): Define.
5511         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
5512         * tree-vectorizer.c (timevar.h): Include.
5513         (user_vect_verbosity_level): Declare.
5514         (vect_location): Fix comment.
5515         (vect_set_verbosity_level): Update user_vect_verbosity_level
5516         instead of vect_verbosity_level.
5517         (vect_set_dump_settings): Add an argument. Ignore user defined
5518         verbosity if dump flags require higher level of verbosity. Print to
5519         stderr only for loop vectorization.
5520         (vectorize_loops): Update call to vect_set_dump_settings.
5521         (execute_vect_slp): New function.
5522         (gate_vect_slp): Likewise.
5523         (struct gimple_opt_pass pass_slp_vectorize): New.
5524         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
5525         access its members.
5526         (vec_info_for_bb): New function.
5527         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
5528         (VECTORIZATION_ENABLED): New macro.
5529         (SLP_ENABLED, SLP_DISABLED): Likewise.
5530         (vect_is_simple_use): Add bb_vec_info argument.
5531         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
5532         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
5533         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
5534         vect_schedule_slp, vect_analyze_slp): Likewise.
5535         (vect_analyze_stmt): Add slp_tree argument.
5536         (find_bb_location): Declare.
5537         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
5538         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
5539         (vect_analyze_loop_operations, vect_analyze_loop,
5540         get_initial_def_for_induction, vect_create_epilog_for_reduction,
5541         vect_finalize_reduction, vectorizable_reduction,
5542         vectorizable_live_operation, vect_transform_loop): Likewise.
5543         * tree-data-ref.c (dr_analyze_innermost): Update comment,
5544         skip evolution analysis if analyzing a basic block.
5545         (dr_analyze_indices): Likewise.
5546         (initialize_data_dependence_relation): Skip the test whether the
5547         object is invariant for basic blocks.
5548         (compute_all_dependences): Skip dependence analysis for data
5549         references in basic blocks.
5550         (find_data_references_in_stmt): Don't fail in case of invariant
5551         access in basic block.
5552         (find_data_references_in_bb): New function.
5553         (find_data_references_in_loop): Move code to
5554         find_data_references_in_bb and add a call to it.
5555         (compute_data_dependences_for_bb): New function.
5556         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
5557         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
5558         that STEP is 0.
5559         (vect_analyze_data_ref_dependence): Check for interleaving in case of
5560         unknown dependence in basic block and fail in case of dependence in
5561         basic block.
5562         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
5563         dependence instances from either loop or basic block vectorization
5564         info.
5565         (vect_compute_data_ref_alignment): Check if it is loop vectorization
5566         before calling nested_in_vect_loop_p.
5567         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
5568         dependence instances from either loop or basic block vectorization
5569         info.
5570         (vect_verify_datarefs_alignment): Likewise.
5571         (vect_enhance_data_refs_alignment): Adjust function calls.
5572         (vect_analyze_data_refs_alignment): Likewise.
5573         (vect_analyze_group_access): Fix printing. Skip different checks if
5574         DR_STEP is 0. Keep strided stores either in loop or basic block
5575         vectorization data structure. Fix indentation.
5576         (vect_analyze_data_ref_access): Fix comments, allow zero step in
5577         basic blocks.
5578         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
5579         dependence instances from either loop or basic block vectorization
5580         info.
5581         (vect_analyze_data_refs): Update comment. Call
5582         compute_data_dependences_for_bb to analyze basic blocks.
5583         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
5584         case of loop vectorization. In case of basic block vectorization use
5585         data-ref itself as a base.
5586         (vect_create_data_ref_ptr): In case of basic block vectorization:
5587         don't advance the pointer, add new statements before the current
5588         statement.  Adjust function calls.
5589         (vect_supportable_dr_alignment): Support only aligned accesses in
5590         basic block vectorization.
5591         * common.opt (ftree-slp-vectorize): New flag.
5592         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
5593         (vect_pattern_recog_1): Likewise.
5594         * tree-vect-stmts.c (process_use): Likewise.
5595         (vect_init_vector): Add new statements in the beginning of the basic
5596         block in case of basic block SLP.
5597         (vect_get_vec_def_for_operand): Adjust function calls.
5598         (vect_finish_stmt_generation): Likewise.
5599         (vectorizable_call): Add assert that it is loop vectorization, adjust
5600         function calls.
5601         (vectorizable_conversion, vectorizable_assignment): Likewise.
5602         (vectorizable_operation): In case of basic block SLP, take
5603         vectorization factor from statement's type and skip the relevance
5604         check. Adjust function calls.
5605         (vectorizable_type_demotion): Add assert that it is loop
5606         vectorization, adjust function calls.
5607         (vectorizable_type_promotion): Likewise.
5608         (vectorizable_store): Check for outer loop only in case of loop
5609         vectorization. Adjust function calls. For basic blocks, skip the
5610         relevance check and don't advance pointers.
5611         (vectorizable_load): Likewise.
5612         (vectorizable_condition): Add assert that it is loop vectorization,
5613         adjust function calls.
5614         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
5615         that it is not reduction, get vector type, call only supported
5616         functions, skip loop specific parts.
5617         (vect_transform_stmt): Check for outer loop only in case of loop
5618         vectorization.
5619         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
5620         (vect_is_simple_use): Fix comment, add new argument, fix conditions
5621         for external definition.
5622         * passes.c (pass_slp_vectorize): New pass.
5623         * tree-vect-slp.c (find_bb_location): New function.
5624         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
5625         check for patterns only in loops.
5626         (vect_build_slp_tree): Add argument, adjust function calls, fail in
5627         case of multiple types in basic block SLP.
5628         (vect_mark_slp_stmts_relevant): New function.
5629         (vect_supported_load_permutation_p): Fix comment.
5630         (vect_analyze_slp_instance): Add argument. In case of basic block
5631         SLP, take vectorization factor from statement's type, check that
5632         unrolling factor is 1. Adjust function call. Save SLP instance in
5633         either loop or basic block vectorization structure. Return FALSE,
5634         if SLP failed.
5635         (vect_analyze_slp): Add argument. Get strided stores groups from
5636         either loop or basic block vectorization structure. Return FALSE
5637         if basic block SLP failed.
5638         (new_bb_vec_info): New function.
5639         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
5640         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
5641         (vect_schedule_slp): Add argument. Get SLP instances from either
5642         loop or basic block vectorization structure. Set vectorization factor
5643         to be 1 for basic block SLP.
5644         (vect_slp_transform_bb): New function.
5645         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
5646
5647 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
5648
5649         * final.c (shorten_branches): Do not align labels for jump tables.
5650         (final_scan_insn): Use JUMP_TABLE_DATA_P.
5651
5652 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
5653
5654         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
5655         Remove outdated reference to flow.c and fix nits.
5656         * doc/gccint.texi: Tweak RTL description.
5657         * doc/rtl.texi: Likewise.
5658
5659 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
5660
5661         * config/avr/avr.c: Change my email address.
5662         * config/avr/avr.h: Likewise.
5663         * config/avr/avr.md: Likewise.
5664         * config/avr/avr-protos.h: Likewise.
5665         * config/avr/libgcc.S: Likewise.
5666
5667 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
5668
5669         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
5670         (spu_split_load, spu_split_store): Change return type to int.
5671         (spu_split_convert): Declare.
5672         * config/spu/predicates.md (spu_mem_operand): Remove.
5673         (spu_mov_operand): Update.
5674         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
5675         * config/spu/spu.c (regno_aligned_for_load): Remove.
5676         (reg_aligned_for_addr, spu_expand_load): Define.
5677         (spu_expand_extv): Reimplement and handle MEM.
5678         (spu_expand_insv): Handle MEM.
5679         (spu_sched_reorder): Handle insn's with length 0.
5680         (spu_legitimate_address_p): Reimplement.
5681         (store_with_one_insn_p): Return TRUE for any mode with size
5682         larger than 16 bytes.
5683         (address_needs_split): Define.
5684         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
5685         operands.
5686         (spu_convert_move): Define.
5687         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
5688         (spu_split_store): Change all MEM's to TImode.
5689         (spu_init_expanders): Preallocate registers that correspond to
5690         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
5691         mark_reg_pointer.
5692         (spu_split_convert): Define.
5693         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
5694         (_move<mode>, _movdi, _movti): Update predicate and condition.
5695         (load, store): Change to define_split.
5696         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
5697         extend<mode>ti2.
5698         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
5699         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
5700         define_insn_and_split of lshr<mode>3.
5701         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
5702         (<v>ashr<mode>3_imm): Define.
5703         (extv, extzv, insv): Allow MEM operands.
5704         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
5705         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
5706         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
5707         (_spu_convert2): Change to define_insn_and_split and remove the
5708         corresponding define_peephole2.
5709         (stack_protect_set, stack_protect_test, stack_protect_test_si):
5710         Change predicates to memory_operand.
5711
5712 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
5713
5714         * config/arm/thumb2.md: Add 16-bit multiply instructions.
5715
5716 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
5717
5718         PR tree-optimization/40219
5719         * tree.c (iterative_hash_expr): Make sure the builtin function is
5720         a normal builtin function and not a front end or back end builtin
5721         before indexing into the built_in_decls array.
5722
5723 2009-05-22  Richard Guenther  <rguenther@suse.de>
5724
5725         PR middle-end/38964
5726         * alias.c (write_dependence_p): Do not use TBAA for answering
5727         anti-dependence or output-dependence.
5728         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
5729         (emit_pointer_definition): Remove.
5730         (emit_alias_warning): Likewise.
5731         (find_what_var_points_to): Remove TBAA pruning code.
5732         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
5733         violations.
5734         (compute_points_to_sets): Remove code computing the set of
5735         dereferenced pointers.
5736         * tree-data-ref.c (dr_may_alias_p): Properly use the split
5737         oracle for querying anti and output dependencies.
5738         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
5739         if TBAA may be applied.
5740         (refs_anti_dependent_p): New function.
5741         (refs_output_dependent_p): Likewise.
5742         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
5743         (refs_output_dependent_p): Likewise.
5744         * doc/tree-ssa.texi (Memory model): New section.
5745         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
5746         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
5747         * cfgexpand.c (expand_gimple_basic_block): Do not handle
5748         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
5749         * expr.c (expand_expr_real_1): Likewise.
5750         * gimple-low.c (lower_stmt): Likewise.
5751         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
5752         (dump_gimple_cdt): Remove.
5753         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
5754         (gimple_size): Likewise.
5755         (walk_gimple_op): Likewise.
5756         (is_gimple_stmt): Likewise.
5757         (walk_stmt_load_store_addr_ops): Likewise.
5758         (gimple_build_cdt): Remove.
5759         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
5760         * gimple.h (gimple_cdt_new_type): Remove.
5761         (gimple_cdt_new_type_ptr): Likewise.
5762         (gimple_cdt_set_new_type): Likewise.
5763         (gimple_cdt_location): Likewise.
5764         (gimple_cdt_location_ptr): Likewise.
5765         (gimple_cdt_set_location): Likewise.
5766         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
5767         * tree-cfg.c (remove_useless_stmts_1): Do not handle
5768         GIMPLE_CHANGE_DYNAMIC_TYPE.
5769         (verify_types_in_gimple_stmt): Likewise.
5770         * tree-inline.c (estimate_num_insns): Likewise.
5771         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
5772         (copy_decl_to_var): Likewise.
5773         (copy_result_decl_to_var): Likewise.
5774         * tree-pretty-print.c (dump_generic_node): Do not handle
5775         CHANGE_DYNAMIC_TYPE_EXPR.
5776         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
5777         * tree-ssa-operands.c (get_expr_operands): Likewise.
5778         * tree-ssa-structalias.c (struct variable_info): Remove
5779         no_tbaa_pruning member.
5780         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
5781         (unify_nodes): Do not copy it.
5782         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
5783         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
5784         (set_uids_in_ptset): Do not check it.
5785         (find_what_var_points_to): Likewise.
5786         (compute_tbaa_pruning): Remove.
5787         (compute_points_to_sets): Do not call it.
5788         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
5789         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
5790         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
5791         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
5792         (DECL_NO_TBAA_P): Likewise.
5793         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
5794         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
5795         (expand_omp_atomic_pipeline): Do not set it.
5796         * print-tree.c (print_node): Do not dump it.
5797         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
5798         redundant check.
5799
5800 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
5801
5802         PR target/39856
5803         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
5804         for clobber.
5805
5806 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
5807
5808         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
5809         non-external.
5810
5811 2009-05-22  Ben Elliston  <bje@au.ibm.com>
5812
5813         * Makefile.in (bversion.h, s-bversion): New targets.
5814         (TOPLEV_H): Add bversion.h.
5815         * toplev.h: Include "bversion.h".
5816         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
5817         the __format__ attribute only if compiling with the same version
5818         of GCC as the sources (the "build version").
5819
5820 2009-05-22  Ben Elliston  <bje@au.ibm.com>
5821
5822         * c-format.c (handle_format_attribute): Fix comment typo.
5823
5824 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
5825
5826         PR target/37846
5827         * config/ia64/ia64.opt (mfused-madd): New.
5828         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
5829         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
5830         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
5831         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
5832         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
5833         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
5834         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
5835         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
5836         instruction if !TARGET_FUSED_MADD.
5837         (fpma, fpms): Remove colon from name.
5838
5839 2009-05-22  Richard Guenther  <rguenther@suse.de>
5840
5841         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
5842         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
5843         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
5844         TARGET_MEM_REF.
5845         (create_expression_by_pieces): Only convert if necessary.
5846         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
5847         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
5848
5849 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
5850
5851         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
5852         regular pattern from a template and rename it ...
5853         (*extzv_truncsi_exts): ... to this.
5854
5855 2009-05-21  Richard Guenther  <rguenther@suse.de>
5856
5857         * cgraph.h (struct cgraph_node): Remove inline_decl member.
5858         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
5859         (cgraph_default_inline_p): Likewise.
5860         (cgraph_decide_inlining_incrementally): Likewise.
5861
5862 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5863             Uros Bizjak  <ubizjak@gmail.com>
5864
5865         * config/i386/cpuid.h (bit_MOVBE): New.
5866
5867         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
5868
5869         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
5870         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
5871         (ix86_handle_option): Handle OPT_mmovbe.
5872         (ix86_target_string): Add -mmovbe.
5873         (pta_flags): Add PTA_MOVBE.
5874         (processor_alias_table): Add PTA_MOVBE to "atom".
5875         (override_options): Handle PTA_MOVBE.
5876
5877         * config/i386/i386.h (TARGET_MOVBE): New.
5878
5879         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
5880         (*bswapsi_movbe): New.
5881         (*bswapdi_movbe): Likewise.
5882         (bswapdi2): Renamed to ...
5883         (*bswapdi_1): This.
5884         (bswapdi2): New expander.
5885
5886         * config/i386/i386.opt (mmovbe): New.
5887
5888         * doc/invoke.texi: Document -mmovbe.
5889
5890 2009-05-21  Taras Glek  <tglek@mozilla.com>
5891
5892         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
5893         * gcc-plugin.h (plugin_init): Updated signature.
5894         * gcc-plugin.h (plugin_name_args): Moved to this header.
5895         * doc/plugins.texi (plugin_init): Updated documention to reflect
5896         API change.
5897         * doc/plugins.texi (plugin_name_args): Added to documention.
5898
5899 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
5900
5901         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
5902         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
5903
5904 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
5905
5906         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
5907         JUMP_TABLE_DATA_P predicates where applicable.
5908         * config/i386/predicates.md: Ditto.
5909         * config/i386/sse.md: Ditto.
5910
5911 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
5912
5913         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
5914         operand2 -128 override length_immediate attribute to 1.
5915         * config/i386/predicates.md (constm128_operand): New predicate.
5916
5917         * config/i386/i386.c (memory_address_length): Handle %r12
5918         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
5919         also check REGNO.
5920         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
5921         mode look through optional ZERO_EXTEND and SUBREG.
5922         * config/i386/i386.md (R12_REG): New define_constant.
5923         (prefix_data16): For sse unit set also for MODE_TI insns.
5924         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
5925         insns set if operand 1 is ext_QIreg_operand.
5926         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
5927         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
5928         immediate.
5929         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
5930         mode from MODE_DI to MODE_SI.
5931         (movdi_1_rex64): Override modrm and length_immediate attributes
5932         only for movabs (TYPE_IMOV, alternative 2).
5933         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
5934         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
5935         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
5936         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
5937         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
5938         prefix_rex attribute if DImode.
5939         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
5940         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
5941         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
5942         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
5943         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
5944         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
5945         Likewise.  For TYPE_IMOV clear length_immediate attribute.
5946         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
5947         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
5948         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
5949         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
5950         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
5951         or one operand TYPE_ISHIFT.
5952         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
5953         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
5954         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
5955         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
5956         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
5957         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
5958         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
5959         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
5960         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
5961         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
5962         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
5963         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
5964         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
5965         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
5966         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
5967         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
5968         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
5969         set mode attribute, don't override length attribute.
5970         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
5971         to 1.
5972         (return_internal_long): Set length attribute to 2 instead of 1.
5973         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
5974         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
5975         prefix_rex attribute.
5976         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
5977         New predicates.
5978         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
5979
5980 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5981
5982         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
5983
5984 2009-05-20  Ian Lance Taylor  <iant@google.com>
5985
5986         * tree.c (build_tree_list_vec_stat): New function.
5987         (ctor_to_vec): New function.
5988         (build_nt_call_vec): New function.
5989         (build_call_array): Change args to be a const pointer.
5990         (build_call_vec): New function.
5991         * tree.h (build_nt_call_vec): Declare.
5992         (build_tree_list_vec_stat): Declare.
5993         (build_tree_list_vec): Define.
5994         (build_call_array): Update declaration.
5995         (build_call_vec): Declare.
5996         (ctor_to_vec): Declare.
5997         * c-common.c (tree_vector_cache): New static variable.
5998         (make_tree_vector): New function.
5999         (release_tree_vector): New function.
6000         (make_tree_vector_single): New function.
6001         (make_tree_vector_copy): New function.
6002         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
6003         (make_tree_vector_single, make_tree_vector_copy): Declare.
6004         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
6005         (c_parser_expr_list): Don't manage cache here, instead call
6006         make_tree_vector.
6007         (c_parser_release_expr_list): Remove static function.
6008         (c_parser_vec_to_tree_list): Remove static function.
6009         (c_parser_attributes): Call build_tree_list_vec instead of
6010         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
6011         c_parser_release_expr_list.
6012         (c_parser_postfix_expression_after_primary): Likewise.
6013         (c_parser_objc_keywordexpr): Likewise.
6014
6015 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
6016
6017         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
6018         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
6019         TARGET_CONVERT_TO_TYPE.
6020         * hooks.c (hook_tree_const_tree_null): Define.
6021         * hooks.h (hook_tree_const_tree_null): Declare.
6022         * target.h (struct gcc_target):  Add invalid_parameter_type,
6023         invalid_return_type, promoted_type, and convert_to_type fields.
6024         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
6025         (TARGET_INVALID_RETURN_TYPE): Define.
6026         (TARGET_PROMOTED_TYPE): Define.
6027         (TARGET_CONVERT_TO_TYPE): Define.
6028         (TARGET_INITIALIZER): Update for new fields.
6029         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
6030         (grokparms): Check targetm.invalid_parameter_type.
6031         * c-typeck.c (default_conversion): Check targetm.promoted_type.
6032         * c-convert.c (convert): Check targetm.convert_to_type.
6033
6034 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
6035
6036         * config/mips/mips.md (*extenddi_truncate<mode>,
6037         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
6038         defintions.
6039         (*extendhi_truncateqi): New define_insn_and_sptit.
6040
6041 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
6042
6043         PR middle-end/40204
6044         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
6045         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
6046
6047 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
6048
6049         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
6050         the operand of VIEW_CONVERT_EXPR.
6051
6052 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
6053
6054         * config/i386/driver-i386.c (host_detect_local_cpu): Check
6055         extended family and model for Intel processors.  Support Intel Atom.
6056
6057 2009-05-20  Olivier Hainque  <hainque@adacore.com>
6058
6059         * gstab.h (stab_code_type): Define, to be used instead of the
6060         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
6061         notice.
6062         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
6063         occurrences by stab_code_type.
6064         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
6065
6066 2009-05-20  Martin Jambor  <mjambor@suse.cz>
6067
6068         * tree-flow.h (insert_edge_copies_seq): Undeclare.
6069         (sra_insert_before): Likewise.
6070         (sra_insert_after): Likewise.
6071         (sra_init_cache): Likewise.
6072         (sra_type_can_be_decomposed_p): Likewise.
6073         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
6074         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
6075         (sra_insert_before): Likewise.
6076         (sra_insert_after): Likewise.
6077         (sra_init_cache): Likewise.
6078         (insert_edge_copies_seq): Made static and moved upwards.
6079
6080         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
6081         case.
6082
6083         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
6084
6085         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
6086         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
6087         simple copies.
6088
6089 2009-05-20  Richard Guenther  <rguenther@suse.de>
6090
6091         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
6092         with mismatched comparison modes.
6093
6094 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6095
6096         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
6097         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
6098         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
6099         with shifts for Thumb2.
6100         (orsi_notsi): New for orn.
6101         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
6102         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
6103         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
6104         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
6105         Don't invert remainder for IOR.
6106         
6107 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
6108
6109         PR tree-optimization/40087
6110         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
6111         number_of_iterations_ne): Rename never_infinite argument.
6112         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
6113         number_of_iterations_le): Handle pointer-type ivs when
6114         exit_must_be_taken is false.
6115         (number_of_iterations_cond):  Do not always assume that
6116         exit_must_be_taken if the control variable is a pointer.
6117
6118 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6119
6120         * c-typeck.c (build_binary_op): Allow % on integal vectors.
6121         * doc/extend.texi (Vector Extension): Document that % is allowed too.
6122
6123 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6124
6125         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
6126         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
6127
6128 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6129
6130         PR c/40172
6131         * c.opt (Wlogical-op): Disabled by default.
6132         * c-opt (c_common_post_options): Do not enable Wlogical-op with
6133         Wextra.
6134         * doc/invoke.texi (Wlogical-op): Likewise.
6135         
6136 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
6137
6138         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
6139         into CASE_CONVERT.
6140         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
6141         Propagate the type of the first operand.
6142         <ASSERT_EXPR>: Simplify.
6143         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
6144         Rewrite using the RHS code as discriminant.
6145         <NOP_EXPR>: Turn into CASE_CONVERT.
6146         <PLUS_EXPR>: Propagate the type of the first operand.
6147
6148 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
6149
6150         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
6151         (ia64_dconst_0_375): New.
6152         * config/ia64/ia64.c (ia64_override_options): Remove
6153         -minline-sqrt-min-latency warning.
6154         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
6155         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
6156         * config/ia64/ia64.md (*sqrt_approx): Remove.
6157         (sqrtsf2): Remove #if 0.
6158         (sqrtsf2_internal_thr): Rewrite and move to div.md.
6159         (sqrtdf): Remove assert.
6160         (sqrtdf2_internal_thr): Rewrite and move to div.md.
6161         (sqrtxf2): Remove #if 0.
6162         (sqrtxf2_internal_thr): Rewrite and move to div.md.
6163         * div.md (sqrt_approx_rf): New.
6164         (sqrtsf2_internal_thr): New implementation.
6165         (sqrtsf2_internal_lat): New.
6166         (sqrtdf2_internal_thr: New implementation.
6167         (sqrtxf2_internal): New implementation.
6168
6169 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
6170             Hans-Peter Nilsson  <hp@axis.com>
6171
6172         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
6173         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
6174         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
6175         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
6176         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
6177         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
6178         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
6179         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
6180         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
6181         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
6182         * c-common.c: ...from here.
6183
6184 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6185
6186         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
6187
6188 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6189
6190         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
6191
6192 2009-05-19  Ben Elliston  <bje@au.ibm.com>
6193
6194         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
6195         assignments with memcpy calls.
6196         (add_fdes): Likewise.
6197         (binary_search_unencoded_fdes): Likewise.
6198         (linear_search_fdes): Eliminate type puns.
6199         
6200 2009-05-19  Richard Guenther  <rguenther@suse.de>
6201
6202         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
6203         not falsely claim to have propagated into all uses.
6204
6205 2009-05-19  Ben Elliston  <bje@au.ibm.com>
6206
6207         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
6208         version to v3.0.
6209
6210 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6211
6212         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
6213         * config/sh/sh.c (sh_legitimate_address_p): Make static.
6214         (TARGET_LEGITIMATE_ADDRESS_P): New.
6215         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6216         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
6217         
6218 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
6219
6220         PR debug/40109
6221         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
6222         child of the containing namespace's DIE.
6223
6224 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
6225
6226         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
6227         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
6228         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
6229         extend patterns.
6230
6231 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
6232
6233         PR target/39942
6234         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
6235         gen_align with gen_pad.
6236         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
6237         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
6238
6239         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
6240         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
6241
6242         * config/i386/i386.md (align): Renamed to ...
6243         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
6244         ASM_OUTPUT_MAX_SKIP_PAD.
6245
6246 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
6247
6248         * config.gcc: Fix variable syntax.
6249
6250         PR target/39531
6251         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
6252         before calling exact_log2.
6253         (output_iorsi3): Likewise.
6254         (output_xorsi3): Likewise.
6255
6256 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6257
6258         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
6259         for the none zero constant operand except for EQ and NE
6260         comprisons even when the first operand is R0.
6261
6262 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
6263
6264         * config/s390/2064.md: Remove trailing whitespaces.
6265         * config/s390/2084.md: Likewise.
6266         * config/s390/constraints.md: Likewise.
6267         * config/s390/fixdfdi.h: Likewise.
6268         * config/s390/libgcc-glibc.ver: Likewise.
6269         * config/s390/s390-modes.def: Likewise.
6270         * config/s390/s390-protos.h: Likewise.
6271         * config/s390/s390.c: Likewise.
6272         * config/s390/s390.h: Likewise.
6273         * config/s390/s390.md: Likewise.
6274         * config/s390/tpf-unwind.h: Likewise.
6275
6276 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6277
6278         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
6279
6280 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6281
6282         M68K TLS support.
6283         * configure.ac (m68k-*-*): Check if binutils support TLS.
6284         * configure: Regenerate.
6285         * config/m68k/predicates.md (symbolic_operand): Extend comment.
6286         * config/m68k/constraints.md (Cu): New constraint.
6287         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
6288         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
6289         (movsi): Handle TLS symbols.
6290         (addsi3_5200): Handle XTLS symbols, indent.
6291         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
6292         (m68k_tls_reference_p): Declare.
6293         (m68k_legitimize_address): Declare.
6294         (m68k_unwrap_symbol): Declare.
6295         * config/m68k/m68k.opt (mxtls): New option.
6296         * config/m68k/m68k.c (ggc.h): Include.
6297         (m68k_output_dwarf_dtprel): Implement hook.
6298         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
6299         (m68k_expand_prologue): Load GOT pointer when function needs it.
6300         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
6301         (m68k_legitimate_constant_address_p): Same.
6302         (m68k_decompose_address): Handle TLS references.
6303         (m68k_get_gp): New static function.
6304         (enum m68k_reloc): New contants.
6305         (TLS_RELOC_P): New macro.
6306         (m68k_wrap_symbol): New static function.
6307         (m68k_unwrap_symbol): New function.
6308         (m68k_final_prescan_insn_1): New static function.
6309         (m68k_final_prescan_insn): New function.
6310         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
6311         functions.
6312         (legitimize_pic_address): Handle TLS references..
6313         (m68k_tls_get_addr, m68k_get_tls_get_addr)
6314         (m68k_libcall_value_in_a0_p)
6315         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
6316         (m68k_call_m68k_read_tp): Helper variables and functions for ...
6317         (m68k_legitimize_tls_address): Handle TLS references.
6318         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
6319         New functions.
6320         (m68k_legitimize_address): Handle TLS symbols.
6321         (m68k_get_reloc_decoration): New static function.
6322         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
6323         UNSPEC_RELOC32.
6324         (m68k_output_dwarf_dtprel): Implement hook.
6325         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
6326         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
6327         m68k_call_* routines.
6328         (sched_attr_op_type): Handle TLS symbols.
6329         (gt-m68k.h): Include.
6330         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
6331         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
6332
6333 2009-05-18  Martin Jambor  <mjambor@suse.cz>
6334
6335         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
6336         (visit_store_addr_for_mod_analysis): New function.
6337         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
6338         (determine_cst_member_ptr): Use gimple_assign_single_p.
6339         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
6340         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
6341         operands.  Don't check number of operands of a NOP_EXPR.
6342
6343 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
6344
6345         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
6346
6347 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6348
6349         PR c/40172
6350         * c-common.c (warn_logical_operator): Don't warn if one of
6351         expression isn't always true or false.
6352
6353 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
6354
6355         * config/i386/biarch32.h: New file.
6356         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
6357
6358 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
6359
6360         * config/mips/mips.md (*zero_extend<mode>_trunchi,
6361         *zero_extend<mode>_truncqi): Merge these into ...
6362         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
6363         Name the pattern following this as *zero_extendhi_truncqi.
6364
6365 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
6366
6367         PR middle-end/39301
6368         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
6369         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
6370         (output_info): Make field HOST_WIDEST_INT.
6371         (print_statistics): Use HOST_WIDEST_INT_PRINT.
6372         (dump_bitmat_statistics): Same.
6373
6374 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
6375
6376         * config.gcc (use_gcc_stdint):  Set to wrap.
6377         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
6378         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
6379         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6380         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6381         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6382         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6383         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6384         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6385
6386 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
6387
6388         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
6389         tune_64.
6390         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
6391         Move definitions earlier.
6392         (OPT_ARCH64, OPT_ARCH32): Define.
6393         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
6394         and tune_64.
6395
6396 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
6397
6398         PR target/40153
6399         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
6400         implies.
6401
6402 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
6403
6404         * arm.md (movdi2): Copy non-reg values to DImode registers.
6405
6406 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
6407
6408         PR target/39942
6409         * final.c (label_to_max_skip): New function.
6410         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
6411         CODE_LABEL_NUMBER <= max_labelno.
6412         * output.h (label_to_max_skip): New prototype.
6413         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
6414         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
6415         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
6416         Handle CODE_LABELs with >= 16 byte alignment or with
6417         max_skip == (1 << align) - 1.
6418         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
6419         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
6420
6421         PR target/39942
6422         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
6423         .p2align 3 if MAX_SKIP is smaller than 7.
6424         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
6425
6426 2009-05-15  Ian Lance Taylor  <iant@google.com>
6427
6428         * alias.c (struct alias_set_entry_d): Rename from struct
6429         alias_set_entry.  Change all uses.
6430         * except.c (struct call_site_record_d): Rename from struct
6431         call_site_record.  Change all uses.
6432         * except.h (struct eh_region_d): Rename from struct eh_region.
6433         Change all uses.
6434         * gcse.c (struct hash_table_d): Rename from struct hash_table.
6435         Change all uses.
6436         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
6437         ivtype_map_elt.  Change all uses.
6438         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
6439         Change all uses.
6440         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
6441         * graphite.h (struct name_tree_d): Rename from struct name_tree.
6442         Change all uses.
6443         (struct sese_d): Rename from struct sese.  Change all uses.
6444         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
6445         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
6446         * optabs.h (struct optab_d): Rename from struct optab.  Change all
6447         uses.
6448         (struct convert_optab_d): Rename from struct convert_optab.
6449         Change all uses.
6450         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
6451         ipa_opt_pass.  Change all uses.
6452         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
6453         all uses.
6454
6455         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
6456         defined as a typedef.
6457         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
6458         defined as a tag.
6459
6460 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6461
6462         PR 16302
6463         * fold-const.c (make_range,build_range_check,merge_ranges): Move
6464         declaration to...
6465         (merge_ranges): Returns bool. 
6466         * tree.h (make_range): .. to here.
6467         (build_range_check): Likewise.
6468         (merge_ranges): Likewise. Renamed from merge_ranges.
6469         * c-typeck.c (parser_build_binary_op): Update calls to
6470         warn_logical_operator.
6471         * c-common.c (warn_logical_operator): Add new warning.
6472         * c-common.h (warn_logical_operator): Update declaration.
6473         
6474 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6475
6476         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
6477         
6478 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6479
6480         * doc/install.texi: Document MPC requirements, flags etc.
6481
6482         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
6483         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
6484         Evaluate constant arguments.
6485         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
6486         (fold_builtin_1): Likewise, also evaluate constant arguments.
6487         Remove superfluous break.
6488         (do_mpc_ckconv): New.
6489         * real.h: Include mpc.h.
6490         * toplev.c (print_version): Output MPC version info if available.
6491
6492 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
6493
6494         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
6495
6496 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6497
6498         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
6499         only once.
6500
6501 2009-05-15  Jan Hubicka  <jh@suse.cz>
6502
6503         * doc/invoke.texi (max-early-inliner-iterations): New flag.
6504         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
6505         (try_inline): Fix return value.
6506         (cgraph_decide_inlining_incrementally): Honor new value.
6507         (cgraph_early_inlining): Handle indirect inlining.
6508         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
6509
6510 2009-05-15  Jan Hubicka  <jh@suse.cz>
6511
6512         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
6513         * cgraphunit.c (cgraph_finalize_function): Set it.
6514         (cgraph_expand_function): Use it.
6515
6516 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
6517
6518         * real.c (encode_ieee_half): Define.
6519         (decode_ieee_half): Define.
6520         (ieee_half_format): Define.
6521         (arm_half_format): Define.
6522         * real.h (ieee_half_format): Declare.
6523         (arm_half_format): Declare.
6524
6525 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
6526
6527         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
6528         swapped, and reversed optabs exist before trying to use them.
6529
6530 2009-05-15  Paul Brook  <paul@codesourcery.com>
6531             Sandra Loosemore  <sandra@codesourcery.com>
6532
6533         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
6534         loads.  Allow PRE_DEC.
6535         (output_move_neon): Handle PRE_DEC.
6536         (arm_print_operand): Add 'A' for neon structure loads.
6537         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
6538         * config/arm/neon.md (neon_mov): Update comment.
6539         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
6540         calls.
6541         (Um): New constraint.
6542
6543 2009-05-15  Jan Hubicka  <jh@suse.cz>
6544
6545         Revert the following patch until testsuite fallout is fixed:
6546         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
6547         * cgraph.h (struct inline_summary): New filed self_wize,
6548         size_inlining_benefit, self_time and time_inlining_benefit.
6549         (struct cgraph_global_info): Replace insns by time ans size fields.
6550         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
6551         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
6552         (ipcp_update_callgraph): Do not touch function bodies.
6553         * ipa-inline.c: Include except.h
6554         (MAX_TIME): New constant.
6555         (overall_insns): Remove
6556         (overall_size, max_benefit): New static variables.
6557         (cgraph_estimate_time_after_inlining): New function.
6558         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
6559         (cgraph_clone_inlined_nodes): Update size.
6560         (cgraph_mark_inline_edge): Update size.
6561         (cgraph_estimate_growth): Use size info.
6562         (cgraph_check_inline_limits): Check size.
6563         (cgraph_default_inline_p): Likewise.
6564         (cgraph_edge_badness): Compute badness based on benefit and size cost.
6565         (cgraph_decide_recursive_inlining): Check size.
6566         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
6567         and times.
6568         (cgraph_decide_inlining): Likewise.
6569         (cgraph_decide_inlining_incrementally): Likewise; honor
6570         PARAM_EARLY_INLINING_INSNS.
6571         (likely_eliminated_by_inlining_p): New predicate.
6572         (estimate_function_body_sizes): New function.
6573         (compute_inline_parameters): Use it.
6574         * except.c (must_not_throw_labels): New function.
6575         * except.h (must_not_throw_labels): Declare.
6576         * tree-inline.c (init_inline_once): Kill inlining_weigths
6577         * tree-ssa-structalias.c: Avoid uninitialized warning.
6578         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
6579         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
6580         (PARAM_INLINE_CALL_COST): Remove.
6581         (PARAM_EARLY_INLINING_INSNS): New.
6582
6583 2009-05-15  Richard Guenther  <rguenther@suse.de>
6584
6585         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
6586         not TODO_update_ssa.
6587
6588 2009-05-15  Richard Guenther  <rguenther@suse.de>
6589
6590         PR tree-optimization/39999
6591         * gimple.h (gimple_expr_type): Use the expression type looking
6592         through useless conversions.
6593         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
6594         (vn_nary_op_insert_stmt): Likewise.
6595         (simplify_binary_expression): Likewise.
6596
6597 2009-05-15  Richard Guenther  <rguenther@suse.de>
6598
6599         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
6600         New options, enabled by default.
6601         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
6602         Document.
6603         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
6604         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
6605         * tree-ssa-structalias.c (gate_tree_pta): New function.
6606         (pass_build_alias): Use it.
6607
6608 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
6609
6610         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
6611         recurse on an invariant address if a conversion from a pointer
6612         type to a wider integer type is involved.
6613
6614 2009-05-15  Jan Hubicka  <jh@suse.cz>
6615
6616         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
6617         * cgraph.h (struct inline_summary): New filed self_wize,
6618         size_inlining_benefit, self_time and time_inlining_benefit.
6619         (struct cgraph_global_info): Replace insns by time ans size fields.
6620         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
6621         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
6622         (ipcp_update_callgraph): Do not touch function bodies.
6623         * ipa-inline.c: Include except.h
6624         (MAX_TIME): New constant.
6625         (overall_insns): Remove
6626         (overall_size, max_benefit): New static variables.
6627         (cgraph_estimate_time_after_inlining): New function.
6628         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
6629         (cgraph_clone_inlined_nodes): Update size.
6630         (cgraph_mark_inline_edge): Update size.
6631         (cgraph_estimate_growth): Use size info.
6632         (cgraph_check_inline_limits): Check size.
6633         (cgraph_default_inline_p): Likewise.
6634         (cgraph_edge_badness): Compute badness based on benefit and size cost.
6635         (cgraph_decide_recursive_inlining): Check size.
6636         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
6637         and times.
6638         (cgraph_decide_inlining): Likewise.
6639         (cgraph_decide_inlining_incrementally): Likewise; honor
6640         PARAM_EARLY_INLINING_INSNS.
6641         (likely_eliminated_by_inlining_p): New predicate.
6642         (estimate_function_body_sizes): New function.
6643         (compute_inline_parameters): Use it.
6644         * except.c (must_not_throw_labels): New function.
6645         * except.h (must_not_throw_labels): Declare.
6646         * tree-inline.c (init_inline_once): Kill inlining_weigths
6647         * tree-ssa-structalias.c: Avoid uninitialized warning.
6648         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
6649         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
6650         (PARAM_INLINE_CALL_COST): Remove.
6651         (PARAM_EARLY_INLINING_INSNS): New.
6652         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
6653         (inline-call-cost): Remove.
6654         (early-inlining-insns): New.
6655
6656 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
6657
6658         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
6659         for bounds.
6660         (print_int_cst_bounds_in_octal_p): Likewise.
6661         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
6662         with subtypes.
6663         * dwarf2out.c (base_type_die): Likewise.
6664         (is_subrange_type): Delete.
6665         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
6666         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
6667         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
6668         if the destination type is boolean.
6669         (build_range_check): Do not special-case subtypes.
6670         (fold_sign_changed_comparison): Likewise.
6671         (fold_unary): Likewise.
6672         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
6673         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
6674         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
6675         * tree.c (subrange_type_for_debug_p): New predicate based on the
6676         former is_subrange_type.
6677         * tree.h (subrange_type_for_debug_p): Declare.
6678         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
6679         (convert_affine_scev): Remove call to above function.
6680         (chrec_convert_aggressive): Likewise.
6681         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
6682         false for conversions involving subtypes.
6683         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
6684         (vrp_val_min): Likewise.
6685         (needs_overflow_infinity): Likewise.
6686         (extract_range_from_unary_expr): Likewise.
6687
6688 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
6689
6690         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
6691         * config/frv/frv.c: Likewise.
6692         * config/s390/s390.c: Likewise.
6693         * config/sparc/sparc.h: Likewise.
6694         * config/i386/i386.h: Likewise.
6695         * config/i386/i386.c: Likewise.
6696         * config/crx/crx.c: Likewise.
6697         * config/m68hc11/m68hc11.h: Likewise.
6698         * config/iq2000/iq2000.c: Likewise.
6699         * config/mn10300/mn10300.h: Likewise.
6700         * config/mn10300/mn10300.c: Likewise.
6701         * config/m68k/m68k.c: Likewise.
6702         * config/rs6000/rs6000.c: Likewise.
6703         * config/rs6000/xcoff.h: Likewise.
6704         * config/rs6000/linux64.h: Likewise.
6705         * config/rs6000/sysv4.h: Likewise.
6706         * config/score/score3.c: Likewise.
6707         * config/score/score7.c: Likewise.
6708         * config/score/score.c: Likewise.
6709         * config/arm/arm.md: Likewise.
6710         * config/mips/mips.c: Likewise.
6711         * config/mips/mips.md: Likewise.
6712         * config/bfin/bfin.h: Likewise.
6713         * config/pa/pa.c: Likewise.
6714         * config/pa/constraints.md: Likewise.
6715
6716         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
6717         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
6718         * config/pdp11/pdp11.h: Use memory_address_p instead.
6719
6720 2009-05-14  Ian Lance Taylor  <iant@google.com>
6721
6722         * passes.c (finish_optimization_passes): Change i to int.
6723         * plugin.c (plugins_active_p): Change event to int.
6724         (dump_active_plugins): Likewise.
6725         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
6726         Add cast.
6727         * tree.c (tree_range_check_failed): Change c to unsigned int.
6728         (omp_clause_range_check_failed): Likewise.
6729         (build_common_builtin_nodes): Change mode to int.  Add cast.
6730         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
6731         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
6732
6733         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
6734         ++ or -- with a variable of enum type.
6735
6736 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
6737
6738         PR driver/40144
6739         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
6740
6741 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
6742
6743         * store-motion.c: Do not include params.h
6744         * Makefile.in: Fix dependencies for various files.
6745
6746 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
6747
6748         * auto-inc-dec.c: Fix pass description, remove apparent
6749         accidental duplication.
6750
6751 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
6752
6753         PR middle-end/40147
6754         * ipa-utils.h (memory_identifier_string): Moved to ...
6755         * tree.h (memory_identifier_string): Here.  Add GTY(()).
6756
6757 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
6758
6759         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
6760         in the former documentation of...
6761         (GO_IF_LEGITIMATE_ADDRESS): ... this.
6762         * ira-conflicts.c (get_dup_num): Use address_operand.
6763         * targhooks.c (default_legitimate_address_p): New.
6764         * targhooks.h (default_legitimate_address_p): New.
6765         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
6766         Call hook.
6767         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
6768         * target.h (struct target): Add legitimate_address_p.
6769         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
6770         (TARGET_INITIALIZER): Include it.
6771
6772         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6773         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
6774         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
6775         (TARGET_LEGITIMATE_ADDRESS_P): New.
6776
6777         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6778         (REG_OK_STRICT_P): Delete.
6779         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
6780         (frv_legitimate_address_p_1): ... this.
6781         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
6782         (frv_legitimate_address_p_1): ... the renamed old
6783         frv_legitimate_address_p.
6784         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
6785         (TARGET_LEGITIMATE_ADDRESS_P): New.
6786
6787         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6788         * config/s390/s390-protos.h (legitimate_address_p): Remove.
6789         * config/s390/s390.c (legitimate_address_p): Rename to...
6790         (s390_legitimate_address_p): ... this, make static.
6791         (legitimize_address): Adjust call.
6792         (TARGET_LEGITIMATE_ADDRESS_P): New.
6793         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
6794
6795         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6796         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
6797         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
6798         (TARGET_LEGITIMATE_ADDRESS_P): New.
6799
6800         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6801         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
6802         * config/spu/spu.c (spu_legitimate_address): Rename to...
6803         (spu_legitimate_address_p): ... this, make static.
6804         (TARGET_LEGITIMATE_ADDRESS_P): New.
6805
6806         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6807         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
6808         * config/sparc/sparc.c (legitimate_address_p): Rename to...
6809         (sparc_legitimate_address_p): ... this, make static and return bool.
6810         (legitimize_address): Adjust call.
6811         (TARGET_LEGITIMATE_ADDRESS_P): New.
6812
6813         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6814         * config/i386/i386-protos.h (legitimate_address_p): Remove.
6815         * config/i386/i386.c (legitimate_address_p): Rename to...
6816         (ix86_legitimate_address_p): ... this, make static.
6817         (constant_address_p): Move after it, adjust call.
6818         (TARGET_LEGITIMATE_ADDRESS_P): New.
6819
6820         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6821         * config/avr/avr-protos.h (legitimate_address_p): Remove.
6822         * config/avr/avr.c (legitimate_address_p): Rename to...
6823         (avr_legitimate_address_p): ... this, make static.
6824         (legitimize_address): Adjust call.
6825         (TARGET_LEGITIMATE_ADDRESS_P): New.
6826
6827         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6828         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
6829         * config/crx/crx.c (crx_legitimate_address_p): Make static.
6830         (TARGET_LEGITIMATE_ADDRESS_P): New.
6831
6832         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6833         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
6834         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
6835         (TARGET_LEGITIMATE_ADDRESS_P): New.
6836
6837         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6838         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
6839         Remove.
6840         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
6841         Make static.
6842         (TARGET_LEGITIMATE_ADDRESS_P): New.
6843
6844         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6845         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
6846         Remove.
6847         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
6848         Rename to...
6849         (m68hc11_legitimate_address_p): ... this, make static.
6850         (go_if_legitimate_address_internal): Rename to...
6851         (m68hc11_legitimate_address_p_1): ... this.
6852         (legitimize_address): Adjust call.
6853         (TARGET_LEGITIMATE_ADDRESS_P): New.
6854
6855         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6856         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
6857         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
6858         (TARGET_LEGITIMATE_ADDRESS_P): New.
6859
6860         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6861         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
6862         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
6863         (mn10300_legitimate_address_p): ... this, make static.
6864         (TARGET_LEGITIMATE_ADDRESS_P): New.
6865
6866         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6867         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
6868         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
6869         (TARGET_LEGITIMATE_ADDRESS_P): New.
6870
6871         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6872         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
6873         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
6874         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6875         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
6876         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
6877         (rs6000_legitimate_address_p): ... this, make static.
6878         (TARGET_LEGITIMATE_ADDRESS_P): New.
6879         (REG_MODE_OK_FOR_BASE_P): Delete.
6880         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
6881
6882         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6883         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
6884         Delete.
6885         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
6886         static, adjust types.
6887         (TARGET_LEGITIMATE_ADDRESS_P): New.
6888
6889         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6890         * config/score/score.c (score_address_p): Rename to...
6891         (score_legitimate_address_p): ... this.
6892         (TARGET_LEGITIMATE_ADDRESS_P): New.
6893         * config/score/score3.c (score3_address_p): Rename to...
6894         (score3_legitimate_address_p): ... this.
6895         * config/score/score7.c (score7_address_p): Rename to...
6896         (score7_legitimate_address_p): ... this.
6897
6898         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
6899         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
6900         GO_IF_LEGITIMATE_ADDRESS): Delete.
6901         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
6902         thumb2_legitimate_address_p): Delete.
6903         (arm_legitimate_address_p): Rename to...
6904         (arm_legitimate_address_outer_p): ... this.
6905         * config/arm/constraints.md ("Uq"): Adjust call.
6906         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
6907         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
6908         to...
6909         (arm_legitimate_address_outer_p): ... this.
6910         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
6911         static.
6912         (TARGET_LEGITIMATE_ADDRESS_P): New.
6913
6914         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6915         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
6916         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
6917         (TARGET_LEGITIMATE_ADDRESS_P): New.
6918
6919         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6920         * config/vax/vax-protos.h (legitimate_address_p): Remove.
6921         * config/vax/vax.c (legitimate_address_p): Rename to...
6922         (vax_legitimate_address_p): ... this, make static.
6923         (TARGET_LEGITIMATE_ADDRESS_P): New.
6924
6925         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6926         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
6927         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
6928         (TARGET_LEGITIMATE_ADDRESS_P): New.
6929
6930         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6931         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
6932         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
6933         (mmix_legitimate_address_p): ... this, make static.
6934         (TARGET_LEGITIMATE_ADDRESS_P): New.
6935
6936         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6937         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
6938         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
6939         (TARGET_LEGITIMATE_ADDRESS_P): New.
6940
6941 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
6942
6943         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
6944         of MODE_COMPLEX_INT.
6945
6946 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6947
6948         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
6949         LCT_NORMAL in function call.
6950         * mips-tdump.c (print_file_desc): Add cast to enum type.
6951         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
6952         (mark_stabs): Add casts to enum types.
6953         (parse_stabs_common): Add casts to enum types.
6954
6955 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
6956
6957         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
6958         Check for invalid values of LETTER.
6959
6960 2009-05-13  Taras Glek  <tglek@mozilla.com>
6961
6962         * attribs.c (register_attribute): moved out attribute registration
6963         into register_attribute.
6964         * doc/plugins.texi: Documented register_attribute and
6965         PLUGIN_ATTRIBUTES.
6966         * gcc-plugin.h: Added forward decl for register_attribute.
6967         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
6968         * plugin.c (register_callback, invoke_plugin_callbacks): Added
6969         PLUGIN_ATTRIBUTES boilerplate.
6970
6971 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
6972
6973         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
6974         values even in sentinel and empty entries.
6975         (ms_printf_flag_specs):  Likewise.
6976         (ms_scanf_flag_specs):  Likewise.
6977         (ms_strftime_flag_specs):  Likewise.
6978         (ms_print_char_table):  Likewise.
6979         (ms_scan_char_table):  Likewise.
6980         (ms_time_char_table):  Likewise.
6981
6982 2009-05-13  Doug Kwan  <dougkwan@google.com>
6983
6984         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
6985
6986 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
6987
6988         * config/mips/mips.md (store): Add attributes for QI and HI.
6989         Update comment.
6990         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
6991         (truncdi<mode>2): ... this new pattern.
6992
6993 2009-05-13  Brad Hards  <bradh@kde.org>
6994
6995         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
6996
6997 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
6998             Ben Elliston <bje@au.ibm.com>
6999
7000         PR middle-end/40035
7001         * dse.c (check_mem_read_rtx): Guard against width == -1.
7002
7003 2009-05-13  Michael Matz  <matz@suse.de>
7004
7005         PR middle-end/39976
7006         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
7007         (trivially_conflicts_p): New function.
7008         (insert_backedge_copies): Use it.
7009
7010 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
7011
7012         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
7013         (handle_stdc_pragma): Use new enum constant names.
7014         (handle_pragma_float_const_decimal64): Ditto.
7015
7016 2009-05-13  Ian Lance Taylor  <iant@google.com>
7017
7018         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
7019         tree.def.
7020
7021 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
7022
7023         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
7024         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
7025         multilibs.
7026         * config/m68k/m68k.h (FL_UCLINUX): Define.
7027
7028 2009-05-13  Jan Hubicka  <jh@suse.cz>
7029
7030         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
7031
7032 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7033
7034         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
7035         unless -fschedule-insns is specified.
7036
7037 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7038
7039         PR target/39561
7040         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
7041         TARGET_EXPAND_CBRANCHDI4.
7042         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
7043         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
7044         (cmpeqdi): Fix comment.
7045
7046 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7047
7048         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
7049         (sh_legitimate_address_p): Likewise.
7050         * config/sh/sh.c (sh_legitimate_index_p): New.
7051         (sh_legitimate_address_p): Likewise.
7052         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
7053         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
7054         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
7055         (MAYBE_BASE_REGISTER_RTX_P): New macro.
7056         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
7057         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
7058         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
7059         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
7060         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
7061
7062 2009-05-12  Jan Hubicka  <jh@suse.cz>
7063
7064         * tree-inline.c (estimate_operator_cost): Add operands;
7065         when division happens by constant, it is cheap.
7066         (estimate_num_insns): Loads and stores are not having cost of 0;
7067         EH magic stuff is cheap; when computing runtime cost of switch,
7068         use log2 base of amount of its cases; builtin_expect has cost of 0;
7069         compute cost for moving return value of call.
7070         (init_inline_once): Initialize time_based flags.
7071         * tree-inline.h (eni_weights_d): Add time_based flag.
7072
7073 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7074
7075         * df-core.c: Update head documentation.
7076
7077 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
7078
7079         PR bootstrap/40118
7080         * rs6000.c (rs6000_generate_compare): Use op1b instead of
7081         shadowing exisiting variable op1.
7082
7083 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
7084
7085         PR target/37179
7086         * config/i386/driver-i386.c (processor_signatures): New enum.
7087         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
7088         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
7089         processor signature to detect geode processor.
7090
7091 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7092
7093         Revert:
7094
7095         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7096
7097         * optabs.c (prepare_cmp_insn): Temporarily disable test that
7098         causes spurious differences between trunk and cond-optab branch.
7099
7100 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7101
7102         * dojump.c (compare_from_rtx): Delete.
7103         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
7104         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
7105         if the comparison does not satisfy the predicate; test predicates for
7106         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
7107         further if one existing pattern fails.
7108         * expr.h (compare_from_rtx): Delete.
7109         (prepare_operand): Declare it.
7110         * optabs.c: Change "lib call" to "libcall" throughout.
7111         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
7112         HAVE_conditional_trap, emit_cmp_insn): Delete.
7113         (can_compare_p): Delete cmp_optab case.
7114         (prepare_float_lib_cmp): Return an rtx and a machine mode.
7115         Accept other parameters by value.
7116         (prepare_operand): Make non-static.
7117         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
7118         other parameters by value.  Try to widen operands here based on
7119         an optab_methods argument and looking at cbranch_optab.
7120         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
7121         loop.  Use cbranch_optab directly.
7122         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
7123         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
7124         assertion.
7125         (emit_conditional_move, emit_conditional_add): Inline what's needed
7126         of compare_from_rtx, using new prepare_cmp_insn for the rest.
7127         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
7128         with COMPARE.  Move cmov_optab and cstore_optab above
7129         with cbranch_optab, move cmp_optab down with ucmp_optab,
7130         remove tst_otpab.  Do not initialize trap_rtx.
7131         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
7132         for trap code.  Do not check HAVE_conditional_trap.  Use
7133         prepare_cmp_insn.  Accept no predicate for operand 3.
7134         * optabs.h (OTI_cmp): Mark as used only for libcalls.
7135         (OTI_ctrap, ctrap_optab): New.
7136         (tst_optab): Delete.
7137         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
7138         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
7139         with lookup of ctrap_optab.
7140         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
7141         Delete.
7142         (ctrap_optab): New.
7143
7144         * combine.c (combine_simplify_rtx, simplify_set): Do not
7145         special case comparing against zero for cc0 machines.
7146         * simplify-rtx.c (simplify_binary_operation_1): Never remove
7147         COMPARE on cc0 machines.
7148         (simplify_relational_operation): Return a new expression when
7149         a COMPARE could be removed.
7150         * final.c (final_scan_insn): Compare cc_status values
7151         against LHS of a (compare FOO (const_int 0)) cc0 source.
7152         Also check if cc_status.value is the full compare.
7153
7154         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
7155         (cstoreMM4): Document.
7156         (conditional_trap): Document ctrapMM4 instead.
7157         (sync_compare_and_swapMM): Refer to cbranchcc4.
7158         (Dependent Patterns): Eliminate obsolete information referring to
7159         the old jump optimization phase.
7160         (Canonicalization): Include cbranchcc4 case, omit canonicalization
7161         of compares with 0 on cc0 machines.
7162         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
7163         avoiding references to cc0.  Remove text about storing operands
7164         in cmpMM.
7165         * doc/tm.texi (Condition Codes): Include blurb on different
7166         condition code representations, separate into subsections for
7167         CC0, MODE_CC and conditional execution.
7168
7169         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
7170         alpha_emit_setcc): Accept operands and a machine mode.
7171         * config/alpha/alpha.c (alpha_emit_conditional_branch):
7172         Get code/op0/op1 from operands, use machine mode argument
7173         instead of alpha_compare.fp_p.  Emit the branch here.
7174         (alpha_emit_setcc): Likewise, and return boolean.
7175         (alpha_emit_conditional_move): Likewise.  Assert that
7176         cmp_op_mode == cmp_mode, and simplify accordingly.
7177         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
7178         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
7179         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
7180         Delete.
7181         (stack probe test): Use cbranchdi4.
7182         * config/alpha/predicates.md (alpha_cbranch_operator): New.
7183
7184         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
7185         * config/arc/arc.h (movsicc, movsfcc): Use it.
7186         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
7187         (cbranchsi4, cstoresi4): New.
7188         (cmpsi, bCC and sCC expanders): Remove. 
7189
7190         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
7191         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
7192         * config/arm/predicates.md (arm_comparison_operator): Only include
7193         floating-point operators if there is a hardware floating-point unit.
7194         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
7195         deferring to cbranch_cc and cstore_cc respectively.
7196         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
7197         cbranch_cc, cstore_cc): New.
7198         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
7199         arm_compare_op1.
7200         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
7201
7202         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
7203         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
7204         as an argument.
7205         (adjust_insn_length): Adjust calls.
7206         (avr_reorg): Handle (compare (foo) (const_int 0)).
7207         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
7208         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
7209         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
7210         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
7211         (bCC): Remove.
7212         (cbranchqi4, cbranchhi4, cbranchsi4): New.
7213         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
7214
7215         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
7216         (cbranchsi4, cstorebi4, cstoresi4): New.
7217         (movbisi): This insn is duplicate, split it to zero_extend.
7218         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
7219         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
7220         (bfin_optimize_loop): Use cbranch expander.
7221         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
7222         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
7223         (bfin_bimode_comparison_operator): ... this.
7224         (bfin_direct_comparison_operator): New.
7225  
7226         * config/cris/cris.c (cris_normal_notice_update_cc): Look
7227         inside (compare FOO (const_int 0)).
7228         (cris_rtx_costs): Handle ZERO_EXTRACT.
7229         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
7230         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
7231         (*tstdi_v32): Delete.
7232         (*cmpdi_non_v32): Add M alternative for operand 1.
7233         (cmpsi, cmp<mode>): Make private.
7234         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
7235         with COMPARE.
7236         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
7237
7238         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
7239         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
7240         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
7241         (cc_reg_operand): New.
7242         (any_cond): Delete.
7243         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
7244         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
7245         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
7246         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
7247         crx_expand_scond): Delete.
7248
7249         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
7250         (cbranchsi4): New.
7251         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
7252         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
7253
7254         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
7255         cstoresi4, cstoresf4, cstoredf4): New.
7256         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
7257         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
7258         Receive the entire operands array.
7259         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
7260         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
7261         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
7262         Get test/op0/op1 from the operands array.
7263         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
7264
7265         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
7266         (h8300_expand_store): New.
7267         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
7268         (const_int 0)).
7269         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
7270         (h8300_expand_store): New.
7271         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
7272         or do not try to produce (set (cc0) REG).
7273         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
7274         change a compare into a move to a scratch register.  Disable some
7275         peepholes when comparing with zero.
7276         (tstsi, tsthi, tstsi, cmpqi): Make private.
7277         (cmphi): Delete.
7278         (bCC, sCC): Delete.
7279         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
7280         cstoresi4): New.
7281
7282         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
7283         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
7284         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
7285         (ix86_emit_i387_log1p): Use cbranchxf2.
7286         (ix86_expand_setcc): Return void.
7287         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
7288         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
7289         cmp<MODEF>, cmpcc): Remove.
7290         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
7291         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
7292         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
7293         (sCC and bCC expanders): Remove.
7294         (stack_protect_test): Use cbranchcc4.
7295
7296         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
7297         Delete.
7298         (ia64_expand_compare): Accept three rtx by reference and return void.
7299         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
7300         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
7301         from *expr.  Update *expr with the BImode comparison to do.
7302         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
7303         cmptf, bCC, sCC, conditional_trap): Delete.
7304         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
7305         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
7306         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
7307         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
7308         * config/ia64/predicates.md (ia64_cbranch_operator): New.
7309
7310         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
7311         type of last argument.
7312         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
7313         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
7314         use machine mode argument instead of branch_type.  Remove dead
7315         code for floating-point comparisons.
7316         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
7317         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
7318         Remove.
7319         (cbranchsi4, cstoresi4): New.
7320         * config/iq2000/predicates.md (reg_or_const_operand): New.
7321
7322         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
7323         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
7324         (b<code>_op): Rewrite to...
7325         (bcc_op): ... this, using match_operator.
7326         (s<code>_op): Rewrite to...
7327         (scc_op): ... this, using match_operator.
7328         (s<code>_24_op): Rewrite to...
7329         (scc_op_24): ... this, using match_operator.
7330         (s<code>_<mode>): Rewrite to...
7331         (cstore<mode>4): ... this, using match_operator.
7332         (s<code>_<mode>_24): Rewrite to...
7333         (cstore<mode>4_24): ... this, using match_operator.
7334         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
7335         m32c_unpend_compare, m32c_expand_scc): Delete.
7336         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
7337         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
7338         (m32c_expand_movcc): Change NE to EQ if necessary.
7339         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
7340
7341         * config/m32r/m32r-protos.h (gen_cond_store): New.
7342         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
7343         (gen_cond_store): New, from sCC patterns.
7344         (m32r_expand_block_move): Use cbranchsi4.
7345         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
7346         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
7347         (cbranchsi4, cstoresi4): New.
7348         
7349         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
7350         Delete.
7351         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
7352         (m68hc11_notice_update_cc): Look into a compare with 0.
7353         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
7354         Delete.
7355         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
7356         cmphi, cmpqi, bCC): Delete.
7357         (cbranchsi4, cbranchhi4, cbranchqi4): New.
7358         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
7359         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
7360         sets with COMPARE.
7361
7362         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
7363         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
7364         * config/m68k/constraints.md (H): New.
7365         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
7366         the define_insn below.
7367         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
7368         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
7369         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
7370         patterns): Wrap RHS with COMPARE.
7371         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
7372         (*cmpdi_internal): Name this pattern.
7373         (cmpdi): Change to define_insn.
7374         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
7375         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
7376         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
7377         predicate.
7378         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
7379         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
7380         (conditional_trap): Change to...
7381         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
7382         (*conditional_trap): Use the ordered_comparison_operator and
7383         const1_operand predicates.
7384         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
7385         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
7386         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
7387         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
7388
7389         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
7390         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
7391         (mcore_gen_compare): New. 
7392         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
7393         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
7394         (mcore_gen_compare): ... this.
7395         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
7396         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
7397         (stack probe pattern): Use cbranchsi4.
7398
7399         * config/mips/predicates.md (mips_cstore_operator): New.
7400         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
7401         * config/mips/mips.md (any_cond): Delete.
7402         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
7403         always succeed.
7404         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
7405         fixuns_truncsfdi2): Use cbranch patterns.
7406         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
7407         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
7408         Adjust call to mips_expand_conditional_branch.
7409         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
7410         cstore<GPR:mode>4.
7411         * config/mips/mips-protos.h (mips_expand_conditional_branch,
7412         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
7413         * config/mips/mips.c (cmp_operands): Delete.
7414         (mips_emit_compare): Get comparison operands from *op0/*op1.
7415         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
7416         that it succeeds.  Use op0/op1 instead of cmp_operands.
7417         (mips_expand_conditional_branch, mips_expand_conditional_move,
7418         mips_expand_conditional_trap): Likewise.
7419         (mips_block_move_loop): Use cbranch patterns. 
7420         * config/mips/mips.h (cmp_operands): Delete.
7421
7422         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
7423         (mmix_gen_compare_reg): Just return a register in the right CC mode.
7424         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
7425         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
7426         (*cmpcc_folded): Rename to...
7427         (*cmpdi_folded): this.
7428         (*cmpcc): Rename to...
7429         (*cmps): ... this.
7430         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
7431         (bCC): Remove.
7432         (cbranchdi4): New.
7433         (cbranchdf4): New.  Handle invalid comparisons here.
7434         * config/mmix/predicates.md (float_comparison_operator): New.
7435
7436         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
7437         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
7438         * config/mn10300/mn10300.md (tst): Delete.
7439         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
7440         Name these patterns and wrap RHS in a compare.
7441         (*cmpsi): Make this pattern private.  Include tst.
7442         (*cmpsf): Make this pattern private.
7443         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
7444         (compare with zero peepholes): Likewise.
7445         (bCC): Remove.
7446         (cbranchsi4, cbranchsf4): New.
7447         (casesi): Use cbranchsi4.
7448
7449         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
7450         hppa_branch_type): Delete.
7451         (return_addr_rtx): Use cbranchsi4.
7452         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
7453         Emit CCFPmode comparison here.
7454         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
7455         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
7456         hppa_branch_type): Delete.
7457         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
7458         (movsicc, movdicc): Remove references to hppa_compare_op0,
7459         hppa_compare_op1 and compare_from_rtx.
7460         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
7461         (casesi): Use cbranchsi4.
7462
7463         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
7464         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
7465         * config/pdp11/pdp11.md (register_or_const0_operand): New.
7466         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
7467         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
7468         (bCC): Delete.
7469         (cbranchdf4, cbranchhi4, cbranchqi4): New.
7470         (*branch, *branch_inverted): New.
7471
7472         * config/picochip/picochip.md (cbranchhi4): Use
7473         ordered_comparison_operator.
7474         (cmphi, bCC): Remove.
7475
7476         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
7477         (trap_comparison_operator): Delete.
7478         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
7479         rs6000_emit_cbranch): Accept mode and operands.
7480         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
7481         rs6000_compare_fp_p): Delete.   
7482         (rs6000_generate_compare): Accept mode and comparison.  Extract code
7483         and op0/op1 from there.  Replace references to rs6000_compare_op0
7484         and rs6000_compare_op1.
7485         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
7486         extract result from passed operands.
7487         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
7488         extract loc from passed operands.
7489         (rs6000_emit_cmove): Likewise.
7490         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
7491         rs6000_compare_fp_p): Delete.
7492         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
7493         (cbranch<GPR>4, cbranch<FP>4): New.
7494         (cstore<mode>4): New.  Consolidate here all choices about when to use
7495         portable or specialized sCC sequences.
7496         (stack_protect_test): Use cbranchsi4.
7497         (conditional_trap): Replace with ctrap<GPR>4.
7498         (conditional trap insn): Replace trap_comparison_operator with
7499         ordered_comparison_operator. 
7500
7501         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
7502         (s390_emit_prologue): Use ctrap.
7503         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
7504         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
7505         New predicates replacing...
7506         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
7507         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
7508         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
7509         (add<mode>cc): Do not use s390_compare_op0/op1.
7510         (s<code>): Change to...
7511         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
7512         (seq): Change to...
7513         (cstorecc4): ... this.  Handle EQ or NE equally.
7514         (*sne): Un-privatize for use in cstorecc4.
7515         (b<code>): Change to...
7516         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
7517         (conditional_trap): Replace with...
7518         (ctrap<GPR>4, ctrap<FP>4): ... these.
7519         (stack_protect): Use cbranchcc4.
7520
7521         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
7522         * config/score/score-protos.h (score_gen_cmp): Delete.
7523         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
7524         (score_block_move-loop): Use cbranchsi4.
7525         * config/score/score.md (cbranchsi4): New.
7526         (cmpsi, bCC): Delete.
7527         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
7528         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
7529         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
7530         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
7531         * config/score/score3.h (score3_gen_cmp): Delete.
7532         * config/score/score7.h (score7_gen_cmp): Delete.
7533
7534         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
7535         (sh_emit_scc_to_t): ... this.  Return void.
7536         (from_compare): Rename to...
7537         (sh_emit_compare_and_branch): ... this.
7538         (sh_emit_compare_and_set): New.
7539         (sh_expand_t_scc): Accept operands.
7540         * config/sh/predicates.md (sh_float_comparison_operator): New.
7541         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
7542         (prepare_scc_operands): Rename to...
7543         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
7544         arguments.
7545         (sh_emit_cheap_store_flag): New.
7546         (sh_emit_set_t_insn): New.
7547         (from_compare): Rename to...
7548         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
7549         handling of TARGET_SH2E floating point to avoid recursive call.
7550         Generate branch here.
7551         (sh_emit_compare_and_set): New.
7552         (sh_expand_t_scc): Get op0/op1 from arguments.
7553         (sh_emit_cheap_store_flag): New.
7554         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
7555         cases.
7556         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
7557         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
7558         (movsicc, movdicc): Do nothing when it recreated operands from
7559         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
7560         prepare_scc_operands (now sh_emit_scc_to_t).
7561         (udivdi3): Use cstoresi4.
7562         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
7563         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
7564         (cbranchint4_media, cbranchfp4_media): New.
7565         (casesi): Use cbranchdi4.
7566         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
7567         Delete.
7568         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
7569         (movnegt): Remove second operand.
7570         (cbranchsf4, cbranchdf4): New.
7571         (stack_protect): Use cbranchdi4/cbranchsi4.
7572
7573         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
7574         (gen_compare_reg): Accept comparison, extract part of it to...
7575         (gen_compare_reg_1): ... this. 
7576         (gen_compare_operator): Delete.
7577         (gen_v9_scc): Accept separate destination, comparison code and arms.
7578         Do not use sparc_compare_op0/sparc_compare_op1.
7579         (emit_scc_insn, emit_conditional_branch_insn): New.
7580         (emit_v9_brxx): Make static.  Remove useless assertion.
7581         (sparc_emit_float_lib_cmp): Return RTL instead of calling
7582         emit_cmp_insn.
7583         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
7584         * config/sparc/sparc-protos.h (gen_compare_reg,
7585         sparc_emit_float_lib_cmp): Adjust prototype.
7586         (emit_scc_insn, emit_conditional_branch_insn): New.
7587         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
7588         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
7589         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
7590         iterators to the top.
7591         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
7592         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
7593         snedi_special_trunc): Delete.
7594         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
7595         and snedi_special_trunc.
7596         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
7597         cbranchdi4, cbranch<F:mode>4): New.
7598         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
7599         here.  Use gen_compare_reg instead of gen_compare_operator.
7600         (conditional_trap): Replace with...
7601         (ctrapsi4, ctrapdi4): ... this.
7602         (stack_protect_test): Use cbranchcc4.
7603
7604         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
7605         argument to rtx.
7606         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
7607         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
7608         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
7609         from operands[0] or operands[3] depending on is_set.
7610         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
7611         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
7612         cmpdf, bCC), sCC: Remove.
7613         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
7614         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
7615         cstoredf4): New.
7616         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
7617         spu_emit_branch_or_set.
7618
7619         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
7620         Add two arguments.
7621         * config/stormy16/stormy16.h (xstormy16_compare_op0,
7622         xstormy16_compare_op1): Delete.
7623         * config/stormy16/stormy16.c (xstormy16_compare_op0,
7624         xstormy16_compare_op1): Delete. 
7625         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
7626         Adjust calls.
7627         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
7628         (cmphi, cmpsi, bCC): Remove.
7629
7630         * config/v850/v850.md (tstsi, cmpsi): Fold into...
7631         (*cmpsi): ... this one.
7632         (cbranchsi4, cstoresi4): New.
7633         (bCC expanders): Delete.
7634         (sCC insns): Fold into...
7635         (*setcc): ... this one.
7636         (casesi): Do not use gen_cmpsi and gen_bgtu. 
7637         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
7638         (movsicc): Simplify.
7639         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
7640
7641         * config/vax/vax-protos.h (cond_name): New.
7642         (vax_output_conditional_branch): Remove.
7643         * config/vax/vax.c (cond_name): New.
7644         (vax_output_conditional_branch): Remove.
7645         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
7646         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
7647         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
7648         (bit<VAXint>): Wrap source with (compare).
7649         (b<code> and following unnamed pattern): Rename to *branch and
7650         *branch_reversed.  Change macroization to match_operator.
7651         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
7652
7653         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
7654         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
7655         Change last argument to machine_mode.
7656         (xtensa_expand_scc): Add machine_mode argument.
7657         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
7658         (gen_conditional_move, xtensa_expand_conditional_branch,
7659         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
7660         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
7661         Adjust operand numbers.
7662         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
7663         Delete.
7664         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
7665         (cmpsi, cmpsf, b<code>, s<code>): Delete.
7666         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
7667
7668 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
7669
7670         * optabs.c (prepare_cmp_insn): Temporarily disable test that
7671         causes spurious differences between trunk and cond-optab branch.
7672
7673 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
7674
7675         PR target/37137
7676         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
7677
7678 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
7679
7680         * tree.c (iterative_hash_pointer): Delete.
7681         (iterative_hash_expr): Short-circuit handling of NULL pointer.
7682         Hash UIDs and versions of SSA names.  Don't special-case built-in
7683         function declarations.
7684
7685 2009-05-11  Ian Lance Taylor  <iant@google.com>
7686
7687         PR bootstrap/40103
7688         * graphite.c: Force -Wc++-compat to only be a warning before
7689         #including "cloog/cloog.h".
7690
7691 2009-05-11  Martin Jambor  <mjambor@suse.cz>
7692
7693         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
7694         
7695 2009-05-11  Jan Hubicka  <jh@suse.cz>
7696
7697         * tree-ssa-loop-ivcanon.c: Include target.h
7698         (struct loop_size): new structure.
7699         (constant_after_peeling): New predicate.
7700         (tree_estimate_loop_size): New function.
7701         (estimated_unrolled_size): Rewrite for new estimates.
7702         (try_unroll_loop_completely): Use new estimates.
7703         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
7704
7705 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7706
7707         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
7708         libcpp interface change.
7709         (spu_macro_to_expand): Likewise.
7710
7711 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
7712
7713         PR tree-optimization/40026
7714         * gimplify.c (gimplify_init_constructor): Change initial conditional
7715         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
7716         optimize_compound_literals_in_ctor.
7717
7718 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
7719
7720         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
7721         New devices.
7722         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
7723
7724 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
7725
7726         * tree-vect-data-refs.c (vect_analyze_group_access): Use
7727         HOST_WIDE_INT for gap.
7728
7729 2009-05-11  Ira Rosen  <irar@il.ibm.com>
7730
7731         PR tree-optimization/40074
7732         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
7733         account in group size and step comparison.
7734
7735 2009-05-11  Richard Guenther  <rguenther@suse.de>
7736
7737         * passes.c (init_optimization_passes): Strip now incorrect comment.
7738         (execute_function_todo): Do not set PROP_alias.
7739         * tree-pass.h (PROP_alias): Remove.
7740         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
7741         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
7742         * tree-nrv.c (pass_return_slot): Likewise.
7743         * tree-object-size.c (pass_object_sizes): Likewise.
7744         * tree-ssa-dom.c (pass_dominator): Likewise.
7745         (pass_phi_only_cprop): Likewise.
7746         * tree-ssa-dse.c (pass_dse): Likewise.
7747         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
7748         (pass_cselim): Likewise.
7749         * tree-ssa-pre.c (pass_pre): Likewise.
7750         (pass_fre): Likewise.
7751         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
7752         * tree-ssa-sink.c (pass_sink_code): Likewise.
7753         * tree-stdarg.c (pass_stdarg): Likewise.
7754         * tree-tailcall.c (pass_tail_calls): Likewise.
7755         * tree-vrp.c (pass_vrp): Likewise.
7756
7757 2009-05-10  Ian Lance Taylor  <iant@google.com>
7758
7759         * basic-block.h (enum profile_status): Break out of struct
7760         control_flow_graph.
7761         * cgraph.h (struct inline_summary): Break out of struct
7762         cgraph_local_info.
7763         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
7764         of struct cgraph_order_sort.
7765         * combine.c (enum undo_kind): New enum, broken out of struct undo.
7766         * cse.c (struct branch_path): Break out of struct
7767         cse_basic_block_data.
7768         * except.h (enum eh_region_type): Break out of struct eh_region.
7769         * gcc.c (enum add_del): Break out of struct modify_target.
7770         * genrecog.c (enum decision_type): Break out of struct decision_test.
7771         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
7772         ggc_pch_data.
7773         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
7774         * regmove.c (enum match_use): New enum, broken out of struct match.
7775         * sched-int.h (enum post_call_group): New enum, broken out of
7776         struct deps.
7777         (struct deps_reg): Break out of struct deps.
7778         * target.h (struct asm_int_op): Break out of struct gcc_target.
7779         * tree-eh.c (struct goto_queue_node): Break out of struct
7780         leh_tf_state.
7781         * tree-inline.h (enum copy_body_cge_which): Break out of
7782         copy_body_data.
7783         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
7784
7785         * c-decl.c (in_struct, struct_types): New static variables.
7786         (pushtag): Add loc parameter.  Change all callers.
7787         (lookup_tag): Add ploc parameter.  Change all callers.
7788         (check_compound_literal_type): New function.
7789         (parser_xref_tag): Add loc parameter.  Change all callers.  If
7790         -Wc++-compat, warn about struct/union/enum types defined within a
7791         struct or union.
7792         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
7793         and loc parameters.  Change all callers.  Change error calls to
7794         error_at, using loc.  For a redefinition, if the location of the
7795         original definition is known, report it.  Set in_struct and
7796         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
7797         (finish_struct): Add new parameters enclosing_in_struct and
7798         enclosing_struct_types.  Change all callers.  Set
7799         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
7800         in the struct.  If in a struct, add this struct to struct_types.
7801         (start_enum): Add loc parameter.  Change all callers.  Use
7802         error_at for errors, using loc.  For a redefinition, if the
7803         location of the original definition is known, report it.  If in a
7804         struct, add this enum type to struct_types.  If -Wc++-compat warn
7805         if in sizeof, typeof, or alignof.
7806         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
7807         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
7808         (c_parser_enum_specifier): Get enum location for start_enum.
7809         (c_parser_struct_or_union_specifier): Get struct location for
7810         start_struct.  Save in_struct and struct_types status between
7811         start_struct and finish_struct.
7812         (c_parser_cast_expression): Get location of cast.
7813         (c_parser_alignof_expression): Get location of type.
7814         (c_parser_postfix_expression): Likewise.
7815         (c_parser_postfix_expression_after_paren_type): Add type_loc
7816         parameter.  Change all callers.  Call check_compound_literal_type.
7817         Use type_loc for error about variable size type.
7818         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
7819         of an enum constant from an enum type defined in a struct or union.
7820         (c_cast_expr): Add loc parameter.  Change all callers.  If
7821         -Wc++-compat, warn about defining a type in a cast.
7822         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
7823         (start_enum, start_struct, finish_struct): Update declarations.
7824         (parser_xref_tag, c_cast_expr): Update declarations.
7825         (check_compound_literal_type): Declare.
7826
7827 2009-05-11  Ben Elliston  <bje@au.ibm.com>
7828
7829         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
7830         for recent libcpp interface change.
7831         (rs6000_macro_to_expand): Likewise.
7832
7833 2009-05-10  Michael Matz  <matz@suse.de>
7834
7835         PR target/40031
7836         * config/arm/arm.c (require_pic_register): Emit on entry edge,
7837         not at entry of function.
7838
7839 2009-05-10  Richard Guenther  <rguenther@suse.de>
7840
7841         PR tree-optimization/40081
7842         Revert
7843         * tree-sra.c (instantiate_element): Instantiate scalar replacements
7844         using the main variant of the element type.  Do not fiddle with
7845         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
7846
7847         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
7848         structs with volatile fields.
7849
7850 2009-05-10  Jan Hubicka  <jh@suse.cz>
7851
7852         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
7853         (estimate_move_cost): Assert that it does not get called for
7854         VOID_TYPE_P.
7855         (estimate_num_insns): Skip VOID types in argument handling.
7856         (optimize_inline_calls): Delete unreachable blocks and verify that
7857         callgraph is valid.
7858
7859 2009-05-10  Jan Hubicka  <jh@suse.cz>
7860
7861         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
7862         * cgraph.c (cgraph_mark_address_taken_node): New function.
7863         (dump_cgraph_node): Dump new flag.
7864         * cgraph.h (struct cgraph_node): Add address_taken.
7865         (cgraph_mark_address_taken_node): New function.
7866         * ipa.c (cgraph_postorder): Prioritize functions with address taken
7867         since new direct calls can be born.
7868
7869 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
7870
7871         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
7872         tok->val.node.node.
7873
7874 2009-05-10  Jan Hubicka  <jh@suse.cz>
7875
7876         PR middle-end/40084
7877         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
7878         argument; rewrite.
7879         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
7880         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
7881         * tree-inline.c (copy_bb): Set frequency correctly.
7882         (fold_marked_statements): Update call to
7883         cgraph_update_edges_for_call_stmt.
7884
7885 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
7886
7887         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
7888         identifiers in diagnostics.
7889         * config/arm/arm.c (arm_handle_fndecl_attribute,
7890         arm_handle_isr_attribute): Likewise.
7891         * config/avr/avr.c (avr_handle_progmem_attribute,
7892         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
7893         * config/bfin/bfin.c (handle_int_attribute,
7894         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
7895         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
7896         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
7897         Likewise.
7898         * config/darwin.c (darwin_handle_kext_attribute,
7899         darwin_handle_weak_import_attribute): Likewise.
7900         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
7901         h8300_handle_eightbit_data_attribute,
7902         h8300_handle_tiny_data_attribute): Likewise.
7903         * config/i386/i386.c (ix86_handle_cconv_attribute,
7904         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
7905         * config/i386/winnt.c (ix86_handle_shared_attribute,
7906         ix86_handle_selectany_attribute): Likewise.
7907         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
7908         * config/m32c/m32c.c (function_vector_handler): Likewise.
7909         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
7910         m68hc11_handle_fntype_attribute): Likewise.
7911         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
7912         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
7913         * config/mips/mips.c (mips_insert_attributes,
7914         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
7915         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
7916         rs6000_handle_struct_attribute): Likewise.
7917         * config/sh/sh.c (sh_insert_attributes,
7918         sh_handle_resbank_handler_attribute,
7919         sh_handle_interrupt_handler_attribute,
7920         sh2a_handle_function_vector_handler_attribute,
7921         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
7922         Likewise.
7923         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
7924         * config/spu/spu.c (spu_handle_fndecl_attribute,
7925         spu_handle_vector_attribute): Likewise.
7926         * config/stormy16/stormy16.c
7927         (xstormy16_handle_interrupt_attribute): Likewise.
7928         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
7929         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
7930
7931 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
7932
7933         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
7934         (pp_translate_identifiers): New.
7935         (pp_identifier): Only conditionally translate identifier to locale
7936         character set.
7937         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
7938         (pp_base_tree_identifier): Only conditionally translate identifier
7939         to locale character set.
7940         * c-pretty-print.c (M_): Define.
7941         (pp_c_type_specifier, pp_c_primary_expression): Mark English
7942         fragments for conditional translation with M_.
7943         * tree-pretty-print.c (maybe_init_pretty_print): Disable
7944         identifier translation.
7945
7946 2009-05-10  Richard Guenther  <rguenther@suse.de>
7947
7948         PR tree-optimization/40081
7949         * tree-sra.c (instantiate_element): Instantiate scalar replacements
7950         using the main variant of the element type.  Do not fiddle with
7951         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
7952
7953 2009-05-09  Jan Hubicka  <jh@suse.cz>
7954
7955         PR middle-end/40080
7956         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
7957         indirect calls; verify cgraph afterwards.
7958
7959 2009-05-09  Jan Hubicka  <jh@suse.cz>
7960
7961         PR bootstrap/40082
7962         * ipa.c (update_inlined_to_pointer): New function.
7963         (cgraph_remove_unreachable_nodes): Use it.
7964
7965 2009-05-09  Jan Hubicka  <jh@suse.cz>
7966
7967         * tree-eh.c (struct leh_state): Remove prev_try.
7968         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
7969         not track prev_try.
7970         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
7971         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
7972         remove_eh_handler_and_replace, foreach_reachable_handler,
7973         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
7974         * except.h (struct eh_region): Remove eh_region_u_cleanup.
7975         (gen_eh_region_cleanup): Update prototype.
7976
7977 2009-05-09  Jan Hubicka  <jh@suse.cz>
7978
7979         PR middle-end/40043
7980         * except.c (copy_eh_region): Always set prev_try.
7981         (redirect_eh_edge_to_label): Find outer try.
7982         (foreach_reachable_handler): When looking for prev try
7983         handle case where previous try is not going to be taken.
7984
7985 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
7986
7987         PR tree-optimization/40049
7988         * tree-vect-stmts.c (vectorizable_operation): If the machine has
7989         only vector/vector shifts, convert the type of the constant to the
7990         appropriate type to avoid building incorrect trees, which
7991         eventually have problems with garbage collection.
7992
7993 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
7994
7995         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
7996         -1 for complex floating-point types if honoring signed zeros.
7997
7998 2009-05-08  Jan Hubicka  <jh@suse.cz>
7999
8000         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
8001         argument; handle correctly when profile is absent.
8002         (build_cgraph_edges): Update.
8003         (rebuild_cgraph_edges): Update.
8004         * cgraph.c: Do not include varray.h.
8005         (cgraph_set_call_stmt_including_clones): New function.
8006         (cgraph_create_edge_including_clones): Likewise
8007         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
8008         (cgraph_update_edges_for_call_stmt): Handle clones.
8009         (cgraph_remove_node): Handle clone tree.
8010         (cgraph_remove_node_and_inline_clones): New function.
8011         (dump_cgraph_node): Dump clone tree.
8012         (cgraph_clone_node): Handle clone tree.
8013         (clone_function_name): Bring here from tree-inline.c.
8014         (cgraph_create_virtual_clone): New function.
8015         * cgraph.h (ipa_replace_map): Move here from ipa.h.
8016         (cgraph_clone_info): New function.
8017         (strut cgraph_node): Add clone_info and new clone tree pointers.
8018         (cgraph_remove_node_and_inline_clones,
8019         cgraph_set_call_stmt_including_clones,
8020         cgraph_create_edge_including_clones,
8021         cgraph_create_virtual_clone): Declare.
8022         (cgraph_function_versioning): Use VEC argument.
8023         (compute_call_stmt_bb_frequency): Update prototype.
8024         (cgraph_materialize_all_clones): New function.
8025         * ipa-cp.c (ipcp_update_cloned_node): Remove.
8026         (ipcp_create_replace_map): Update to VECtors.
8027         (ipcp_update_callgraph): Use virtual clones.
8028         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
8029         (ipcp_update_profiling): Do not update local profiling.
8030         (ipcp_insert_stage): Use VECtors and virtual clones.
8031         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
8032         (clone_of_p): New function.
8033         (cgraph_preserve_function_body_p): Use clone tree.
8034         (cgraph_optimize): Materialize clones.
8035         (cgraph_function_versioning): Update for VECtors.
8036         (save_inline_function_body): Use clone tree.
8037         (cgraph_materialize_clone): New function.
8038         (cgraph_materialize_all_clones): Likewise.
8039         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
8040         * ipa.c: Include gimple.h.
8041         (cgraph_remove_unreachable_nodes): Use clone tree.
8042         * ipa-prop.c (ipa_note_param_call): Update call to
8043         compute_call_stmt_bb_frequencycall.
8044         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
8045         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
8046         (copy_bb): Handle updating of clone tree; add new edge when new call
8047         appears.
8048         (expand_call_inline): Be strict about every call having edge.
8049         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
8050         (delete_unreachable_blocks_update_callgraph): New function.
8051         (tree_function_versioning): Use VECtors; always remove unreachable
8052         blocks and fold conditionals.
8053         * tree-inline.h: Do not include varray.h.
8054         (tree_function_versioning): Remove.
8055         * Makefile.in (GTFILES): Remove tree-inline.c
8056         * passes.c (do_per_function): Do only functions having body.
8057         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
8058         tree.
8059
8060 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
8061             Andrew Morrow  <acm@google.com>
8062
8063         PR c/36892
8064         * c-common.c (c_common_attribute_table): Permit deprecated
8065         attribute to take an optional argument.
8066         (handle_deprecated_attribute): If the optional argument to
8067         __attribute__((deprecated)) is not a string ignore the attribute
8068         and emit a warning.
8069
8070         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
8071         * c-typeck.c (build_component_ref): Likewise.
8072         (build_external_ref): Likewise.
8073
8074         * toplev.c (warn_deprecated_use): Add an attribute argument.
8075         Emit the message associated with __attribute__((deprecated)).
8076
8077         * toplev.h (warn_deprecated_use): Updated.
8078
8079         * doc/extend.texi: Document new optional parameter to
8080         __attribute__((deprecated))
8081
8082 2009-05-08  Michael Eager <eager@eagercon.com>
8083
8084         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
8085         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
8086
8087 2009-05-08  Richard Guenther  <rguenther@suse.de>
8088
8089         PR tree-optimization/40062
8090         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
8091         Avoid exponential behavior.
8092
8093 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
8094
8095         PR rtl-optimization/33928
8096         PR 26854
8097         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
8098         process_uses, build_single_def_use_links): New.
8099         (update_df): Update use_def_ref.
8100         (forward_propagate_into): Use get_def_for_use instead of use-def
8101         chains.
8102         (fwprop_init): Call build_single_def_use_links and let it initialize
8103         dataflow.
8104         (fwprop_done): Free use_def_ref.
8105         (fwprop_addr): Eliminate duplicate call to df_set_flags.
8106         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
8107         df_rd_simulate_one_insn): New.
8108         (df_rd_bb_local_compute_process_def): Update head comment.
8109         (df_chain_create_bb): Use the new RD simulation functions.
8110         * df.h (df_rd_simulate_artificial_defs_at_top, 
8111         df_rd_simulate_one_insn): New.
8112         * opts.c (decode_options): Enable fwprop at -O1.
8113         * doc/invoke.texi (-fforward-propagate): Document this.
8114
8115 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
8116
8117         PR c/24581
8118         * c-typeck.c (build_binary_op): Handle arithmetic between one real
8119         and one complex operand specially.
8120         * tree-complex.c (some_nonzerop): Do not identify a real value as
8121         zero if flag_signed_zeros.
8122
8123 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
8124
8125         PR rtl-optimization/33928
8126         * loop-invariant.c (record_use): Fix && vs. || mishap.
8127
8128 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
8129
8130         PR rtl-optimization/33928
8131         * loop-invariant.c (struct use): Add addr_use_p.
8132         (struct def): Add n_addr_uses.
8133         (struct invariant): Add cheap_address.
8134         (create_new_invariant): Set cheap_address.
8135         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
8136         (record_uses): Pass df_ref to record_use.
8137         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
8138         used only as such.
8139
8140 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8141
8142         * config/sh/sh.c: Do not include c-pragma.h.
8143
8144 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8145
8146         * config/spu/spu.c: Remove include of c-common.h.
8147
8148 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
8149
8150         PR c/39037
8151         * c-common.h (mark_valid_location_for_stdc_pragma,
8152         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
8153         clear_float_const_decimal64, float_const_decimal64_p): New.
8154         * c.opt (Wunsuffixed-float-constants): New.
8155         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
8156         unsuffixed float constant, handle new warning.
8157         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
8158         * c-decl.c (c_scope): New flag float_const_decimal64.
8159         (set_float_const_decimal64, clear_float_const_decimal64,
8160         float_const_decimal64_p): New.
8161         (push_scope): Set new flag.
8162         * c-parser.c (c_parser_translation_unit): Mark when it's valid
8163         to use STDC pragmas.
8164         (c_parser_external_declaration): Ditto.
8165         (c_parser_compound_statement_nostart): Ditto.
8166         * c-pragma.c (valid_location_for_stdc_pragma,
8167         mark_valid_location_for_stdc_pragma,
8168         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
8169         handle_pragma_float_const_decimal64): New.
8170         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
8171         * cp/semantics.c (valid_location_for_stdc_pragma_p,
8172         set_float_const_decimal64, clear_float_const_decimal64,
8173         float_const_decimal64_p): New dummy functions.
8174         * doc/extend.texi (Decimal Float): Remove statement that the
8175         pragma, and suffix for double constants, are not supported.
8176         * doc/invoke.texi (Warning Options): List new option.
8177         (-Wunsuffixed-float-constants): New.
8178
8179 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
8180
8181         * config/i386/i386.c: Do not include c-common.h.
8182
8183 2009-05-07  Mark Heffernan  <meheff@google.com>
8184
8185         * doc/invoke.texi (Debugging Options): Document change of debugging
8186         dump location.
8187         * opts.c (decode_options): Make dump_base_name relative to
8188         aux_base_name directory.
8189
8190 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
8191
8192         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
8193         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
8194
8195 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
8196
8197         * Makefile.in (install-plugin): Simplify a bit.
8198
8199 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
8200
8201         * Makefile.in (OBJS-common): Add regcprop.o.
8202         (regcprop.o): New.
8203         * timevar.def (TV_CPROP_REGISTERS): New.
8204         * regrename.c (regrename_optimize): Return 0.
8205         (rest_of_handle_regrename): Delete.
8206         (pass_rename_registers): Point to regrename_optimize.
8207         (struct value_data_entry, struct value_data, 
8208         kill_value_one_regno, kill_value_regno, kill_value,
8209         set_value_regno, init_value_data, kill_clobbered_value,
8210         kill_set_value, kill_autoinc_value, copy_value,
8211         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
8212         replace_oldest_value_reg, replace_oldest_value_addr,
8213         replace_oldest_value_mem, copyprop_hardreg_forward_1,
8214         debug_value_data, validate_value_data): Move...
8215         * regcprop.c: ... here.
8216         (rest_of_handle_cprop): Delete.
8217         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
8218
8219 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
8220
8221         PR middle-end/40057
8222         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
8223         GEN_INT for 1 << bitnum.
8224         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
8225         build_int_cst_type.
8226
8227 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
8228
8229         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
8230         Remove wrong description of "nand" operation.
8231
8232 2009-05-06  Richard Guenther  <rguenther@suse.de>
8233             Adam Nemet  <anemet@caviumnetworks.com>
8234
8235         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
8236         comment.  Add that if LHS is not a gimple register, then RHS1 has
8237         to be a single object (GIMPLE_SINGLE_RHS).
8238
8239 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
8240
8241         * expr.c (get_def_for_expr): Move it up in the file.
8242         (store_field): When expanding a bit-field store, look at the
8243         defining gimple stmt for the masking conversion.
8244
8245 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
8246
8247         PR middle-end/39986
8248         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
8249         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
8250         32-bit memcpy into long.
8251
8252 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
8253
8254         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
8255         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
8256         new_reg_loc_descr.
8257         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
8258         instead of appending DW_OP_deref*.
8259
8260 2009-05-06  Michael Matz  <matz@suse.de>
8261
8262         PR middle-end/40021
8263         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
8264         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
8265
8266 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
8267
8268         * Makefile.in (install-plugin): Fix srcdir handling.
8269
8270 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
8271
8272         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
8273         when processing for not_regs_needed bitmap.
8274         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
8275         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
8276         handling it for rhs. 
8277
8278 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8279
8280         * config/i386/i386.md (unnamed inc/dec peephole): Use
8281         optimize_insn_for_size_p instead of optimize_size.
8282         * config/i386/predicates.md (incdec_operand): Likewise.
8283         (aligned_operand): Likewise.
8284         * config/i386/sse.md (divv8sf3): Likewise.
8285         (sqrtv8sf2): Likewise.
8286
8287 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8288
8289         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
8290
8291         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
8292
8293 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8294
8295         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
8296         ssemodesuffixf2c with avxmodesuffixf2c.
8297
8298 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
8299
8300         PR c/40032
8301         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
8302
8303 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
8304
8305         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
8306         (struct tree_base): Adjust spacing for 8 bit boundaries.
8307         (struct tree_decl_common): Add decl_by_reference_flag bit.
8308         (DECL_BY_REFERENCE): Adjust.
8309         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
8310         print DECL_BY_REFERENCE bit.
8311         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
8312         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
8313         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
8314         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
8315         unconditionally.
8316
8317         PR middle-end/39666
8318         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
8319         range of the type, but default label is missing, add it with one
8320         of the existing labels instead of adding a new label for it.
8321
8322 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
8323
8324         * dwarf.h: Remove.
8325
8326 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
8327
8328         * Makefile.in (enable_plugin, plugin_includedir): New.
8329         (install): Depend on install-plugin.
8330         (PLUGIN_HEADERS): New.
8331         (install-plugin): New.
8332         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
8333
8334 2009-05-05  Richard Guenther  <rguenther@suse.de>
8335
8336         PR tree-optimization/40022
8337         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
8338         the only vuse.
8339         (phivn_valid_p): Fix tuplification error, simplify.
8340         (phiprop_insert_phi): Add dumps.
8341         (propagate_with_phi): Simplify.
8342
8343 2009-05-05  Richard Guenther  <rguenther@suse.de>
8344
8345         PR middle-end/40023
8346         * builtins.c (gimplify_va_arg_expr): Properly build the address.
8347
8348 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
8349
8350         * tree.h (strip_float_extensions): Remove duplicate declaration.
8351         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
8352         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
8353         block_ultimate_origin): Rearrange the declarations line to match the
8354         comment that indicates the .c file which the functions are defined.
8355         (dwarf2out_*, set_decl_rtl): Add comment.
8356         (get_base_address): Adjust comment.
8357         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
8358         declarations line and add comment.
8359         (is_builtin_name): Add blank after function name, for clarity.
8360
8361 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
8362
8363         * attribs.c (decl_attributes): Use %qE for identifiers in
8364         diagnostics.
8365         * cgraphunit.c (verify_cgraph_node): Translate function names to
8366         locale character set in diagnostics.
8367         * coverage.c (get_coverage_counts): Use %qE for identifiers in
8368         diagnostics.
8369         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
8370         Document that functions are named in UTF-8.
8371         * expr.c (expand_expr_real_1): Translate function names to locale
8372         character set in diagnostics.
8373         * gimplify.c (omp_notice_variable, omp_is_private,
8374         gimplify_scan_omp_clauses): Use %qE for identifiers in
8375         diagnostics.
8376         * langhooks.c (lhd_print_error_function): Translate function names
8377         to locale character set.
8378         * langhooks.h (decl_printable_name): Document that return value is
8379         in internal character set.
8380         * stmt.c: Include pretty-print.h
8381         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
8382         diagnostics.
8383         (resolve_operand_name_1): Translate named operand name to locale
8384         character set.
8385         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
8386         diagnostics.
8387         * toplev.c (announce_function): Translate function names to locale
8388         character set.
8389         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
8390         (default_tree_printer): Use pp_identifier or translate identifiers
8391         to locale character set.  Mark "<anonymous>" for translation.
8392         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
8393         for identifiers in diagnostics.
8394         * tree.c (handle_dll_attribute): Use %qE for identifiers in
8395         diagnostics.
8396         * varasm.c (output_constructor): Use %qE for identifiers in
8397         diagnostics.
8398
8399 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
8400
8401         * configure.ac: use ` ` instead of $()
8402         * configure: Regenerate.
8403
8404 2009-05-05  Ben Elliston  <bje@au.ibm.com>
8405
8406         * config/pa/linux-atomic.c: Eliminate conditional include of
8407         errno.h on non-LP64 systems to simplify build requirements.
8408
8409 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
8410
8411         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
8412         diagnostics.
8413         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
8414         and pass value to identifier_to_locale.
8415         (warn_variable_length_array): Make name a tree.
8416         (grokdeclarator): Separate diagnostic texts for named and unnamed
8417         declarators.  Use %qE for named declarators.
8418         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
8419         diagnostics.
8420         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
8421         identifiers in diagnostics.
8422         * c-typeck.c (push_member_name, start_init): Pass identifiers to
8423         identifier_to_locale.  Mark "anonymous" strings for translation.
8424
8425 2009-05-04  Michael Eager <eager@eagercon.com>
8426
8427         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
8428         address for DImode/DFmode only if double-precision FP regs.
8429
8430 2009-05-04  Michael Eager <eager@eagercon.com>
8431
8432         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
8433         TARGET_SINGLE_FLOAT check.
8434
8435 2009-05-04  Michael Eager <eager@eagercon.com>
8436
8437         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
8438
8439 2009-05-04  Michael Eager <eager@eagercon.com>
8440
8441         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
8442         * config/rs6000/t-xilinx: New
8443
8444 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
8445
8446         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
8447         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
8448         * gcc/explow.c (memory_address): Use target hook.
8449         * gcc/targhooks.c (default_legitimize_address): New.
8450         * gcc/targhooks.h (default_legitimize_address): New.
8451         * gcc/target.h (legitimize_address): New.
8452         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
8453         (TARGET_INITIALIZER): Include it.
8454         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
8455
8456         * config/bfin/bfin-protos.h (legitimize_address): Remove.
8457         * config/bfin/bfin.c (legitimize_address): Remove.
8458         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
8459         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
8460         Remove.
8461         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
8462         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
8463
8464         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
8465         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
8466         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
8467         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
8468         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
8469         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
8470         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
8471         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
8472         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
8473         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
8474         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
8475         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
8476         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
8477         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
8478         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
8479         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
8480         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
8481         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
8482         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
8483         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
8484         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
8485         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
8486         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
8487
8488         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
8489         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
8490         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
8491         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
8492         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
8493         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
8494         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
8495         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
8496         (thumb_legitimize_address): Delete.
8497         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
8498         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
8499         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
8500         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
8501         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
8502         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
8503         Delete.
8504         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
8505         Delete.
8506
8507         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
8508         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
8509         * config/m32r/m32r.c (m32r_legitimize_address): New.
8510         * config/m68k/m68k.c (m68k_legitimize_address): New.
8511         * config/score/score.c (score_legitimize_address): Standardize.
8512         * config/score/score3.c (score3_legitimize_address): Standardize.
8513         * config/score/score3.h (score3_legitimize_address): Adjust.
8514         * config/score/score7.c (score7_legitimize_address): Standardize.
8515         * config/score/score7.h (score7_legitimize_address): Adjust.
8516         * config/sh/sh.c (sh_legitimize_address): New.
8517         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
8518
8519         * gcc/config/s390/s390.c (legitimize_address): Rename to...
8520         (s390_legitimize_address): ... this.
8521         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
8522         (sparc_legitimize_address): ... this.
8523         * gcc/config/i386/i386.c (legitimize_address): Rename to...
8524         (ix86_legitimize_address): ... this.
8525         * gcc/config/avr/avr.c (legitimize_address): Rename to...
8526         (avr_legitimize_address): ... this.
8527         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
8528         (mn10300_legitimize_address): ... this.
8529         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
8530         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
8531         (alpha_expand_mov): Adjust call.
8532
8533         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
8534         * config/spu/spu.c (spu_legitimize_address): Likewise.
8535         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
8536         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
8537
8538 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
8539
8540         * intl.c (locale_encoding, locale_utf8): New.
8541         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
8542         * intl.h (locale_encoding, locale_utf8): Declare.
8543         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
8544         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
8545         New.
8546         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
8547         argument.
8548         (pp_tree_identifier): Define to call pp_base_tree_identifier.
8549         (pp_base_tree_identifier): Declare as function.
8550         (identifier_to_locale): Declare.
8551         * Makefile.in (pretty-print.o): Update dependencies.
8552         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
8553
8554 2009-05-04  Richard Guenther  <rguenther@suse.de>
8555
8556         PR middle-end/40015
8557         * builtins.c (fold_builtin_memory_op): Do not decay to element
8558         type if the size matches the whole array.
8559
8560 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
8561
8562         * expmed.c (synth_mult): When trying out a shift, pass the result
8563         of a signed shift.
8564
8565 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
8566
8567         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
8568         (shiftsub1_cost): New.
8569         (init_expmed): Compute shiftsub1_cost.
8570         (synth_mult): Optimize multiplications by constants of the form
8571         -(2^^m-1) for some constant positive integer m.
8572
8573 2009-05-03  Richard Guenther  <rguenther@suse.de>
8574
8575         PR c/39983
8576         * c-typeck.c (array_to_pointer_conversion): Do not built
8577         ADDR_EXPRs of arrays of pointer-to-element type.
8578         * c-gimplify.c (c_gimplify_expr): Revert change fixing
8579         up wrong ADDR_EXPRs after-the-fact.
8580         * c-common.c (strict_aliasing_warning): Strip pointer
8581         conversions for obtaining the original type.
8582         * builtins.c (fold_builtin_memset): Handle array types.
8583         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
8584         and array types
8585
8586 2009-05-03  Richard Guenther  <rguenther@suse.de>
8587
8588         PR middle-end/23329
8589         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
8590         Do not lose casts from array types with unknown extent to array
8591         types with known extent.
8592         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
8593         alias set compatibility.
8594
8595 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8596
8597         * flags.h (extra_warnings): Delete.
8598         * toplev.c (process_options): Handle Wuninitialized here.
8599         * opts.c (extra_warnings): Delete.
8600         (set_Wextra): Delete.
8601         (common_handle_option): -Wextra can be handled automatically.
8602         * c-opts.c (c_common_handle_option): Delete obsolete code.
8603         (c_common_post_options): Simplify comment.
8604         * common.opt (W): Add Var.
8605         (Wextra): Add Var.
8606         (Wuninitialized): Initialize to -1.
8607
8608 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
8609             Richard Guenther  <rguenther@suse.de>
8610
8611         * expr.c (get_def_for_expr): New function.
8612         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
8613         SSA rather than trees.
8614         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
8615         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
8616         
8617 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
8618
8619         * c-common.c (reswords): Add _Imaginary.
8620         * c-common.c (enum rid): Add RID_IMAGINARY.
8621
8622 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
8623
8624         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
8625         Patch by Richard Guenther.
8626
8627 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
8628
8629         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
8630         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
8631         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
8632         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
8633         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
8634         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
8635         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
8636         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
8637         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
8638         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
8639         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
8640         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
8641         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
8642         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
8643         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
8644         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
8645         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
8646         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
8647
8648 2009-05-02  Richard Guenther  <rguenther@suse.de>
8649
8650         PR tree-optimization/39940
8651         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
8652         doing so.
8653
8654 2009-05-02  Richard Guenther  <rguenther@suse.de>
8655
8656         PR middle-end/40001
8657         * tree-ssa.c (execute_update_addresses_taken): Properly check
8658         if we can mark a variable DECL_GIMPLE_REG_P.
8659         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
8660         back to the end of the function.
8661         (is_gimple_reg_type): Remove complex type special casing.
8662         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
8663         if not optimizing.
8664
8665 2009-05-02  Ben Elliston  <bje@au.ibm.com>
8666
8667         * doc/collect2.texi (Collect2): Document search path behaviour
8668         when configured with --with-ld.
8669
8670 2009-05-02  Jan Hubicka  <jh@suse.cz>
8671
8672         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
8673         parameter; update callers.
8674         (coalesce_cost_edge): EH edges are costier because they needs
8675         splitting even if not critical and even more costier when there are
8676         multiple EH predecestors.
8677
8678 2009-05-02  Jan Hubicka  <jh@suse.cz>
8679
8680         * except.c (remove_eh_handler_and_replace): Handle updating after
8681         removing TRY blocks.
8682
8683 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
8684
8685         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
8686
8687 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
8688
8689         * varasm.c: Do not include c-pragma.h.
8690         * attribs.c: Do not incude c-common.h.
8691
8692 2009-05-01  Michael Matz  <matz@suse.de>
8693
8694         * calls.c (initialize_argument_information): Handle SSA names like
8695         decls with a non MEM_P DECL_RTL.
8696
8697 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
8698
8699         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
8700         * ipa-utils.c: Likewise.
8701         * ipa-type-escape.c: Likewise.
8702         * cgraphunit.c Do not include c-common.h.
8703         * ipa-pure-const.c: Likewise.
8704         * tree-if-conv.c: Likewise.
8705         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
8706         * ipa-struct-reorg.c: Likewise.
8707         * tree-nomudflap.c: Likewise.
8708         * tree-ssa-structalias.c: Likewise.
8709
8710 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
8711
8712         * store-motion.c: Many cleanups to make this pass a first-class
8713         citizen instead of an appendix to gcse load motion.  Add TODO list
8714         to make this pass faster/cleaner/better.
8715
8716         (struct ls_expr): Post gcse.c-split cleanups.
8717         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
8718         "stores" field to "avail_stores".
8719         (pre_ldst_mems): Rename to store_motion_mems.
8720         (pre_ldst_table): Rename to store_motion_mems_table.
8721         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
8722         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
8723         (ldst_entry): Rename to st_expr_entry, update users.
8724         (free_ldst_entry): Rename to free_st_expr_entry, update users.
8725         (free_ldst_mems): Rename to free_store_motion_mems, update users.
8726         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
8727         update caller.
8728         (first_ls_expr): Rename to first_st_expr, update users.
8729         (next_ls_expr): Rename to next_st_expr, update users.
8730         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
8731         fields properly for store motion instead of names inherited from load
8732         motion in gcse.c.
8733         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
8734         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
8735         are done with it.
8736
8737         (ae_kill): Rename to st_kill, update users.
8738         (ae_gen): Rename to st_avloc, update users.
8739         (transp): Rename to st_transp, update users.
8740         (pre_insert_map): Rename to st_insert_map, update users.
8741         (pre_delete_map): Rename to st_delete_map, update users.
8742         (insert_store, build_store_vectors, free_store_memory,
8743         one_store_motion_pass): Update for abovementioned changes.
8744
8745         (gcse_subst_count, gcse_create_count): Remove.
8746         (one_store_motion_pass): New statistics counters "n_stores_deleted"
8747         and "n_stores_created", local variables.
8748
8749         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
8750         use for_each_rtx.
8751
8752         (regvec, compute_store_table_current_insn): Remove.
8753         (reg_set_info, reg_clear_last_set): Remove.
8754         (compute_store_table): Use DF caches instead of local dataflow
8755         solvers.
8756
8757 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
8758
8759         * c-objc-common.c (c_tree_printer): Print identifiers with
8760         pp_identifier, not pp_string.  Mark "({anonymous})" for
8761         translation.
8762         * c-pretty-print.c (pp_c_ws_string): New.
8763         (pp_c_cv_qualifier, pp_c_type_specifier,
8764         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
8765         pp_c_storage_class_specifier, pp_c_function_specifier,
8766         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
8767         pp_c_primary_expression, pp_c_postfix_expression,
8768         pp_c_unary_expression, pp_c_shift_expression,
8769         pp_c_relational_expression, pp_c_equality_expression,
8770         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
8771         use pp_string and pp_c_ws_string in place of pp_identifier and
8772         pp_c_identifier for non-identifiers.  Mark English strings for
8773         translation.
8774         * c-pretty-print.h (pp_c_ws_string): Declare.
8775
8776 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
8777             Roland McGrath <roland@redhat.com>
8778
8779         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
8780         (ENABLE_LD_BUILDID): New configuration option.
8781         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
8782         (LINK_BUILDID_SPEC): New macro.
8783         (init_spec): If defined, prepend it between LINK_EH_SPEC and
8784         link_spec.
8785         * doc/install.texi: Document --enable-linker-build-id option.
8786         * configure: Rebuild.
8787         * config.in: Rebuild.
8788
8789 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
8790
8791         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
8792         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
8793         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
8794         MIPS_GP_SAVE_AREA_SIZE.
8795         * config/mips/mips.c (struct mips_frame_info): Update comment
8796         before arg_pointer_offset and hard_frame_pointer_offset.
8797         (mips_compute_frame_info): Update diagram before function: to
8798         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
8799         indicate the position of frame_pointer_rtx with -fstack-protector and
8800         to show args_size.  Don't allocate cprestore area for leaf functions
8801         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
8802         cprestore_size.
8803         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
8804
8805 2009-04-30  Michael Matz  <matz@suse.de>
8806
8807         PR tree-optimization/39955
8808         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
8809
8810 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
8811
8812         * ira.c (setup_cover_and_important_classes):  Use safe macro
8813         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
8814         directly.
8815         * genpreds.c (write_tm_preds_h):  Output suitable definition of
8816         REG_CLASS_FOR_CONSTRAINT.
8817
8818 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
8819
8820         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
8821         instead of an int.
8822         * bitmap.c (bitmap_descriptor): Likewise.
8823         * ggc-common.c (loc_descriptor): Likewise.
8824         * varray.c (varray_descriptor): Likewise.
8825         * vec.c (vec_descriptor): Likewise.
8826
8827 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
8828
8829         * Makefile.in (dce.o): Add $(EXCEPT_H).
8830         * dce.c: Include except.h and delete redundant vector definitions.
8831         (deletable_insn_p): Return false for non-call insns that can throw
8832         if DF is running.
8833
8834 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
8835
8836         * gcse.c (ae_gen): Remove.
8837         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
8838         and make non-static function to make it available in store-motion.c.
8839         Update call sites with search-and-replace.
8840         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
8841         extract_mentioned_regs, extract_mentioned_regs_helper,
8842         find_moveable_store, compute_store_table, load_kills_store, find_loads,
8843         store_killed_in_insn, store_killed_after, store_killed_before,
8844         build_store_vectors, insert_insn_start_basic_block, insert-store,
8845         remove_reachable_equiv_notes, replace_store_insn, delete_store,
8846         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
8847         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
8848         * store-motion.c: ...new file.  Also copy data structures from gcse.c
8849         and clean up to remove parts not used by store motion.
8850         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
8851         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
8852
8853 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8854
8855         PR target/38571
8856         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
8857         when optimizing for size.
8858
8859 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
8860
8861         * gcse.c (gcse_constant_p): Fix typo in last change.
8862
8863 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
8864
8865         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
8866
8867 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
8868
8869         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
8870
8871 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
8872
8873         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
8874         CONST_HIGH_PART result.
8875
8876 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
8877
8878         * config/avr/avr.c (initial_elimination_offset): Rename to
8879         avr_initial_elimination_offset.
8880         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
8881         change return type to bool.
8882         (avr_can_eliminate): New function.
8883         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
8884         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
8885         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
8886         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
8887         avr_initial_elimination_offset.
8888         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
8889         (avr_initial_elimination_offset): Define.
8890
8891 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
8892             Steven Bosscher  <steven@gcc.gnu.org>
8893
8894         PR rtl-optimization/39938
8895         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
8896         * cfgrtl.c: Include insn-attr.h.
8897         (rest_of_pass_free_cfg): New function.
8898         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
8899         * resource.c (init_resource_info): Remove call to df_analyze.
8900
8901 2009-04-29  Richard Guenther  <rguenther@suse.de>
8902
8903         PR target/39943
8904         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
8905         allow conversion to signed integers.
8906
8907 2009-04-29  Richard Guenther  <rguenther@suse.de>
8908
8909         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
8910         shifts of floating point vectors if the shift amount is
8911         a constant multiple of the element size.
8912
8913 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
8914             Michael Matz  <matz@suse.de>
8915
8916         PR middle-end/39927
8917         PR bootstrap/39929
8918         * tree-outof-ssa.c (emit_partition_copy): New function.
8919         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
8920         insert_part_to_rtx_on_edge): Perform the partition base var
8921         copy using emit_partition_copy.
8922         (insert_value_copy_on_edge): Convert constants to the right mode.
8923         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
8924         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
8925
8926 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
8927
8928         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
8929         scan backwards to try to find a constant to initialize it.
8930
8931         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
8932         insn before the loop_end instruction, don't look past labels.
8933
8934 2009-04-29  Richard Guenther  <rguenther@suse.de>
8935
8936         PR middle-end/39937
8937         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
8938         loose type conversions.
8939         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
8940         stmts only if there are no uses of its definition.
8941
8942 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
8943
8944         * config/bfin/bfin.h (splitting_loops): Declare.
8945         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
8946         Reorder bit definitions to be ascending.
8947         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
8948         * config/bfin/bfin.c (splitting_loops): New variable.
8949         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
8950         (struct loop_info): Remove members INIT and LOOP_INIT.
8951         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
8952         the LSETUP sequence.  Allow LC to be loaded from any register, but
8953         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
8954         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
8955         set to 1.
8956         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
8957         of reload_completed.
8958
8959         From Jie Zhang:
8960         * config/bfin/bfin.md (movsi_insn): Refine constraints.
8961
8962 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
8963
8964         * Makefile.in (PLUGIN_VERSION_H): New.
8965         (OBJS-common): Remove plugin-version.o.
8966         (plugin.o): Depend on (PLUGIN_VERSION_H).
8967         (plugin-version.o): Remove.
8968         * configure: Regenerate
8969         * configure.ac: Create plugin-version.h.
8970         * gcc-plugin.h (plugin_gcc_version): Remove.
8971         (plugin_default_version_check): Change signature.
8972         * plugin-version.c: Remove.
8973         * plugin.c: Include plugin-version.h.
8974         (str_plugin_gcc_version_name): Remove.
8975         (try_init_one_plugin): Pass gcc version to plugin_init.
8976         (plugin_default_version_check): Both gcc and plugin versions are now
8977         arguments.
8978
8979 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
8980         
8981         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
8982         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
8983         Remove special case testing for last insn of inner loops. Don't fail
8984         if the loop ends with a jump, emit an extra nop instead.
8985
8986         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
8987         DREGS rather than comparing directly.  Remove code that tries to
8988         account for latencies.
8989
8990 2009-04-29  Richard Guenther  <rguenther@suse.de>
8991
8992         PR tree-optimization/39941
8993         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
8994         eliminating an indirect call.
8995
8996 2009-04-29  Richard Guenther  <rguenther@suse.de>
8997
8998         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
8999         parameter.  Allow invariants as base if !require_lvalue.
9000         (verify_gimple_assign_single): Adjust.
9001
9002 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
9003
9004         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
9005         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
9006         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
9007         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
9008         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
9009         a VEC_SELECT.
9010         * config/bfin/bfin.c (bfin_expand_builtin,
9011         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
9012
9013 2009-04-28  Richard Guenther  <rguenther@suse.de>
9014
9015         * tree-vect-loop.c (get_initial_def_for_induction): Use
9016         correct types for pointer increment.
9017
9018 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9019
9020         * toplev.c (print_version): Update GMP version string calculation.
9021
9022 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
9023
9024         PR rtl-optimization/39938
9025         * resource.c (init_resource_info): Add call to df_analyze.
9026
9027 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9028
9029         * config/alpha/alpha.md (usegp): Cast the result of
9030         alpha_find_lo_sum_using_gp to enum attr_usegp.
9031         * config/alpha/alpha.c (override_options): Remove end-of-structure
9032         marker element from cpu_table.  Use array size of cpu_table to handle
9033         -mcpu and -mtune options.
9034         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
9035
9036 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
9037
9038         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
9039         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
9040         tune_32 and tune_64.
9041         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
9042         support on PowerPC.
9043         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
9044         * config/rs6000/option-defaults.h: ... here.  New file.
9045         (OPT_64, OPT_32): Define.
9046         (MASK_64BIT): Define to 0 if not already defined.
9047         (OPT_ARCH64, OPT_ARCH32): Define.
9048         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
9049         and tune_64.
9050
9051 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9052
9053         * config/arm/arm.c (arm_override_options): Emit error on using
9054         fpa with AAPCS.
9055
9056 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9057
9058         PR rtl-optimization/39914
9059         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
9060         registers for allocnos created from user-defined variables only
9061         when not optimizing.
9062
9063 2009-04-28  Richard Guenther  <rguenther@suse.de>
9064
9065         PR middle-end/39937
9066         * fold-const.c (fold_binary): Use distribute_real_division only
9067         on float types.
9068
9069 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
9070
9071         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
9072         add hpux-stdint.h to tm_file.
9073         (hppa[12]*-*-hpux11*): Ditto.
9074         (ia64*-*-hpux*): Ditto.
9075         * config/hpux-stdint.h: New.
9076         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9077         __STDC_EXT__ for all compiles.
9078         * config/pa/pa-hpux.h: Ditto.
9079         * config/pa/pa-hpux10.h: Ditto.
9080         * config/pa/pa-hpux11.h: Ditto.
9081
9082 2009-04-28  Catherine Moore  <clm@codesourcery.com>
9083
9084         * debug.h (set_name): Add comment.
9085
9086 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
9087
9088         PR target/39929
9089         * config/darwin.c (machopic_gen_offset): Check
9090         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
9091         * config/arm/arm.c (require_pic_register): Likewise.
9092
9093 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
9094
9095         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
9096         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
9097         m32c_promote_prototypes): Delete.
9098
9099 2009-04-28  Michael Matz  <matz@suse.de>
9100
9101         PR middle-end/39922
9102         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
9103         constants.
9104
9105 2009-04-28  Richard Guenther  <rguenther@suse.de>
9106
9107         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
9108
9109 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9110
9111         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
9112         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
9113         * config/arm/arm-tune.md: Regenerate.
9114
9115 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
9116
9117         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
9118         block if there are complex incoming edges.
9119         (sel_merge_blocks): Remove useless assert.
9120         (sel_redirect_edge_and_branch): Check that edge was redirected.
9121         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
9122         (sel_find_rgns): Delete declaration.
9123         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
9124         the region when it is not a preheader.
9125
9126 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9127
9128         PR c/39323
9129         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
9130
9131 2009-04-28  Richard Guenther  <rguenther@suse.de>
9132
9133         * tree.h (SSA_NAME_VALUE): Remove.
9134         (struct tree_ssa_name): Remove value_handle member.
9135         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
9136         array for jump threading.
9137         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
9138         SSA_NAME_VALUEs.
9139         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
9140         * tree-flow.h (threadedge_initialize_values): Declare.
9141         (threadedge_finalize_values): Likewise.
9142         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
9143         (SSA_NAME_VALUE): Define.
9144         (threadedge_initialize_values): New function.
9145         (threadedge_finalize_values): Likewise.
9146         * tree-ssa-dom.c (ssa_name_values): New global variable.
9147         (SSA_NAME_VALUE): Define.
9148         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
9149
9150 2009-04-28  Ira Rosen  <irar@il.ibm.com>
9151
9152         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
9153         Use REPORT_VECTORIZED_LOCATIONS instead 
9154         REPORT_VECTORIZED_LOOPS.
9155         * tree-vectorizer.c (vect_verbosity_level): Make static.
9156         (vect_loop_location): Rename to vect_location.
9157         (vect_set_verbosity_level): Update comment.
9158         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
9159         and vect_location.
9160         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
9161         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
9162         instead REPORT_UNVECTORIZED_LOOPS.
9163         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
9164         and vect_loop_def to vect_external_def and vect_internal_def.
9165         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
9166         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
9167         REPORT_UNVECTORIZED_LOCATIONS.
9168         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
9169         and vect_used_in_loop and to vect_unused_in_scope and 
9170         vect_used_in_scope.
9171         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
9172         (vect_verbosity_level): Remove declaration.
9173         (vect_analyze_operations): Likewise.
9174         (vect_analyze_stmt): Declare.
9175         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
9176         REPORT_UNVECTORIZED_LOCATIONS.
9177         (vect_get_loop_niters): Fix indentation.
9178         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
9179         (vect_analyze_loop_operations): New function.
9180         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
9181         vect_analyze_operations.
9182         (vect_is_simple_reduction): Use new names.
9183         (vectorizable_live_operation, vect_transform_loop): Likewise.
9184         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
9185         to specify whether the data references can be a part of interleaving
9186         chain.
9187         (vect_analyze_data_ref_dependence): Use new names.
9188         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
9189         (vect_create_addr_base_for_vector_ref): Remove redundant code.
9190         * tree-vect-patterns.c (widened_name_p): Use new names.
9191         (vect_recog_dot_prod_pattern): Likewise.
9192         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
9193         (process_use, vect_mark_stmts_to_be_vectorized, 
9194         vect_model_simple_cost, vect_model_store_cost,
9195         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
9196         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
9197         vectorizable_operation, vectorizable_type_demotion,
9198         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
9199         vectorizable_condition): Likewise.
9200         (vect_analyze_operations): Split into vect_analyze_loop_operations
9201         and ...
9202         (vect_analyze_stmt): ... new function.
9203         (new_stmt_vec_info): Use new names.
9204         (vect_is_simple_use): Use new names and fix comment.
9205         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
9206         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
9207
9208 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
9209
9210         PR target/39911
9211         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
9212         and integer modes for x87 operands.  Do not ICE for unsupported size,
9213         generate error instead.  Generate error for unsupported operand types.
9214         ['z']: Do not handle HImode memory operands specially.  Warning
9215         for floating-point operands.  Fallthru to 'Z' for unsupported operand
9216         types.  Do not ICE for unsupported size, generate error instead.
9217         (output_387_binary_op): Use %Z to output operands.
9218         (output_fp_compare): Ditto.
9219         (output_387_reg_move): Ditto.
9220
9221 2009-04-28  Ben Elliston  <bje@au.ibm.com>
9222
9223         PR c++/35652
9224         Revert:
9225
9226         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9227
9228         * builtins.c (c_strlen): Do not warn here.
9229         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
9230         * c-common.c (pointer_int_sum): Take an explicit location.
9231         Warn about offsets out of bounds.
9232         * c-common.h (pointer_int_sum): Adjust declaration.
9233
9234 2009-04-27  Ian Lance Taylor  <iant@google.com>
9235
9236         * collect2.c (is_ctor_dtor): Change type of ret field in struct
9237         names to symkind.
9238         * dce.c (run_fast_df_dce): Change type of old_flags to int.
9239         * df-core.c (df_set_flags): Change return type to int.  Change
9240         type of old_flags to int.
9241         (df_clear_flags): Likewise.
9242         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
9243         (df_get_conditional_uses): Likewise.
9244         * df.h (df_set_flags, df_clear_flags): Update declarations.
9245         * dwarf2out.c (struct indirect_string_node): Change type of form
9246         field to enum dwarf_form.
9247         (AT_string_form): Change return type to enum dwarf_form.
9248         * fixed-value.c (fixed_compare): Add cast to enum type.
9249         * fwprop.c (update_df): Change 0 to VOIDmode.
9250         * gensupport.c: Change 0 to UNKNOWN.
9251         * gimple.h (gimple_cond_code): Add cast to enum type.
9252         * haifa-sched.c (reemit_notes): Add cast to enum type.
9253         * hooks.c (hook_int_void_no_regs): Remove function.
9254         * hooks.h (hook_int_void_no_regs): Remove declaration.
9255         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
9256         * predict.c (combine_predictions_for_insn): Add casts to enum type.
9257         * real.c (real_arithmetic): Add cast to enum type.
9258         (real_compare): Likewise.
9259         * target.h (struct gcc_target): Change return type of
9260         branch_target_register_class to enum reg_class.
9261         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
9262         default_branch_target_register_class.
9263         * targhooks.c (default_branch_target_register_class): New function.
9264         * targhooks.h (default_branch_target_register_class): Declare.
9265         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
9266         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
9267         cast to int.
9268         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
9269         ERROR_MARK.
9270         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
9271         vect_uninitialized_def.  Change 0 to ERROR_MARK.
9272         * tree-vect-stmts.c (supportable_widening_operation): Don't
9273         initialize icode1 and icode2.
9274         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
9275         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
9276         and to STD_C89.
9277         (cmn_err_flag_specs): Change 0 to STD_C89.
9278         (cmn_err_char_table): Likewise.
9279         * config/arm/arm.c (get_arm_condition_code): Change type of code
9280         to enum arm_cond_code.
9281         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
9282         (IWMMXT_BUILTIN2): Likewise.
9283         (neon_builtin_type_bits): Don't define typedef.
9284         (neon_builtin_datum): Change type of bits field to int.
9285         (arm_expand_neon_args): Add cast to enum type.
9286         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
9287         TLS_MODEL_NONE.
9288         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
9289         casts to enum type.
9290         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
9291         MIPS_FP_COND_f.
9292         * config/mips/mips.md (jal_macro): Return enum constant.
9293         (single_insn): Likewise.
9294         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
9295         CODE_FOR_nothing.
9296         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9297         casts to enum type.
9298         * config/s390/s390.c (s390_tune_flags): Change type to int.
9299         (s390_arch_flags): Likewise.
9300         (s390_handle_arch_option): Change flags field of struct pta to int.
9301         * config/s390/s390.h (s390_tune_flags): Update declaration.
9302         (s390_arch_flags): Likewise.
9303         * config/sh/sh.c (prepare_move_operands): Compare
9304         tls_symbolic_operand result with enum constant.
9305         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
9306         (sh_expand_prologue): Add cast to enum type.
9307         (sh_expand_epilogue): Likewise.
9308         (tls_symbolic_operand): Change return type to enum tls_model.
9309         (fpscr_set_from_mem): Add cast to enum type.
9310         (legitimize_pic_address): Compare tls_symbolic_operand result with
9311         enum constant.
9312         (sh_target_reg_class): Change return type to enum reg_class.
9313         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
9314         PROCESSOR_xxx.
9315         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
9316         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
9317         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
9318         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
9319         (delayed_branch, tls_call_delay): Likewise.
9320         (eligible_for_sibcall_delay): Likewise.
9321         (eligible_for_return_delay): Likewise. 
9322         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
9323         (spu_expand_builtin_1): Likewise.
9324
9325         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
9326         for all types of conversions.
9327         (output_init_element): Issue -Wc++-compat warning if needed when
9328         initializing a bitfield with enum type.
9329         * c-parser.c (c_parser_expression): Set original_type to
9330         original_type of right hand operand of comman operator.
9331
9332 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9333
9334         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
9335         grammar nits.
9336         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
9337         * doc/cpp.texi (Standard Predefined Macros)
9338         (Implementation-defined behavior): Likewise.
9339         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
9340         * doc/gimple.texi (GIMPLE Exception Handling)
9341         (@code{GIMPLE_ASSIGN}): Likewise.
9342         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
9343         * doc/invoke.texi (Warning Options, Optimize Options)
9344         (AVR Options, Darwin Options): Likewise.
9345         (Optimize Options): Reformulate -fwhole-program description.
9346         * doc/loop.texi (Lambda): Likewise.
9347         * doc/md.texi (Output Template, Define Constraints)
9348         (Standard Names, Insn Splitting): Likewise.
9349         * doc/options.texi (Option properties): Likewise.
9350         * doc/passes.texi (Tree-SSA passes): Likewise.
9351         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
9352         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
9353         (File Names and DBX): Likewise.
9354         * doc/trouble.texi (Incompatibilities): Likewise.
9355
9356 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
9357
9358         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
9359         instruction is correct.
9360
9361 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
9362
9363         Allow non-constant arguments to conversion intrinsics.
9364         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
9365         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
9366         * spu.c (print_operand): Handle 'v' and 'w'.
9367         (exp2_immediate_p, spu_gen_exp2): Define.
9368         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
9369         spu_convtf_1): Update parameter descriptions.
9370         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
9371         * constraints.md ('v', 'w'): New.
9372         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
9373         Remove.
9374         (i2f, I2F): New define_mode_attr.
9375         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
9376         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
9377         fixuns_truncv4sfv4si2):  Update to use mode attribute.
9378         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
9379         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
9380         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
9381         patterns for combine.
9382
9383 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
9384
9385         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
9386         (cprop, hoist, pre, store_motion): New debug counters.
9387         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
9388         is not an RTL pass anymore.
9389         (pass_profiling): Remove extern decl for pass removed in 2005.
9390         (pass_gcse, pass_jump_bypass): Remove.
9391         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
9392         to 0 for clean state.
9393         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
9394         * cse.c (gate_handle_cse_after_global_opts,
9395         rest_of_handle_cse_after_global_opts): New functions.
9396         (pass_cse_after_global_opts): New pass, does local CSE.
9397         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
9398         (TV_CPROP): New timevar.
9399         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
9400         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
9401         (gcse_main, recompute_all_luids): Remove.
9402         (compute_hash_table_work): Call max_reg_num instead of reading
9403         max_gcse_regno.
9404         (cprop_jump): Don't set run_jump_opt_after_gcse.
9405         (constprop_register): Always allow to alter jumps.
9406         (cprop_insn): Likewise.
9407         (do_local_cprop): Likewise.
9408         (local_cprop_pass): Likewise.  Return non-zero if something changed.
9409         (cprop): Remove function, fold interesting bits into one_cprop_pass.
9410         (find_implicit_sets): Add note about missed optimization opportunity.
9411         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
9412         pass_rtl_cprop execute function.
9413         Don't bother tracking the pass number, each pass gets its own dumpfile
9414         now anyway.
9415         Always allow to alter jumpsand bypass jumps.
9416         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
9417         will just find no suitable set.
9418         (pre_edge_insert): Fix dumping, this function is for PRE only.
9419         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
9420         pass_rtl_pre execute function.
9421         (hoist_code): Return non-zero if something changed.  Keep track of
9422         substitutions and insertions for statistics gathering similar to PRE.
9423         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
9424         called from the pass_rtl_hoist execute function.  Show pass statistics.
9425         (compute_store_table): Use max_reg_num directly instead of using the
9426         formerly global max_gcse_regno.
9427         (build_store_vectors): Likewise.
9428         (replace_store_insn): Fix dumping.
9429         (store_motion): Rename to ...
9430         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
9431         pass, called from the pass_rtl_store_motion execute function.  Keep
9432         track of substitutions and insertions for statistics gathering similar
9433         to PRE.
9434         (bypass_jumps): Remove, fold interesting bits into ...
9435         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
9436         from the pass_rtl_cprop execute function.
9437         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
9438         pass_jump_bypass): Remove.
9439         (gate_handle_gcse, rest_of_handle_gcse): Remove.
9440         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
9441         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
9442         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
9443         (gate_rtl_store_motion, execute_rtl_store_motion,
9444         pass_rtl_store_motion): New.
9445         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
9446         make it clear that -fcse-skip-blocks is a no-op for backward compat.
9447         * passes.c (init_optimization_passes): Remove pass_gcse and
9448         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
9449         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
9450         instead of pass_jump_bypass.
9451
9452 2009-04-27  Richard Guenther  <rguenther@suse.de>
9453
9454         PR middle-end/39928
9455         * gimplify.c (gimplify_expr): If we are required to create
9456         a temporary make sure it ends up as register.
9457
9458 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
9459
9460         PR target/39903
9461         * config/i386/i386.c (construct_container): Don't call
9462         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
9463         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
9464
9465 2009-04-27  Michael Matz  <matz@suse.de>
9466
9467         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
9468         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
9469         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
9470         (dump_replaceable_exprs): Take a bitmap.
9471         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
9472         array.
9473         (expand_gimple_basic_block): Likewise.
9474         * tree-ssa-ter.c (struct temp_expr_table_d): Make
9475         replaceable_expressions member a bitmap.
9476         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
9477         (mark_replaceable): Likewise.
9478         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
9479         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
9480
9481 2009-04-27  Richard Guenther  <rguenther@suse.de>
9482
9483         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
9484         (verify_stmts): Dispatch to gimple/type verification code.
9485         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
9486         issue with call argument types.
9487
9488 2009-04-27  Michael Matz  <matz@suse.de>
9489
9490         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
9491         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
9492         to above.
9493
9494 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
9495             Eric Botcazou  <ebotcazou@adacore.com>
9496
9497         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
9498         a label's basic block.
9499         (mark_target_live_regs): Tidy and rework obsolete comments.
9500         Change back DF problem to LIVE.  If a label starts a basic block,
9501         assume that all registers that used to be live then still are.
9502         (init_resource_info): If a label starts a basic block, set its
9503         BLOCK_FOR_INSN accordingly.
9504         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
9505
9506 2009-04-27  Richard Guenther  <rguenther@suse.de>
9507
9508         * tree-flow-inline.h (function_ann): Remove.
9509         (get_function_ann): Likewise.
9510         * tree-dfa.c (create_function_ann): Remove.
9511         * tree-flow.h (struct static_var_ann_d): Remove.
9512         (struct function_ann_d): Likewise.
9513         (union tree_ann_d): Remove fdecl member.
9514         (function_ann_t): Remove.
9515         (function_ann, get_function_ann, create_function_ann): Remove
9516         declarations.
9517
9518 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
9519
9520         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
9521
9522 2009-04-27  Jan Hubicka  <jh@suse.cz>
9523
9524         * ipa-pure-const.c (struct funct_state_d): New fields
9525         state_previously_known, looping_previously_known; remove
9526         state_set_in_source.
9527         (analyze_function): Use new fields.
9528         (propagate): Avoid assumption that state_set_in_source imply
9529         nonlooping.
9530
9531         * tree-ssa-loop-niter.c (finite_loop_p): New function.
9532         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
9533         * cfgloop.h (finite_loop_p): Declare.
9534
9535 2009-04-26  Michael Matz  <matz@suse.de>
9536
9537         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
9538
9539 2009-04-26  Michael Matz  <matz@suse.de>
9540
9541         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
9542         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
9543         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
9544         pass_mark_used_blocks): Remove.
9545         * tree-optimize.c (pass_free_datastructures,
9546         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
9547         * passes.c (init_optimization_passes): Don't call
9548         pass_mark_used_blocks, remove dead code.
9549
9550 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
9551
9552         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
9553         * tree-ssa-live.h (register_ssa_partition): Likewise.
9554
9555 2009-04-26  Michael Matz  <matz@suse.de>
9556
9557         Expand from SSA.
9558         * builtins.c (fold_builtin_next_arg): Handle SSA names.
9559         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
9560         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
9561         SSA names. 
9562         (compare_pairs): Swap cost comparison.
9563         (coalesce_ssa_name): Don't use change_partition_var.
9564         * tree-nrv.c (struct nrv_data): Add modified member.
9565         (finalize_nrv_r): Set it.
9566         (tree_nrv): Use it to update statements.
9567         (pass_nrv): Require PROP_ssa.
9568         * tree-mudflap.c (mf_decl_cache_locals,
9569         mf_build_check_statement_for): Use make_rename_temp.
9570         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
9571         * alias.c (find_base_decl): Handle SSA names.
9572         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
9573         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
9574         * rtl.h (set_reg_attrs_for_parm): Declare.
9575         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
9576         to "optimized", remove unused locals at finish.
9577         (execute_free_datastructures): Make global, call
9578         delete_tree_cfg_annotations.
9579         (execute_free_cfg_annotations): Don't call
9580         delete_tree_cfg_annotations.
9581
9582         * ssaexpand.h: New file.
9583         * expr.c (toplevel): Include ssaexpand.h.
9584         (expand_assignment): Handle SSA names the same as register variables.
9585         (expand_expr_real_1): Expand SSA names.
9586         * cfgexpand.c (toplevel): Include ssaexpand.h.
9587         (SA): New global variable.
9588         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
9589         (SSAVAR): New macro.
9590         (set_rtl): New helper function.
9591         (add_stack_var): Deal with SSA names, use set_rtl.
9592         (expand_one_stack_var_at): Likewise.
9593         (expand_one_stack_var): Deal with SSA names.
9594         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
9595         before unique numbers.
9596         (expand_stack_vars): Use set_rtl.
9597         (expand_one_var): Accept SSA names, add asserts for them, feed them
9598         to above subroutines.
9599         (expand_used_vars): Expand all partitions (without default defs),
9600         then only the local decls (ignoring those expanded already).
9601         (expand_gimple_cond): Remove edges when jumpif() expands an
9602         unconditional jump.
9603         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
9604         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
9605         SSA name.
9606         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
9607         members of SA; deal with PARM_DECL partitions here; expand
9608         all PHI nodes, free tree datastructures and SA.  Commit instructions
9609         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
9610         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
9611         info and statements at start, collect garbage at finish.
9612         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
9613         (VAR_ANN_PARTITION) Remove.
9614         (change_partition_var): Don't declare.
9615         (partition_to_var): Always return SSA names.
9616         (var_to_partition): Only accept SSA names.
9617         (register_ssa_partition): Only check argument.
9618         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
9619         member.
9620         (delete_var_map): Don't free it.
9621         (var_union): Only accept SSA names, simplify.
9622         (partition_view_init): Mark only useful SSA names as used.
9623         (partition_view_fini): Only deal with SSA names.
9624         (change_partition_var): Remove.
9625         (dump_var_map): Use ssa_name instead of partition_to_var member.
9626         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
9627         basic blocks.
9628         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
9629         (struct _elim_graph): New member const_dests; nodes member vector of
9630         ints.
9631         (set_location_for_edge): New static helper.
9632         (create_temp): Remove.
9633         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
9634         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
9635         (new_elim_graph): Allocate const_dests member.
9636         (clean_elim_graph): Truncate const_dests member.
9637         (delete_elim_graph): Free const_dests member.
9638         (elim_graph_size): Adapt to new type of nodes member.
9639         (elim_graph_add_node): Likewise.
9640         (eliminate_name): Likewise.
9641         (eliminate_build): Don't take basic block argument, deal only with
9642         partition numbers, not variables.
9643         (get_temp_reg): New static helper.
9644         (elim_create): Use it, deal with RTL temporaries instead of trees.
9645         (eliminate_phi): Adjust all calls to new signature.
9646         (assign_vars, replace_use_variable, replace_def_variable): Remove.
9647         (rewrite_trees): Only do checking.
9648         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
9649         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
9650         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
9651         contains_tree_r, MAX_STMTS_IN_LATCH,
9652         process_single_block_loop_latch, analyze_edges_for_bb,
9653         perform_edge_inserts): Remove.
9654         (expand_phi_nodes): New global function.
9655         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
9656         functions, initialize new parameter, remember partitions having a
9657         default def.
9658         (finish_out_of_ssa): New global function.
9659         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
9660         don't reset in_ssa_p here, don't disable TER when mudflap.
9661         (pass_del_ssa): Remove.
9662         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
9663         partition members.
9664         (execute_free_datastructures): Declare.
9665         * Makefile.in (SSAEXPAND_H): New variable.
9666         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
9667         * basic-block.h (commit_one_edge_insertion): Declare.
9668         * passes.c (init_optimization_passes): Move pass_nrv and
9669         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
9670         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
9671         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
9672         (redirect_branch_edge): Deal with super block when expanding, split
9673         out jump patching itself into ...
9674         (patch_jump_insn): ... here, new static helper.
9675
9676 2009-04-26  Michael Matz  <matz@suse.de>
9677
9678         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
9679         beyond num_ssa_names.
9680         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
9681         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
9682
9683 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
9684
9685         PR inline-asm/39543
9686         * fwprop.c (forward_propagate_asm): New function.
9687         (forward_propagate_and_simplify): Propagate also into __asm, if it
9688         doesn't increase the number of referenced registers.
9689
9690         PR c/39889
9691         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
9692
9693 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
9694
9695         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
9696         note_nonlocal_vla_type for nonlocal VLAs.
9697         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
9698         contains_remapped_vars, remap_vla_decls): New functions.
9699         (convert_nonlocal_reference_stmt): If not optimizing, call
9700         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
9701         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
9702         if it wasn't found in var_map.
9703         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
9704         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
9705         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
9706         declare_vars.
9707         * gimplify.c (nonlocal_vlas): New variable.
9708         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
9709         referenced VLAs.
9710         (gimplify_body): Create and destroy nonlocal_vlas.
9711
9712         * dwarf2out.c (loc_descr_plus_const): New function.
9713         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
9714         mem_loc_descriptor, loc_descriptor_from_tree_1,
9715         descr_info_loc, gen_variable_die): Use it.
9716
9717         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
9718         !TREE_STATIC VAR_DECLs.
9719         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
9720         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
9721         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
9722         DECL_BY_REFERENCE is valid.
9723         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
9724         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
9725         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
9726         Copy DECL_BY_REFERENCE.
9727         (struct nesting_copy_body_data): New type.
9728         (nesting_copy_decl): New function.
9729         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
9730         if they have variable length.
9731
9732 2009-04-26  Michael Matz  <matz@suse.de>
9733
9734         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
9735         mark new temporaries for renaming.
9736
9737 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
9738
9739         PR c/39581
9740         * c-decl.c (global_bindings_p): Return negative value.
9741         (c_variable_size): New.  Based on variable_size from
9742         stor-layout.c.
9743         (grokdeclarator): Call c_variable_size not variable_size.
9744
9745 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
9746
9747         * config/i386/i386.c (print_operand) ['z']: Fix typo.
9748
9749 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
9750
9751         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
9752         Redefine it to just use mingw/include.
9753         (ASM_SPEC): Rules for -m32 and -m64.
9754         (LINK_SPEC): Use Likewise.
9755         (SPEC_32): New define.
9756         (SPEC_64): Likewise.
9757         (SUB_LINK_SPEC): Likewise.
9758         (MULTILIB_DEFAULTS): New define.
9759         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
9760         Add multilib options.
9761         (MULTILIB_DIRNAMES): Likewise.
9762         (MULTILIB_OSDIRNAMES): Likewise.
9763         (LIBGCC): Likewise.
9764         (INSTALL_LIBGCC): Likewise.
9765
9766 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
9767
9768         PR c/39556
9769         * c-tree.h (enum c_inline_static_type): New.
9770         (record_inline_static): Declare.
9771         * c-decl.c (struct c_inline_static, c_inline_statics,
9772         record_inline_static, check_inline_statics): New.
9773         (pop_file_scope): Call check_inline_statics.
9774         (start_decl): Call record_inline_static instead of pedwarning
9775         directly for static in inline function.
9776         * c-typeck.c (build_external_ref): Call record_inline_static
9777         instead of pedwarning directly for static referenced in inline
9778         function.
9779
9780 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
9781
9782         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
9783         not new but only being rescanned.
9784         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
9785         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
9786         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
9787         record_set_info, compute_set, grealloc): Remove.
9788         (recompute_all_luids): New function.
9789         (gcse_main): Don't compute sets, and don't do related memory
9790         allocations/free-ing.  If something changed before the end of the
9791         pass, update LUIDs using recompute_all_luids.
9792         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
9793         (free_gcse_mem): Don't free it either.
9794         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
9795         Use the df insn LUIDs.
9796         (load_killed_in_block): Likewise.
9797         (compute_hash_table_work): Don't compute reg_set_in_block.
9798         (compute_transp): Use DF_REG_DEF_CHAINs.
9799         (local_cprop_pass): Don't use compute_sets and related functions.
9800         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
9801         Use get_max_uid() instead of max_cuid.
9802         (insert_insn_end_basic_block, pre_insert_copy_insn,
9803         update_ld_motion_stores): Don't try to
9804         keep reg_set tables up to date.
9805         (pre_insert_copies): Use df insn LUIDs.
9806         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
9807         (reg_set_info): Don't use extra bitmap argument.
9808         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
9809         information to compute regs_set_in_block.
9810         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
9811         (bypass_jumps): Don't use compute_sets and friends.
9812
9813 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9814
9815         PR testsuite/39710
9816         * opts.c (undocumented_msg): Do not leave blank even with
9817         ENABLE_CHECKING.
9818
9819 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
9820
9821         * c-decl.c (build_enumerator): Allow values folding to integer
9822         constants but not integer constant expressions with a pedwarn if
9823         pedantic.
9824
9825 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
9826
9827         PR c/39582
9828         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
9829         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
9830         type is an integer constant.
9831
9832 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
9833
9834         PR target/39897
9835         * config/i386/i386.c (print_operand) ['z']: Revert handling of
9836         HImode operands.
9837
9838 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
9839
9840         PR c/39564
9841         * c-decl.c (grokdeclarator): Diagnose declarations of functions
9842         with variably modified return type and no storage class
9843         specifiers, except for the case of nested functions.  Distinguish
9844         extern declarations of functions with variably modified return
9845         types from those of objects with variably modified types.
9846
9847 2009-04-25  Jan Hubicka  <jh@suse.cz>
9848
9849         * tree.c (list_equal_p): New function.
9850         * tree.h (list_equal_p): Declare.
9851         * coretypes.h (edge_def, edge, const_edge, basic_block_def
9852         basic_block_def, basic_block, const_basic_block): New.
9853         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
9854         (redirect_eh_edge): New function.
9855         (make_eh_edge_update_phi): EH edges are not abnormal.
9856         * except.c: Include tree-flow.h.
9857         (list_match): New function.
9858         (eh_region_replaceable_by_p): New function.
9859         (replace_region): New function.
9860         (hash_type_list): New function.
9861         (hash_eh_region): New function.
9862         (eh_regions_equal_p): New function.
9863         (merge_peers): New function.
9864         (remove_unreachable_regions): Verify EH tree when checking;
9865         merge peers.
9866         (copy_eh_region_1): New function.
9867         (copy_eh_region): New function.
9868         (push_reachable_handler): New function.
9869         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
9870         regions without label but with live RESX.
9871         * except.h (redirect_eh_edge_to_label): New.
9872         * tree-flow.h (redirect_eh_edge): New.
9873         * coretypes.h (edge_def, edge, const_edge, basic_block_def
9874         basic_block_def, basic_block, const_basic_block): Remove.
9875         * Makefile.in (except.o): Add dependency on tree-flow.h
9876         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
9877         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
9878         Remove.
9879
9880 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
9881
9882         PR bootstrap/39645
9883         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
9884         on the destination of memcpy.
9885
9886 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
9887
9888         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
9889         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
9890         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
9891
9892 2009-04-25  Jan Hubicka  <jh@suse.cz>
9893
9894         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
9895         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
9896         to be reached by different label than left.
9897         (update_eh_edges): Update comment; remove edge_to_remove if possible
9898         and return true if suceeded.
9899         (cleanup_empty_eh): Accept sharing map; handle shared regions.
9900         (cleanup_eh): Compute sharing map.
9901         * except.c (remove_eh_handler_and_replace): Add argument if we should
9902         update regions.
9903         (remove_unreachable_regions): Update for label sharing.
9904         (label_to_region_map): Likewise.
9905         (get_next_region_sharing_label): New function.
9906         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
9907         prev_try pointers.
9908         (remove_eh_handler): Update.
9909         (remove_eh_region_and_replace_by_outer_of): New function.
9910         * except.h (struct eh_region): Add next_region_sharing_label.
9911         (remove_eh_region_and_replace_by_outer_of,
9912         get_next_region_sharing_label): Declare.
9913         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
9914
9915 2009-04-25  Jan Hubicka  <jh@suse.cz>
9916
9917         * tree-cfg.c (split_critical_edges): Split also edges where we can't
9918         insert code even if they are not critical.
9919
9920 2009-04-25  Jan Hubicka  <jh@suse.cz>
9921
9922         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
9923         (gimple_can_remove_branch_p): EH edges won't remove branch by
9924         redirection.
9925         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
9926         updating of non-abnormal EH edges.
9927         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
9928         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
9929         (split_critical_edges): Split also edges where emitting code on them
9930         will lead to splitting later.
9931
9932 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
9933             H.J. Lu  <hongjiu.lu@intel.com>
9934
9935         PR target/39590
9936         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
9937         the configured assembler supports fildq and fistpq mnemonics.
9938         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
9939         * configure: Regenerated.
9940         * config.in: Ditto.
9941
9942         * config/i386/i386.c (print_operand): Handle 'Z'.
9943         ['z']: Remove handling of special fild/fist suffixes.
9944         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
9945         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
9946         suffix of fild insn.
9947         (*floatsi<mode>2_vector_mixed): Ditto.
9948         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
9949         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
9950         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
9951         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
9952         * config/i386/gas.h (GAS_MNEMONICS): Remove.
9953
9954 2009-04-25  Ben Elliston  <bje@au.ibm.com>
9955  
9956         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
9957         the source of a set operation.
9958
9959 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
9960
9961         * target.h (struct gcc_target): Add case_values_threshold field.
9962         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
9963         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
9964         * targhooks.c (default_case_values_threshold): New function.
9965         * targhooks.h (default_case_values_threshold): Declare function.
9966         * stmt.c (expand_case): Use case_values_threshold target hook.
9967         * expr.h (case_values_threshold): Remove declartation.
9968         * expr.c (case_values_threshold): Remove function.
9969         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
9970
9971         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
9972         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
9973         (avr_case_values_threshold): Declare as static.
9974         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
9975
9976         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
9977         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
9978         (mn10300_case_values_threshold): New function.
9979
9980 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
9981
9982         * ira.c (setup_cover_and_important_classes): Add enum cast.
9983
9984 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
9985
9986         * genpreds.c (write_enum_constraint_num): Output definition of
9987         CONSTRAINT_NUM_DEFINED_P macro.
9988         * ira.c (setup_cover_and_important_classes): Use
9989         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
9990         
9991 2009-04-24  DJ Delorie  <dj@redhat.com>
9992
9993         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
9994         __SH2A_SINGLE_ONLY__ also.
9995
9996 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
9997
9998         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
9999         (movdf_internal): Ditto.
10000         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
10001         SFmode and DFmode constants.
10002         (ia64_print_operand): Add 'G' format for printing
10003         floating point constants.
10004
10005 2009-04-24  Richard Guenther  <rguenther@suse.de>
10006
10007         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
10008         from unsigned additions.
10009
10010 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
10011
10012         * c-typeck.c (set_init_index): Allow array designators that are
10013         not integer constant expressions with a pedwarn if pedantic.
10014
10015 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
10016
10017         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
10018         zero if no overlap in nonzero bits between the operands.
10019
10020 2009-04-24  Ian Lance Taylor  <iant@google.com>
10021
10022         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
10023         (record_dead_and_set_regs): Likewise.
10024         * df.h (struct df_mw_hardreg): Change flags field to int.
10025         (struct df_base_ref): Likewise.
10026         (struct df): Change changeable_flags field to int.
10027         * df-scan.c (df_defs_record): Change clobber_flags to int.
10028         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
10029         constants rather than #define macros.
10030         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
10031         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
10032         (enum dwarf_calling_convention): Likewise.
10033         (enum dwarf_line_number_x_ops): Likewise.
10034         (enum dwarf_call_frame_info): Likewise.
10035         (enum dwarf_source_language): Likewise.
10036         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
10037         (add_calling_convention_attribute): Likewise.
10038         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
10039         (combine_comparisons): Change compcode to int.  Add cast to enum type.
10040         * genrecog.c (maybe_both_true_2): Change c to int.
10041         (write_switch): Likewise.  Add cast to enum type.
10042         * gimplify.c (gimplify_omp_for): Handle return values from
10043         gimplify_expr using MIN rather than bitwise or.
10044         (gimplify_expr): Add cast to enum type.
10045         * ipa-prop.c (update_jump_functions_after_inlining): Change
10046         IPA_BOTTOM to IPA_JF_UNKNOWN.
10047         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
10048         Add casts to enum type.
10049         (setup_cover_and_important_classes): Change cl to int.  Add casts
10050         to enum type.
10051         (setup_class_translate): Change cl and mode to int.
10052         (ira_init_once): Change mode to int.
10053         (free_register_move_costs): Likewise.
10054         (setup_prohibited_mode_move_regs): Add casts to enum type.
10055         * langhooks.c (add_builtin_function_common): Rework assertion that
10056         value fits bitfield.
10057         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
10058         * omega.c (omega_do_elimination): Avoid math on enum types.
10059         * optabs.c (expand_vec_shift_expr): Remove casts to int.
10060         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
10061         int local to handle integral_argment value.
10062         * regmove.c (try_auto_increment): Change PUT_MODE to
10063         PUT_REG_NOTE_KIND.
10064         * reload.c (push_secondary_reload): Add casts to enum type.
10065         (secondary_reload_class, find_valid_class): Likewise.
10066         * reload1.c (emit_input_reload_insns): Likewise.
10067         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
10068         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
10069         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
10070         constant.
10071         * tree.c (build_common_builtin_nodes): Add casts to enum type.
10072         * tree-complex.c (complex_lattice_t): Typedef to int rather than
10073         enum type.
10074         (expand_complex_libcall): Add casts to enum type.
10075         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
10076         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
10077         with ERROR_MARK, not NUM_TREE_CODES.
10078         (vect_create_epilog_for_reduction): Likewise.
10079         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
10080         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
10081         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
10082         enum machine_mode.
10083         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
10084         vect_unused_in_loop.  Change 0 to loop_vect.
10085         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
10086         * var-tracking.c (get_init_value): Change return type to enum
10087         var_init_status.
10088         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
10089         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
10090         arm_fp_model.
10091         (arm_override_options): Add casts to enum type.
10092         (arm_emit_tls_decoration): Likewise.
10093         * config/i386/i386.c (ix86_function_specific_restore): Add casts
10094         to enum type.
10095         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
10096         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
10097         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
10098         enum type.
10099         * config/s390/s390.c (code_for_builtin_64): Change to array of
10100         enum insn_code.
10101         (code_for_builtin_31): Likewise.
10102         (s390_expand_builtin): Change code_for_builtin to enum insn_code
10103         const *.
10104         * config/sparc/sparc.c (sparc_override_options): Change value
10105         field in struct code_model to enum cmodel.  In initializer change
10106         0 to NULL and add cast to enum type.
10107
10108         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
10109         Change all callers.  Issue a -Wc++-compat warning using
10110         lhs_origtype if necessary.
10111         (convert_for_assignment): Issue -Wc++-compat warnings about
10112         invalid conversions to enum type on assignment.
10113         * c-common.h (build_modify_expr): Update declaration.
10114
10115 2009-04-24  Nick Clifton  <nickc@redhat.com>
10116
10117         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
10118         (function_arg_advance): Likewise.
10119         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
10120         5th alternative.
10121
10122 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10123
10124         * config/s390/constraints.md ('I', 'J'): Fix condition.
10125
10126 2009-04-24  Diego Novillo  <dnovillo@google.com>
10127
10128         * gengtype-parse.c (parse_error): Add newline after message.
10129
10130 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
10131
10132         * config/i386/sse.md (avxmodesuffixs): Removed.
10133         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
10134         (*avx_pinsr<ssevecsize>): This.
10135
10136 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
10137
10138         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
10139         follow chains of regs with a single definition, and allow expressions
10140         that are function_invariant_p.
10141         (simple_rhs_p): Allow expressions that are function_invariant_p.
10142
10143 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
10144
10145         PR middle-end/39867
10146         * fold-const.c (fold_cond_expr_with_comparison): When folding
10147         > and >= to MAX, make sure the MAX uses the same type as the
10148         comparison's operands.
10149
10150 2009-04-24  Nick Clifton  <nickc@redhat.com>
10151
10152         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
10153         addressing for DImode accesses.
10154         (frv_print_operand_address): Handle PLUS case.
10155         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
10156
10157 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
10158
10159         PR rtl-optimization/39794
10160         * alias.c (canon_true_dependence): Add x_addr argument.
10161         * rtl.h (canon_true_dependence): Adjust prototype.
10162         * cse.c (check_dependence): Adjust canon_true_dependence callers.
10163         * cselib.c (cselib_invalidate_mem): Likewise.
10164         * gcse.c (compute_transp): Likewise.
10165         * dse.c (scan_reads_nospill): Likewise.
10166         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
10167         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
10168         canon_base_addr of the group, plus optional offset.
10169         (struct group_info): Rename canon_base_mem to
10170         canon_base_addr.
10171         (get_group_info): Set canon_base_addr to canon_rtx of base, not
10172         canon_rtx of base_mem.
10173
10174 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
10175
10176         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
10177         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
10178
10179 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10180
10181         * config/spu/spu-builtins.h: Delete file.
10182
10183         * config/spu/spu.h (enum spu_builtin_type): Move here from
10184         spu-builtins.h.
10185         (struct spu_builtin_description): Likewise.  Add GTY marker.
10186         Do not use enum spu_function_code or enum insn_code.
10187         (spu_builtins): Add extern declaration.
10188
10189         * config/spu/spu.c: Do not include "spu-builtins.h".
10190         (enum spu_function_code, enum spu_builtin_type_index,
10191         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
10192         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
10193         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
10194         unsigned_V2DI_type_node): Move here from spu-builtins.h.
10195         (spu_builtin_types): Make static.  Add GTY marker.
10196         (spu_builtins): Add extern declaration with GTY marker.
10197         Include "gt-spu.h".
10198
10199         * config/spu/spu-c.c: Do not include "spu-builtins.h".
10200         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
10201         Check programmatically whether all parameters are scalar.
10202
10203         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
10204
10205 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
10206
10207         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
10208         assignment from the constructor either if the target is volatile.
10209
10210 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
10211
10212         * config/arm/arm.md (insv): Do not share operands[0].
10213
10214 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
10215
10216         * config/vxlib-tls.c (active_tls_threads): Delete.
10217         (delete_hook_installed): New.
10218         (tls_delete_hook): Don't delete the delete hook.
10219         (tls_destructor): Delete it here.
10220         (__gthread_set_specific): Adjust installing the delete hook.
10221         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
10222         __gthread_leave_tsd_dtor_context.
10223
10224 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
10225
10226         * c-format.c (gcc_tdiag_char_table): Add support for %E.
10227
10228 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
10229
10230         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
10231         enum type.
10232         (alpha_rtx_costs): Ditto.
10233         (emit_unlikely_jump): Use add_reg_note.
10234         (emit_frame_store_1): Ditto.
10235         (alpha_expand_prologue): Ditto.
10236         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
10237         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
10238
10239 2009-04-23  Nick Clifton  <nickc@redhat.com>
10240
10241         * config/v850/v850.md (epilogue): Remove suppressed code.
10242         (return): Rename to return_simple and remove test of frame size.
10243         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
10244         to gen_return_simple.
10245
10246 2009-04-22  Jing Yu  <jingyu@google.com>
10247
10248         PR testsuite/39781
10249         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
10250
10251 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10252
10253         PR C/31499
10254         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
10255         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
10256         value is a VECTOR_CST, the element type is the element type of the
10257         vector.
10258
10259 2009-04-22  DJ Delorie  <dj@redhat.com>
10260
10261         * config/m32c/m32c.h: Update GTY annotations to new syntax.
10262
10263 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
10264
10265         * alias.c (find_base_term): Move around LO_SUM case, so that
10266         CONST falls through into PLUS/MINUS handling.
10267
10268         PR c/39855
10269         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
10270         into 0, use omit_one_operand.
10271
10272 2009-04-23  Ben Elliston  <bje@au.ibm.com>
10273
10274         * config/rs6000/linux-unwind.h (get_regs): Remove type
10275         puns. Change the type of `pc' to an array of unsigned ints and
10276         update all users.  Constify frame24.
10277
10278 2009-04-22  DJ Delorie  <dj@redhat.com>
10279
10280         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
10281         declarations before code.
10282         (current_function_special_page_vector): Likewise.
10283         (m32c_expand_insv): Silence a warning.
10284
10285 2009-04-21  Taras Glek  <tglek@mozilla.com>
10286
10287         * alias.c: Update GTY annotations to new syntax.
10288         * basic-block.h: Likewise.
10289         * bitmap.h: Likewise.
10290         * c-common.h: Likewise.
10291         * c-decl.c: Likewise.
10292         * c-parser.c: Likewise.
10293         * c-pragma.c: Likewise.
10294         * c-tree.h: Likewise.
10295         * cfgloop.h: Likewise.
10296         * cgraph.h: Likewise.
10297         * config/alpha/alpha.c: Likewise.
10298         * config/arm/arm.h: Likewise.
10299         * config/avr/avr.h: Likewise.
10300         * config/bfin/bfin.c: Likewise.
10301         * config/cris/cris.c: Likewise.
10302         * config/darwin.c: Likewise.
10303         * config/frv/frv.c: Likewise.
10304         * config/i386/i386.c: Likewise.
10305         * config/i386/i386.h: Likewise.
10306         * config/i386/winnt.c: Likewise.
10307         * config/ia64/ia64.h: Likewise.
10308         * config/iq2000/iq2000.c: Likewise.
10309         * config/mips/mips.c: Likewise.
10310         * config/mmix/mmix.h: Likewise.
10311         * config/pa/pa.c: Likewise.
10312         * config/pa/pa.h: Likewise.
10313         * config/rs6000/rs6000.c: Likewise.
10314         * config/s390/s390.c: Likewise.
10315         * config/sparc/sparc.c: Likewise.
10316         * config/xtensa/xtensa.c: Likewise.
10317         * cselib.h: Likewise.
10318         * dbxout.c: Likewise.
10319         * dwarf2out.c: Likewise.
10320         * except.c: Likewise.
10321         * except.h: Likewise.
10322         * fixed-value.h: Likewise.
10323         * function.c: Likewise.
10324         * function.h: Likewise.
10325         * gimple.h: Likewise.
10326         * integrate.c: Likewise.
10327         * optabs.c: Likewise.
10328         * output.h: Likewise.
10329         * real.h: Likewise.
10330         * rtl.h: Likewise.
10331         * stringpool.c: Likewise.
10332         * tree-data-ref.c: Likewise.
10333         * tree-flow.h: Likewise.
10334         * tree-scalar-evolution.c: Likewise.
10335         * tree-ssa-address.c: Likewise.
10336         * tree-ssa-alias.h: Likewise.
10337         * tree-ssa-operands.h: Likewise.
10338         * tree.c: Likewise.
10339         * tree.h: Likewise.
10340         * varasm.c: Likewise.
10341         * varray.h: Likewise.
10342         * vec.h: Likewise.
10343         * coretypes.h: Do not define GTY macro if it is already defined.
10344         * doc/gty.texi: Update GTY documentation to new syntax.
10345         * gengtype-lex.l: Enforce attribute-like syntax for GTY
10346         annotations on structs.
10347         * gengtype-parse.c: Likewise.
10348
10349 2009-04-22  Mark Heffernan  <meheff@google.com>
10350
10351         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
10352
10353 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
10354
10355         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
10356         where appropriate.
10357
10358 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
10359
10360         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
10361         the same as a PLUS without a shift.  Increase the cost of a
10362         CONST_INT in MULT.
10363
10364 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10365
10366         * Makefile.in: Update dependencies.
10367         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
10368         * errors.h: Remove bogus comment about compatibility.
10369         (warning): Update declaration.
10370         * genautomata.c: Update all calls to warning.
10371         * gimple.c: Do not include errors.h. Include toplev.h.
10372         * tree-ssa-structalias.c: Do not include errors.h.
10373         * omega.c: Likewise.
10374         * tree-ssa-reassoc.c: Likewise.
10375         * config/spu/spu-c.c: Likewise.
10376         * config/spu/t-spu-elf: Update dependencies.
10377
10378 2009-04-22  Richard Guenther  <rguenther@suse.de>
10379
10380         PR tree-optimization/39824
10381         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
10382         make sure the types are compatible.
10383
10384 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10385
10386         PR c++/14875
10387         * c-common.c (c_parse_error): Take a token_flags parameter.
10388         Use token_type for the token type instead.
10389         Pass token_flags to cpp_type2name.
10390         * c-common.h (c_parse_error): Update declaration.
10391         * c-parser.c (c_parser_error): Pass 0 as token flags.
10392
10393 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
10394
10395         PR rtl-optimization/39580
10396         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
10397         
10398 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10399
10400         * function.c (expand_function_end): Do not emit a jump to the "naked"
10401         return label for fall-through returns.
10402         * except.c (sjlj_emit_function_exit): Always place the call to the
10403         unregister function at the location installed by expand_function_end.
10404
10405 2009-04-22  Richard Guenther  <rguenther@suse.de>
10406
10407         PR tree-optimization/39845
10408         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
10409         (gen_inbound_check): Likewise.
10410
10411 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
10412
10413         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
10414         padding for PPC.
10415         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
10416         * config/vxlib.c (__gthread_once): Add race guard for PPC.
10417
10418 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
10419
10420         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
10421         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
10422         shift counts to avoid out-of-bounds array accesses.
10423
10424 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
10425
10426         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
10427         (Pmode): Move above.
10428
10429 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
10430
10431         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
10432         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
10433         GET_CODE macro.  Use IN_RANGE macro where appropriate.
10434         * config/alpha/alpha.h: Ditto.
10435         * config/alpha/alpha.md: Ditto.
10436         * config/alpha/constraints.md: Ditto.
10437         * config/alpha/predicates.md: Ditto.
10438         
10439 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
10440
10441         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
10442         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10443         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10444         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10445         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10446         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10447         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10448         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10449         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10450         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10451         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10452         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10453         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10454         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10455         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10456         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10457         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10458         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10459         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10460         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10461         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10462         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10463         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10464         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10465         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10466         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10467         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10468
10469 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10470
10471         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
10472         references from comments.
10473         * cfgbuild.c: (count_basic_blocks): Delete.
10474         (find_basic_blocks_1): Delete.
10475         (find_basic_blocks): Delete.
10476         * except.c (finish_eh_generation): Make static.  Move comment from
10477         except.h here.  Remove find_basic_blocks references from comments.
10478         * except.h (finish_eh_generation): Delete.
10479         * basic-block.h (find_basic_blocks): Delete.
10480         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
10481
10482 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
10483
10484         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
10485         (sdbout_parms):  Likewise.
10486
10487 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
10488
10489         * config/sh/sh.c (prepare_cbranch_operands): Use
10490         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
10491         (expand_cbranchdi4): Likewise.
10492         (from_compare): Add cast to enum type.
10493         (expand_cbranchsi4): Use add_reg_note.
10494         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
10495         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
10496         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
10497         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
10498         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
10499         instead of CODE_FOR_nothing.
10500         (cbranchdi4): Likewise.  Fix the order of arguments for
10501         gen_rtx_fmt_ee.
10502         (push_fpscr): Use add_reg_note.
10503         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
10504         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
10505         
10506 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
10507
10508         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
10509         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
10510         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
10511         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
10512         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
10513         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
10514         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
10515         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
10516         config/alpha/x-vms, config/arc/t-arc,
10517         config/arm/README-interworking, config/arm/arm-c.c,
10518         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
10519         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
10520         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
10521         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
10522         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
10523         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
10524         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
10525         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
10526         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
10527         config/cris/t-elfmulti, config/crx/t-crx,
10528         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
10529         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
10530         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
10531         config/h8300/t-h8300, config/i386/athlon.md,
10532         config/i386/darwin-libgcc.10.4.ver,
10533         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
10534         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
10535         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
10536         config/i386/t-linux64, config/i386/t-nwld,
10537         config/i386/t-rtems-i386, config/i386/t-sol2-10,
10538         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
10539         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
10540         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
10541         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
10542         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
10543         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
10544         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
10545         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
10546         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
10547         config/m68k/t-uclinux, config/mcore/t-mcore,
10548         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
10549         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
10550         config/mips/crtn.asm, config/mips/irix-crti.asm,
10551         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
10552         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
10553         config/mips/mips-fixed.md, config/mips/sb1.md,
10554         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
10555         config/mips/t-iris6, config/mips/t-isa3264,
10556         config/mips/t-libgcc-mips16, config/mips/t-linux64,
10557         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
10558         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
10559         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
10560         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
10561         config/mn10300/t-linux, config/mn10300/t-mn10300,
10562         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
10563         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
10564         config/picochip/libgccExtras/clzsi2.asm,
10565         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
10566         config/rs6000/darwin-libgcc.10.4.ver,
10567         config/rs6000/darwin-libgcc.10.5.ver,
10568         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
10569         config/rs6000/t-aix43, config/rs6000/t-aix52,
10570         config/rs6000/t-darwin, config/rs6000/t-fprules,
10571         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
10572         config/rs6000/t-lynx, config/rs6000/t-netbsd,
10573         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
10574         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
10575         config/rs6000/t-rtems, config/rs6000/t-spe,
10576         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
10577         config/score/t-score-elf, config/sh/divcost-analysis,
10578         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
10579         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
10580         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
10581         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
10582         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
10583         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
10584         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
10585         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
10586         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
10587         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
10588         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
10589         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
10590         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
10591         limitx.h, version.c, xcoff.h: Add copyright and license notices.
10592         * config/h8300/genmova.sh: Include copyright and license notices
10593         in generated output.
10594         * config/h8300/mova.md: Regenerate.
10595         * doc/install.texi2html: Include word "Copyright" in copyright
10596         notice and use name "Free Software Foundation, Inc.".
10597         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
10598         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
10599         ChangeLog-2007, ChangeLog-2008: Correct dates.
10600
10601 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
10602
10603         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
10604         NE_EXPR operations as well.
10605         * c-parser.c (c_parser_condition): Do not set location information on
10606         the condition.
10607         (c_parser_conditional_expression): Likewise.
10608         (c_parser_binary_expression): Set location information on operators.
10609         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
10610         TRUTH_NOT_EXPR has been folded.
10611         * fold-const.c (fold_truth_not_expr): Copy location information from
10612         the incoming expression to the outgoing one.
10613         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
10614         recursive calls on the LHS of the operator but pass that of the
10615         operator to recursive calls on the RHS of the operator.  Set it
10616         on the COND_EXPR.
10617         (shortcut_cond_expr): Set the locus of the operator on the second
10618         COND_EXPR and that of the expression on the first in degenerate cases.
10619         Pass the locus of the expression to calls to shortcut_cond_r.
10620         Set the locus of the 'then' block on the associated jump, if any.
10621         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
10622         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
10623         expression to call to gimplify_boolean_expr.
10624
10625 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
10626
10627         * config.gcc: Add additional configuration for
10628         i686-w64-mingw* and x86_64-w64-mingw* triplet.
10629         * config/i386/mingw-w64.h: New mingw-w64 specific header.
10630         (CPP_SPEC): Redefine for allowing -municode option.
10631         (STARTFILE_SPEC): Likewise.
10632         * config/i386/t-mingw-w64: New.
10633         * config/i386/mingw-w64.opt: New.
10634         (municode): Add new target option.
10635         * doc/invoke.texi (municode): Add documentation for new option.
10636
10637 2009-04-21  Ian Lance Taylor  <iant@google.com>
10638
10639         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10640         Correct test for number of arguments.
10641         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
10642
10643 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
10644
10645         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
10646         argument of emit_library_call.
10647
10648 2009-04-21  Richard Guenther  <rguenther@suse.de>
10649
10650         PR middle-end/39829
10651         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
10652         inside VIEW_CONVERT_EXPRs.
10653
10654 2009-04-21  Martin Jambor  <mjambor@suse.cz>
10655
10656         * tree-switch-conversion.c (build_constructors): Split a long line.
10657         (constructor_contains_same_values_p): New function.
10658         (build_one_array): Create assigns of constants if possible, do not
10659         call mark_sym_for_renaming, call update_stmt.
10660         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
10661         make_rename_temp.  Do not call mark_symbols_for_renaming, call
10662         update_stmt.
10663         (gen_def_assigns): Do not call mark_symbols_for_renaming or
10664         find_new_referenced_vars, call update_stmt.
10665         (gen_inbound_check): Use create_tmp_var and create ssa names manually
10666         instead of calling make_rename_temp.  Do not call
10667         find_new_referenced_vars or mark_symbols_for_renaming, call
10668         update_stmt.
10669
10670 2009-04-21  Richard Guenther  <rguenther@suse.de>
10671
10672         PR tree-optimization/39827
10673         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
10674         (tree_ssa_phiprop): Pass the correct array size.
10675
10676 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
10677
10678         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
10679
10680 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10681
10682         PR 16202
10683         * c-typeck.c (lvalue_p): Move declaration ...
10684         * c-common.h (lvalue_p): ... to here.
10685         * c-common.c (candidate_equal_p): New.
10686         (add_tlist): Use it.
10687         (merge_tlist): Use it.
10688         (warn_for_collisions_1): Likewise.
10689         (warning_candidate_p): Accept more candidates.
10690         (verify_tree): A warning candidate can be an expression. Use
10691         candidate_equal_p.
10692
10693 2009-04-21  Ben Elliston  <bje@au.ibm.com>
10694
10695         PR target/5267
10696         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
10697         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
10698         options.  Remove -mcall-solaris documentation.
10699
10700 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10701
10702         PR c++/13358
10703         * doc/invoke.texi (-Wlong-long): Update description.
10704         * c-lex (interpret_integer): Only warn if there was no previous
10705         overflow and -Wlong-long is enabled.
10706         * c-decl.c (declspecs_add_type): Drop redundant flags.
10707         * c.opt (Wlong-long): Init to -1.
10708         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
10709         and front-end warn_long_long. Wlong-long only depends on other
10710         flags if it is uninitialized.
10711         * c-parser.c (disable_extension_diagnostics): warn_long_long is
10712         the same for CPP and FE.
10713         (restore_extension_diagnostics): Likewise.
10714
10715 2009-04-20  Ian Lance Taylor  <iant@google.com>
10716
10717         Fix enum conversions which are invalid in C++:
10718         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
10719         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
10720         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
10721         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
10722         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
10723         (dbxout_parms): Likewise.
10724         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
10725         (df_clear_flags): Likewise.
10726         * df-problems.c (df_rd_bb_local_compute_process_def): Change
10727         top_flag parameter to int.
10728         (df_chain_create_bb_process_use): Likewise.
10729         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
10730         Remove cast.
10731         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
10732         (df_ref_create_structure, df_def_record_1): Likewise.
10733         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
10734         (df_notes_rescan): Change 0 to VOIDmode in function call.
10735         (df_get_call_refs, df_insn_refs_collect): Likewise.
10736         (df_bb_regs_collect): Likewise.
10737         (df_entry_block_defs_collect): Likewise.
10738         (df_exit_block_uses_collect): Likewise.
10739         * df.h: Update declarations.
10740         * double-int.c (double_int_divmod): Add cast to enum type.
10741         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
10742         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
10743         (based_loc_descr): Likewise.
10744         (loc_descriptor_from_tree_1): Change first_op and second_op to
10745         enum dwarf_location_atom.  Add cast to enum type.
10746         * expmed.c (init_expmed): Change 0 to SET in function call.
10747         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
10748         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
10749         (do_store_flag): Likewise.
10750         * fixed-value.h (struct fixed_value): Change mode to enum
10751         machine_mode.
10752         * function.c (assign_parms): Change 0 to VOIDmode in function call.
10753         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
10754         function call.
10755         (insert_insn_decl, insert_decl, insert_state): Likewise.
10756         (automata_list_finish): Likewise.
10757         * genrecog.c (process_define_predicate): Add cast to enum type.
10758         * gensupport.c (init_predicate_table): Add cast to enum type.
10759         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
10760         function call.
10761         (gimple_build_call_1, gimple_build_label): Likewise.
10762         (gimple_build_goto, gimple_build_asm_1): Likewise.
10763         (gimple_build_switch_1, gimple_build_cdt): Likewise.
10764         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
10765         (enum fallback): Rename from enum fallback_t.
10766         (fallback_t): Typedef as int.
10767         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
10768         GSI_SAME_STMT in function call.
10769         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
10770         enum type.
10771         (setup_reg_class_relations): Likewise.
10772         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
10773         (setup_prohibited_class_mode_regs): Add cast to enum type.
10774         (setup_prohibited_mode_move_regs): Likewise.
10775         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
10776         (record_address_regs): Change i to enum reg_class.
10777         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
10778         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
10779         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
10780         (GET_MODE_2XWIDER_MODE): Likewise.
10781         (GET_CLASS_NARROWEST_MODE): Likewise.
10782         * omp-low.c (expand_omp_for): Add cast to enum type.
10783         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
10784         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
10785         * postreload.c (reload_cse_simplify_operands): Change rclass local
10786         to enum reg_class.
10787         * predict.c (combine_predictions_for_insn): Change best_predictor
10788         and predictor to enum br_predictor.
10789         (combine_predictions_for_bb): Likewise.
10790         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
10791         use SET_PREDICT_EXPR_OUTCOME.
10792         * real.c (real_arithmetic): Change icode to code in function call.
10793         * reginfo.c (init_move_cost): Add casts to enum type.
10794         (init_reg_sets_1, init_fake_stack_mems): Likewise.
10795         * regmove.c (regclass_compatible_p): Change class0 and class1 to
10796         enum reg_class.
10797         * reload.c (find_valid_class): Add casts to enum type.
10798         (push_reload): Change 0 to NO_REGS in function call.
10799         (find_reloads): Change this_alternative to array of enum
10800         reg_class.  Remove some now-unnecessary casts.
10801         (make_memloc): Change 0 to VOIDmode in function call.
10802         * reload1.c (reload): Change 0 to VOIDmode in function call.
10803         (eliminate_regs_1, elimination_effects): Likewise.
10804         (eliminate_regs_in_insn): Likewise.
10805         (emit_input_reload_insns): Add cast to enum type.
10806         (delete_output_reload): Change 0 to VOIDmode in function call.
10807         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
10808         to enum type in function call.
10809         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
10810         (SET_PREDICT_EXPR_OUTCOME): Define.
10811         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
10812         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
10813         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
10814         (dump_function): Likewise.
10815         * tree-dump.h: Update declarations.
10816         * tree-pass.h: Update declarations.
10817         * varasm.c (assemble_integer): Change mclass to enum mode_class.
10818         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
10819         enum type.
10820         (arm_rtx_costs_1): Correct parenthesization.
10821         (arm_rtx_costs): Add casts to enum type.
10822         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
10823         (vfp_emit_fstmd): Use add_rg_note.
10824         (emit_multi_reg_push, emit_sfm): Likewise.
10825         (thumb_set_frame_pointer): Likewise.
10826         (arm_expand_prologue): Likewise.
10827         (arm_regno_class): Change return type to enum reg_class.
10828         (thumb1_expand_prologue): Use add_reg_note.
10829         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
10830         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
10831         in function call.
10832         * config/arm/gentune.sh: Add cast to enum type.
10833         * config/arm/arm-tune.md: Rebuild.
10834         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
10835         (ix86_split_fp_branch, predict_jump): Likewise.
10836         (ix86_expand_multi_arg_builtin): Change sub_code from enum
10837         insn_code to enum rtx_code.
10838         (ix86_builtin_vectorized_function): Add cast to enum type.
10839         * config/i386/i386.md (truncdfsf2): Change slot to enum
10840         ix86_stack_slot.
10841         (truncxf<mode>2, isinf<mode>2): Likewise.
10842         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
10843         enum type.
10844         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
10845         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
10846         (insert_bundle_state): Change 1 to INSERT in function call.
10847         (ia64_add_bundle_selector_before): Likewise.
10848         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
10849         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
10850         (restore_stack_nonlocal): Likewise.
10851         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
10852         function call.
10853         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
10854         function call.
10855         (mips_rtx_costs): Likewise.
10856         (mips_override_options): Add casts to enum type.
10857         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
10858         in function call.
10859         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
10860         (store_reg, set_reg_plus_d): Likewise.
10861         (hppa_expand_prologue, hppa_profile_hook): Likewise.
10862         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
10863         cast to enum type.
10864         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
10865         function call.
10866         (emit_unlikely_jump): Use add_reg_note.
10867         (rs6000_emit_allocate_stack): Likewise.
10868         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
10869         (output_toc): Change 1 to INSERT in function call.
10870         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
10871         (rs6000_initialize_trampoline): Likewise.
10872         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
10873         function call.
10874         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
10875         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
10876         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
10877         (save_gprs): Use add_reg_note.
10878         (s390_emit_prologue): Likewise.
10879         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
10880         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
10881         (sparc_fold_builtin): Add cast to enum type.
10882         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
10883         enum insn_code.
10884         (spu_expand_prologue): Use add_reg_note.
10885         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
10886
10887 2009-04-20  Ian Lance Taylor  <iant@google.com>
10888
10889         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
10890         (c_parser_postfix_expression_after_primary): Get VEC for list of
10891         arguments.  Get original types of arguments.  Call
10892         build_function_call_vec.
10893         (cached_expr_list_1, cached_expr_list_2): New static variables.
10894         (c_parser_expr_list): Change return type to VEC *.  Add
10895         p_orig_types parameter.  Change all callers.
10896         (c_parser_release_expr): New static function.
10897         (c_parser_vec_to_tree_list): New static function.
10898         * c-typeck.c (build_function_call): Rewrite to build a VEC and
10899         call build_function_call_vec.
10900         (build_function_call_vec): New function, based on old
10901         build_function_call.
10902         (convert_arguments): Remove nargs and argarray parameters.  Change
10903         values to a VEC.  Add origtypes parameter.
10904         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
10905         (convert_for_assignment): Add origtype parameter.  Change all
10906         callers.  If warn_cxx_compat, check for conversion to an enum
10907         type when calling a function.
10908         (store_init_value): Add origtype parameter.  Change all callers.
10909         (digest_init): Likewise.
10910         (struct init_node): Add origtype field.
10911         (add_pending_init): Add origtype parameter.  Change all callers.
10912         (output_init_element): Likewise.
10913         (output_pending_init_elements): Pass origtype from init_node to
10914         output_init_element.
10915         (process_init_element): Pass origtype from c_expr to
10916         output_init_element.
10917         (c_finish_return): Add origtype parameter.  Change all callers.
10918         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
10919         caller.
10920         (sync_resolve_params): Likewise.
10921         (sync_resolve_return): Change params to first_param.  Change caller.
10922         (resolve_overloaded_builtins): Change params to VEC *.  Change
10923         callers.  Save first parameter around call to build_function_call_vec.
10924         * c-decl.c (finish_decl): Add origtype parameter.  Change all
10925         callers.  Call build_function_call_vec rather than
10926         build_function_call for cleanup.
10927         * c-tree.h: Update declarations.
10928         * c-common.h: Update declarations.
10929         * stub-objc.c (objc_rewrite_function_call): Change parameter from
10930         params to first_param.
10931         * target.h (struct gcc_target): Change resolve_overloaded_builtin
10932         params parameter from tree to void *.
10933         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10934         Change arglist parameter to have type void *, and to be a pointer
10935         to a VEC.
10936         * config/rs6000/rs6000-protos.h
10937         (altivec_resolve_overloaded_builtin): Update declaration.
10938         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
10939         fnargs parameter to have type void *, and to be a pointer to a
10940         VEC.  Call build_function_call_vec instead of
10941         build_function_call.
10942         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
10943
10944 2009-04-20  Joey Ye  <joey.ye@intel.com>
10945             Xuepeng Guo  <xuepeng.guo@intel.com>
10946             H.J. Lu  <hongjiu.lu@intel.com>
10947
10948         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
10949
10950         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
10951         (IX86_LEA_PRIORITY): Likewise.
10952         (distance_non_agu_define): New function.
10953         (distance_agu_use): Likewise.
10954         (ix86_lea_for_add_ok): Likewise.
10955         (ix86_dep_by_shift_count): Likewise.
10956
10957         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
10958         should split for LEA.
10959
10960         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
10961         function.
10962         (ix86_dep_by_shift_count): Likewise.
10963
10964 2009-04-20  Richard Guenther  <rguenther@suse.de>
10965
10966         * expr.c (handled_component_p): Move ...
10967         * tree.h (handled_component_p): ... here.
10968         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
10969         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
10970         and REALPART_EXPR to be in one group.
10971
10972 2009-04-20  Richard Guenther  <rguenther@suse.de>
10973
10974         * basic-block.h (get_all_dominated_blocks): Declare.
10975         * dominance.c (get_all_dominated_blocks): New function.
10976         * tree-cfg.c (get_all_dominated_blocks): Remove.
10977         (remove_edge_and_dominated_blocks): Adjust.
10978         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
10979         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
10980         instead of recursing.
10981
10982 2009-04-20  Doug Kwan  <dougkwan@google.com>
10983
10984         * cgraph.h (cgraph_node_ptr): New type for vector functions.
10985         (struct cgraph_node_set_def): New type.
10986         (cgraph_node_set) New type. Also declare vector functions.
10987         (struct cgraph_node_set_element_def): New type.
10988         (cgraph_node_set_element): Ditto.
10989         (cgraph_node_set_iterator): New iterator type.
10990         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
10991         cgraph_node_set_remove, dump_cgraph_node_set,
10992         debug_cgraph_node_set): New prototypes.
10993         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
10994         cgraph_node_set_size): New inlines.
10995         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
10996         including cgraph.h.
10997         (struct ipa_opt_pass): Add struct cgraph_node_set_def
10998         argument to function 'write_summary'.
10999         * ipa.c: Include ggc.h.
11000         (hash_cgraph_node_set_element,
11001         eq_cgraph_node_set_element, cgraph_node_set_new,
11002         cgraph_node_set_add, cgraph_node_set_remove,
11003         cgraph_node_set_find, dump_cgraph_node_set,
11004         debug_cgraph_node_set): New functions.
11005         * Makefile.in (ipa.o): Add dependency on GGC_H.
11006
11007 2009-04-20  Ira Rosen  <irar@il.ibm.com>
11008
11009         PR tree-optimization/39675
11010         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
11011         check of the return code of vect_schedule_slp. Check that
11012         stmt_vec_info still exists for the statement, before checking its
11013         vectorization type.
11014
11015 2009-04-20  Michael Matz  <matz@suse.de>
11016
11017         * Makefile.in (generated_files): Take out $(simple_generated_c).
11018
11019 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
11020
11021         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
11022         (UINTPTR_TYPE):  Likewise.
11023
11024 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
11025
11026         PR c/37481
11027         * c-typeck.c (digest_init): Check for initializing an array with a
11028         string literal.
11029
11030 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
11031
11032         PR c/19771
11033         * c-semantics.c (pop_stmt_list): Propagate
11034         STATEMENT_LIST_HAS_LABEL to parent statement list.
11035
11036 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
11037
11038         * config/mips/mips.h (mips_tune_attr): New macro.
11039         * config/mips/mips.md (cpu): Use it.
11040
11041 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
11042
11043         PR c/38243
11044         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
11045         declaring a tag.
11046
11047 2009-04-19  Diego Novillo  <dnovillo@google.com>
11048
11049         * toplev.c (compile_file): Move call to coverage_finish ...
11050         * cgraphunit.c (ipa_passes): ... here.
11051         Call cgraph_process_new_functions.
11052         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
11053         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
11054
11055 2009-04-19  Jan Hubicka  <jh@suse.cz>
11056
11057         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
11058         cfun.
11059         (dump_cgraph_node): Dump can throw external flag.
11060         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
11061
11062 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11063
11064         PR c/32061
11065         PR c++/36954
11066         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
11067         * common.opt (Wlogical-op): Move from here...
11068         * c.opt (Wlogical-op): ... to here.
11069         * c-typeck.c (parser_build_binary_op): Update call to
11070         warn_logical_operator.
11071         * c-opts.c (c_common_post_options): Enable warn_logical_op with
11072         extra_warnings.
11073         * c-common.c (warn_logical_op): Update.
11074         * c-common.h (warn_logical_op): Update declaration.
11075
11076 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
11077
11078         * tree.c (protected_set_expr_location): Fix formatting.
11079
11080 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
11081
11082         PR c/27676
11083         * c-typeck.c (readonly_warning): new.
11084         (build_unary_op, build_modify_expr): Use readonly_warning for
11085         storing into something readonly but not const-qualified.
11086
11087 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
11088
11089         PR c/22367
11090         * c-typeck.c (build_unary_op): Check for taking address of
11091         expression of type void.
11092
11093 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
11094
11095         PR c/35210
11096         * c-typeck.c (build_function_call): Check for calling a function
11097         with qualified void return types.  Call require_complete_type when
11098         generating a trap.
11099
11100 2009-04-18  Jan Hubicka  <jh@suse.cz>
11101
11102         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
11103         Set nothrow flag.
11104         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
11105         can_throw_external flag.
11106         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
11107         * ipa-pure-const.c (ignore_edge): New function.
11108         (propagate): Compute order for NOTHROW computation; set NOTHROWs
11109         only over can_throw_external edges.
11110         (local_pure_const): Add nothrow flag.
11111         * ipa-utils.c (searchc): Add ignore_edge callback.
11112         (ipa_utils_reduced_inorder): Add ignore_edge callback.
11113         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
11114         (set_nothrow_function_flags): Update cgraph.
11115         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
11116
11117 2009-04-18  Richard Guenther  <rguenther@suse.de>
11118
11119         PR middle-end/39804
11120         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
11121         (fold_stmt): ... this and ...
11122         (fold_stmt_inplace): ... this.
11123         (fold_stmt_1): Fold references in calls and asms.
11124         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
11125
11126 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11127
11128         * tree-vrp.c (ssa_name_nonzero_p): Remove.
11129         * tree.h: Remove the prototype for ssa_name_nonzero_p.
11130
11131 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11132
11133         * tree.c (function_args_count): Remove.
11134         * tree.h: Remove the prototype for function_args_count.
11135
11136 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11137
11138         * tree-iterator.c (expr_only): Remove.
11139         * tree.h: Remove the prototype for expr_only.
11140
11141 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11142
11143         * reginfo.c (cannot_change_mode_set_regs): Remove.
11144         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
11145
11146 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
11147
11148         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
11149         whether operands 0 and 1 overlaps.
11150
11151 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11152
11153         PR middle-end/36902
11154         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
11155         pointer. Use warning_at instead of warning.
11156         (search_for_addr_array): Likewise.
11157         (check_array_bounds): Likewise.
11158         (check_all_array_refs): Check that the incoming edge is not in the
11159         list of edges to be removed.
11160         (check_all_array_refs): Avoid the temporal pointer.
11161         (vrp_visit_cond_stmt): Fix typo.
11162         (simplify_switch_using_ranges): Handle the case where the switch
11163         index is an integer constant.
11164
11165 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
11166
11167         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
11168
11169 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
11170
11171         * doc/extend.texi, doc/invoke.texi: Fix typos.
11172
11173 2009-04-17  Cary Coutant  <ccoutant@google.com>
11174
11175         * tree-flow-inline.h (get_lineno): Fix inverted test.
11176
11177 2009-04-17  Diego Novillo  <dnovillo@google.com>
11178
11179         * tree-ssa-pre.c (create_expression_by_pieces): Remove
11180         assertion for AVAIL_OUT.
11181
11182 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
11183
11184         PR target/38627
11185         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
11186         * config/sh/linux-atomic.asm: Likewise.
11187
11188 2009-04-17  Diego Novillo  <dnovillo@google.com>
11189
11190         * except.c (debug_eh_tree): New.
11191         (struct eh_region, struct eh_status): Move ...
11192         * except.h: ... here.
11193         (add_type_for_runtime): Declare extern.
11194         (lookup_type_for_runtime): Likewise.
11195         (debug_eh_tree): Declare.
11196         * Makefile.in (GTFILES): List except.h before except.c
11197
11198 2009-04-17  Diego Novillo  <dnovillo@google.com>
11199
11200         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
11201         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
11202         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
11203         (find_vars_r): ... here.
11204         * tree-flow.h (find_referenced_vars_in): Declare.
11205         * tree-ssa-pre.c (create_expression_by_pieces): Assert
11206         that AVAIL_OUT exists for BLOCK.
11207         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
11208         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
11209         (tree-parloops.o): Likewise.
11210
11211 2009-04-17  Simon Baldwin  <simonb@google.com>
11212
11213         * toplev.c (default_tree_printer): Add handling for %E format.
11214
11215 2009-04-17  Diego Novillo  <dnovillo@google.com>
11216
11217         * tree-pretty-print.c (dump_generic_node): Add break after
11218         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
11219         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
11220         FUNCTION_TYPE together.  Call print_struct_decl when printing
11221         structures and TDF_SLIM is not given.
11222         (print_struct_decl): Fix logic for detecting recursion.
11223
11224 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
11225
11226         PR 31567
11227         * gcc.c (create_at_file): New.
11228         (compile_input_file_p): New.
11229         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
11230         * main.c (main): Update call to toplev_main.
11231         * toplev.c (toplev_main): Change signature. Call expandargv.
11232         * toplev.h (toplev_main): Change signature.
11233
11234 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
11235
11236         * dwarf2out.c (field_byte_offset): Use the type size as the field size
11237         if the latter is not constant.
11238
11239 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
11240
11241         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
11242
11243 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
11244
11245         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
11246         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
11247
11248 2009-04-17  Richard Guenther  <rguenther@suse.de>
11249
11250         * tree-ssa-structalias.c (get_constraint_for_component_ref):
11251         Handle component references view-converting an invariant address.
11252
11253 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
11254
11255         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
11256         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
11257         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
11258         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
11259         Use @deftypevr rather than @deftypevar.
11260
11261 2009-04-17  Richard Guenther  <rguenther@suse.de>
11262
11263         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
11264         (get_prop_source_stmt): Likewise.
11265         (can_propagate_from): Likewise.
11266
11267 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
11268
11269         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
11270         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
11271         (--with-multilib-list): Add default value.
11272         * configure: Regenerate.
11273         * Makefile.in (TM_ENDIAN_CONFIG): Define.
11274         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
11275         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
11276         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
11277         Don't add default cpu to multilib list unnecessarily, but do enable
11278         the relevant compiler option..
11279         Add support for --with-multilib-list=<blank> and
11280         --with-multilib-list=!<somelib> to supress unwanted multilibs.
11281         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
11282         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
11283         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
11284         TM_MULTILIB_CONFIG.
11285         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
11286         (MULTILIB_OSDIRNAMES): New variable.
11287         * config/sh/t-1e: Delete file.
11288         * config/sh/t-mlib-sh1: Delete file.
11289         * config/sh/t-mlib-sh2: Delete file.
11290         * config/sh/t-mlib-sh2a: Delete file.
11291         * config/sh/t-mlib-sh2a-nofpu: Delete file.
11292         * config/sh/t-mlib-sh2a-single: Delete file.
11293         * config/sh/t-mlib-sh2a-single-only: Delete file.
11294         * config/sh/t-mlib-sh2e: Delete file.
11295         * config/sh/t-mlib-sh3e: Delete file.
11296         * config/sh/t-mlib-sh4: Delete file.
11297         * config/sh/t-mlib-sh4-nofpu: Delete file.
11298         * config/sh/t-mlib-sh4-single: Delete file.
11299         * config/sh/t-mlib-sh4-single-only: Delete file.
11300         * config/sh/t-mlib-sh4a: Delete file.
11301         * config/sh/t-mlib-sh4a-nofpu: Delete file.
11302         * config/sh/t-mlib-sh4a-single: Delete file.
11303         * config/sh/t-mlib-sh4a-single-only: Delete file.
11304         * config/sh/t-mlib-sh4al: Delete file.
11305         * config/sh/t-mlib-sh5-32media: Delete file.
11306         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
11307         * config/sh/t-mlib-sh5-64media: Delete file.
11308         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
11309         * config/sh/t-mlib-sh5-compact: Delete file.
11310         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
11311         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
11312         * doc/install.texi (Options specification): Add
11313         --with-multilib-list and --with-endian.
11314
11315 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
11316
11317         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
11318         REVISION_c.
11319         (OBJS-common): Add plugin-version.o.
11320         (plugin-version.o): New.
11321         * gcc-plugin.h (plugin_gcc_version): New.
11322         (plugin_default_version_check): New.
11323         (plugin_init_func, plugin_init): Add version argument.
11324         * plugin-version.c: New.
11325         * plugin.c (str_plugin_gcc_version_name): New.
11326         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
11327         pass it to the init function.
11328         (plugin_default_version_check): New.
11329
11330 2009-04-17  Richard Guenther  <rguenther@suse.de>
11331
11332         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
11333         for decl-vs-decl disambiguation.
11334
11335 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11336
11337         * config/s390/s390.h (s390_tune_attr): New macro definition.
11338         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
11339
11340 2009-04-17  Richard Guenther  <rguenther@suse.de>
11341
11342         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
11343         (fold_stmt_r): Likewise.
11344         (maybe_fold_reference): New function.
11345         (fold_gimple_assign): Handle cases fold_stmt_r did.
11346         (fold_stmt): Do not use fold_stmt_r.
11347         (fold_stmt_inplace): Likewise.
11348
11349 2009-04-17  Richard Guenther  <rguenther@suse.de>
11350
11351         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
11352         (record_equivalences_from_stmt): Remove useless checks and
11353         simplifications.
11354         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
11355         the type is already suitable.
11356
11357 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
11358
11359         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
11360
11361 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
11362
11363         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
11364         (CMPtype): Define as __gcc_CMPtype.
11365
11366 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
11367
11368         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
11369         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
11370
11371 2009-04-17  Richard Guenther  <rguenther@suse.de>
11372
11373         PR tree-optimization/39746
11374         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
11375         special-casing for builtins and static variable use/def.
11376         (call_may_clobber_ref_p_1): Likewise.
11377
11378 2009-04-16  Ian Lance Taylor  <iant@google.com>
11379
11380         * df.h: Include "timevar.h".
11381         (struct df_problem): Change tv_id field to timevar_id_t.
11382         * tree-pass.h: Include "timevar.h".
11383         (struct opt_pass): Change tv_id field to timevar_id_t.
11384         * timevar.h (timevar_id_t): Define TV_NONE.
11385         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
11386         TV_NONE rather than tv_id != 0.
11387         (execute_one_pass): Likewise.
11388         * Makefile.in (DF_H): Add $(TIMEVAR_H).
11389         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
11390         dependencies to $(TREE_PASS_H).
11391         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
11392         to TV_NONE.
11393         (pass_branch_target_load_optimize2): Likewise.
11394         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
11395         (pass_outof_cfg_layout_mode): Likewise.
11396         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
11397         (pass_rebuild_cgraph_edges): Likewise.
11398         (pass_remove_cgraph_callee_edges): Likewise.
11399         * df-core.c (pass_df_initialize_opt): Likewise.
11400         (pass_df_initialize_no_opt): Likewise.
11401         (pass_df_finish): Likewise.
11402         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
11403         * except.c (pass_set_nothrow_function_flags): Likewise.
11404         (pass_convert_to_eh_region_ranges): Likewise.
11405         * final.c (pass_compute_alignments): Likewise.
11406         * function.c (pass_instantiate_virtual_regs): Likewise.
11407         (pass_init_function): Likewise.
11408         (pass_leaf_regs): Likewise.
11409         (pass_match_asm_constraints): Likewise.
11410         * gimple-low.c (pass_lower_cf): Likewise.
11411         (pass_mark_used_blocks): Likewise.
11412         * init-regs.c (pass_initialize_regs): Likewise.
11413         * integrate.c (pass_initial_value_sets): Likewise.
11414         * ira.c (pass_ira): Likewise.
11415         * jump.c (pass_cleanup_barriers): Likewise.
11416         * omp-low.c (pass_expand_omp): Likewise.
11417         (pass_lower_omp): Likewise.
11418         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
11419         * recog.c (pass_split_all_insns): Likewise.
11420         (pass_split_after_reload): Likewise.
11421         (pass_split_before_regstack): Likewise.
11422         (pass_split_before_sched2): Likewise.
11423         (pass_split_for_shorten_branches): Likewise.
11424         * reginfo.c (pass_reginfo_init): Likewise.
11425         (pass_subregs_of_mode_init): Likewise.
11426         (pass_subregs_of_mode_finish): Likewise.
11427         * passes.c (pass_postreload): Likewise.
11428         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
11429         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
11430         (pass_warn_function_return): Likewise.
11431         (pass_warn_function_noreturn): Likewise.
11432         * tree-complex.c (pass_lower_complex): Likewise.
11433         (pass_lower_complex_O0): Likewise.
11434         * tree-if-conv.c (pass_if_conversion): Likewise.
11435         * tree-into-ssa.c (pass_build_ssa): Likewise.
11436         * tree-mudflap.c (pass_mudflap_1): Likewise.
11437         (pass_mudflap_2): Likewise.
11438         * tree-nomudflap.c (pass_mudflap_1): Likewise.
11439         (pass_mudflap_2): Likewise.
11440         * tree-nrv.c (pass_return_slot): Likewise.
11441         * tree-object-size.c (pass_object_sizes): Likewise.
11442         * tree-optimize.c (pass_all_optimizations): Likewise.
11443         (pass_early_local_passes): Likewise.
11444         (pass_all_early_optimizations): Likewise.
11445         (pass_cleanup_cfg): Likewise.
11446         (pass_cleanup_cfg_post_optimizing): Likewise.
11447         (pass_free_datastructures): Likewise.
11448         (pass_free_cfg_annotations): Likewise.
11449         (pass_fixup_cfg): Likewise.
11450         (pass_init_datastructures): Likewise.
11451         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
11452         (pass_late_warn_uninitialized): Likewise.
11453         (pass_update_address_taken): Likewise.
11454         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
11455         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
11456         (pass_cse_sincos): Likewise.
11457         (pass_convert_to_rsqrt): Likewise.
11458         * tree-ssa-structalias.c (pass_build_alias): Likewise.
11459         * tree-stdarg.c (pass_stdarg): Likewise.
11460         * tree-tailcall.c (pass_tail_recursion): Likewise.
11461         (pass_tail_calls): Likewise.
11462         * tree-vect-generic.c (pass_lower_vector): Likewise.
11463         (pass_lower_vector_ssa): Likewise.
11464         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
11465
11466 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
11467
11468         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
11469         XLR entry.
11470         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
11471         Handle -march=xlr.
11472         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
11473         logical and signext.
11474
11475 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
11476
11477         PR target/39767
11478         * config/sh/predicates.md (arith_operand): Check if the operand
11479         of TRUNCATE is a REG.
11480
11481 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11482
11483         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
11484         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
11485
11486 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11487
11488         * tree-iterator.c (tsi_split_statement_list_after,
11489         tsi_split_statement_list_before): Remove.
11490         * tree-iterator.h: Remove the prototypes for
11491         tsi_split_statement_list_after and tsi_split_statement_list_before.
11492
11493 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11494
11495         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
11496         * tree-ssa-propagate.h: Remove the prototype for
11497         stmt_makes_single_load.
11498
11499 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11500
11501         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
11502         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
11503
11504 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11505
11506         * tree-iterator.c (EXPR_LAST_BODY): Remove.
11507
11508 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11509
11510         * except.c (eh_region_outer_p): Remove.
11511         * except.h: Remove the prototype for eh_region_outer_p.
11512
11513 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
11514
11515         * function.c (current_function_assembler_name): Remove.
11516         * function.h: Remove the prototype for
11517         current_function_assembler_name.
11518
11519 2009-04-16  Ian Lance Taylor  <iant@google.com>
11520
11521         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
11522         (add_reg_note): Call alloc_reg_note.
11523         * rtl.h (alloc_reg_note): Declare.
11524         * combine.c (try_combine): Use alloc_reg_note.
11525         (recog_for_combine, move_deaths): Likewise.
11526         (distribute_notes): Use alloc_reg_note and add_reg_note.
11527         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
11528         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
11529         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
11530
11531 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
11532
11533         PR rtl-optimization/39762
11534         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
11535         ira_may_move_out_cost): Add comments about way of their usage.
11536         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
11537
11538         * ira-conflicts.c (process_regs_for_copy): Use function
11539         ira_get_register_move_cost instead of global
11540         ira_register_move_cost.
11541
11542         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
11543         color_pass, move_spill_restore, update_curr_costs): Ditto.
11544
11545         * ira-lives.c (process_single_reg_class_operands): Ditto.
11546
11547         * ira-emit.c (emit_move_list): Ditto.
11548
11549         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
11550         (record_reg_classes): Ditto.  Use functions
11551         ira_get_register_move_cost and ira_get_may_move_cost instead of
11552         global vars ira_register_move_cost, ira_may_move_out_cost and
11553         ira_may_move_in_cost.
11554         (record_address_regs): Don't call ira_init_register_move_cost.
11555         Use function ira_get_may_move_cost instead of global
11556         ira_may_move_in_cost.
11557         (process_bb_node_for_hard_reg_moves): Use function
11558         ira_get_register_move_cost instead of global ira_register_move_cost.
11559         (ira_costs): Don't call ira_init_register_move_cost.
11560
11561 2009-04-16  Richard Guenther  <rguenther@suse.de>
11562
11563         * tree-cfg.c (verify_gimple_assign_binary):
11564         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
11565         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
11566         (create_general_new_stmt): Note that this function is broken.
11567
11568 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
11569
11570         * common.opt (fhelp): Add Var(help_flag).
11571         * gcc-plugin.h (plugin_info): Add help.
11572         * plugin.c (plugin_name_args): Add help.
11573         (register_plugin_info): Set plugin->help.
11574         (print_help_one_plugin): New.
11575         (print_plugins_help): New.
11576         * plugin.h (print_plugins_help): New.
11577         * toplev.c (toplev_main): Call print_plugins_help if needed.
11578
11579 2009-04-16  Richard Guenther  <rguenther@suse.de>
11580
11581         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
11582         (gimple_ior_addresses_taken_1): New function.
11583         (gimple_ior_addresses_taken): Likewise.
11584         * gimple.h (struct gimple_statement_with_ops_base): Remove
11585         addresses_taken member.
11586         (gimple_ior_addresses_taken): Declare.
11587         (gimple_addresses_taken, gimple_addresses_taken_ptr,
11588         gimple_set_addresses_taken): Remove.
11589         * ipa-reference.c (mark_address): New function.
11590         (scan_stmt_for_static_refs): Use it for marking addresses taken.
11591         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
11592         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
11593         (gimple_add_to_addresses_taken): Remove.
11594         (get_tmr_operands): Call mark_address_taken.
11595         (get_asm_expr_operands): Likewise.
11596         (get_expr_operands): Likewise.
11597         (build_ssa_operands): Do not clear the addresses_taken bitmap.
11598         (free_stmt_operands): Do not free it.
11599         * tree-ssa.c (delete_tree_ssa): Likewise.
11600         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
11601
11602 2009-04-16  Richard Guenther  <rguenther@suse.de>
11603
11604         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
11605         (walk_stmt_load_store_ops): Likewise.
11606         * gimple.c (get_base_loadstore): New function.
11607         (walk_stmt_load_store_addr_ops): Likewise.
11608         (walk_stmt_load_store_ops): Likewise.
11609         * ipa-pure-const.c (check_op): Simplify.
11610         (check_load, check_store): New functions.
11611         (check_stmt): Use walk_stmt_load_store_ops.
11612         * ipa-reference.c (mark_load): Adjust signature.
11613         (mark_store): Likewise.
11614         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
11615
11616 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
11617
11618         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
11619         (plugin_info): New.
11620         * opts.c (common_handle_option): Don't call print_version.
11621         * plugin.c (plugin_name_args): Add version.
11622         (register_plugin_info): New.
11623         (register_callback): Handle PLUGIN_INFO.
11624         (try_init_one_plugin): New.
11625         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
11626         if failed to init.
11627         (finalize_one_plugin): New.
11628         (finalize_plugins): New.
11629         (print_one_plugin): New.
11630         (print_plugins_versions): New.
11631         * plugin.h (print_plugins_versions): New.
11632         (finalize_plugins): New.
11633         * toplev.c (compile_file): Don't call initialize_plugins.
11634         (print_version): Call print_plugins_versions.
11635         (toplev_main): Call initialize_plugins. Print version if needed.
11636         Call finalize_plugins.
11637
11638 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
11639
11640         * common.opt (fversion): New.
11641         * gcc.c (print_version): New.
11642         (process_command): Don't print the version. Just set print_version.
11643         (main): Print version. Call subprocesses if print_version and
11644         verbose_flag are set.
11645         * opts.c (common_handle_option): Handle OPT_fversion.
11646
11647 2009-04-16  Richard Guenther  <rguenther@suse.de>
11648             Ira Rosen  <irar@il.ibm.com>
11649
11650         PR tree-optimization/39698
11651         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
11652         type of the reduction variable.  Only generate the def if
11653         it is needed.
11654
11655         * omp-low.c (expand_omp_for_generic): When converting to a pointer
11656         make sure to first convert to an integer of the same precision.
11657         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
11658         the type of the evolution correctly in computing the new
11659         induction variable base.
11660
11661 2009-04-16  Richard Guenther  <rguenther@suse.de>
11662
11663         PR middle-end/39625
11664         * tree-cfg.c (make_blocks): Split statements with to-be
11665         abnormal SSA names on the lhs.
11666
11667 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
11668
11669         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
11670         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
11671         * c-typeck.c (really_start_incremental_init): Likewise.
11672         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
11673         (TARGET_INITIALIZER): Remove it.
11674         * target.h (struct target): Remove vector_opaque_p.
11675         * tree.c (build_opaque_vector_type): New.
11676         * tree.h (TYPE_VECTOR_OPAQUE): New.
11677         (build_opaque_vector_type): Declare.
11678         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
11679         * config/rs6000/rs6000.c (build_opaque_vector_type,
11680         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
11681         (rs6000_init_builtins): Use build_opaque_vector_type for
11682         opaque_V4SI_type_node.
11683
11684 2009-04-15  Catherine Moore  <clm@codesourcery.com>
11685
11686         * debug.h (set_name):  Declare.
11687         * dwarf2out.c (dwarf2out_set_name): Declare.
11688         (dwarf2_debug_hooks): Add set_name.
11689         (find_AT_string): New.
11690         (add_AT_string): Call find_AT_string.
11691         (dwarf2out_set_name): New.
11692         * cp/decl.c (grokdeclarator): Call set_name.
11693         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
11694         * debug.c (do_nothing_debug_hooks):  Likewise.
11695         * dbxout.c (dbx_debug_hooks): Likewise.
11696         * sdbout.c (sdb_debug_hooks): Likewise.
11697
11698 2009-04-15  Michael Eager  <eager@eagercon.com>
11699
11700         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
11701         reg for single-precision FPU.
11702         * config/rs6000/rs6000.md (movsi_internal1): Only for
11703         !TARGET_SINGLE_FPU.
11704         (movsi_internal1_single): New. Add pattern to move SI values to/from
11705         single-precision FP regs.
11706
11707 2009-04-15  Richard Guenther  <rguenther@suse.de>
11708
11709         * omp-low.c (lower_rec_input_clauses): Build correct address
11710         expressions.
11711         (expand_omp_for_generic): Fix multiplication type.
11712         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
11713         (generate_memset_zero): Fix types.
11714         * tree-profile.c (prepare_instrumented_value): Correctly
11715         widen a pointer.
11716
11717 2009-04-15  Ian Lance Taylor  <iant@google.com>
11718
11719         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
11720         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
11721         for -Wall and for -Wc++-compat.
11722         (c_common_post_options): For C++, set warn_enum_compare if not
11723         already set.
11724         * c-tree.h (struct c_expr): Add field original_type.
11725         (build_external_ref): Update declaration.
11726         * c-parser.c (c_parser_braced_init): Set original_type.
11727         (c_parser_initelt): Likewise.
11728         (c_parser_expr_no_commas): Likewise.
11729         (c_parser_conditional_expression): Likewise.
11730         (c_parser_cast_expression): Likewise.
11731         (c_parser_unary_expression): Likewise.  Pull setting of
11732         original_code to top of function.
11733         (c_parser_sizeof_expression): Set original_type.
11734         (c_parser_alignof_expression): Likewise.
11735         (c_parser_postfix_expression): Likewise.  Pull setting of
11736         original_code to top of function.
11737         (c_parser_postfix_expression_after_paren_type): Set original_type.
11738         (c_parser_postfix_expression_after_primary): Likewise.
11739         (c_parser_expression): Likewise.
11740         * c-typeck.c (build_external_ref): Add type parameter.  Change all
11741         callers.
11742         (c_expr_sizeof_expr): Set original_type field.
11743         (parser_build_unary_op): Likewise.
11744         (parser_build_binary_op): Likewise.  Optionally warn about
11745         comparisons of enums of different types.
11746         (digest_init): Set original_type field.
11747         (really_start_incremental_init): Likewise.
11748         (push_init_level, pop_init_level): Likewise.
11749         * doc/invoke.texi (Warning Options): -Wenum-compare now
11750         supported in C.
11751
11752 2009-04-15  Richard Guenther  <rguenther@suse.de>
11753
11754         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
11755         out a necessary conversion.
11756         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
11757         names we didn't value number.
11758         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
11759
11760 2009-04-15  Richard Guenther  <rguenther@suse.de>
11761
11762         PR tree-optimization/39764
11763         * tree-ssa-ccp.c (get_value): Canonicalize value with
11764         canonicalize_float_value.
11765
11766 2009-04-15  Jan Hubicka  <jh@suse.cz>
11767
11768         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
11769         Wrong version of patch.
11770
11771 2009-04-15  Jan Hubicka  <jh@suse.cz>
11772
11773         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
11774
11775 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
11776
11777         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
11778         our distinct integral and vector types.
11779
11780 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
11781
11782         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
11783         * init.c (build_vtbl_address): Remove call to assemble_external.
11784
11785 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
11786
11787         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
11788         output for other floating point modes.
11789
11790 2009-04-14  Diego Novillo  <dnovillo@google.com>
11791
11792         * diagnostic.c (diagnostic_report_diagnostic): Do not
11793         warn about loaded plugins for DK_ERROR and DK_WARNING.
11794         * c-decl.c (declspecs_add_type): Move call to
11795         invoke_plugin_callbacks ...
11796         * c-parser.c (c_parser_declspecs): ... here.
11797         * plugin.c (dump_active_plugins): Tidy output.
11798
11799 2009-04-14  Diego Novillo  <dnovillo@google.com>
11800             Le-Chun Wu  <lcwu@google.com>
11801
11802         * configure.ac: Add --enable-plugin support.
11803         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
11804         * Makefile.in (PLUGIN_H): Define.
11805         Export ENABLE_PLUGIN and GMPINC to site.exp.
11806         Add PLUGINLIBS to link command.
11807         Add/modify dependencies for plugin.o and files including plugin.h.
11808         (plugin.o): New.
11809         * config.in: Regenerate.
11810
11811         * opts.c (common_handle_option): Handle OPT_fplugin_ and
11812         OPT_fplugin_arg_.
11813
11814 2009-04-14  Le-Chun Wu  <lcwu@google.com>
11815
11816         * tree-pass.h (register_one_dump_file): Add a prototype for
11817         register_one_dump_file.
11818         * toplev.c (compile_file): Call initialize_plugins.
11819         (do_compile): Call invoke_plugin_callbacks.
11820         (toplev_main): Call invoke_plugin_callbacks.
11821         * common.opt: Add -fplugin= and -fplugin-arg-.
11822         * gcc-plugin.h: New public header file for plugins to include.
11823         * plugin.c: New source file.
11824         * plugin.h: New internal header file.
11825         * passes.c (register_one_dump_file): Make it external.
11826
11827         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
11828
11829 2009-04-14  Diego Novillo  <dnovillo@google.com>
11830
11831         * doc/plugins.texi: New.
11832         * doc/gccint.texi: Add reference to Plugins chapter.
11833         * doc/invoke.texi: Document -fplugin and -fplugin-arg
11834         * diagnostic.c (diagnostic_report_diagnostic): Warn about
11835         loaded plugins, if any.
11836         * timevar.def (TV_PLUGIN_INIT): Define.
11837         (TV_PLUGIN_RUN): Define.
11838         * plugin.c: Include timevar.h
11839         (plugins_active_p): New.
11840         (dump_active_plugins): New.
11841         (debug_active_plugins): New.
11842
11843 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
11844
11845         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
11846         library paths.
11847         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
11848
11849 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
11850
11851         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
11852         the same as a minus without a shift.
11853
11854 2009-04-14  Nick Clifton  <nickc@redhat.com>
11855
11856         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
11857         comparisons with small integers will always produce a short
11858         branch.
11859
11860 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
11861
11862         Merge:
11863         2008-12-19  Diego Novillo  <dnovillo@google.com>
11864
11865         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
11866
11867 2009-04-14  Richard Guenther  <rguenther@suse.de>
11868
11869         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
11870         verification.
11871         (verify_gimple_assign_binary): Likewise.  Handle shifts and
11872         rotates correctly.
11873         (verify_gimple_phi): Print the mismatched argument position.
11874         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
11875         Fix types.
11876         (vect_update_init_of_dr): Likewise.
11877         * matrix-reorg.c (transform_access_sites): Do what the
11878         comment suggests.
11879         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
11880
11881 2009-04-13  Michael Eager  <eager@eagercon.com>
11882
11883         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
11884         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
11885         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
11886         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
11887         remove duplicate config
11888
11889 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
11890
11891         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
11892         file_name:line_number type locator of the call site.
11893
11894 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
11895
11896         * genautomata.c: Put blank after comma.
11897         (automaton_decls): New.
11898         (struct unit_usage): Add comments to member next.
11899         (store_alt_unit_usage): Keep the list ordered.
11900         (unit_present_on_list_p, equal_alternatives_p): New.
11901         (check_regexp_units_distribution): Check units distribution
11902         correctness correctly.
11903         (main): Don't write automata if error is found.  Return correct
11904         exit code.
11905
11906         * config/m68k/cf.md (cfv4_ds): Remove.
11907         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
11908         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
11909
11910         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
11911         power4-load-ext, power4-store, power4-store-update,
11912         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
11913         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
11914         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
11915         power4-sqrt, power4-isync): Modify reservation to make correct
11916         unit distribution to automata.
11917
11918         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
11919         power5-store-update, power5-two, power5-three, power5-lmul,
11920         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
11921
11922 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
11923
11924         * except.c (pass_set_nothrow_function_flags): Set name and add
11925         TODO_dump_func.
11926         (set_nothrow_function_flags): Mention in the dump file when
11927         changing a function to nothrow.
11928
11929 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
11930
11931         PR/39066
11932         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
11933         instead of unsigned long.
11934
11935 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11936
11937         * config/arm/arm.c (return_used_this_function): Remove.
11938         (arm_output_function_prologue): Remove use of
11939         return_used_this_function.
11940         (output_return_instruction): Replace use of
11941         return_used_this_function
11942         by cfun->machine->return_used_this_function.
11943         (arm_output_epilogue): Likewise.
11944         (arm_output_function_epilogue): Likewise.
11945         (thumb_unexpanded_epilogue): Likewise.
11946         * config/arm/arm.h (struct machine_function):
11947         New member return_used_this_function.
11948
11949 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
11950
11951         * doc/install.texi: Correct description of default directory for
11952         --with-gxx-include-dir.
11953
11954 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
11955
11956         * fold-const.c (build_range_check): Properly deal with enumeral and
11957         boolean base types.
11958
11959 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
11960
11961         * doc/invoke.texi (max_gcse_passes): Remove documentation.
11962         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
11963         * params.h (MAX_GCSE_PASSES): Remove.
11964         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
11965         in sequence.  Remove ability to run multiple passes.
11966         (bypass_jumps): Report run as third CPROP pass.
11967
11968 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
11969
11970         PR middle-end/39651
11971         * except.c (can_throw_external): Look at each insn in a SEQUENCE
11972         when deciding whether the whole SEQUENCE can throw.
11973
11974 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
11975
11976         PR target/39740
11977         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
11978         offseted label references.
11979
11980 2009-04-11  Jan Hubicka  <jh@suse.cz>
11981
11982         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
11983
11984 2009-04-11  Richard Guenther  <rguenther@suse.de>
11985
11986         PR middle-end/39732
11987         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
11988         return variables as TREE_ADDRESSABLE.
11989
11990 2009-04-11  Richard Guenther  <rguenther@suse.de>
11991
11992         PR tree-optimization/39713
11993         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
11994         reference trees have SSA_NAME operands.
11995
11996 2009-04-11  Richard Guenther  <rguenther@suse.de>
11997
11998         PR c/39712
11999         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
12000         address expressions.
12001
12002 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
12003
12004         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
12005         match changes in Cygwin 1.7
12006         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
12007         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
12008
12009 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
12010
12011         PR tree-optimization/39701
12012         * doc/invoke.texi (Optimization Options): Document change in
12013         meaning and initialization of -fdelete-null-pointer-checks.
12014
12015 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
12016
12017         PR middle-end/39701
12018         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
12019
12020         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
12021         here.
12022
12023         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
12024
12025 2009-04-10  Chao-ying Fu  <fu@mips.com>
12026
12027         * doc/tm.texi (Instruction Output): Document
12028         TARGET_ASM_FINAL_POSTSCAN_INSN.
12029         * target.h (final_postscan_insn): New field in asm_out.
12030         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
12031         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
12032         * final.c (final_scan_insn): Call
12033         targetm.asm_out.final_postscan_insn after outputting
12034         an asm macro and a normal instruction.
12035
12036         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
12037         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
12038         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
12039         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
12040         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
12041
12042 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
12043
12044         PR middle-end/39701
12045         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
12046         variables as non-NULL even with -fdelete-null-pointer-checks.
12047
12048 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
12049
12050         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
12051
12052 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
12053
12054         PR target/39678
12055         * config/i386/i386.c (classify_argument): Handle SCmode with
12056         (bit_offset % 64) != 0.
12057
12058 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
12059
12060         * doc/invoke.texi (Optimize Options): Add cross-reference to
12061         -Q --help=optimizers examples.
12062
12063 2009-04-10  Ben Elliston  <bje@au.ibm.com>
12064
12065         PR target/36800
12066         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
12067         regalign for the reg == fpr and TDmode case.
12068
12069 2009-04-09  David Ayers  <ayers@fsfe.org>
12070
12071         PR objc/29200
12072         * objc/objc-act.c (warn_with_method): Remove helper function.
12073         (check_duplicates): Call warning and inform directly.
12074         (really_start_method): Likewise.
12075
12076 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
12077
12078         * expmed.c (expand_divmod): Always use a comparison for a division
12079         by a large unsigned integer.
12080
12081         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
12082         for things others than variables or functions as nonzero.
12083
12084 2009-04-09  Nick Clifton  <nickc@redhat.com>
12085
12086         * unwind-compat.c: Change copyright header to refer to version
12087         3 of the GNU General Public License with version 3.1 of the
12088         GCC Runtime Library Exception and to point readers at the
12089         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
12090         * config/alpha/crtfastmath.c: Likewise.
12091         * config/alpha/linux-unwind.h: Likewise.
12092         * config/alpha/qrnnd.asm: Likewise.
12093         * config/alpha/vms-crt0-64.c: Likewise.
12094         * config/alpha/vms-crt0.c: Likewise.
12095         * config/alpha/vms-dwarf2.asm: Likewise.
12096         * config/alpha/vms-dwarf2eh.asm: Likewise.
12097         * config/alpha/vms-psxcrt0-64.c: Likewise.
12098         * config/alpha/vms-psxcrt0.c: Likewise.
12099         * config/alpha/vms_tramp.asm: Likewise.
12100         * config/arc/initfini.c: Likewise.
12101         * config/arc/lib1funcs.asm: Likewise.
12102         * config/arm/bpabi-v6m.S: Likewise.
12103         * config/arm/bpabi.S: Likewise.
12104         * config/arm/bpabi.c: Likewise.
12105         * config/arm/crti.asm: Likewise.
12106         * config/arm/crtn.asm: Likewise.
12107         * config/arm/ieee754-df.S: Likewise.
12108         * config/arm/ieee754-sf.S: Likewise.
12109         * config/arm/lib1funcs.asm: Likewise.
12110         * config/arm/libunwind.S: Likewise.
12111         * config/arm/linux-atomic.c: Likewise.
12112         * config/arm/mmintrin.h: Likewise.
12113         * config/arm/pr-support.c: Likewise.
12114         * config/arm/unaligned-funcs.c: Likewise.
12115         * config/arm/unwind-arm.c: Likewise.
12116         * config/arm/unwind-arm.h: Likewise.
12117         * config/avr/libgcc.S: Likewise.
12118         * config/bfin/crti.s: Likewise.
12119         * config/bfin/crtlibid.s: Likewise.
12120         * config/bfin/crtn.s: Likewise.
12121         * config/bfin/lib1funcs.asm: Likewise.
12122         * config/bfin/linux-unwind.h: Likewise.
12123         * config/cris/arit.c: Likewise.
12124         * config/cris/cris_abi_symbol.c: Likewise.
12125         * config/darwin-64.c: Likewise.
12126         * config/darwin-crt2.c: Likewise.
12127         * config/darwin-crt3.c: Likewise.
12128         * config/darwin.h: Likewise.
12129         * config/dbxelf.h: Likewise.
12130         * config/dfp-bit.c: Likewise.
12131         * config/dfp-bit.h: Likewise.
12132         * config/elfos.h: Likewise.
12133         * config/fixed-bit.c: Likewise.
12134         * config/fixed-bit.h: Likewise.
12135         * config/fp-bit.c: Likewise.
12136         * config/fp-bit.h: Likewise.
12137         * config/fr30/crti.asm: Likewise.
12138         * config/fr30/crtn.asm: Likewise.
12139         * config/fr30/lib1funcs.asm: Likewise.
12140         * config/freebsd-spec.h: Likewise.
12141         * config/frv/cmovd.c: Likewise.
12142         * config/frv/cmovh.c: Likewise.
12143         * config/frv/cmovw.c: Likewise.
12144         * config/frv/frvbegin.c: Likewise.
12145         * config/frv/frvend.c: Likewise.
12146         * config/frv/lib1funcs.asm: Likewise.
12147         * config/glibc-stdint.h: Likewise.
12148         * config/h8300/clzhi2.c: Likewise.
12149         * config/h8300/crti.asm: Likewise.
12150         * config/h8300/crtn.asm: Likewise.
12151         * config/h8300/ctzhi2.c: Likewise.
12152         * config/h8300/fixunssfsi.c: Likewise.
12153         * config/h8300/lib1funcs.asm: Likewise.
12154         * config/h8300/parityhi2.c: Likewise.
12155         * config/h8300/popcounthi2.c: Likewise.
12156         * config/i386/ammintrin.h: Likewise.
12157         * config/i386/att.h: Likewise.
12158         * config/i386/avxintrin.h: Likewise.
12159         * config/i386/biarch64.h: Likewise.
12160         * config/i386/bmmintrin.h: Likewise.
12161         * config/i386/cpuid.h: Likewise.
12162         * config/i386/cross-stdarg.h: Likewise.
12163         * config/i386/crtfastmath.c: Likewise.
12164         * config/i386/crtprec.c: Likewise.
12165         * config/i386/cygming-crtbegin.c: Likewise.
12166         * config/i386/cygming-crtend.c: Likewise.
12167         * config/i386/cygwin.asm: Likewise.
12168         * config/i386/emmintrin.h: Likewise.
12169         * config/i386/gmm_malloc.h: Likewise.
12170         * config/i386/gthr-win32.c: Likewise.
12171         * config/i386/i386.h: Likewise.
12172         * config/i386/immintrin.h: Likewise.
12173         * config/i386/linux-unwind.h: Likewise.
12174         * config/i386/linux64.h: Likewise.
12175         * config/i386/mm3dnow.h: Likewise.
12176         * config/i386/mmintrin-common.h: Likewise.
12177         * config/i386/mmintrin.h: Likewise.
12178         * config/i386/nmmintrin.h: Likewise.
12179         * config/i386/pmm_malloc.h: Likewise.
12180         * config/i386/pmmintrin.h: Likewise.
12181         * config/i386/smmintrin.h: Likewise.
12182         * config/i386/sol2-c1.asm: Likewise.
12183         * config/i386/sol2-ci.asm: Likewise.
12184         * config/i386/sol2-cn.asm: Likewise.
12185         * config/i386/sol2-gc1.asm: Likewise.
12186         * config/i386/tmmintrin.h: Likewise.
12187         * config/i386/unix.h: Likewise.
12188         * config/i386/w32-unwind.h: Likewise.
12189         * config/i386/wmmintrin.h: Likewise.
12190         * config/i386/x86-64.h: Likewise.
12191         * config/i386/x86intrin.h: Likewise.
12192         * config/i386/xmmintrin.h: Likewise.
12193         * config/ia64/crtbegin.asm: Likewise.
12194         * config/ia64/crtend.asm: Likewise.
12195         * config/ia64/crtfastmath.c: Likewise.
12196         * config/ia64/crti.asm: Likewise.
12197         * config/ia64/crtn.asm: Likewise.
12198         * config/ia64/fde-glibc.c: Likewise.
12199         * config/ia64/lib1funcs.asm: Likewise.
12200         * config/ia64/linux-unwind.h: Likewise.
12201         * config/ia64/quadlib.c: Likewise.
12202         * config/ia64/unwind-ia64.c: Likewise.
12203         * config/linux.h: Likewise.
12204         * config/m32c/m32c-lib1.S: Likewise.
12205         * config/m32c/m32c-lib2-trapv.c: Likewise.
12206         * config/m32c/m32c-lib2.c: Likewise.
12207         * config/m32r/initfini.c: Likewise.
12208         * config/m68hc11/larith.asm: Likewise.
12209         * config/m68hc11/m68hc11-crt0.S: Likewise.
12210         * config/m68k/cf.md: Likewise.
12211         * config/m68k/crti.s: Likewise.
12212         * config/m68k/crtn.s: Likewise.
12213         * config/m68k/lb1sf68.asm: Likewise.
12214         * config/m68k/linux-unwind.h: Likewise.
12215         * config/mcore/crti.asm: Likewise.
12216         * config/mcore/crtn.asm: Likewise.
12217         * config/mcore/lib1.asm: Likewise.
12218         * config/mips/linux-unwind.h: Likewise.
12219         * config/mips/loongson.h: Likewise.
12220         * config/mips/mips16.S: Likewise.
12221         * config/mmix/crti.asm: Likewise.
12222         * config/mmix/crtn.asm: Likewise.
12223         * config/pa/fptr.c: Likewise.
12224         * config/pa/hpux-unwind.h: Likewise.
12225         * config/pa/lib2funcs.asm: Likewise.
12226         * config/pa/linux-atomic.c: Likewise.
12227         * config/pa/linux-unwind.h: Likewise.
12228         * config/pa/milli64.S: Likewise.
12229         * config/pa/quadlib.c: Likewise.
12230         * config/pa/stublib.c: Likewise.
12231         * config/picochip/libgccExtras/adddi3.asm: Likewise.
12232         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
12233         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
12234         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
12235         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
12236         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
12237         * config/picochip/libgccExtras/divmod15.asm: Likewise.
12238         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
12239         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
12240         * config/picochip/libgccExtras/longjmp.asm: Likewise.
12241         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
12242         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
12243         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
12244         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
12245         * config/picochip/libgccExtras/setjmp.asm: Likewise.
12246         * config/picochip/libgccExtras/subdi3.asm: Likewise.
12247         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
12248         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
12249         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
12250         * config/rs6000/750cl.h: Likewise.
12251         * config/rs6000/altivec.h: Likewise.
12252         * config/rs6000/biarch64.h: Likewise.
12253         * config/rs6000/crtresfpr.asm: Likewise.
12254         * config/rs6000/crtresgpr.asm: Likewise.
12255         * config/rs6000/crtresxfpr.asm: Likewise.
12256         * config/rs6000/crtresxgpr.asm: Likewise.
12257         * config/rs6000/crtsavfpr.asm: Likewise.
12258         * config/rs6000/crtsavgpr.asm: Likewise.
12259         * config/rs6000/darwin-asm.h: Likewise.
12260         * config/rs6000/darwin-fallback.c: Likewise.
12261         * config/rs6000/darwin-fpsave.asm: Likewise.
12262         * config/rs6000/darwin-ldouble.c: Likewise.
12263         * config/rs6000/darwin-tramp.asm: Likewise.
12264         * config/rs6000/darwin-unwind.h: Likewise.
12265         * config/rs6000/darwin-vecsave.asm: Likewise.
12266         * config/rs6000/darwin-world.asm: Likewise.
12267         * config/rs6000/e500crtres32gpr.asm: Likewise.
12268         * config/rs6000/e500crtres64gpr.asm: Likewise.
12269         * config/rs6000/e500crtres64gprctr.asm: Likewise.
12270         * config/rs6000/e500crtrest32gpr.asm: Likewise.
12271         * config/rs6000/e500crtrest64gpr.asm: Likewise.
12272         * config/rs6000/e500crtresx32gpr.asm: Likewise.
12273         * config/rs6000/e500crtresx64gpr.asm: Likewise.
12274         * config/rs6000/e500crtsav32gpr.asm: Likewise.
12275         * config/rs6000/e500crtsav64gpr.asm: Likewise.
12276         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
12277         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
12278         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
12279         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
12280         * config/rs6000/eabi-ci.asm: Likewise.
12281         * config/rs6000/eabi-cn.asm: Likewise.
12282         * config/rs6000/eabi.asm: Likewise.
12283         * config/rs6000/linux-unwind.h: Likewise.
12284         * config/rs6000/linux64.h: Likewise.
12285         * config/rs6000/paired.h: Likewise.
12286         * config/rs6000/paired.md: Likewise.
12287         * config/rs6000/ppc64-fp.c: Likewise.
12288         * config/rs6000/ppu_intrinsics.h: Likewise.
12289         * config/rs6000/rs6000.h: Likewise.
12290         * config/rs6000/si2vmx.h: Likewise.
12291         * config/rs6000/sol-ci.asm: Likewise.
12292         * config/rs6000/sol-cn.asm: Likewise.
12293         * config/rs6000/spe.h: Likewise.
12294         * config/rs6000/spu2vmx.h: Likewise.
12295         * config/rs6000/sysv4.h: Likewise.
12296         * config/rs6000/tramp.asm: Likewise.
12297         * config/rs6000/vec_types.h: Likewise.
12298         * config/s390/linux-unwind.h: Likewise.
12299         * config/s390/tpf-unwind.h: Likewise.
12300         * config/score/crti.asm: Likewise.
12301         * config/score/crtn.asm: Likewise.
12302         * config/sh/crt1.asm: Likewise.
12303         * config/sh/crti.asm: Likewise.
12304         * config/sh/crtn.asm: Likewise.
12305         * config/sh/divtab-sh4-300.c: Likewise.
12306         * config/sh/divtab-sh4.c: Likewise.
12307         * config/sh/divtab.c: Likewise.
12308         * config/sh/lib1funcs-4-300.asm: Likewise.
12309         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
12310         * config/sh/lib1funcs.asm: Likewise.
12311         * config/sh/lib1funcs.h: Likewise.
12312         * config/sh/linux-atomic.asm: Likewise.
12313         * config/sh/linux-unwind.h: Likewise.
12314         * config/sh/shmedia.h: Likewise.
12315         * config/sh/sshmedia.h: Likewise.
12316         * config/sh/ushmedia.h: Likewise.
12317         * config/sparc/crtfastmath.c: Likewise.
12318         * config/sparc/linux-unwind.h: Likewise.
12319         * config/sparc/sol2-c1.asm: Likewise.
12320         * config/sparc/sol2-ci.asm: Likewise.
12321         * config/sparc/sol2-cn.asm: Likewise.
12322         * config/spu/divmodti4.c: Likewise.
12323         * config/spu/divv2df3.c: Likewise.
12324         * config/spu/float_disf.c: Likewise.
12325         * config/spu/float_unsdidf.c: Likewise.
12326         * config/spu/float_unsdisf.c: Likewise.
12327         * config/spu/float_unssidf.c: Likewise.
12328         * config/spu/mfc_multi_tag_release.c: Likewise.
12329         * config/spu/mfc_multi_tag_reserve.c: Likewise.
12330         * config/spu/mfc_tag_release.c: Likewise.
12331         * config/spu/mfc_tag_reserve.c: Likewise.
12332         * config/spu/mfc_tag_table.c: Likewise.
12333         * config/spu/multi3.c: Likewise.
12334         * config/spu/spu_internals.h: Likewise.
12335         * config/spu/spu_intrinsics.h: Likewise.
12336         * config/spu/spu_mfcio.h: Likewise.
12337         * config/spu/vec_types.h: Likewise.
12338         * config/spu/vmx2spu.h: Likewise.
12339         * config/stormy16/stormy16-lib2.c: Likewise.
12340         * config/svr4.h: Likewise.
12341         * config/sync.c: Likewise.
12342         * config/v850/lib1funcs.asm: Likewise.
12343         * config/vxlib-tls.c: Likewise.
12344         * config/vxlib.c: Likewise.
12345         * config/vxworks-dummy.h: Likewise.
12346         * config/xtensa/crti.asm: Likewise.
12347         * config/xtensa/crtn.asm: Likewise.
12348         * config/xtensa/ieee754-df.S: Likewise.
12349         * config/xtensa/ieee754-sf.S: Likewise.
12350         * config/xtensa/lib1funcs.asm: Likewise.
12351         * config/xtensa/lib2funcs.S: Likewise.
12352         * config/xtensa/linux-unwind.h: Likewise.
12353         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
12354         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
12355         * coretypes.h: Likewise.
12356         * crtstuff.c: Likewise.
12357         * defaults.h: Likewise.
12358         * dwarf2.h: Likewise.
12359         * emutls.c: Likewise.
12360         * gbl-ctors.h: Likewise.
12361         * gcov-io.h: Likewise.
12362         * ginclude/float.h: Likewise.
12363         * ginclude/iso646.h: Likewise.
12364         * ginclude/stdarg.h: Likewise.
12365         * ginclude/stdbool.h: Likewise.
12366         * ginclude/stddef.h: Likewise.
12367         * ginclude/stdfix.h: Likewise.
12368         * ginclude/stdint-gcc.h: Likewise.
12369         * ginclude/tgmath.h: Likewise.
12370         * gthr-aix.h: Likewise.
12371         * gthr-dce.h: Likewise.
12372         * gthr-gnat.c: Likewise.
12373         * gthr-gnat.h: Likewise.
12374         * gthr-lynx.h: Likewise.
12375         * gthr-mipssde.h: Likewise.
12376         * gthr-nks.h: Likewise.
12377         * gthr-posix.c: Likewise.
12378         * gthr-posix.h: Likewise.
12379         * gthr-posix95.h: Likewise.
12380         * gthr-rtems.h: Likewise.
12381         * gthr-single.h: Likewise.
12382         * gthr-solaris.h: Likewise.
12383         * gthr-tpf.h: Likewise.
12384         * gthr-vxworks.h: Likewise.
12385         * gthr-win32.h: Likewise.
12386         * gthr.h: Likewise.
12387         * libgcc2.c: Likewise.
12388         * libgcc2.h: Likewise.
12389         * libgcov.c: Likewise.
12390         * tsystem.h: Likewise.
12391         * typeclass.h: Likewise.
12392         * unwind-c.c: Likewise.
12393         * unwind-compat.h: Likewise.
12394         * unwind-dw2-fde-compat.c: Likewise.
12395         * unwind-dw2-fde-darwin.c: Likewise.
12396         * unwind-dw2-fde-glibc.c: Likewise.
12397         * unwind-dw2-fde.c: Likewise.
12398         * unwind-dw2-fde.h: Likewise.
12399         * unwind-dw2.c: Likewise.
12400         * unwind-dw2.h: Likewise.
12401         * unwind-generic.h: Likewise.
12402         * unwind-pe.h: Likewise.
12403         * unwind-sjlj.c: Likewise.
12404         * unwind.inc: Likewise.
12405         * config/arm/neon-gen.ml: Change generated copyright header to
12406         refer to version 3 of the GNU General Public License with
12407         version 3.1 of the GCC Runtime Library Exception and to point
12408         readers at the COPYING3 and COPYING3.RUNTIME files and the
12409         FSF's license web page.
12410         * config/arm/arm_neon.h: Regenerate.
12411
12412 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
12413
12414         * config/cris/cris.md: Change copyright header to refer to version
12415         3 of the GNU General Public License.
12416         * doc/install.texi2html: Change copyright header to refer to version
12417         3 of the GNU General Public License and to point readers at the
12418         COPYING3 file and the FSF's license web page.
12419         * config/vax/linux.h: Likewise.
12420
12421 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
12422
12423         * config/i386/i386.md (cmpcc): New.
12424         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
12425         (sync_compare_and_swap_cc*): Delete.
12426
12427         * config/s390/s390.c (s390_compare_emitted): Remove.
12428         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
12429         s390_compare_emitted used to be handled.  Assert that modes match.
12430         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
12431         refer to sync_compare_and_swap_ccsi.
12432         * config/s390/s390.h (s390_compare_emitted): Remove.
12433         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
12434         instead of s390_compare_emitted.
12435         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
12436         instead of s390_compare_emitted.
12437         * config/s390/s390.md (cmpcc): New.
12438         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
12439         CC_REGNUM, do not pretend it's set.
12440         (sync_compare_and_swap_cc*): Delete.
12441         * config/s390/predicates.md (cc_reg_operand): New.
12442
12443         * expr.c (sync_compare_and_swap_cc): Delete.
12444         * optabs.h (sync_compare_and_swap_cc): Delete.
12445         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
12446         is being used with can_compare_p.
12447         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
12448         (find_cc_set): New.
12449         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
12450         look for a MODE_CC set instead.  Use emit_store_flag.
12451         (expand_compare_and_swap_loop): Likewise, with some additional
12452         complication to avoid a force_reg when useless.  Use
12453         emit_cmp_and_jump_insns.
12454         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
12455         * doc/md.texi (sync_compare_and_swap_cc): Merge with
12456         sync_compare_and_swap documentation.
12457
12458 2009-04-09  Jan Hubicka  <jh@suse.cz>
12459
12460         * except.c (find_prev_try): Break out from ....
12461         (duplicate_eh_regions): ... here; properly update prev_try pointers
12462         when duplication part of tree.
12463         (dump_eh_tree): Improve dumping.
12464         (verify_eh_region): New.
12465         (verify_eh_tree): Use it.
12466
12467 2009-04-06  Richard Guenther  <rguenther@suse.de>
12468
12469         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
12470         &ARRAY addresses by adjusting their types and prepending
12471         a conversion.
12472         * tree-cfg.c (verify_gimple_assign_single): Verify that
12473         addresses are correct.
12474
12475 2009-04-09  Richard Guenther  <rguenther@suse.de>
12476
12477         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
12478         indices into an array reference if possible.
12479         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
12480         Fold POINTER_PLUS_EXPR statements with invariant address.
12481
12482 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
12483
12484         PR target/39634
12485         * config.gcc (powerpc64-*-linux*): Always build biarch.
12486
12487 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
12488
12489         PR c/39613
12490         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
12491         it and pedwarn if this results in an INTEGER_CST.
12492
12493 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12494
12495         * doc/install.texi: Update minimum GMP version.  Remove obsolete
12496         text in MPFR section.
12497
12498 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
12499
12500         * dwarf2out.c (class_scope_p): New static inline.
12501         (class_or_namespace_scope_p): Use it.
12502         (gen_variable_die): Use DW_TAG_member tag for static data member
12503         declarations instead of DW_TAG_variable.
12504
12505         PR middle-end/39573
12506         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
12507         variables.
12508
12509 2009-04-08  Richard Guenther  <rguenther@suse.de>
12510
12511         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
12512         valueize random data.
12513
12514 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
12515
12516         * config.gcc (aix tm_file):  Add aix-stdint.h.
12517         (aix tm clause use_gcc_stdint):  Set to wrap.
12518         * config/rs6000/aix-stdint.h:  New file.
12519
12520 2009-04-08  Richard Guenther  <rguenther@suse.de>
12521
12522         PR middle-end/36291
12523         * tree-dfa.c (add_referenced_var): Do not recurse into
12524         global initializers.
12525         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
12526         exposed variables.
12527         (fold_const_aggregate_ref): Likewise.
12528
12529 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
12530
12531         * recog.c (ordered_comparison_operator): New.
12532         * gensupport.c (std_preds): Add it.
12533         * doc/md.texi (Machine-Independent Predicates): Document it.
12534
12535 2009-04-08  Jan Hubicka  <jh@suse.cz>
12536
12537         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
12538         * function.h (rtl_eh): Remove exception_handler_label_map.
12539         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
12540         remove_exception_handler_label, for_each_eh_label_1): Remove.
12541         (rtl_remove_unreachable_regions): Remove.
12542         (convert_from_eh_region_ranges): Do not remove unreachable regions.
12543         (find_exception_handler_labels): Don't build the hashtable.
12544         (maybe_remove_eh_handler): Remove.
12545         (for_each_eh_label): Rewrite to walk the tree.
12546         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
12547         * except.h (maybe_remove_eh_handler): Remove.
12548         * passes.c (init_optimization_passes): Schedule second EH cleanup
12549         before out-of-ssa.
12550         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
12551         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
12552
12553 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
12554
12555         * genoutput.c (validate_optab_operands): New.
12556         (gen_insn, gen_expand): Call it.
12557
12558         * genflags.c (gen_insn): Detect misused iterators.
12559         (main): Pass line_no to gen_insn, exit with status 1 on error.
12560
12561         * genextract.c (line_no): Make global.
12562         (VEC_safe_set_locstr): Change assertion to error message.
12563         (main): Exit with status 1 on error.
12564
12565 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
12566
12567         PR c/39614
12568         PR c/39673
12569         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12570         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12571         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
12572         * c-convert.c (convert): Do not call fold on results of conversion
12573         functions when the result is a C_MAYBE_CONST_EXPR.
12574         * c-parser.c (c_parser_postfix_expression): Do not fold condition
12575         of __builtin_choose_expr.
12576         * c-typeck.c (remove_c_maybe_const_expr): New.
12577         (build_unary_op, build_conditional_expr, build_compound_expr,
12578         build_binary_op, c_objc_common_truthvalue_conversion): Call
12579         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
12580         integer operands.
12581
12582 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
12583
12584         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
12585         CODE to produce a new one. Add a prototype to use fold_convert_const
12586
12587 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
12588
12589         PR bootstrap/39660
12590         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
12591         mix declarations and code.
12592
12593 2009-04-08  Ben Elliston  <bje@au.ibm.com>
12594
12595         * gcc.c: Replace `CC' with `GCC' throughout.
12596
12597 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
12598
12599         * doc/invoke.texi: Document Atom support.
12600
12601 2009-04-07  Jason Merrill  <jason@redhat.com>
12602
12603         PR c++/25185
12604         * c-common.h, c-common.c: Add flag_pretty_templates.
12605         * c-opts.c (c_common_handle_option): Set it.
12606         * c.opt: Add -fno-pretty-templates.
12607         * doc/invoke.texi (C++ Dialect Options): Likewise.
12608
12609 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
12610
12611         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
12612         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
12613         (ia64_expand_builtin): Likewise.
12614
12615 2009-04-07  Martin Jambor  <mjambor@suse.cz>
12616
12617         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
12618         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
12619         ADDR_EXPRS are include too.
12620
12621 2009-04-07  Richard Guenther  <rguenther@suse.de>
12622
12623         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
12624         decls are only used if passes as parameters or if they are
12625         local statics and the call is not to a builtin.
12626         (call_may_clobber_ref_p_1): Likewise.
12627
12628 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
12629
12630         * expr.c (do_store_flag): Remove last argument.  Simplify code
12631         to avoid duplication of tests already done by can_compare_p.
12632         (expand_expr_real_1): Adjust caller.
12633
12634 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
12635
12636         * optabs.c (can_compare_p): Test the predicate of a
12637         cbranch and cstore pattern.
12638
12639 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
12640
12641         * expr.c (convert_move): Use emit_store_flag instead of
12642         "emulating" it.
12643
12644 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
12645
12646         * config/i386/i386.c (ix86_compare_emitted): Remove.
12647         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
12648         ix86_compare_op0 like ix86_compare_emitted used to be handled.
12649         * config/i386/i386.h (ix86_compare_emitted): Remove.
12650         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
12651         instead of ix86_compare_emitted.
12652         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
12653
12654 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
12655
12656         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
12657         Add t-sysroot-suffix to tmake_file.
12658         * config/print-sysroot-suffix.sh: New file.
12659         * config/t-sysroot-suffix: New file.
12660
12661 2009-04-07  Ben Elliston  <bje@au.ibm.com>
12662
12663         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
12664         as the latter produces a warning when the target does not support
12665         infinity.
12666
12667 2009-04-07  Ben Elliston  <bje@au.ibm.com>
12668
12669         * dfp.c: Replace type punning assignments with memcpy throughout.
12670         * Makefile.in (dfp.o-warn): Remove.
12671
12672 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
12673
12674         PR target/39634
12675         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
12676         Include soft-fp/t-softfp after rs6000/t-linux64.
12677
12678 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
12679
12680         * stor-layout.c (set_sizetype): Use the full precision of their
12681         machine mode for bitsize types.
12682
12683 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
12684
12685         * config/i386/i386.md: Revert 2 accidental checkins.
12686
12687 2009-04-06  Joey Ye  <joey.ye@intel.com>
12688             Xuepeng Guo  <xuepeng.guo@intel.com>
12689             H.J. Lu  <hongjiu.lu@intel.com>
12690
12691         Atom pipeline model, tuning and insn selection.
12692         * config.gcc (atom): Add atom config options and target.
12693
12694         * config/i386/atom.md: New.
12695
12696         * config/i386/i386.c (atom_cost): New cost.
12697         (m_ATOM): New macro flag.
12698         (initial_ix86_tune_features): Set m_ATOM.
12699         (x86_accumulate_outgoing_args): Likewise.
12700         (x86_arch_always_fancy_math_387): Likewise.
12701         (processor_target): Add Atom cost.
12702         (cpu_names): Add Atom cpu name.
12703         (override_options): Set Atom ISA.
12704         (ix86_issue_rate): New case PROCESSOR_ATOM.
12705         (ix86_adjust_cost): Likewise.
12706
12707         * config/i386/i386.h (TARGET_ATOM): New target macro.
12708         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
12709         (TARGET_OPT_AGU): New target option.
12710         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
12711         (processor_type): Add PROCESSOR_ATOM.
12712
12713         * config/i386/i386.md (cpu): Add new value "atom".
12714         (use_carry, movu): New attr.
12715         (atom.md): Include atom.md.
12716         (adddi3_carry_rex64): Set attr "use_carry".
12717         (addqi3_carry): Likewise.
12718         (addhi3_carry): Likewise.
12719         (addsi3_carry): Likewise.
12720         (*addsi3_carry_zext): Likewise.
12721         (subdi3_carry_rex64): Likewise.
12722         (subqi3_carry): Likewise.
12723         (subhi3_carry): Likewise.
12724         (subsi3_carry): Likewise.
12725         (x86_movdicc_0_m1_rex64): Likewise.
12726         (*x86_movdicc_0_m1_se): Likewise.
12727         (x86_movsicc_0_m1): Likewise.
12728         (*x86_movsicc_0_m1_se): Likewise.
12729         (*adddi_1_rex64): Emit add insn as much as possible.
12730         (*addsi_1): Likewise.
12731         (return_internal): Set atom_unit.
12732         (return_internal_long): Likewise.
12733         (return_pop_internal): Likewise.
12734         (*rcpsf2_sse): Set atom_sse_attr attr.
12735         (*qrt<mode>2_sse): Likewise.
12736         (*prefetch_sse): Likewise.
12737
12738         * config/i386/i386-c.c (ix86_target_macros_internal): New case
12739         PROCESSOR_ATOM.
12740         (ix86_target_macros_internal): Likewise.
12741
12742         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
12743         (*prefetch_sse_rex): Likewise.
12744         (sse_rcpv4sf2): Likewise.
12745         (sse_vmrcpv4sf2): Likewise.
12746         (sse_sqrtv4sf2): Likewise.
12747         (<sse>_vmsqrt<mode>2): Likewise.
12748         (sse_ldmxcsr): Likewise.
12749         (sse_stmxcsr): Likewise.
12750         (*sse_sfence): Likewise.
12751         (sse2_clflush): Likewise.
12752         (*sse2_mfence): Likewise.
12753         (*sse2_lfence): Likewise.
12754         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
12755         (<sse>_movup<ssemodesuffixf2c>): Likewise.
12756         (avx_movdqu<avxmodesuffix>): Likewise.
12757         (avx_lddqu<avxmodesuffix>): Likewise.
12758         (sse2_movntv2di): Change attr "type" to "ssemov".
12759         (sse2_movntsi): Likewise.
12760         (rsqrtv8sf2): Change attr "type" to "sseadd".
12761         (sse3_addsubv2df3): Set attr "atom_unit".
12762         (sse3_h<plusminus_insn>v4sf3): Likewise.
12763         (*sse2_pmaddwd): Likewise.
12764         (*vec_extractv2di_1_rex64): Likewise.
12765         (*vec_extractv2di_1_avx): Likewise.
12766         (sse2_psadbw): Likewise.
12767         (ssse3_phaddwv8hi3): Likewise.
12768         (ssse3_phaddwv4hi3): Likewise.
12769         (ssse3_phadddv4si3): Likewise.
12770         (ssse3_phadddv2si3): Likewise.
12771         (ssse3_phaddswv8hi3): Likewise.
12772         (ssse3_phaddswv4hi3): Likewise.
12773         (ssse3_phsubwv8hi3): Likewise.
12774         (ssse3_phsubwv4hi3): Likewise.
12775         (ssse3_phsubdv4si3): Likewise.
12776         (ssse3_phsubdv2si3): Likewise.
12777         (ssse3_phsubswv8hi3): Likewise.
12778         (ssse3_phsubswv4hi3): Likewise.
12779         (ssse3_pmaddubsw128): Likewise.
12780         (sse3_pmaddubsw: Likewise.
12781         (ssse3_palignrti): Likewise.
12782         (ssse3_palignrdi): Likewise.
12783
12784 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
12785
12786         * doc/install.texi (Specific): Fix two cross-references to MinGW.
12787
12788 2009-04-06  Richard Guenther  <rguenther@suse.de>
12789
12790         PR tree-optimization/28868
12791         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
12792         of which PHI results we inserted.
12793         (insert_into_preds_of_block): Record inserted PHIs.
12794         (eliminate): Eliminate redundant PHI nodes.
12795         (init_pre): Init inserted_phi_names.
12796
12797 2009-04-06  Richard Guenther  <rguenther@suse.de>
12798
12799         PR tree-optimization/39643
12800         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
12801         IMAGPART_EXPRs of complex constants.
12802         (execute_fold_all_builtins): If we folded a call queue
12803         TODO_update_address_taken.
12804
12805 2009-04-06  Jan Hubicka  <jh@suse.cz>
12806
12807         PR middle-end/39659
12808         * except.c (remove_unreachable_regions): Propagate may_contain_throw
12809         flag.
12810
12811 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
12812
12813         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
12814         delay slot.
12815         (ic_invalidate_array): Likewise.
12816
12817 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
12818
12819         * calls.c (emit_library_call_value_1): Fix a problem with parameter
12820         alignment for library calls.
12821
12822 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
12823
12824         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
12825         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
12826         * config/i386/mingw-stdint.h:  New file.
12827
12828 2009-04-05  Richard Guenther  <rguenther@suse.de>
12829
12830         PR tree-optimization/39648
12831         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
12832         our &A vs. &A[0] IL deficiencies.
12833
12834 2009-04-04  Jan Hubicka  <jh@suse.cz>
12835
12836         * except.c (sjlj_find_directly_reachable_regions): Be ready for
12837         removed toplevel regions.
12838         (sjlj_mark_call_sites): Likewise.
12839
12840 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
12841
12842         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
12843         (cygwin tm clause use_gcc_stdint):  Set to wrap.
12844         * config/i386/cygwin-stdint.h:  New file.
12845
12846 2009-04-04  Richard Guenther  <rguenther@suse.de>
12847
12848         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
12849         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
12850         single-argument PHIs if we are in loop-closed SSA form.
12851         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
12852         for the pre-condition.
12853         (slpeel_tree_peel_loop_to_edge): Likewise.
12854         (vect_build_loop_niters): Take an optional sequence to append stmts.
12855         (vect_generate_tmps_on_preheader): Likewise.
12856         (vect_do_peeling_for_loop_bound): Take extra guards for the
12857         pre-condition.
12858         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
12859         the cost model check.
12860         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
12861         guards if we are going to peel.  Do not apply versioning in that case.
12862         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
12863         (vect_do_peeling_for_loop_bound): Likewise.
12864         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
12865         loop bound only record extra pre-conditions, do not apply loop
12866         versioning.
12867
12868 2009-04-04  Richard Guenther  <rguenther@suse.de>
12869
12870         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
12871         renaming code.
12872
12873 2009-04-04  Jan Hubicka  <jh@suse.cz>
12874
12875         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
12876         last_basic_block for size of bb->index indexed array.
12877         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
12878         compute_out, link_btr_uses, build_btr_def_use_webs,
12879         build_btr_def_use_webs, migrate_btr_defs): Likewise.
12880
12881 2009-04-04  Jan Hubicka  <jh@suse.cz>
12882
12883         * except.c (remove_eh_handler_and_replace): Break out from ...
12884         (remove_eh_handler): ... here.
12885         (bring_to_root): New function.
12886         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
12887         handled ones, bring others to root of tree.
12888
12889 2009-04-04  Jan Hubicka  <jh@suse.cz>
12890
12891         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
12892         (all_phis_safe_to_merge): New function.
12893         (update_info): New structure.
12894         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
12895         (cleanup_empty_eh): Update SSA if possible.
12896
12897 2009-04-04  Richard Guenther  <rguenther@suse.de>
12898
12899         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
12900         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
12901         (append_vuse): Likewise.
12902
12903 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
12904
12905         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
12906         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
12907         instead of REG_UNSAVED for DW_CFA_undefined.
12908         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
12909         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
12910         outermost frame.
12911
12912 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
12913
12914         PR target/39501
12915         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
12916         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
12917         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
12918
12919 2009-04-04  Richard Guenther  <rguenther@suse.de>
12920
12921         PR tree-optimization/8781
12922         PR tree-optimization/37892
12923         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
12924         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
12925         (valueize_refs): Call it for *& valueizations.
12926         (shared_reference_ops_from_ref): Rename to ...
12927         (valueize_shared_reference_ops_from_ref): ... this and valueize.
12928         (shared_reference_ops_from_call): Rename to ...
12929         (valueize_shared_reference_ops_from_call): ... this and valueize.
12930         (vn_reference_lookup): Update.
12931         (visit_reference_op_call): Likewise.
12932         * tree-ssa-pre.c (phi_translate_1): Fold *&.
12933         (eliminate): Value-replace the call address in call statements.
12934
12935 2009-04-04  Richard Guenther  <rguenther@suse.de>
12936
12937         PR tree-optimization/39636
12938         * tree-ssa-forwprop.c
12939         (forward_propagate_addr_into_variable_array_index): Check for
12940         GIMPLE_ASSIGN before accessing the rhs code.
12941
12942 2009-04-03  Jason Merrill  <jason@redhat.com>
12943
12944         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
12945
12946 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
12947
12948         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
12949         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
12950         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
12951         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
12952         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
12953         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
12954         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
12955         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
12956         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
12957         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
12958         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
12959         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
12960         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
12961         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
12962         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
12963         Use fr_reg_or_fp01_operand instead of fr_register_operand
12964
12965         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
12966         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
12967         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
12968
12969 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
12970
12971         PR rtl-optimization/39607
12972         PR rtl-optimization/39631
12973
12974         Revert:
12975
12976         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
12977         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
12978         instead of DF_LR_OUT.
12979         * ira-lives.c (process_bb_node_lives): Ditto.
12980         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
12981         instead of DF_LR_{OUT,IN}.
12982         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
12983         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
12984
12985 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
12986
12987         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
12988         (execute_lower_omp): Always run but take the short way out if -fopenmp
12989         is not given.
12990         (gate_lower_omp): Remove, forcing the pass manager to always run the
12991         pass and always set PROP_gimple_lomp.
12992         (pass_lower_omp): Remove gate function.
12993         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
12994         PROP_trees.  Instead, require it.
12995         * ipa-cp.c (pass_ipa_cp): Likewise.
12996         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
12997         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
12998         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
12999         and PROP_gimple_leh.
13000
13001 2009-04-03  Richard Guenther  <rguenther@suse.de>
13002
13003         PR middle-end/13146
13004         PR tree-optimization/23940
13005         PR tree-optimization/33237
13006         PR middle-end/33974
13007         PR middle-end/34093
13008         PR tree-optimization/36201
13009         PR tree-optimization/36230
13010         PR tree-optimization/38049
13011         PR tree-optimization/38207
13012         PR tree-optimization/38230
13013         PR tree-optimization/38301
13014         PR tree-optimization/38585
13015         PR middle-end/38895
13016         PR tree-optimization/38985
13017         PR tree-optimization/39299
13018         * tree-ssa-structalias.h: Remove.
13019         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
13020         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
13021         (struct vuse_element_d): Remove.
13022         (struct vuse_vec_d): Likewise.
13023         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
13024         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
13025         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
13026         VUSE_ELEMENT_VAR): Likewise.
13027         (struct voptype_d): Likewise.
13028         (NUM_VOP_FREE_BUCKETS): Likewise.
13029         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
13030         (struct stmt_operands_d): Remove.
13031         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
13032         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
13033         VDEF_NUM, VDEF_VECT): Likewise.
13034         (copy_virtual_operands): Remove.
13035         (operand_build_cmp): Likewise.
13036         (create_ssa_artificial_load_stmt): Likewise.
13037         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
13038         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
13039         vuse_index and mayuse_index members.  Pack and move done and iter_type
13040         members to the front.
13041         (SSA_OP_VMAYUSE): Remove.
13042         (SSA_OP_VIRTUAL_USES): Adjust.
13043         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
13044         (unlink_stmt_vdef): Declare.
13045         (add_to_addressable_set): Remove.
13046         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
13047         (vrp_visit_stmt): Likewise.
13048         * doc/tree-ssa.texi (Alias analysis): Update.
13049         * doc/invoke.texi (max-aliased-vops): Remove docs.
13050         (avg-aliased-vops): Likewise.
13051         * tree-into-ssa.c (syms_to_rename): Remove.
13052         (need_to_update_vops_p): Likewise.
13053         (need_to_initialize_update_ssa_p): Rename to ...
13054         (update_ssa_initialized_fn): ... this.  Track function we are
13055         initialized for.
13056         (symbol_marked_for_renaming): Simplify.
13057         (add_new_name_mapping): Do not set need_to_update_vops_p.
13058         (dump_currdefs): Use SYMS_TO_RENAME.
13059         (rewrite_update_stmt): Always walk all uses/defs.
13060         (dump_update_ssa): Adjust.
13061         (init_update_ssa): Take function argument.  Track what we are
13062         initialized for.
13063         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
13064         (create_new_def_for): Initialize for cfun, assert we are initialized
13065         for cfun.
13066         (mark_sym_for_renaming): Simplify.
13067         (mark_set_for_renaming): Do not initialize update-ssa.
13068         (need_ssa_update_p): Simplify.  Take function argument.
13069         (name_mappings_registered_p): Assert we ask for the correct function.
13070         (name_registered_for_update_p): Likewise.
13071         (ssa_names_to_replace): Likewise.
13072         (release_ssa_name_after_update_ssa): Likewise.
13073         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
13074         (dump_decl_set): Do not print a newline.
13075         (debug_decl_set): Do it here.
13076         (dump_update_ssa): And here.
13077         * tree-ssa-loop-im.c (move_computations): Adjust.
13078         (movement_possibility): Likewise.
13079         (determine_max_movement): Likewise.
13080         (gather_mem_refs_stmt): Likewise.
13081         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
13082         or NAME_MEMORY_TAG.
13083         * tree-complex.c (update_all_vops): Remove.
13084         (expand_complex_move): Adjust.
13085         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
13086         Simplify test for memory referencing statement.  Exclude
13087         non-invariant ADDR_EXPRs.
13088         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
13089         * tree-loop-distribution.c (generate_memset_zero): Adjust.
13090         (rdg_flag_uses): Likewise.
13091         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
13092         related code.
13093         (tree_optimize_tail_calls_1): Also split the
13094         edge from the entry block if we have degenerate PHI nodes in
13095         the first basic block.
13096         * tree.c (init_ttree): Remove memory-tag related code.
13097         (tree_code_size): Likewise.
13098         (tree_node_structure): Likewise.
13099         (build7_stat): Re-write to be build6_stat.
13100         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
13101         (SSA_VAR_P): Adjust.
13102         (struct tree_memory_tag): Remove.
13103         (struct tree_memory_partition_tag): Likewise.
13104         (union tree_node): Adjust.
13105         (build7): Re-write to be build6.
13106         * tree-pass.h (pass_reset_cc_flags): Remove.
13107         (TODO_update_address_taken): New flag.
13108         (pass_simple_dse): Remove.
13109         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
13110         * params.h (MAX_ALIASED_VOPS): Remove.
13111         (AVG_ALIASED_VOPS): Likewise.
13112         * omp-low.c (expand_omp_taskreg): Update SSA form.
13113         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
13114         aliases the lhs in a copy stmt.
13115         * tree-ssa-dse.c (struct address_walk_data): Remove.
13116         (memory_ssa_name_same): Likewise.
13117         (memory_address_same): Likewise.
13118         (get_kill_of_stmt_lhs): Likewise.
13119         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
13120         unused stores.  Look through PHI nodes into post-dominated regions.
13121         (dse_optimize_stmt): Simplify.  Properly remove stores.
13122         (tree_ssa_dse): Compute dominators.
13123         (execute_simple_dse): Remove.
13124         (pass_simple_dse): Likewise.
13125         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
13126         gimple_loaded_syms and gimple_stored_syms computation.
13127         * toplev.c (dump_memory_report): Dump alias and pta stats.
13128         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
13129         (vn_reference_eq): Likewise.
13130         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
13131         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
13132         valueize_vuses): Remove.
13133         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
13134         (get_def_ref_stmt_vuse): ... this.
13135         (vn_reference_lookup_2): New function.
13136         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
13137         walking equivalent vuses.  Simplify.
13138         (vn_reference_lookup): Likewise.
13139         (vn_reference_insert): Likewise.
13140         (vn_reference_insert_pieces): Likewise.
13141         (visit_reference_op_call): Simplify.
13142         (visit_reference_op_load): Likewise.
13143         (visit_reference_op_store): Likewise.
13144         (init_scc_vn): Remove shared_lookup_vuses initialization.
13145         (free_scc_vn): Remove shared_lookup_vuses freeing.
13146         (sort_vuses, sort_vuses_heap): Remove.
13147         (get_ref_from_reference_ops): Export.
13148         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
13149         vector with single vuse pointer.
13150         (vn_reference_lookup_pieces, vn_reference_lookup,
13151         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
13152         (shared_vuses_from_stmt): Remove.
13153         (get_ref_from_reference_ops): Declare.
13154         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
13155         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
13156         memory-tag related code.
13157         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
13158         (likely_value): Add comment, skip static-chain of call statements.
13159         (surely_varying_stmt_p): Adjust.
13160         (gimplify_and_update_call_from_tree): Likewise.
13161         (execute_fold_all_builtins): Do not rebuild alias info.
13162         (gimplify_and_update_call_from_tree): Properly update VOPs.
13163         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
13164         (copy_ref_info): Remove memory-tag related code.
13165         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
13166         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
13167         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
13168         computation.
13169         * tree-ssa-dom.c (gimple_p): Remove typedef.
13170         (eliminate_redundant_computations): Adjust.
13171         (record_equivalences_from_stmt): Likewise.
13172         (avail_expr_hash): Likewise.
13173         (avail_expr_eq): Likewise.
13174         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
13175         (stmt_makes_single_load): Likewise.
13176         (stmt_makes_single_store): Likewise.
13177         * tree-ssa-alias.c: Rewrite completely.
13178         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
13179         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
13180         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
13181         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
13182         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
13183         Remove public functions.
13184         (pass_reset_cc_flags): Remove.
13185         (pass_build_alias): Move ...
13186         * tree-ssa-structalias.c (pass_build_alias): ... here.
13187         * tree-ssa-alias.c (may_be_aliased): Move ...
13188         * tree-flow-inline.h (may_be_aliased): ... here.
13189         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
13190         count_uses_and_derefs): Move ...
13191         * gimple.c: ... here.
13192         * gimple.h (count_uses_and_derefs): Declare.
13193         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
13194         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
13195         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
13196         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
13197         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
13198         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
13199         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
13200         New functions.
13201         * tree-dfa.c (refs_may_alias_p): Move ...
13202         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
13203         * tree-ssa-alias.h: New file.
13204         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
13205         (statement_sink_location): Likewise.
13206         * opts.c (decode_options): Do not adjust max-aliased-vops or
13207         avg-aliased-vops values.
13208         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
13209         (TV_CALL_CLOBBER): Likewise.
13210         (TV_FLOW_SENSITIVE): Likewise.
13211         (TV_FLOW_INSENSITIVE): Likewise.
13212         (TV_MEMORY_PARTITIONING): Likewise.
13213         (TV_ALIAS_STMT_WALK): New timevar.
13214         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
13215         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
13216         (get_address_description): Remove memory-tag related code.
13217         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
13218         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
13219         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
13220         and immediate uses in statements.  Document.
13221         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
13222         (dump_symbols): Remove.
13223         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
13224         * alias.c (get_deref_alias_set): New function split out from ...
13225         (get_alias_set): ... here.
13226         * alias.h (get_deref_alias_set): Declare.
13227         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
13228         type parameter.  Remove restrict pointer handling.  Create a
13229         ref-all pointer in case type-based alias sets do not conflict.
13230         (vect_analyze_data_refs): Remove SMT related code.
13231         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
13232         (vectorizable_load): Likewise.
13233         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
13234         (DR_SYMBOL_TAG, DR_VOPS): Remove.
13235         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
13236         Ignore vops and SMTs.
13237         (dr_analyze_alias): Likewise..
13238         (free_data_ref): Likewise.
13239         (create_data_ref): Likewise.
13240         (analyze_all_data_dependences): Likewise.
13241         (get_references_in_stmt): Adjust.
13242         * tree-flow-inline.h (gimple_aliases_computed_p,
13243         gimple_addressable_vars, gimple_call_clobbered_vars,
13244         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
13245         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
13246         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
13247         gimple_mem_ref_stats): Remove.
13248         (gimple_vop): New function.
13249         (op_iter_next_use): Remove vuses and mayuses cases.
13250         (op_iter_next_def): Remove vdefs case.
13251         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
13252         (clear_and_done_ssa_iter): Do not set removed fields.
13253         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
13254         Assert we are not iterating over vuses or vdefs if not also
13255         iterating over uses or defs.
13256         (op_iter_init_use): Likewise.
13257         (op_iter_init_def): Likewise.
13258         (op_iter_next_vdef): Remove.
13259         (op_iter_next_mustdef): Likewise.
13260         (op_iter_init_vdef): Likewise.
13261         (compare_ssa_operands_equal): Likewise.
13262         (link_use_stmts_after): Handle vuse operand.
13263         (is_call_used): Use is_call_clobbered.
13264         (is_call_clobbered): Global variables are always call clobbered,
13265         query the call-clobbers bitmap.
13266         (mark_call_clobbered): Ignore global variables.
13267         (clear_call_clobbered): Likewise.
13268         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
13269         virtual operands sanity check.
13270         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
13271         Remove.
13272         (TARGET_MEM_REF): Remove TMR_TAG operand.
13273         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
13274         Remove call-clobber related code.
13275         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
13276         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
13277         partitions or escape reason.
13278         (get_single_def_stmt, get_single_def_stmt_from_phi,
13279         get_single_def_stmt_with_phi): Remove.
13280         (dump_referenced_vars): Tidy.
13281         (get_ref_base_and_extent): Allow bare decls.
13282         (collect_dfa_stats): Adjust.
13283         * graphite.c (rename_variables_in_stmt): Adjust.
13284         (graphite_copy_stmts_from_block): Likewise.
13285         (translate_clast): Likewise.
13286         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
13287         (EXPR_DIES): New.
13288         (translate_vuse_through_block): Use the oracle.
13289         (phi_translate_1): Adjust.
13290         (value_dies_in_block_x): Use the oracle.  Cache the outcome
13291         in EXPR_DIES.
13292         (valid_in_sets): Check if the VUSE for
13293         a REFERENCE is available.
13294         (eliminate): Do not remove stmts during elimination,
13295         instead queue and remove them afterwards.
13296         (do_pre): Do not rebuild alias info.
13297         (pass_pre): Run TODO_rebuild_alias before PRE.
13298         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
13299         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
13300         (mark_all_v_defs_stmt): Remove.
13301         (mark_all_v_defs_seq): Adjust.
13302         (sra_replace): Likewise.
13303         (scalarize_use): Likewise.
13304         (scalarize_copy): Likewise.
13305         (scalarize_init): Likewise.
13306         (scalarize_ldst): Likewise.
13307         (todoflags): Remove.
13308         (tree_sra): Do not rebuild alias info.
13309         (tree_sra_early): Adjust.
13310         (pass_sra): Run TODO_update_address_taken before SRA.
13311         * tree-predcom.c (set_alias_info): Remove.
13312         (prepare_initializers_chain): Do not call it.
13313         (mark_virtual_ops_for_renaming): Adjust.
13314         (mark_virtual_ops_for_renaming_list): Remove.
13315         (initialize_root_vars): Adjust.
13316         (initialize_root_vars_lm): Likewise.
13317         (prepare_initializers_chain): Likewise.
13318         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
13319         (may_propagate_copy_into_stmt): Likewise.
13320         (merge_alias_info): Do nothing for now.
13321         (propagate_tree_value_into_stmt): Adjust.
13322         (stmt_may_generate_copy): Likewise.
13323         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
13324         not mark symbols for renaming.
13325         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
13326         with the same statement, make sure to update the new pointed-to one.
13327         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
13328         call statements, do not mark symbols for renaming.
13329         (mark_operand_necessary): Dump something.
13330         (ref_may_be_aliased): New function.
13331         (mark_aliased_reaching_defs_necessary_1): New helper function.
13332         (mark_aliased_reaching_defs_necessary): Likewise.
13333         (mark_all_reaching_defs_necessary_1): Likewise.
13334         (mark_all_reaching_defs_necessary): Likewise.
13335         (propagate_necessity): Do not process virtual PHIs.  For
13336         non-aliased loads mark all reaching definitions as necessary.
13337         For aliased loads and stores mark the immediate dominating
13338         aliased clobbers as necessary.
13339         (visited): New global static.
13340         (perform_tree_ssa_dce): Free visited bitmap after propagating
13341         necessity.
13342         (remove_dead_phis): Perform simple dead virtual PHI removal.
13343         (remove_dead_stmt): Properly unlink virtual operands when
13344         removing stores.
13345         (eliminate_unnecessary_stmts): Schedule PHI removal after
13346         stmt removal.
13347         * tree-ssa-ter.c (is_replaceable_p): Adjust.
13348         (process_replaceable): Likewise.
13349         (find_replaceable_in_bb): Likewise.
13350         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
13351         based on the single gimple vop.
13352         (verify_flow_insensitive_alias_info): Remove.
13353         (verify_flow_sensitive_alias_info): Likewise.
13354         (verify_call_clobbering): Likewise.
13355         (verify_memory_partitions): Likewise.
13356         (verify_alias_info): Likewise.
13357         (verify_ssa): Adjust..
13358         (execute_update_addresses_taken): Export.  Update SSA
13359         manually.  Optimize only when optimizing.  Use a local bitmap.
13360         (pass_update_address_taken): Remove TODO_update_ssa, add
13361         TODO_dump_func.
13362         (pass_update_address_taken): Just use TODO_update_address_taken.
13363         (init_tree_ssa): Do not initialize addressable_vars.
13364         (verify_ssa): Verify new VUSE / VDEF properties.
13365         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
13366         Do not call verify_alias_info.
13367         (delete_tree_ssa): Clear the VUSE, VDEF operands.
13368         Do not free the loaded and stored syms bitmaps.  Reset the escaped
13369         and callused solutions.  Do not free addressable_vars.
13370         Remove memory-tag related code.
13371         (warn_uninitialized_var): Aliases are always available.
13372         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
13373         * lambda-code.c (can_put_in_inner_loop): Adjust.
13374         (can_put_after_inner_loop): Likewise.
13375         (perfect_nestify): Likewise.
13376         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
13377         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
13378         (vectorizable_conversion): Do not mark symbols for renaming.
13379         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
13380         (expand_call_inline): Unlink the calls virtual operands before
13381         replacing it.
13382         (tree_function_versioning): Do not call update_ssa if we are not
13383         updating clones.  Simplify.
13384         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
13385         (propagate_with_phi): Likewise..
13386         * tree-outof-ssa.c (create_temp): Remove memory tag and call
13387         clobber code.  Assert we are not aliased or global.
13388         * tree-flow.h: Include tree-ssa-alias.h
13389         (enum escape_type): Remove.
13390         (struct mem_sym_stats_d): Likewise.
13391         (struct mem_ref_stats_d): Likewise.
13392         (struct gimple_df): Add vop member.  Remove global_var,
13393         call_clobbered_vars, call_used_vars, addressable_vars,
13394         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
13395         escaped and callused members.
13396         (struct ptr_info_def): Remove all members, add points-to solution
13397         member pt.
13398         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
13399         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
13400         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
13401         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
13402         (tree-ssa-alias.o): Likewise.
13403         (toplev.o): Add tree-ssa-alias.h
13404         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
13405         * gimple.c (gimple_set_bb): Fix off-by-one error.
13406         (is_gimple_reg): Do not handle memory tags.
13407         (gimple_copy): Also copy virtual operands.
13408         Delay updating the statement.  Do not reset loaded and stored syms.
13409         (gimple_set_stored_syms): Remove.
13410         (gimple_set_loaded_syms): Likewise.
13411         (gimple_call_copy_skip_args): Copy the virtual operands
13412         and mark the new statement modified.
13413         * tree-ssa-structalias.c (may_alias_p): Remove.
13414         (set_uids_in_ptset): Take the alias set to prune with as
13415         parameter.  Fold in the alias test of may_alias_p.
13416         (compute_points_to_sets): Compute whether a ptr is dereferenced
13417         in a local sbitmap.
13418         (process_constraint): Deal with &ANYTHING on the lhs, reject all
13419         other ADDRESSOF constraints on the lhs.
13420         (get_constraint_for_component_ref): Assert that we don't get
13421         ADDRESSOF constraints from the base of the reference.
13422         Properly generate UNKNOWN_OFFSET for DEREF if needed.
13423         (struct variable_info): Remove collapsed_to member.
13424         (get_varinfo_fc): Remove.
13425         (new_var_info): Do not set collapsed_to.
13426         (dump_constraint): Do not follow cycles.
13427         (dump_constraint_graph): Likewise.
13428         (build_pred_graph): Likewise.
13429         (build_succ_graph): Likewise.
13430         (rewrite_constraints): Likewise.
13431         (do_simple_structure_copy): Remove.
13432         (do_rhs_deref_structure_copy): Remove.
13433         (do_lhs_deref_structure_copy): Remove.
13434         (collapse_rest_of_var): Remove.
13435         (do_structure_copy): Re-implement.
13436         (pta_stats): New global variable.
13437         (dump_pta_stats): New function.
13438         (struct constraint_expr): Make offset signed.
13439         (UNKNOWN_OFFSET): Define special value.
13440         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
13441         (solution_set_expand): New helper function split out from ...
13442         (do_sd_constraint): ... here.
13443         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
13444         (do_ds_constraint): Likewise.
13445         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
13446         and CALLUSED = *CALLUSED.
13447         (set_union_with_increment): Make inc argument signed.
13448         (type_safe): Remove.
13449         (get_constraint_for_ptr_offset): Handle unknown and negative
13450         constant offsets.
13451         (first_vi_for_offset): Handle offsets before start.  Bail
13452         out early for offsets beyond the variable extent.
13453         (first_or_preceding_vi_for_offset): New function.
13454         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
13455         Together with ESCAPED = *ESCAPED this properly computes reachability.
13456         (find_what_var_points_to): New function.
13457         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
13458         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
13459         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
13460         pt_solutions_intersect): New functions.
13461         (compute_call_used_vars): Remove.
13462         (compute_may_aliases): New main entry into PTA computation.
13463         * gimple.h (gimple_p): New typedef.
13464         (struct gimple_statement_base): Remove references_memory_p.
13465         (struct gimple_statement_with_memory_ops_base): Remove
13466         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
13467         members.
13468         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
13469         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
13470         gimple_set_references_memory): Remove.
13471         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
13472         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
13473         New functions.
13474         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
13475         (verify_expr): Allow RESULT_DECL.
13476         (gimple_duplicate_bb): Do not copy virtual operands.
13477         (gimple_duplicate_sese_region): Adjust.
13478         (gimple_duplicate_sese_tail): Likewise.
13479         (mark_virtual_ops_in_region): Remove.
13480         (move_sese_region_to_fn): Do not call it.
13481         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
13482         and pass_simple_dse.
13483         (execute_function_todo): Handle TODO_update_address_taken,
13484         call execute_update_addresses_taken for TODO_rebuild_alias.
13485         (execute_todo): Adjust.
13486         (execute_one_pass): Init dump files early.
13487         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
13488         call-clobbered.
13489         (create_general_new_stmt): Clear vops.
13490         * tree-ssa-reassoc.c (get_rank): Adjust.
13491         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
13492         symbols for renaming.
13493         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
13494         (PARAM_AVG_ALIASED_VOPS): Likewise.
13495         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
13496         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
13497         * tree-ssa-operands.c: Simplify for new virtual operand representation.
13498         (operand_build_cmp, copy_virtual_operands,
13499         create_ssa_artificial_load_stmt, add_to_addressable_set,
13500         gimple_add_to_addresses_taken): Remove public functions.
13501         (unlink_stmt_vdef): New function.
13502
13503 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
13504
13505         * config.gcc (powerpc-*-linux*): Merge variants.
13506
13507 2009-04-02  Chao-ying Fu  <fu@mips.com>
13508             James Grosbach  <james.grosbach@microchip.com>
13509
13510         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
13511         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
13512         cop0_sp_offset.
13513         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
13514         keep_interrupts_masked_p, use_debug_exception_return_p.
13515         (mips_attribute_table): Add interrupt, use_shadow_register_set,
13516         keep_interrupts_masked, use_debug_exception_return.
13517         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
13518         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
13519         New functions.
13520         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
13521         (mips_print_operand): Process COP0 registers to print $0 .. $31
13522         correctly for GAS to process.
13523         (mips_interrupt_extra_call_saved_reg_p): New function.
13524         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
13525         extra registers.
13526         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
13527         (mips_compute_frame_info): Add supports for interrupt context that
13528         includes doubleword accumulators and COP0 registers.
13529         (mips_for_each_saved_acc): New function.
13530         (mips_for_each_saved_gpr_and_fpr): Change the function name from
13531         mips_for_each_saved_reg.
13532         (mips_save_reg): Save accumulators.
13533         (mips_kernel_reg_p): A new for_each_rtx callback.
13534         (mips_expand_prologue): Support interrupt handlers.
13535         (mips_restore_reg): Restore accumulators.
13536         (mips_expand_epilogue): Support interrupt handlers.
13537         (mips_can_use_return_insn): Return false for interrupt handlers.
13538         (mips_epilogue_uses): New function.
13539         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
13540         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
13541         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
13542         cop0_move): New instructions.
13543         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
13544         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
13545         defines.
13546         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
13547         New defines.
13548         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
13549         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
13550         interrupt handlers, we use K0 as the temporary register.
13551         (EPILOGUE_USES): Change to a function call.
13552         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
13553         handlers, we use K0 as the temporary register.
13554
13555         * doc/extend.texi (Function Attributes): Document interrupt,
13556         use_shadow_register_set, keep_interrupts_masked,
13557         use_debug_exception_return for MIPS attributes.
13558
13559 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
13560
13561         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
13562         Remove a number of t-files from tmake_file.
13563         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
13564         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
13565         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
13566         target_prototype, not TARGET_PROTOTYPE.
13567         (LINK_OS_GNU_SPEC): Define.
13568         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
13569         and darwin-ldoubdle.c.
13570
13571 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13572
13573         PR driver/39293
13574         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
13575         (cpp_options): Ditto.
13576         (default_compilers): Ditto.
13577         (display_help): Ditto.
13578         (process_command): Ditto.
13579         (do_spec_1): Ditto.
13580         (set_input): Use lbasename instead of duplicate code.
13581         (save_temps_prefix): New static for -save-temps=obj.
13582         (save_temps_length): Ditto.
13583
13584         * doc/invoke.texi (-save-temps=obj): Document new variant to
13585         -save-temps switch.
13586
13587 2009-04-02  Jeff Law  <law@redhat.com>
13588
13589         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
13590         variable.
13591
13592 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
13593
13594         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
13595         * configure: Regenerated.
13596
13597 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
13598
13599         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
13600         share the argument list.
13601
13602 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
13603
13604         Merge
13605
13606         2009-02-12  Diego Novillo  <dnovillo@google.com>
13607
13608         * varpool.c (debug_varpool): New.
13609         * cgraph.h (debug_varpool): Declare.
13610
13611 2009-04-02  Jan Hubicka  <jh@suse.cz>
13612
13613         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
13614         pass.
13615
13616 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
13617
13618         * config/i386/i386.c (ix86_abi): Move initialization to ...
13619         (override_options): Here.
13620
13621 2009-04-02  Christian Bruel  <christian.bruel@st.com>
13622
13623         * config/sh/sh.c (sh_dwarf_register_span): New function.
13624         (TARGET_DWARF_REGISTER_SPAN): Define.
13625         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
13626
13627 2009-04-02  Ira Rosen  <irar@il.ibm.com>
13628
13629         PR tree-optimization/39595
13630         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
13631         interleaved loads group is not  greater than the SLP group size.
13632
13633 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
13634
13635         * builtins.c (is_builtin_name): New.
13636         (called_as_built_in): Use is_builtin_name.
13637         * tree.h (is_builtin_name): New.
13638         * varasm.c (incorporeal_function_p): Use is_builtin_name
13639
13640 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
13641
13642         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
13643
13644 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
13645
13646         PR c++/26693
13647         * c-decl.c (clone_underlying_type): Move this ...
13648         * c-common.c (set_underlying_type): ... here.
13649         Also, make sure the function properly sets TYPE_STUB_DECL() on
13650         the newly created typedef variant type.
13651         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
13652         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
13653         points.
13654
13655 2009-04-02  Richard Guenther  <rguenther@suse.de>
13656
13657         PR tree-optimization/37221
13658         * tree-flow.h (degenerate_phi_result): Declare.
13659         * tree-ssa-dom.c (degenerate_phi_result): Export.
13660         * tree-scalar-evolution.c (analyze_initial_condition): If
13661         the initial condition is defined by a degenerate PHI node
13662         use the degenerate value.
13663
13664 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
13665
13666         PR rtl-optimization/39588
13667         * combine.c (merge_outer_ops): Do not set the constant when this
13668         is not necessary.
13669         (simplify_shift_const_1): Do not modify it either in this case.
13670
13671 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
13672
13673         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
13674         tuning is deprecated if -mtune value is set to an Itanium1 variant.
13675
13676 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
13677
13678         PR c/29027
13679         * c-lex.c (interpret_float): Default (no suffix) is double.
13680
13681 2009-04-1  Xinliang David Li  <davidxl@google.com>
13682
13683         * config/i386/i386.c (legitimate_constant_p): Recognize
13684         all one vector constant.
13685
13686 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13687
13688         * config/vax/vax.c: Add #includes to silence warnings.
13689         Change #include order to silence two warnings.
13690
13691 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13692
13693         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
13694         (ASM_SPEC): Pass -k to the assembler for PIC code.
13695
13696 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13697
13698         * config.gcc: Add vax-*-linux* to the switch.
13699         * config/vax/linux.h: New file. (TARGET_VERSION,
13700         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
13701
13702 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13703
13704         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
13705         Use predicate macros instead of GET_CODE() == foo.
13706         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
13707         ashlsi3, rotrsi3, <unnamed>): Likewise.
13708
13709 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13710
13711         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
13712         jbbccihi, jbbccisi): Remova trailing whitespace.
13713         * config/vax/constraints.md: Likewise.
13714         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
13715         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
13716         * config/vax/predicates.md: Likewise.
13717         * config/vax/vax.c (print_operand_address, vax_output_int_move,
13718         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
13719         * config/vax/vax.h: Likewise.
13720         * config/vax/vax.md (nonlocal_goto): Likewise.
13721
13722 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13723
13724         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
13725         (indirectable_address_p, adjacent_operands_p): Add spaces around
13726         braces.
13727         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
13728
13729 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13730
13731         * config/vax/vax.c (legitimate_constant_address_p,
13732         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
13733         index_term_p, reg_plus_index_p, legitimate_address_p,
13734         vax_mode_dependent_address_p): Update comments to match functions
13735         modified by the recent int->bool conversion.
13736
13737 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13738
13739         * config/vax/builtins.md: Update copyright message.
13740         * config/vax/constraints.md: Likewise.
13741         * config/vax/netbsd-elf.h: Likewise.
13742         * config/vax/predicates.md: Likewise.
13743         * config/vax/vax-protos.h: Likewise.
13744         * config/vax/vax.c: Likewise.
13745         * config/vax/vax.h: Likewise.
13746         * config/vax/vax.md: Likewise.
13747         * config/vax/vax.opt: Likewise.
13748
13749 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
13750
13751         * config/vax/builtins.md (ffssi2, ffssi2_internal,
13752         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
13753         * config/vax/constraints.md (B, R): Likewise.
13754         * config/vax/predicates.md (external_memory_operand,
13755         nonimmediate_addsub_di_operand): Likewise.
13756         * config/vax/vax.c (vax_output_int_add): Likewise.
13757         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
13758         untyped_call): Likewise.
13759
13760 2009-04-01  Matt Thomas  <matt@3am-software.com>
13761
13762         * config/vax/predicates.md: New file.
13763         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
13764         external_const_operand, nonsymbolic_operand, external_memory_operand,
13765         indirect_memory_operand, indexed_memory_operand,
13766         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
13767         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
13768         predicate.
13769         * config/vax/constraints.md: New file.
13770         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
13771         New constraint.
13772         * config/vax/builtins.md: New file.
13773         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
13774         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
13775         jbbccisi): Define.
13776         * config/vax/vax.opt (mqmath): Add option.
13777         * config/vax/vax.md (isfx): Extend with DI.
13778         (VAXintQH, VAXintQHSD): Define.
13779         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
13780         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
13781         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
13782         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
13783         (movdi): Update constraints and use vax_output_int_move().
13784         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
13785         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
13786         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
13787         nonlocal_goto): New.
13788         (mov<mode>): Extend accepted operand types.
13789         (subdi3_old): Rename from subdi3, change update constraints and use
13790         a new implementation.
13791         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
13792         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
13793         MOVE_RATIO, CLEAR_RATIO): Define.
13794         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
13795         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
13796         (PRINT_OPERAND): Redefine using a function instead of inlined code.
13797         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
13798         (split_quadword_operands): Make static and really allow variable
13799         splitting.
13800         (print_operand_address): Update for PIC generation.
13801         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
13802         indexable_address_p, fixup_mathdi_operand,
13803         vax_expand_addsub_di_operands, adjacent_operands_p): New.
13804         (vax_float_literal, legitimate_constant_p,
13805         indirectable_constant_address_p, index_term_p,
13806         reg_plus_index_p): Return bool instead of int.
13807         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
13808         where needed.
13809         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
13810         generation.
13811         (vax_output_conditional_branch): Indent.
13812         (legitimate_constant_address_p, indirectable_constant_address_p,
13813         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
13814         vax_mode_dependent_address_p): Return bool instead of int, update for
13815         PIC generation.
13816         * config/vax/vax-protos.h (legitimate_constant_address_p,
13817         legitimate_constant_p, legitimate_address_p,
13818         vax_mode_dependent_address_p): Change declaration to bool.
13819         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
13820         vax_expand_addsub_di_operands, vax_output_int_subtract,
13821         vax_output_movmemsi): Declare.
13822         (split_quadword_operands, vax_float_literal): Delete declaration.
13823         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
13824         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
13825         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
13826         ASM_OUTPUT_DWARF_PCREL): Define.
13827         (ASM_SPEC): Change definition to allow PIC generation.
13828
13829 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
13830
13831         * doc/sourcebuild.texi: Update front-end requirements.
13832
13833 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
13834
13835         PR target/39226
13836         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
13837         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
13838         (booldi3_internal3): Use boolean_or_operator instead of
13839         boolean_operator.
13840
13841 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
13842
13843         PR c/39605
13844         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
13845         declarator whose size is not an integer constant expression but
13846         folds to an integer constant, then treat it as a constant
13847         subsequently.
13848
13849 2009-04-01  Richard Guenther  <rguenther@suse.de>
13850
13851         * fold-const.c (fold_plusminus_mult_expr): Do not fold
13852         i * 4 + 2 to (i * 2 + 1) * 2.
13853
13854 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
13855
13856         PR c/37772
13857         * c-parser.c (c_parser_asm_statement): Skip until close paren and
13858         return if c_parser_asm_string_literal returned NULL.
13859
13860 2009-04-01  Nick Clifton  <nickc@redhat.com>
13861
13862         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
13863         already defined.
13864         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
13865         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
13866         other typedefs to avoid conflicts with libgcc2.c.  Define labels
13867         to gain 16-bit bit-manipulation functions from libgcc2.c and then
13868         include it.
13869         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
13870         to gain 16-bit trapping arithmetic functions from libgcc2.c and
13871         then include it.
13872
13873 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
13874
13875         * varasm.c (default_function_rodata_section): Declare DOT as
13876         const char*.
13877
13878 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
13879             Andrey Galkin  <agalkin@hypercom.com>
13880
13881         PR/39492
13882         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
13883         Make object_name unique for each process.
13884
13885 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
13886
13887         PR other/39591
13888         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
13889         addressable variables in the parallel that could go out of scope while
13890         running queued tasks.
13891
13892 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
13893
13894         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
13895         (CASE_VALUES_THRESHOLD): Redefine.
13896         * config/avr/avr.c (avr_override_options): Remove initialization of
13897         avr_case_values_threshold variable.
13898         (avr_case_values_threshold): Remove variable. Add new function.
13899         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
13900         * config/avr/avr.opt (mno-tablejump): Remove option.
13901         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
13902
13903 2009-04-01  DJ Delorie  <dj@redhat.com>
13904
13905         * varasm.c (default_function_rodata_section): Don't assume
13906         anything about where the first '.' in the section name is.
13907
13908 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
13909
13910         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
13911         rs6000_emit_stack_tie.
13912
13913 2009-03-31  Ian Lance Taylor  <iant@google.com>
13914
13915         * tree-eh.c (tree_remove_unreachable_handlers): Compare
13916         gimple_code with GIMPLE_RESX, not RESX.
13917
13918 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
13919
13920         * c-common.c (c_get_ident): New.
13921         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
13922
13923 2009-04-01  Ben Elliston  <bje@au.ibm.com>
13924
13925         * config/rs6000/sysv4.opt (msdata): Improve option description.
13926
13927 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
13928
13929         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
13930         (divdf3_internal_lat): Remove.
13931         (divxf3_internal_lat): Remove.
13932         (divxf3_internal_thr): Remove.
13933         (divxf): Use divxf3_internal.
13934         * config/ia64/div.md (divsf3_internal_lat): New.
13935         (divdf3_internal_lat): New.
13936         (divxf3_internal): New.
13937
13938 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
13939
13940         PR c/448
13941         * Makefile.in (USE_GCC_STDINT): Define.
13942         (stmp-int-hdrs): Install stdint.h if applicable.
13943         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
13944         if known.
13945         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
13946         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
13947         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
13948         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
13949         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
13950         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
13951         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
13952         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
13953         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
13954         (c_common_nodes_and_builtins): Initialize
13955         underlying_wchar_type_node.  Do not initialize
13956         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
13957         nodes for new types.
13958         (c_stddef_cpp_builtins): Define macros for new types.
13959         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
13960         Remove.
13961         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
13962         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
13963         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
13964         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
13965         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
13966         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
13967         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
13968         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
13969         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
13970         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
13971         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
13972         int16_type_node, int32_type_node, int64_type_node,
13973         uint8_type_node, uint16_type_node, c_uint32_type_node,
13974         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
13975         int_least32_type_node, int_least64_type_node,
13976         uint_least8_type_node, uint_least16_type_node,
13977         uint_least32_type_node, uint_least64_type_node,
13978         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
13979         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
13980         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
13981         uintptr_type_node): Define.
13982         * c-cppbuiltin.c (builtin_define_constants,
13983         builtin_define_type_minmax): New.
13984         (builtin_define_stdint_macros): Define more macros.
13985         (c_cpp_builtins): Define more limit macros.
13986         (type_suffix): New.
13987         (builtin_define_type_max): Define in terms of
13988         builtin_define_type_minmax.  Remove is_long parameter.  All
13989         callers changed.
13990         * config.gcc (use_gcc_stdint): Define.
13991         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
13992         Add newlib-stdint.h for generic targets.
13993         * config/glibc-stdint.h, config/newlib-stdint.h,
13994         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
13995         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
13996         * config/score/score.h (UINTPTR_TYPE): Define.
13997         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
13998         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
13999         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14000         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14001         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14002         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14003         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14004         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
14005         * config/spu/spu.h (STDINT_LONG32): Define.
14006         * configure.ac (use_gcc_stdint): Substitute.
14007         * configure: Regenerate.
14008         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
14009         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
14010         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
14011         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
14012         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
14013         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
14014         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
14015         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
14016         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
14017         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
14018         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
14019         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
14020         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
14021         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
14022         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
14023         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
14024         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
14025         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
14026         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
14027         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
14028         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
14029         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
14030         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
14031         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14032         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
14033         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
14034         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
14035         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14036         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
14037
14038 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
14039
14040         * loop-iv.c (suitable_set_for_replacement): Renamed from
14041         simplify_using_assignment; changed to return bool and to accept new
14042         args DEST and SRC.  Return true iff we find a source/destination pair
14043         that can be used to make a replacement, and fill SRC and DEST if so.
14044         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
14045         changed.
14046         (simplify_using_initial_values): Deal with altered regs here and track
14047         more precisely the effect they have on the validity of our expression.
14048
14049         * loop-iv.c (simplify_using_condition): A condition of the form
14050         (EQ REG CONST) can be used to simply make a substitution.
14051         (simplify_using_initial_values): Keep track of conditions we have seen
14052         and keep using them to simplify new expressions, while applying the
14053         same substitutions to them as to the expression.
14054
14055         * simplify-rtx.c (simplify_relational_operation_1): Simplify
14056         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
14057         GEU/LTU reversed.
14058
14059         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
14060         changed.  Use this when trying to improve the upper bound.
14061         Generate the comparison by using simplify_gen_relational.
14062
14063         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
14064
14065         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
14066         functions.
14067         (simplify_using_assignment, simplify_using_initial_values): Call
14068         replace_in_expr to make replacements.  Call replace_single_def_regs
14069         once on the initial version of the expression.
14070
14071 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14072
14073         PR target/27237
14074         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
14075
14076 2009-03-31  Richard Guenther  <rguenther@suse.de>
14077
14078         PR middle-end/31029
14079         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
14080         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
14081
14082 2009-03-31  Richard Guenther  <rguenther@suse.de>
14083
14084         * tree.h (div_if_zero_remainder): Declare.
14085         * fold-const.c (div_if_zero_remainder): Export.
14086         * tree-ssa-forwprop.c
14087         (forward_propagate_addr_into_variable_array_index): Handle
14088         constant array index addition outside of the variable index.
14089
14090 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14091
14092         PR target/39592
14093         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
14094         define_splits, floatunssi<mode>2): Require x87 conversions from
14095         DImode to be permitted.
14096
14097 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
14098
14099         PR preprocessor/15638
14100         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
14101
14102 2009-03-31  Richard Guenther  <rguenther@suse.de>
14103
14104         PR middle-end/23401
14105         PR middle-end/27810
14106         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
14107         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
14108         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
14109         a separate statement.
14110         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
14111         (lookup_tmp_var): Likewise.
14112         (is_gimple_formal_tmp_or_call_rhs): Remove.
14113         (is_gimple_reg_or_call_rhs): Rename to ...
14114         (is_gimple_reg_rhs_or_call): ... this.
14115         (is_gimple_mem_or_call_rhs): Rename to ...
14116         (is_gimple_mem_rhs_or_call): ... this.
14117         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
14118         DECL_GIMPLE_REG_P only if is_formal is true.
14119         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
14120         for non-proper post-modify expression gimplification.
14121         (gimplify_self_mod_expr): For post-modify expressions gimplify
14122         the lvalue to a minimal lvalue.
14123         (rhs_predicate_for): Remove formal temp case.
14124         (gimplify_modify_expr_rhs): Likewise.
14125         (gimplify_addr_expr): Use is_gimple_reg.
14126         (gimplify_expr): Remove formal temp cases.
14127         (gimple_regimplify_operands): Likewise.
14128         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
14129         and FILTER_EXPR like constants.
14130         * gimple.c (walk_gimple_op): Fix val_only initialization, use
14131         is_gimple_reg.
14132         (is_gimple_formal_tmp_rhs): Remove.
14133         (is_gimple_reg_rhs): Remove special casing.
14134         (is_gimple_mem_rhs): Fix.
14135         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
14136         (is_gimple_formal_tmp_var): Remove.
14137         (is_gimple_formal_tmp_reg): Likewise.
14138         (is_gimple_min_lval): Allow invariant component ref parts.
14139         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
14140         is_gimple_formal_tmp_reg): Remove declarations.
14141         * tree-cfg.c (verify_expr): Verify that variables with address
14142         taken do not have DECL_GIMPLE_REG_P set.
14143         * tree-mudflap.c (mf_build_check_statement_for): Use
14144         force_gimple_operand instead of gimplify_expr.
14145
14146 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
14147
14148         * modulo-sched.c (sms_schedule_by_order): Pass the actual
14149         schedulable rows to compute_split_row.
14150
14151 2009-03-31  Ben Elliston  <bje@au.ibm.com>
14152
14153         PR target/31635
14154         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
14155         OPT_mvrsave.
14156
14157 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
14158
14159         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
14160         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
14161         * configure: Regenerate.
14162         * config.in: Regenerate.
14163         * config/rs6000/rs6000.opt (mtls-markers): Add.
14164         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
14165         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
14166         (tls_ld_aix, tls_ld_sysv): Likewise.
14167         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
14168         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
14169
14170 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
14171
14172         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
14173
14174 2009-03-30  Jan Hubicka  <jh@suse.cz>
14175
14176         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
14177         out of RESX.
14178         (tree_remove_unreachable_handlers): Cleanup EH predecestor
14179         detection and label handling.
14180
14181 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
14182
14183         * ira-int.h (ira_allocno): Rename left_conflicts_num to
14184         left_conflicts_size.
14185         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
14186         ALLOCNO_LEFT_CONFLICTS_SIZE.
14187
14188         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
14189         remove_allocno_from_bucket_and_push,
14190         allocno_spill_priority_compare, push_allocnos_to_stack,
14191         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
14192         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
14193         (setup_allocno_left_conflicts_num): Ditto.  Rename to
14194         setup_allocno_left_conflicts_size.
14195         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
14196         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
14197         setup_allocno_left_conflicts_size instead of
14198         setup_allocno_left_conflicts_num.
14199
14200         * ira-build.c (ira_create_allocno): Use
14201         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
14202         ALLOCNO_LEFT_CONFLICTS_NUM.
14203
14204 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
14205
14206         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
14207         instead of DF_LR_OUT.
14208
14209         * ira-lives.c (process_bb_node_lives): Ditto.
14210
14211         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
14212         instead of DF_LR_{OUT,IN}.
14213
14214         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
14215
14216         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
14217
14218 2009-03-30  Jan Hubicka  <jh@suse.cz>
14219
14220         * except.c (label_to_region_map): Fix thinko.
14221
14222 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
14223
14224         PR middle-end/38237
14225         * tree.h (tree_find_value): New declaration.
14226         * tree.c (tree_find_value): New function.
14227         * varasm.c (assemble_external): Avoid duplicate entries on lists.
14228
14229 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
14230
14231         PR debug/39563
14232         * c-decl.c (struct c_binding): Add locus field.
14233         (bind): Add locus argument, set locus field from it.
14234         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
14235         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
14236         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
14237         implicitly_declare, undeclared_variable, lookup_label,
14238         declare_label, c_make_fname_decl, c_builtin_function,
14239         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
14240         bind callers.
14241
14242 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
14243
14244         PR target/38781
14245         * config/i386/i386.c (classify_argument): Check total size of
14246         structure.
14247
14248 2009-03-30  Martin Jambor  <mjambor@suse.cz>
14249
14250         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
14251         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
14252         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
14253         respectively.
14254
14255         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
14256         seen_variable_array_ref while also traversing a union.
14257
14258         * tree-inline.c (optimize_inline_calls): Do not call
14259         cgraph_node_remove_callees.
14260         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
14261         (pass_remove_cgraph_callee_edges): New variable.
14262         * passes.c (init_optimization_passes): Add
14263         pass_remove_cgraph_callee_edges after early inlining and before all
14264         late intraprocedural passes.
14265
14266         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
14267
14268 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14269
14270         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
14271         Fix typos in names.
14272
14273 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14274
14275         * combine.c (simplify_comparison): Use have_insn_for.
14276         * dojump.c (do_jump): Likewise.
14277
14278 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14279
14280         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
14281         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
14282         sparc_compare_op0 like sparc_compare_emitted used to be handled.
14283         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
14284         instead of sparc_compare_emitted.
14285         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
14286         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
14287         instead of sparc_compare_emitted.
14288
14289 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14290
14291         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
14292         enter/exit cfglayout mode.
14293         (pass_partition_block): Require it.
14294         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
14295         (combine_instructions): Track basic blocks instead of labels.
14296         (update_cfg_for_uncondjump): New.
14297         (try_combine): Use it.  Update jumps after rescanning.
14298         (pass_combine): Require PROP_cfglayout.
14299         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
14300
14301 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14302
14303         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
14304         Provide/destroy PROP_cfglayout respectively.
14305         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
14306         * tree-pass.h (PROP_cfglayout): New.
14307
14308 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
14309
14310         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
14311         fold_convert_const_fixed_from_fixed,
14312         fold_convert_const_fixed_from_int,
14313         fold_convert_const_fixed_from_real, fold_negate_const): Do not
14314         set TREE_CONSTANT_OVERFLOW.
14315         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
14316         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
14317
14318 2009-03-30  Ira Rosen  <irar@il.ibm.com>
14319
14320         * tree-vect-loop-manip.c: New file.
14321         * tree-vectorizer.c: Update documentation and included files.
14322         (vect_loop_location): Make extern.
14323         (rename_use_op): Move to tree-vect-loop-manip.c
14324         (rename_variables_in_bb, rename_variables_in_loop,
14325         slpeel_update_phis_for_duplicate_loop,
14326         slpeel_update_phi_nodes_for_guard1,
14327         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
14328         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
14329         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
14330         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
14331         find_loop_location): Likewise.
14332         (new_stmt_vec_info): Move to tree-vect-stmts.c.
14333         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
14334         get_vectype_for_scalar_type, vect_is_simple_use,
14335         supportable_widening_operation, supportable_narrowing_operation):
14336         Likewise.
14337         (bb_in_loop_p): Move to tree-vect-loop.c.
14338         (new_loop_vec_info, destroy_loop_vec_info,
14339         reduction_code_for_scalar_code, report_vect_op,
14340         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
14341         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
14342         (vect_supportable_dr_alignment): Likewise.
14343         * tree-vectorizer.h (tree-data-ref.h): Include.
14344         (vect_loop_location): Declare.
14345         Reorganize function declarations according to the new file structure.
14346         * tree-vect-loop.c: New file.
14347         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
14348         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
14349         * tree-vect-data-refs.c: New file.
14350         * tree-vect-patterns.c (timevar.h): Don't include.
14351         * tree-vect-stmts.c: New file.
14352         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
14353         tree-vect-slp.c, tree-vect-loop.c.
14354         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
14355         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
14356         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
14357         (tree-vect-analyze.o): Remove.
14358         (tree-vect-transform.o): Likewise.
14359         (tree-vect-data-refs.o): Add rule.
14360         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
14361         tree-vect-slp.o): Likewise.
14362         (tree-vect-patterns.o): Remove redundant dependencies.
14363         (tree-vectorizer.o): Likewise.
14364         * tree-vect-slp.c: New file.
14365
14366 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14367
14368         * optc-gen.awk: Warn if an option flag has multiple different
14369         help strings.
14370
14371 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
14372
14373         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
14374         -floop-block): Document dependences on PPL, CLooG and Graphite.
14375
14376 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
14377
14378         PR rtl-optimization/323
14379         * c-common.c (c_fully_fold, convert_and_check,
14380         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
14381         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
14382         * c-common.def (EXCESS_PRECISION_EXPR): New.
14383         * c-cppbuiltin.c (builtin_define_float_constants): Define
14384         constants with enough digits for long double.
14385         * c-lex.c (interpret_float): Interpret constant with excess
14386         precision where appropriate.
14387         * c-opts.c (c_common_post_options): Set
14388         flag_excess_precision_cmdline.  Give an error for
14389         -fexcess-precision=standard for C++ for processors where the
14390         option is significant.
14391         * c-parser.c (c_parser_conditional_expression): Handle excess
14392         precision in condition.
14393         * c-typeck.c (convert_arguments): Handle arguments with excess
14394         precision.
14395         (build_unary_op): Move excess precision outside operation.
14396         (build_conditional_expr): Likewise.
14397         (build_compound_expr): Likewise.
14398         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
14399         (build_modify_expr): Handle excess precision in RHS.
14400         (convert_for_assignment): Handle excess precision in converted
14401         value.
14402         (digest_init, output_init_element, process_init_element): Handle
14403         excess precision in initializer.
14404         (c_finish_return): Handle excess precision in return value.
14405         (build_binary_op): Handle excess precision in operands and add
14406         excess precision as needed for operation.
14407         * common.opt (-fexcess-precision=): New option.
14408         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
14409         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
14410         For standard excess precision, output explicit conversion to and
14411         truncation from XFmode.
14412         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
14413         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
14414         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
14415         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
14416         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
14417         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
14418         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
14419         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
14420         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
14421         define_splits, sqrt<mode>2): Disable where appropriate for
14422         standard excess precision.
14423         * convert.c (convert_to_real): Do not shorten arithmetic to type
14424         for which excess precision would be used.
14425         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
14426         * doc/invoke.texi (-fexcess-precision=): Document option.
14427         (-mfpmath=): Correct index entry.
14428         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
14429         flag_excess_precision): New.
14430         * langhooks.c (lhd_post_options): Set
14431         flag_excess_precision_cmdline.
14432         * opts.c (common_handle_option): Handle -fexcess-precision=.
14433         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
14434         init_excess_precision): New.
14435         (lang_dependent_init_target): Call init_excess_precision.
14436         * tree.c (excess_precision_type): New.
14437         * tree.h (excess_precision_type): Declare.
14438
14439 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
14440
14441         PR c/35235
14442         * c-typeck.c (build_component_ref): Do not copy qualifiers from
14443         non-lvalue to component.
14444
14445 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
14446
14447         PR preprocessor/34695
14448         * Makefile.in (c-opts.o): Depend on c-tree.h.
14449         * c-common.c: Move down include of diagnostic.h.
14450         (done_lexing, c_cpp_error): New.
14451         * c-common.h (done_lexing): Declare.
14452         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
14453         (parse_in).
14454         * c-opts.c: Include c-tree.h.
14455         (c_common_init_options): Set preprocessor error callback.
14456         (c_common_handle_option): Do not set preprocessor
14457         inhibit_warnings, warnings_are_errors, warn_system_headers,
14458         pedantic_errors or inhibit_warnings flags.
14459         (c_common_post_options): Do not check cpp_errors (parse_in).
14460         (c_common_finish): Do not output dependencies if there were
14461         errors.  Do not check return value of cpp_finish.
14462         * c-ppoutput.c (pp_file_change): Set input_location.
14463         * c-tree.h (c_cpp_error): Declare.
14464         * diagnostic.c (diagnostic_set_info_translated): Also initialize
14465         override_column.
14466         (diagnostic_build_prefix): Check override_column.
14467         * diagnostic.h (diagnostic_info): Add override_column field.
14468         (diagnostic_override_column): Define.
14469
14470 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
14471
14472         * c-common.c (c_expand_expr, c_staticp): Remove.
14473         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
14474         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
14475         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
14476         * c-gimplify.c (gimplify_compound_literal_expr,
14477         optimize_compound_literals_in_ctor): Remove.
14478         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
14479         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
14480         * c-semantics.c (emit_local_var): Remove.
14481
14482         * langhooks-def.h (lhd_expand_expr): Remove.
14483         * langhooks.c (lhd_expand_expr): Remove.
14484         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
14485
14486         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
14487         handling from c-semantics.c; don't call into langhook.
14488         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
14489         * gimplify.c (gimplify_compound_literal_expr,
14490         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
14491         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
14492         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
14493         as was done in c-gimplify.c.
14494         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
14495         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
14496         Move from c-common.h.
14497         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
14498
14499         * tree.c (staticp): Do not call langhook.
14500         * langhooks.c (lhd_staticp): Delete.
14501         * langhooks-def.h (lhd_staticp): Delete prototype.
14502         (LANG_HOOKS_STATICP): Delete.
14503         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
14504
14505         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
14506         instead of DECL_STMTs.
14507
14508 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
14509
14510         PR c/456
14511         PR c/5675
14512         PR c/19976
14513         PR c/29116
14514         PR c/31871
14515         PR c/35198
14516         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
14517         void_type_node.
14518         (fold_call_expr): Return a NOP_EXPR from folding rather than the
14519         contained expression.
14520         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
14521         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
14522         conditional expressions for C.
14523         (decl_constant_value_for_optimization): Move from
14524         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
14525         whether optimizing and that the expression is a VAR_DECL not of
14526         array type instead of doing such checks in the caller.  Do not
14527         check pedantic.  Call gcc_unreachable for C++.
14528         * c-common.def (C_MAYBE_CONST_EXPR): New.
14529         * c-common.h (c_fully_fold, c_save_expr,
14530         decl_constant_value_for_optimization): New prototypes.
14531         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
14532         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
14533         EXPR_INT_CONST_OPERANDS): Define.
14534         * c-convert.c (convert): Strip nops from expression.
14535         * c-decl.c (groktypename): Take extra parameters expr and
14536         expr_const_operands.  Update call to grokdeclarator.
14537         (start_decl): Update call to grokdeclarator.  Add statement for
14538         expressions used in type of decl.
14539         (grokparm): Update call to grokdeclarator.
14540         (push_parm_decl): Update call to grokdeclarator.
14541         (build_compound_literal): Add parameter non_const and build a
14542         C_MAYBE_COSNT_EXPR if applicable.
14543         (grokdeclarator): Take extra parameters expr and
14544         expr_const_operands.  Track expressions used in declaration
14545         specifiers and declarators.  Fold array sizes and track whether
14546         they are constant expressions and whether they are integer
14547         constant expressions.
14548         (parser_xref_tag): Set expr and expr_const_operands fields in
14549         return value.
14550         (grokfield): Update call to grokdeclarator.
14551         (start_function): Update call to grokdeclarator.
14552         (build_null_declspecs): Set expr and expr_const_operands fields in
14553         return value.
14554         (declspecs_add_type): Handle expressions in typeof specifiers.
14555         * c-parser.c (c_parser_declspecs): Set expr and
14556         expr_const_operands fields for declaration specifiers.
14557         (c_parser_enum_specifier): Likewise.
14558         (c_parser_struct_or_union_specifier): Likewise.
14559         (c_parser_typeof_specifier): Likewise.  Update call to
14560         groktypename.  Fold expression as needed.  Return expressions with
14561         type instead of adding statements.
14562         (c_parser_attributes): Update calls to c_parser_expr_list.
14563         (c_parser_statement_after_labels): Fold expression before passing
14564         to objc_build_throw_stmt.
14565         (c_parser_condition): Fold expression.
14566         (c_parser_asm_operands): Fold expression.
14567         (c_parser_conditional_expression): Use c_save_expr.  Update call
14568         to build_conditional_expr.
14569         (c_parser_alignof_expression): Update call to groktypename.
14570         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
14571         original_code.  Fold expression argument of va_arg.  Create
14572         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
14573         argument to va_arg.  Update calls to groktypename.  Fold array
14574         index for offsetof.  Verify that first argument to
14575         __builtin_choose_expr has integer type.
14576         (c_parser_postfix_expression_after_paren_type): Update calls to
14577         groktypename and build_compound_literal.  Handle expressions with
14578         side effects in type name.
14579         (c_parser_postfix_expression_after_primary): Update call to
14580         c_parser_expr_list.  Set original_code for calls to
14581         __builtin_constant_p.
14582         (c_parser_expr_list): Take extra parameter fold_p.  Fold
14583         expressions if requested.
14584         (c_parser_objc_type_name): Update call to groktypename.
14585         (c_parser_objc_synchronized_statement): Fold expression.
14586         (c_parser_objc_receiver): Fold expression.
14587         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
14588         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
14589         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
14590         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
14591         (struct c_typespec): Add elements expr and expr_const_operands.
14592         (struct c_declspecs): Add elements expr and expr_const_operands.
14593         (groktypename, build_conditional_expr, build_compound_literal):
14594         Update prototypes.
14595         (in_late_binary_op): Declare.
14596         * c-typeck.c (note_integer_operands): New function.
14597         (in_late_binary_op): New variable.
14598         (decl_constant_value_for_broken_optimization): Move to c-common.c
14599         and rename to decl_constant_value_for_optimization.
14600         (default_function_array_conversion): Do not strip nops.
14601         (default_conversion): Do not call
14602         decl_constant_value_for_broken_optimization.
14603         (build_array_ref): Do not fold result.
14604         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
14605         result when operand is a VLA.
14606         (c_expr_sizeof_type): Update call to groktypename.  Handle
14607         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
14608         result when operand names a VLA type.
14609         (build_function_call): Update call to build_compound_literal.
14610         Only fold result for calls to __builtin_* functions.  Strip
14611         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
14612         the function designator.
14613         (convert_arguments): Fold arguments.  Update call to
14614         convert_for_assignment.
14615         (build_unary_op): Handle increment and decrement of
14616         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
14617         decrement earlier.  Fold operand of increment and decrement.
14618         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
14619         built for integer operand.  Wrap returns that are INTEGER_CSTs
14620         without being integer constant expressions or that have integer
14621         constant operands without being INTEGER_CSTs.
14622         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
14623         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
14624         result is an integer constant expression or can be used in
14625         unevaluated parts of one and avoid folding and wrap as
14626         appropriate.  Fold operands before possibly doing -Wsign-compare
14627         warnings.
14628         (build_compound_expr): Wrap result for C99 if operands can be used
14629         in integer constant expressions.
14630         (build_c_cast): Update call to digest_init.  Do not ignore
14631         overflow from casting floating-point constants to integers.  Wrap
14632         results that could be confused with integer constant expressions,
14633         null pointer constants or floating-point constants.
14634         (c_cast_expr): Update call to groktypename.  Handle expressions
14635         included in type name.
14636         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
14637         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
14638         Update calls to convert_for_assignment.
14639         (convert_for_assignment): Take new parameter
14640         null_pointer_constant.  Do not strip nops or call
14641         decl_constant_value_for_broken_optimization.  Set
14642         in_late_binary_op for conversions to boolean.
14643         (store_init_value): Update call to digest_init.
14644         (digest_init): Take new parameter null_pointer_constant.  Do not
14645         call decl_constant_value_for_broken_optimization.  pedwarn for
14646         initializers not constant expressions.  Update calls to
14647         convert_for_assignment.
14648         (constructor_nonconst): New.
14649         (struct constructor_stack): Add nonconst element.
14650         (really_start_incremental_init, push_init_level, pop_init_level):
14651         Handle constructor_nonconst and nonconst element.
14652         (set_init_index): Call constant_expression_warning for array
14653         designators.
14654         (output_init_element): Fold value.  Set constructor_nonconst as
14655         applicable.  pedwarn for initializers not constant expressions.
14656         Update call to digest_init.  Call constant_expression_warning
14657         where constant initializers are required.
14658         (process_init_element): Use c_save_expr.
14659         (c_finish_goto_ptr): Fold expression.
14660         (c_finish_return): Fold return value.  Update call to
14661         convert_for_assignment.
14662         (c_start_case): Fold switch expression.
14663         (c_process_expr_stmt): Fold expression.
14664         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
14665         ensure statement expression is not evaluated in constant expression.
14666         (build_binary_op): Track whether results are integer constant
14667         expressions or may occur in such, disable folding and wrap results
14668         as applicable.  Fold operands for -Wsign-compare warnings unless
14669         in_late_binary_op.
14670         (c_objc_common_truthvalue_conversion): Handle results folded to
14671         integer constants that are not integer constant expressions.
14672         * doc/extend.texi: Document when typeof operands are evaluated,
14673         that condition of __builtin_choose_expr is an integer constant
14674         expression, and more about use of __builtin_constant_p in
14675         initializers.
14676
14677 2009-03-29  Richard Guenther  <rguenther@suse.de>
14678
14679         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
14680         propagate addresses of array references.
14681
14682 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
14683
14684         * regmove.c (perhaps_ends_bb_p): Remove.
14685         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
14686         from INSN and check that the main loop stays within that basic block.
14687         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
14688         (regmove_forward_pass): Split out from regmove_optimize.  Use
14689         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
14690         (regmove_backward_pass): Split out from regmove_optimize.  Use
14691         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
14692         (regmove_optimize): Simplify.
14693
14694 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
14695
14696         PR target/39545
14697         * config/i386/i386.c (classify_argument): Ignore flexible array
14698         member in struct and warn ABI change.
14699
14700 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
14701
14702         * config/i386/i386-protos.h (ix86_agi_dependent): New.
14703
14704         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
14705         (ix86_adjust_cost): Updated.
14706
14707 2009-03-29  Jan Hubicka  <jh@suse.cz>
14708
14709         PR middle-end/28850
14710         * tree-pass.h (pass_cleanup_eh): New function.
14711         (remove_unreachable_regions): Break code handling RTL
14712         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
14713         that can not be reached by runtime.
14714         (can_be_reached_by_runtime): New function.
14715         (label_to_region_map): New function.
14716         (num_eh_regions): New function.
14717         (rtl_remove_unreachable_regions): New function.
14718         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
14719         (remove_eh_region): New function.
14720         * except.h: Include sbitmap and vecprim.
14721         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
14722         num_eh_regions): Declare.
14723         * passes.c (init_optimization_passes): Schedule cleanup_eh.
14724         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
14725         * tree-eh.c (tree_remove_unreachable_handlers): New function.
14726         (tree_empty_eh_handler_p): New function.
14727         (cleanup_empty_eh): New function.
14728         (cleanup_eh): New function.
14729         (pass_cleanup_eh): New function.
14730
14731 2009-03-29  Jan Hubicka  <jh@suse.cz>
14732
14733         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
14734         for removed regions.
14735
14736 2009-03-29  Jan Hubicka  <jh@suse.cz>
14737
14738         * except.c (dump_eh_tree): Dump all datastructures.
14739
14740 2009-03-29  Jan Hubicka  <jh@suse.cz>
14741
14742         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
14743         (duplicate_eh_regions_1): Likewise.
14744         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
14745         vector; call EH verification.
14746         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
14747         Be ready for region being removed.
14748
14749 2009-03-29  Jan Hubicka  <jh@suse.cz>
14750
14751         * bitmap.c (bitmap_last_set_bit): New function.
14752         * bitmap.h (bitmap_last_set_bit): Declare.
14753
14754 2009-03-29  David Ayers  <ayers@fsfe.org>
14755
14756         PR objc/27377
14757         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
14758         by calling objc_compare_types and surpress warnings about
14759         incompatible C pointers that are compatible ObjC pointers.
14760
14761 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
14762
14763         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
14764         call initialize_inline_failed.
14765         (initialize_inline_failed): Move it from here ...
14766         * cgraph.c (initialize_inline_failed): ... to here.
14767         (cgraph_create_edge): Call initialize_inline_failed rather than
14768         setting inline_failed directly.
14769
14770 2009-03-29  Ben Elliston  <bje@au.ibm.com>
14771
14772         PR target/32542
14773         * sysv4.opt (msdata): Improve comment.
14774         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
14775         * sysv4.h (SVR4_ASM_SPEC): Likewise.
14776
14777 2009-03-29  Ben Elliston  <bje@au.ibm.com>
14778
14779         PR target/30451
14780         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
14781         load and store attributes.
14782
14783 2009-03-29  Ben Elliston  <bje@au.ibm.com>
14784
14785         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
14786         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
14787         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
14788         * doc/extend.texi (X86 Built-in Functions): Add index entries for
14789         __builtin_infq and __builtin_huge_valq.
14790
14791 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
14792
14793         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
14794         atmega8m1 devices.
14795         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14796         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
14797
14798 2009-03-28  Xinliang David Li  <davidxl@google.com>
14799
14800         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
14801         (do_dbg_cnt): New function.
14802
14803 2009-03-28  Jan Hubicka  <jh@suse.cz>
14804
14805         Merge from pretty-ipa:
14806
14807         2009-03-27  Jan Hubicka  <jh@suse.cz>
14808
14809         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
14810         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
14811         * passes.c (function_called_by_processed_nodes_p): New.
14812         * ipa-pure-const.c (check_call): Fix handling of operands.
14813         (analyze_function): Dump debug output for skipped bodies.
14814         (local_pure_const): Use function_called_by_processed_nodes_p.
14815         * dwarf2out.c (reference_to_unused): Use output.
14816         * passes.c (do_per_function_toporder): Likewise.
14817
14818         2008-11-12  Jan Hubicka  <jh@suse.cz>
14819
14820         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
14821         * ipa-pure-const.c (funct_state_d): Add can throw field; make
14822         state_set_in_source enum
14823         (check_decl): Ignore memory tags; do not set fake looping flags;
14824         dump diagnostics.
14825         (check_operand, check_tree, check_rhs_var, check_lhs_var,
14826         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
14827         (check_call, analyze_function): Rewrite.
14828         (check_stmt): New.
14829         (add_new_function): Update call of analyze_function.
14830         (generate_summary): Add call of analyze_function.
14831         (propagate): Propagate can_throw; handle state_set_in_source correctly.
14832         (local_pure_const): New function.
14833         (pass_local_pure_const): New pass.
14834         * ipa-inline.c (inline_transform): Set after_inlining.
14835         * tree-eh.c (stmt_can_throw_external): New.
14836         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
14837         work with aliasing built.
14838         * tree-flow.h (stmt_can_throw_external): New.
14839         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
14840         and local pure/const pass in early and late optimization queue.
14841
14842 2009-03-28  Martin Jambor  <mjambor@suse.cz>
14843
14844         * fold-const.c (get_pointer_modulus_and_residue): New parameter
14845         allow_func_align.
14846         (fold_binary): Allow function decl aligment consideration is the
14847         second argument is integer constant one.
14848         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
14849         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
14850         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
14851
14852 2009-03-28  Jan Hubicka  <jh@suse.cz>
14853
14854         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
14855         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
14856         * function.h (rtl_data): Add nothrow flag.
14857         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
14858         set DECL_NOTHROW for AVAILABLE functions.
14859
14860 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
14861
14862         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
14863         following vector keyword has expansion starting with pixel or bool
14864         keyword, expand vector to __vector and pixel or bool to __pixel or
14865         __bool.
14866
14867         PR c++/39554
14868         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
14869         warn_if_disallowed_function_p): Removed.
14870         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
14871         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
14872         warning_if_disallowed_function_p.
14873         * flags.h (warn_if_disallowed_function_p,
14874         warn_disallowed_functions): Removed.
14875         * common.opt (Wdisallowed-function-list=): Removed.
14876         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
14877
14878 2009-03-28  Richard Guenther  <rguenther@suse.de>
14879
14880         PR tree-optimization/38723
14881         * tree-ssa-pre.c (compute_avail): Add all default definitions to
14882         the entry block.
14883
14884 2009-03-28  Jan Hubicka  <jh@suse.cz>
14885
14886         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
14887         test introduced by my previous patch.
14888
14889 2009-03-28  Richard Guenther  <rguenther@suse.de>
14890
14891         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
14892         the PHIs value undefined.
14893
14894 2009-03-28  Jan Hubicka  <jh@suse.cz>
14895
14896         * tree-pass.h (pass_fixup_cfg): New pass.
14897         * ipa-inline.c (inline_transform): Set
14898         always_inline_functions_inlined/after_inlining.
14899         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
14900         (pass_fixup_cfg): New pass.
14901         * passes.c (init_optimization_passes): Add fixup_cfg.
14902
14903 2009-03-28  Richard Guenther  <rguenther@suse.de>
14904
14905         PR tree-optimization/38458
14906         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
14907         argument use the arguments copy-of value.
14908
14909 2009-03-28  Richard Guenther  <rguenther@suse.de>
14910
14911         PR tree-optimization/38180
14912         * tree-ssa-ccp.c (get_default_value): Simplify.
14913         (likely_value): Likewise.
14914         (surely_varying_stmt_p): Properly handle VOP case.
14915         (ccp_initialize): Likewise.
14916         (ccp_fold): Handle propagating through *&.
14917         (fold_const_aggregate_ref): Also handle decls.
14918
14919 2009-03-28  Jan Hubicka  <jh@suse.cz>
14920
14921         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
14922         * cgraph.h (cgraph_node): Likewise.
14923         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
14924         (cgraph_reset_node): Use process flag.
14925         (cgraph_mark_functions_to_output): Likewise.
14926         (cgraph_expand_function): Likewise.
14927         (cgraph_expand_all_functions): Likewise.
14928         (cgraph_output_in_order): Likewise.
14929         * dwarf2out.c (reference_to_unused): Likewise.
14930         * passes.c do_per_function_toporder): Likewise.
14931
14932 2009-03-28  Jan Hubicka  <jh@suse.cz>
14933
14934         Bring from lto-branch:
14935
14936         2008-09-03  Doug Kwan  <dougkwan@google.com>
14937
14938         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
14939         enums instead of reason strings.
14940         * cgraph.c (cgraph_create_edge): Same.
14941         (cgraph_inline_failed_string): New function.
14942         * cgraph.h (cgraph_inline_failed_t): New enum type.
14943         (cgraph_inline_failed_string): New prototype.
14944         (struct cgraph_edge): Change type of INLINED_FAILED from constant
14945         char pointer to cgraph_inline_failed_t.
14946         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
14947         (cgraph_default_inline_p): Ditto.
14948         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
14949         to cgraph_inline_failed_t pointer.
14950         * cif-code.def: New file.
14951         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
14952         reason string.
14953         (cgraph_check_inline_limits): Change type of REASON to pointer to
14954         cgraph_inline_failed_t.  Replace reason strings with enums.
14955         (cgraph_default_inline_p): Ditto.
14956         (cgraph_recursive_inlining_p): Ditto.
14957         (update_caller_keys): Change type of FAILED_REASON to
14958         cgraph_inline_failed_t.
14959         (cgraph_set_inline_failed): Change type of REASON to pointer to
14960         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
14961         convert enums to strings for text output.
14962         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
14963         to be of type cgraph_inline_failed_t.  Replace reason strings with
14964         enums.  Call cgraph_inline_failed_string to covert enums
14965         to strings for text output.
14966         (cgraph_decide_inlining): Replace reason strings with enums.
14967         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
14968         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
14969         for text output.
14970         * tree-inline.c (expand_call_inline): Change type of REASON
14971         to cgraph_inline_failed_t.  Replace reason strings with enums.
14972         Call cgraph_inline_failed_string for text output.
14973         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
14974         (cgraph.o): Ditto.
14975
14976 2009-03-28  Jan Hubicka  <jh@suse.cz>
14977
14978         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
14979         cgraph_clone_node): Remove master clone handling.
14980         (cgraph_is_master_clone, cgraph_master_clone): Remove.
14981         * cgraph.h (master_clone): Remove.
14982         (cgraph_is_master_clone, cgraph_master_clone): Remove.
14983         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
14984         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
14985
14986 2009-03-28  Jan Hubicka  <jh@suse.cz>
14987
14988         * cgraph.c (cgraph_function_body_availability): Functions declared
14989         inline are always safe to assume that it is not going to be replaced.
14990
14991 2009-03-28  Richard Guenther  <rguenther@suse.de>
14992
14993         PR tree-optimization/38513
14994         * tree-ssa-pre.c (eliminate): Remove redundant stores.
14995         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
14996         EXC_PTR_EXPR and FILTER_EXPR.
14997         (get_ref_from_reference_ops): Likewise.
14998
14999 2009-03-28  Richard Guenther  <rguenther@suse.de>
15000
15001         PR tree-optimization/38968
15002         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
15003         Use FLOOR_MOD_EXPR to compute misalignment.
15004
15005 2009-03-28  Richard Guenther  <rguenther@suse.de>
15006
15007         PR tree-optimization/37795
15008         * tree.h (combine_comparisons): Declare.
15009         * fold-const.c (combine_comparisons): Export.
15010         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
15011         comparisons.
15012         (ifcombine_iforif): Use combine_comparisons.
15013
15014 2009-03-28  Jan Hubicka  <jh@suse.cz>
15015
15016         * tree-eh.c (inlinable_call_p): New function.
15017         (make_eh_edges): Use it.
15018         (verify_eh_edges): Use it.
15019         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
15020         * except.c (reachable_next_level): Add inlinable_function argument
15021         (sjlj_find_directly_reachable_regions): Update.
15022         (add_reachable_handler): Do not set saw_any_handlers.
15023         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
15024         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
15025         Add new inlinable call parameter.
15026         (can_throw_internal, can_throw_external): Update.
15027         * except.h (can_throw_internal_1, can_throw_external_1,
15028         foreach_reachable_handler): Update declaration.
15029
15030 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
15031
15032         * config/arm/t-arm-coff, config/h8300/coff.h,
15033         config/i386/i386-aout.h, config/i386/i386-coff.h,
15034         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
15035         config/pdp11/2bsd.h, config/rs6000/aix41.h,
15036         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
15037         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
15038         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
15039         sys-types.h: Remove.
15040         * Makefile.in: Remove protoize and fixproto support and references
15041         in comments.
15042         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
15043         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
15044         Remove.
15045         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
15046         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
15047         unprotoize$(exeext).
15048         (rest.encap): Don't depend on $(STMP_FIXPROTO)
15049         (.PHONY): Don't depend on proto.
15050         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
15051         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
15052         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
15053         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
15054         build/gen-protos.o, build/scan.o, xsys-protos.h,
15055         build/fix-header$(build_exeext), build/fix-header.o,
15056         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
15057         stmp-install-fixproto): Remove.
15058         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
15059         SYSCALLS.c or fixproto files.
15060         (install-common): Don't install protoize.
15061         (install-headers-tar, install-headers-cpio, install-headers-cp):
15062         Don't depend on $(STMP_FIXPROTO).
15063         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
15064         install fixproto files or write out fixproto settings.
15065         (uninstall): Don't uninstall protoize.
15066         * config.gcc (use_fixproto): Remove.
15067         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
15068         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
15069         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
15070         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
15071         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
15072         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
15073         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
15074         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
15075         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
15076         * config/t-vxworks (STMP_FIXPROTO): Remove.
15077         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
15078         STMP_FIXPROTO): Remove.
15079         * config.in, configure: Regenerate.
15080         * crtstuff.c (gid_t, uid_t): Don't undefine.
15081         * doc/install.texi: Change m68k-coff to m68k-elf in example.
15082         (arm-*-coff, arm-*-aout: Remove target entries.
15083         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
15084         Remove mention of AIX 4.1.
15085         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
15086         * doc/invoke.texi (Running Protoize): Remove.
15087         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
15088         (Protoize Caveats): Remove.
15089         * tsystem.h: Update comments on headers assumed to exist.
15090
15091 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
15092
15093         * genautomata.c: Add a new year to the copyright.  Add a new
15094         reference.
15095         (struct insn_reserv_decl): Add comments for member bypass_list.
15096         (find_bypass): Remove.
15097         (insert_bypass): New.
15098         (process_decls): Use insert_bypass.
15099         (output_internal_insn_latency_func): Output all bypasses with the
15100         same input insn in one switch case.
15101
15102         * rtl.def (define_bypass): Describe bypass choice.
15103         * doc/md.texi (define_bypass): Ditto.
15104
15105 2009-03-27  Richard Guenther  <rguenther@suse.de>
15106
15107         * gimplify.c (mark_addressable): Export.
15108         * tree-flow.h (mark_addressable): Declare.
15109         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
15110         * tree-ssa.c (verify_phi_args): Verify that address taken
15111         variables have TREE_ADDRESSABLE set.
15112
15113 2009-03-27  Richard Guenther  <rguenther@suse.de>
15114
15115         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
15116         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
15117         Do not mark decls TREE_ADDRESSABLE.
15118         (build_fold_addr_expr): Adjust.
15119         (fold_addr_expr): Remove.
15120         (fold_unary): Use build_fold_addr_expr.
15121         (fold_comparison): Likewise.
15122         (split_address_to_core_and_offset): Likewise.
15123         * coverage.c (tree_coverage_counter_addr): Mark the array decl
15124         TREE_ADDRESSABLE.
15125         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
15126         (gimplify_modify_expr_to_memcpy): Mark source and destination
15127         addressable.
15128         * omp-low.c (create_omp_child_function): Mark the object decl
15129         TREE_ADDRESSABLE.
15130         (lower_rec_input_clauses): Mark the var we take the address of
15131         TREE_ADDRESSABLE.
15132         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
15133
15134 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15135
15136         PR middle-end/39315
15137         * cfgexpand.c (expand_one_stack_var_at): Change alignment
15138         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
15139
15140 2009-03-27  Richard Guenther  <rguenther@suse.de>
15141
15142         PR tree-optimization/39120
15143         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
15144         constraints.
15145         (handle_lhs_call): Process return constraints.  Add escape
15146         constraints if necessary.
15147         (handle_const_call): Fill out return constraints.  Make nested
15148         case more precise.  Avoid consttmp if possible.
15149         (handle_pure_call): Fill out return constraints.  Avoid
15150         callused if possible.
15151         (find_func_aliases): Simplify call handling.
15152
15153 2009-03-27  Richard Guenther  <rguenther@suse.de>
15154
15155         PR tree-optimization/39120
15156         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
15157         as a representative.
15158         (solve_graph): Do propagate CALLUSED.
15159         (handle_pure_call): Use a scalar constraint from CALLUSED for
15160         the return value.
15161         (find_what_p_points_to): CALLUSED shall not appear in poins-to
15162         solutions.
15163
15164 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15165
15166         PR c/39323
15167         * c-common.c (handle_aligned_attribute): Properly check alignment
15168         overflow.  Use (1U << i) instead of (1 << i).
15169
15170         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
15171
15172         * expr.h (get_mem_align_offset): Updated.
15173
15174         * tree.h (tree_decl_common): Change align to "unsigned int" and
15175         move it before pointer_alias_set.
15176
15177 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15178             Jakub Jelinek  <jakub@redhat.com>
15179
15180         PR target/38034
15181         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
15182         gr_register_operand with gr_reg_or_0_operand.
15183         (cmpxchg_rel_di): Likewise.
15184         (sync_lock_test_and_set<mode>): Likewise.
15185
15186 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15187
15188         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
15189         (true_regnum): Likewise.
15190
15191         * rtlanal.c (subreg_info): Moved to ...
15192         * rtl.h (subreg_info): Here.  New.
15193         (subreg_get_info): New.
15194
15195         * rtlanal.c (subreg_get_info): Make it extern.
15196
15197 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15198
15199         PR target/39472
15200         * config/i386/i386.c (ix86_abi): New.
15201         (override_options): Handle -mabi=.
15202         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
15203         (ix86_call_abi_override): Likewise.
15204         (init_cumulative_args): Likewise.
15205         (function_arg_advance): Likewise.
15206         (function_arg_64): Likewise.
15207         (function_arg): Likewise.
15208         (ix86_pass_by_reference): Likewise.
15209         (ix86_function_value_regno_p): Likewise.
15210         (ix86_build_builtin_va_list_abi): Likewise.
15211         (setup_incoming_varargs_64): Likewise.
15212         (is_va_list_char_pointer): Likewise.
15213         (ix86_init_machine_status): Likewise.
15214         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
15215         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
15216         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
15217         (ix86_function_abi): Make it static and return enum calling_abi.
15218         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
15219         with ix86_abi.
15220         (ix86_fn_abi_va_list): Updated.
15221
15222         * config/i386/i386.h (ix86_abi): New.
15223         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
15224         (CONDITIONAL_REGISTER_USAGE): Likewise.
15225         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
15226         (machine_function): Likewise.
15227
15228         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
15229         with ix86_abi.
15230         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
15231         (STACK_BOUNDARY): Likewise.
15232         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
15233
15234         * config/i386/i386.opt (mabi=): New.
15235
15236         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
15237         return enum calling_abi.
15238         (ix86_function_type_abi): Likewise.
15239         (ix86_function_abi): Removed.
15240
15241         * doc/invoke.texi: Document -mabi= option for x86.
15242
15243 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15244
15245         * builtins.c (real_dconstp): Delete.
15246         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
15247
15248 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
15249             Jakub Jelinek  <jakub@redhat.com>
15250
15251         PR debug/37959
15252         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
15253         (gen_subprogram_die): When a function is explicit, generate the
15254         DW_AT_explicit attribute.
15255         * langhooks.h (struct lang_hooks_for_decls): Add
15256         function_decl_explicit_p langhook.
15257         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
15258         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
15259
15260 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
15261
15262         * builtins.c (fold_builtin_memory_op): Optimize memmove
15263         into memcpy if we can prove source and destination don't overlap.
15264
15265         * tree-inline.c: Include gt-tree-inline.h.
15266         (clone_fn_id_num): New variable.
15267         (clone_function_name): New function.
15268         (tree_function_versioning): Use it.
15269         * Makefile.in (GTFILES): Add tree-inline.c.
15270
15271 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
15272
15273         * BASE-VER: Change to 4.5.0.
15274
15275 2009-03-27  Xinliang David Li  <davidxl@google.com>
15276
15277         PR tree-optimization/39557
15278         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
15279
15280 2009-03-27  Xinliang David Li  <davidxl@google.com>
15281
15282         PR tree-optimization/39548
15283         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
15284         candidate check.
15285
15286 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15287
15288         * c-common.c (pointer_int_sum): Use %wd on return from
15289         tree_low_cst.
15290
15291 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15292
15293         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
15294         on return from tree_low_cst.
15295
15296 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15297
15298         PR c++/36799
15299         * ginclude/stdarg.h (va_copy): Define also for
15300         __GXX_EXPERIMENTAL_CXX0X__.
15301
15302 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15303
15304         PR c++/35652
15305         * builtins.h (c_strlen): Do not warn here.
15306         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
15307         * c-common.c (pointer_int_sum): Take an explicit location.
15308         Warn about offsets out of bounds.
15309         * c-common.h (pointer_int_sum): Adjust declaration.
15310
15311 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15312
15313         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
15314         markup glitch.
15315
15316 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
15317
15318         PR c++/39554
15319         * opts.c (warn_if_disallowed_function_p): Don't assume
15320         get_callee_fndecl must return non-NULL.
15321
15322 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
15323
15324         PR rtl-optimization/39522
15325         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
15326         when reg_reloaded_valid is set.
15327
15328 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15329
15330         * config/spu/divv2df3.c: New file.
15331         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
15332         (DPBIT_FUNCS): Filter out _div_df.
15333
15334 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
15335
15336         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
15337         a jump insn, count that jump in the distance to the loop start.
15338
15339 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
15340
15341         PR target/39523
15342         * config/sh/sh.c (calc_live_regs): Fix condition for global
15343         registers except PIC_OFFSET_TABLE_REGNUM.
15344
15345 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
15346
15347         PR/39518
15348         * doc/invoke.texi (-mconsole): New.
15349         (-mcygwin): New.
15350         (-mno-cygwin): New.
15351         (-mdll): New.
15352         (-mnop-fun-dllimport): New.
15353         (-mthread): New.
15354         (-mwin32): New.
15355         (-mwindows): New.
15356         (sub section "i386 and x86-64 Windows Options"): New.
15357
15358 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
15359
15360         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
15361         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
15362
15363 2009-03-25  Richard Guenther  <rguenther@suse.de>
15364
15365         PR middle-end/39497
15366         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
15367         of -Wno-error.
15368
15369 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
15370
15371         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
15372         neither of haifa/selective schedulers are working.
15373
15374 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15375
15376         * doc/invoke.texi (Debugging Options): Fix description of
15377         -fno-merge-debug-strings.
15378
15379 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
15380
15381         * config/cris/libgcc.ver: New version-script.
15382         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
15383
15384         * configure.ac <GAS features, nop mnemonic>: Add pattern
15385         crisv32-*-* for "nop".
15386         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
15387         * configure: Regenerate.
15388
15389 2009-03-24  Ira Rosen  <irar@il.ibm.com>
15390
15391         PR tree-optimization/39529
15392         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
15393         mark_sym_for_renaming for the tag copied to the new vector
15394         pointer.
15395
15396 2009-03-24  Arthur Loiret  <aloiret@debian.org>
15397
15398         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
15399         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
15400         EXTRA_SPEC_FUNCTIONS.
15401         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
15402         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
15403         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
15404         -march and -mtune options.
15405
15406 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
15407
15408         * config/m68k/t-rtems: Add m5329 multilib.
15409
15410 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
15411             Jakub Jelinek  <jakub@redhat.com>
15412
15413         PR debug/39524
15414         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
15415         nodes.
15416
15417 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
15418
15419         PR c/39495
15420         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
15421         instead of c_parser_expression_conv, if original_code isn't one of the
15422         4 allowed comparison codes, fail.
15423
15424 2009-03-23  Richard Guenther  <rguenther@suse.de>
15425
15426         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
15427         * tree.h (struct tree_type): Likewise.
15428         * reload.h (struct insn_chain): Likewise.
15429         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
15430         * function.h (struct function): Likewise.
15431         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
15432
15433 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
15434
15435         PR tree-optimization/39516
15436         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
15437
15438 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
15439
15440         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
15441         should be set true if BITS_PER_WORD of target is bigger than 32
15442
15443 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
15444
15445         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
15446         Translate -B-options to -rpath-link.  Correct existing
15447         rpath-link and conditionalize on !nostdlib.
15448
15449 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15450
15451         * doc/extend.texi (Function Attributes, Variable Attributes):
15452         Fix typos.
15453         * doc/invoke.texi (Debugging Options, Optimize Options)
15454         (i386 and x86-64 Options, MCore Options): Likewise.
15455
15456 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
15457
15458         PR debug/37890
15459         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
15460         it for block local namespace aliases.
15461         (gen_decl_die): Pass context_die to gen_namespace_die.
15462
15463 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
15464
15465         PR c/39495
15466         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
15467         minimum or maximum value.
15468
15469 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
15470
15471         * reginfo.c (globalize_reg): Recompute derived reg sets.
15472
15473 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
15474
15475         PR target/39063
15476         * libgcc2.c (mprotect): Do not use signed arguments for
15477         VirtualProtect, use DWORD arguments.  Also fix the 'may
15478         be used uninitialized' warning for the np variable.
15479
15480 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
15481
15482         PR target/39496
15483         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
15484         functions using regparm calling conventions when not optimizing.
15485         (ix86_function_sseregparm): Similarly for sseregparm calling
15486         conventions.
15487
15488 2009-03-19  Li Feng  <nemokingdom@gmail.com>
15489
15490         PR middle-end/39500
15491         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
15492         dependence if the first conflict is after niter iterations.
15493
15494 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
15495
15496         PR middle-end/38609
15497         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
15498         functions with dynamic stack-pointer adjustments.
15499
15500 2009-03-19  Ben Elliston  <bje@au.ibm.com>
15501
15502         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
15503         option; change to -msdata=data.
15504
15505 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15506
15507         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
15508         and -fopenmp.
15509
15510 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
15511
15512         PR target/35180
15513         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
15514
15515 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
15516
15517         * doc/invoke.texi (Code Gen Options): Expand discussion of
15518         -fno-common.
15519
15520 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
15521
15522         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
15523         * matrix-reorg.c (struct matrix_info): Likewise.
15524         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
15525         * rtl.h (struct mem_attrs): Likewise.
15526         * df.h (struct df): Likewise.
15527         * tree-data-ref.h (struct data_dependence_relation): Likewise.
15528         * ira-int.h (struct ira_allocno): Likewise.
15529         * df-scan.c (struct df_collection_rec): Likewise.
15530         * ira.c (struct equivalence): Likewise.
15531         * function.c (struct temp_slot): Likewise.
15532         * cfgloop.h (struct loop): Likewise.
15533
15534         PR debug/39485
15535         * function.c (use_register_for_decl): When not optimizing, disregard
15536         register keyword for variables with types containing methods.
15537
15538 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
15539
15540         PR middle-end/39447
15541         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
15542         (is_simple_operand): Call contains_component_ref_p before calling data
15543         reference analysis that would fail on COMPONENT_REFs.
15544
15545         * tree-vrp.c (search_for_addr_array): Fix formatting.
15546
15547 2009-03-18  Richard Guenther  <rguenther@suse.de>
15548
15549         * tree-vect-transform.c (vect_loop_versioning): Fold the
15550         generated comparisons.
15551         * tree-vectorizer.c (set_prologue_iterations): Likewise.
15552         (slpeel_tree_peel_loop_to_edge): Likewise.
15553
15554 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15555
15556         PR middle-end/37805
15557         * opts.c (print_specific_help): In addition to `undocumented',
15558         accept `separate' and `joined' flags if passed alone.  Describe
15559         output by the first matched one of those.
15560         (common_handle_option): Skip over empty strings.
15561         * gcc.c (display_help): Fix help string for `--help='.
15562         * doc/invoke.texi (Option Summary, Overall Options): With
15563         `--help=', classes and qualifiers can both be repeated, but
15564         only the latter can be negated.  One should not pass only
15565         negated qualifiers.  Fix markup and examples.
15566
15567         Revert
15568         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
15569         PR middle-end/37805
15570         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
15571         and -fhelp=separate.
15572
15573 2009-03-17  Jing Yu  <jingyu@google.com>
15574
15575         PR middle-end/39378
15576         * function.h (struct rtl_data): Move is_thunk from here...
15577         (struct function): ...to here.
15578         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
15579         * varasm.c (assemble_start_function): Change is_thunk from crtl to
15580         cfun.
15581         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
15582         cfun.
15583         (alpha_does_function_need_gp, alpha_start_function): Likewise.
15584         (alpha_output_function_end_prologue): Likewise.
15585         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
15586         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
15587         (rs6000_output_function_epilogue): Likewise.
15588         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
15589
15590 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
15591
15592         PR target/39482
15593         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
15594         from different units in a single alternative.
15595         (*truncdfsf_i387): Ditto.
15596         (*truncxfsf2_mixed): Ditto.
15597         (*truncxfdf2_mixed): Ditto.
15598
15599 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
15600
15601         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
15602         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
15603
15604         PR debug/39474
15605         * tree-ssa-live.c (remove_unused_locals): Don't remove local
15606         unused non-artificial variables when not optimizing.
15607
15608         PR debug/39471
15609         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
15610         DW_TAG_imported_module even if decl is IMPORTED_DECL with
15611         NAMESPACE_DECL in its DECL_INITIAL.
15612
15613         PR middle-end/39443
15614         * optabs.c (set_user_assembler_libfunc): New function.
15615         * expr.h (set_user_assembler_libfunc): New prototype.
15616         * c-common.c: Include libfuncs.h.
15617         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
15618         for memcmp, memset, memcpy, memmove and abort.
15619         * Makefile.in (c-common.o): Depend on libfuncs.h.
15620
15621         PR debug/39412
15622         * dwarf2out.c (gen_inlined_enumeration_type_die,
15623         gen_inlined_structure_type_die, gen_inlined_union_type_die,
15624         gen_tagged_type_instantiation_die): Removed.
15625         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
15626         do nothing.
15627
15628 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
15629
15630         PR testsuite/38526
15631         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
15632         its use.
15633         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
15634         (check-parallel-%): Ditto.
15635         (check-consistency): Ditto.
15636
15637 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
15638
15639         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
15640         local variable rhs by NULL_TREE.
15641
15642 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
15643
15644         PR target/39477
15645         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
15646
15647 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
15648
15649         PR target/39476
15650         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
15651
15652 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
15653
15654         PR target/39473
15655         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
15656         for ms->sysv ABI calls only in 64bit mode.
15657
15658         * config/i386/i386.md (untyped_call): Support 32bit.
15659
15660 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
15661
15662         * doc/extend.texi: Replace x86_65 with x86_64.
15663
15664 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
15665
15666         PR tree-optimization/39455
15667         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
15668         mismatches for POINTER_TYPE_P (type).
15669         (number_of_iterations_le): Likewise.
15670
15671 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
15672
15673         * config/picochip/picochip.c: Removed profiling support.
15674         * config/picochip/picochip.md: Removed profiling instruction.
15675         * config/picochip/picochip.h: Removed profiling builtin.
15676
15677 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
15678
15679         * doc/install.texi (--with-host-libstdcxx): Document.
15680
15681 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
15682
15683         PR target/34299
15684         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
15685         generate a warning if the function name does not begin with
15686         "__vector" and the function has either the 'signal' or 'interrupt'
15687         attribute, from here to ...
15688         (avr_declare_function_name): ...here. New function.
15689         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
15690         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
15691
15692 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
15693
15694         PR bootstrap/39454
15695         * cse.c (fold_rtx): Don't modify original const_arg1 when
15696         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
15697         separate variable instead.
15698         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
15699         from out of range shift counts.
15700         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
15701
15702 2009-03-13  Catherine Moore  <clm@codesourcery.com>
15703
15704         * config/i386/x-mingw32 (host-mingw32.o): Replace
15705         diagnostic.h with $(DIAGNOSTIC_H).
15706
15707 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
15708
15709         PR target/39431
15710         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
15711         predicate.
15712         * config/i386/sync.md (sync_compare_and_swap<mode>,
15713         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
15714         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
15715         into a register.
15716         (sync_double_compare_and_swapdi_pic,
15717         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
15718         cmpxchg8b_pic_memory_operand instead of just memory_operand.
15719
15720 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
15721
15722         PR target/39445
15723         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
15724
15725 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
15726
15727         PR target/39327
15728         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
15729         (avx_addsubv4df3): Likewise.
15730         (*avx_addsubv4sf3): Likewise.
15731         (sse3_addsubv4sf3): Likewise.
15732
15733 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
15734
15735         PR target/38824
15736         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
15737
15738 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
15739
15740         PR debug/39432
15741         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
15742         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
15743         registers for allocnos created from user-defined variables.
15744
15745 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15746
15747         PR target/39181
15748         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
15749         of non-integer mode as well.
15750
15751 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
15752
15753         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
15754         for functions for which the parameter types are unknown.
15755
15756 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
15757
15758         PR target/39137
15759         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
15760         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
15761         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
15762         * config/i386/i386.c (ix86_local_alignment): For
15763         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
15764         long long variables on the stack to avoid dynamic realignment.
15765         Allow the first argument to be a decl rather than type.
15766         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
15767
15768 2009-03-11  Nick Clifton  <nickc@redhat.com>
15769
15770         PR target/5362
15771         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
15772         options.
15773         Add description to mno-lsim option.
15774         * config/mcore/mcore.h: Remove comment about deprecated m4align
15775         option.
15776         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
15777         * doc/invoke.texi: Add description of mno-lsim and
15778         mstack-increment options.
15779
15780         * config/fr30/fr30.opt: Document the -mno-lsim option.
15781         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
15782         and -mno-lsim options.
15783
15784 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15785
15786         * fold-const.c (fold_comparison): Only call fold_inf_compare
15787         if the mode supports infinities.
15788
15789 2009-03-11  Jason Merrill  <jason@redhat.com>
15790
15791         PR debug/39086
15792         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
15793         end already did.  Notice GIMPLE_CALL modifications of the result.
15794         Don't copy debug information from an ignored decl or a decl from
15795         another function.
15796
15797 2009-03-10  Richard Guenther  <rguenther@suse.de>
15798             Nathan Froyd  <froydnj@codesourcery.com>
15799
15800         PR middle-end/37850
15801         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
15802         (__divMODE3): Likewise.
15803
15804 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
15805
15806         PR tree-optimization/39394
15807         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
15808         DECL_SIZE_UNIT of variable length FIELD_DECLs.
15809
15810 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15811
15812         * recog.c (verfiy_changes): Disallow renaming of hard regs in
15813         inline asms for register asm ("") declarations.
15814
15815 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
15816
15817         * fold-const.c (fold_unary): Fix comment.
15818
15819 2009-03-07  Jan Hubicka  <jh@suse.cz>
15820
15821         PR target/39361
15822         * tree-inline.c (setup_one_parameter): Do replacement of const
15823         argument by constant in SSA form.
15824
15825 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15826
15827         PR middle-end/38028
15828         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
15829         determine alignment passed to assign_stack_local.
15830         (assign_parms_unsplit_complex): Likewise.
15831         * except.c (sjlj_build_landing_pads): Likewise.
15832
15833 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
15834
15835         PR middle-end/39360
15836         * tree-flow.h (add_referenced_var): Return bool instead of void.
15837         * tree-dfa.c (add_referenced_var): Return result of
15838         referenced_var_check_and_insert call.
15839         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
15840         of referenced_var_check_and_insert.
15841
15842         PR debug/39372
15843         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
15844         (gen_variable_die): Emit DW_AT_location on abstract static variable's
15845         DIE, don't emit it if abstract origin already has it.
15846         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
15847         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
15848
15849 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
15850
15851         * genpreds.c (needs_variable): Fix parentheses at variable name
15852         detection.
15853         (write_tm_constrs_h): Indent generated code.
15854
15855 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15856
15857         * doc/extend.texi (Function Attributes): Add documentation
15858         for isr attributes.
15859
15860 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
15861
15862         PR debug/39387
15863         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
15864         take locus from its DECL_SOURCE_LOCATION instead of input_location.
15865
15866 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
15867
15868         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
15869         the loop as bad.
15870
15871 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
15872
15873         PR debug/39379
15874         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
15875         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
15876
15877 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
15878
15879         * config/i386/i386.md (R8_REG, R9_REG): New constants.
15880         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
15881         constants instead of magic numbers.
15882         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
15883         (QI_REG_P): Ditto.
15884         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
15885         (x86_64_ms_abi_int_parameter_registers): Ditto.
15886         (x86_64_int_return_registers): Ditto.
15887         (ix86_maybe_switch_abi): Ditto.
15888         (ix86_expand_call): Ditto for clobbered_registers array.
15889         (ix86_hard_regno_mode_ok): Ditto.
15890         (x86_extended_QIreg_mentioned_p): Ditto.
15891
15892 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
15893
15894         PR tree-optimization/39349
15895         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
15896
15897         * combine.c (gen_lowpart_for_combine): Use omode when generating
15898         clobber.
15899
15900 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
15901
15902         PR rtl-optimization/39235
15903         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
15904
15905 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
15906
15907         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
15908
15909 2009-03-04  Richard Guenther  <rguenther@suse.de>
15910
15911         PR tree-optimization/39362
15912         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
15913         that occur in abnormal PHIs should be varying.
15914
15915 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
15916
15917         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
15918         Extend comments.
15919         (simple_iv):  Take loop as an argument instead of statement.
15920         * tree-scalar-evolution.h (simple_iv): Declaration changed.
15921         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
15922         to simple_iv.
15923         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
15924         Ditto.
15925         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
15926         * matrix-reorg.c (analyze_transpose): Ditto.
15927         * tree-data-ref.c (dr_analyze_innermost): Ditto.
15928         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
15929         * tree-predcom.c (ref_at_iteration): Ditto.
15930         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
15931
15932 2009-03-04  Richard Guenther  <rguenther@suse.de>
15933
15934         PR tree-optimization/39358
15935         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
15936         escaped_id and callused_id.
15937         (solve_graph): Likewise.
15938
15939 2009-03-04  Richard Guenther  <rguenther@suse.de>
15940
15941         PR tree-optimization/39339
15942         * tree-sra.c (try_instantiate_multiple_fields): Make it
15943         no longer ICE on the above.
15944
15945 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
15946
15947         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
15948         that fits within Pmode.
15949
15950 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
15951
15952         PR middle-end/10109
15953         * tm.texi (LIBCALL_VALUE): Update description.
15954
15955 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
15956
15957         PR middle-end/34443
15958         * doc/extend.texi (section): Update description.
15959
15960 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
15961
15962         PR middle-end/39345
15963         * tree-inline.c (remapped_type): New.
15964         (can_be_nonlocal): Call remapped_type instead of remap_type.
15965
15966 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
15967
15968         PR fortran/39354
15969         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
15970         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
15971
15972 2009-03-03  Richard Guenther  <rguenther@suse.de>
15973
15974         PR middle-end/39272
15975         * tree.c (tree_nonartificial_location): New function.
15976         * tree.h (tree_nonartificial_location): Declare.
15977         * builtins.c (expand_builtin_memory_chk): Provide location
15978         of the call location for artificial function pieces.
15979         (maybe_emit_chk_warning): Likewise.
15980         (maybe_emit_sprintf_chk_warning): Likewise.
15981         (maybe_emit_free_warning): Likewise.
15982         * expr.c (expand_expr_real_1): Likewise.
15983
15984 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
15985
15986         PR tree-optimization/39343
15987         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
15988         COMPONENT_REF t has ARRAY_TYPE.
15989
15990 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
15991
15992         PR middle-end/39335
15993         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
15994         when the type precision of the induction variable should be
15995         larger than the type precision of nit.
15996         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
15997         * graphite.c (graphite_loop_normal_form): Same.
15998         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
15999
16000 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
16001
16002         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
16003         (*call_1_rex64_ms_sysv): Use named constants instead of magic
16004         numbers to describe clobbered registers.
16005         (*call_value_0_rex64_ms_sysv): Ditto.
16006         * config/i386/mmx.md (mmx_emms): Ditto.
16007         (mmx_femms): Ditto.
16008
16009 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
16010
16011         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
16012         of ABI_64.
16013
16014 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16015
16016         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
16017         (spu_section_type_flags): New function.
16018
16019 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
16020
16021         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
16022         reg_class_contents of FLOAT_REGS into a temporary.
16023
16024 2009-03-02  Richard Guenther  <rguenther@suse.de>
16025             Ira Rosen  <irar@il.ibm.com>
16026
16027         PR tree-optimization/39318
16028         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
16029         information to the vectorized statement.
16030
16031 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
16032
16033         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
16034         variable.  Use defined names instead of magic constants for REX SSE
16035         registers.
16036
16037 2009-03-01  Richard Guenther  <rguenther@suse.de>
16038
16039         PR tree-optimization/39331
16040         * omp-low.c (lower_send_shared_vars): Do not receive new
16041         values for the reference of DECL_BY_REFERENCE parms or results.
16042
16043 2009-03-01  Jan Hubicka  <jh@suse.cz>
16044
16045         PR debug/39267
16046         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
16047         BLOCK_NONLOCALIZED_VAR): New macros.
16048         (tree_block): Add nonlocalized_vars.
16049         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
16050         gen_decl_die): Add origin argument.  Allow generation of die with
16051         origin at hand only.
16052         (gen_member_die, gen_type_die_with_usage, force_decl_die,
16053         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
16054         of gen_*.
16055         (gen_block_die): Fix checking for unused blocks.
16056         (process_scope_var): Break out from .... ; work with origins only.
16057         (decls_for_scope) ... here; process nonlocalized list.
16058         (dwarf2out_ignore_block): Look for nonlocalized vars.
16059         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
16060         vars.
16061         (dump_scope_block): Dump them.
16062         * tree-inline.c (remap_decls): Handle nonlocalized vars.
16063         (remap_block): Likewise.
16064         (can_be_nonlocal): New predicate.
16065         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
16066
16067 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16068
16069         * configure: Regenerate.
16070
16071 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16072
16073         * optc-gen.awk: No need to duplicate option flags twice.
16074         Reuse help texts for duplicate options which do not have any.
16075
16076         * gcc.c (display_help): Document --version.
16077
16078         * gcc.c (main): If print_help_list and verbose_flag, ensure
16079         driver output comes before subprocess output.
16080
16081         * optc-gen.awk: Assign all remaining fields to help string,
16082         space-separated, for multi-line help in *.opt.
16083
16084         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
16085         -Wno-pedantic-ms-format is for MinGW targets only.
16086
16087         * doc/options.texi (Option file format): Fix bad indentation,
16088         restoring dropped sentence.
16089
16090 2009-02-28  Jan Hubicka  <jh@suse.cz>
16091
16092         * tree-inline.c (tree_function_versioning): Output debug info.
16093
16094 2009-02-28  Jan Hubicka  <jh@suse.cz>
16095
16096         PR debug/39267
16097         * tree-inline.c (setup_one_parameter): Do not copy propagate
16098         arguments when not optimizing.
16099
16100 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
16101
16102         PR target/39327
16103         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
16104         (avx_addsubv4df3): Likewise.
16105         (*avx_addsubv4sf3): Likewise.
16106         (sse3_addsubv4sf3): Likewise.
16107         (*avx_addsubv2df3): Likewise.
16108         (sse3_addsubv2df3): Likewise.
16109         (avx_unpckhps256): Correct item selectors.
16110         (avx_unpcklps256): Likewise.
16111         (avx_unpckhpd256): Likewise.
16112         (avx_unpcklpd256): Likewise.
16113
16114 2009-02-28  Jan Hubicka  <jh@suse.cz>
16115
16116         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
16117         static vars.
16118         (copy_arguments_for_versioning): If var is declared don't declare it.
16119         (tree_function_versioning): First setup substitutions and then copy
16120         args.
16121
16122 2009-02-27  Jan Hubicka  <jh@suse.cz>
16123
16124         PR debug/39267
16125         * cgraph.h (varpool_output_debug_info): Remove.
16126         * cgraphunit.c (varpool_output_debug_info): Remove.
16127         * dwarf2out.c (deferred_locations_struct): New struct
16128         (deferred_locations): New type.
16129         (deferred_locations_list): New static var.
16130         (deffer_location): New function.
16131         (gen_variable_die): Use it.
16132         (decls_for_scope): Output info on local static vars.
16133         (dwarf2out_finish): Process deferred locations.
16134         * varpool.c (varpool_output_debug_info): Remove.
16135
16136 2009-02-27  Jan Hubicka  <jh@suse.cz>
16137
16138         PR debug/39267
16139         * tree.h (TREE_PROTECTED): Fix comment.
16140         (BLOCK_HANDLER_BLOCK): Remove.
16141         (struct tree_block): Remove handler_block add body_block.
16142         (inlined_function_outer_scope_p): New.
16143         (is_body_block): Remove.
16144         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
16145         * dwarf2out.c (is_inlined_entry_point): Remove.
16146         (add_high_low_attributes): Use inlined_function_outer_scope_p.
16147         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
16148         code.
16149         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
16150         * gimplify.c (gimplify_expr): Gimplify body blocks.
16151         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
16152         block with multiple subblocks.
16153         (dump_scope_block): Prettier output; dump more flags and info.
16154         (dump_scope_blocks): New.
16155         (remove_unused_locals): Use dump_scope_blocks.
16156         * tree-flow.h (dump_scope_blocks): Declare.
16157         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
16158         * stmt.c (is_body_block): Remove.
16159         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
16160         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
16161
16162 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
16163
16164         PR middle-end/39308
16165         * graphite.c (graphite_loop_normal_form): Do not call
16166         number_of_iterations_exit from a gcc_assert.
16167
16168 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16169
16170         * config/s390/s390.c (s390_swap_cmp): Look for conditional
16171         jumps if COND is NULL.
16172         (find_cond_jump): New function.
16173         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
16174         * config/s390/s390.md: Remove z10_cobra attribute value.
16175
16176 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
16177
16178         * config/alpha/alpha.h (alpha_expand_mov): Return false if
16179         force_const_mem returns NULL_RTX.
16180
16181 2009-02-26  Jan Hubicka  <jh@suse.cz>
16182
16183         PR debug/39267
16184         * cgraph.h (varpool_output_debug_info): Remove.
16185         * cgraphunit.c (varpool_output_debug_info): Remove.
16186         * dwarf2out.c (deferred_locations_struct): New struct
16187         (deferred_locations): New type.
16188         (deferred_locations_list): New static var.
16189         (deffer_location): New function.
16190         (gen_variable_die): Use it.
16191         (decls_for_scope): Output info on local static vars.
16192         (dwarf2out_finish): Process deferred locations.
16193         * varpool.c (varpool_output_debug_info): Remove.
16194
16195 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
16196
16197         PR rtl-optimization/39241
16198         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
16199         to subreg_offset_representable_p.
16200
16201 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
16202
16203         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
16204         execute function prototype.  Get f and nregs from max_reg_num
16205         and get_insns.  Remove the first backward pass as it's dead,
16206         guard the forward pass by flag_expensive_optimizations.
16207         (rest_of_handle_regmove): Delete.
16208         (pass_regmove): Replace it with regmove_optimize.
16209
16210 2009-02-25  Martin Jambor  <mjambor@suse.cz>
16211
16212         PR tree-optimization/39259
16213         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
16214         calls_alloca function flags.
16215         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
16216         calls are detected.
16217
16218 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
16219
16220         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
16221         flags_set_1_rtx, flags_set_1_set): Delete.
16222         (regmove_optimize): Do not call mark_flags_life_zones.
16223
16224 2009-02-24  Julian Brown  <julian@codesourcery.com>
16225
16226         PR target/35965
16227         * config/arm/arm.c (require_pic_register): Only set
16228         cfun->machine->pic_reg once per function.
16229
16230 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
16231
16232         * doc/invoke.texi (Link Options): Document an easier way to pass
16233         options that take arguments to the GNU linker using -Xlinker and -Wl.
16234
16235 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
16236
16237         PR target/33785
16238         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
16239
16240 2009-02-24  Richard Guenther  <rguenther@suse.de>
16241
16242         PR debug/39285
16243         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
16244
16245 2009-02-24  Richard Guenther  <rguenther@suse.de>
16246             Zdenek Dvorak  <ook@ucw.cz>
16247
16248         PR tree-optimization/39233
16249         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
16250         from converting them to a generic type.
16251
16252 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
16253
16254         PR tree-optimization/39260
16255         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
16256         contains a condition with a real type.
16257         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
16258
16259 2009-02-23  Jason Merrill  <jason@redhat.com>
16260
16261         PR c++/38880
16262         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
16263         narrowing_initializer_constant_valid_p.
16264         (narrowing_initializer_constant_valid_p): Don't return
16265         null_pointer_node for adding a pointer to itself.
16266
16267 2009-02-23  Jan Hubicka  <jh@suse.cz>
16268
16269         PR c/12245
16270         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
16271         resizing.
16272
16273 2009-02-23  Jan Hubicka  <jh@suse.cz>
16274
16275         PR tree-optimization/37709
16276         * tree.c (block_ultimate_origin): Move here from dwarf2out.
16277         * tree.h (block_ultimate_origin): Declare.
16278         * dwarf2out.c (block_ultimate_origin): Move to tree.c
16279         * tree-ssa-live.c (remove_unused_scope_block_p):
16280         Eliminate blocks containig no instructions nor live variables nor
16281         nested blocks.
16282         (dump_scope_block): New function.
16283         (remove_unused_locals): Enable removal of dead blocks by default;
16284         enable dumping at TDF_DETAILS.
16285
16286 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
16287
16288         * config/i386/i386.c (classify_argument): Don't allow COImode
16289         and OImode.
16290         (function_arg_advance_32): Don't allow OImode.
16291         (function_arg_32): Likewise.
16292         (function_value_32): Likewise.
16293         (return_in_memory_32): Likewise.
16294         (function_arg_64): Remove OImode comment.
16295
16296 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
16297
16298         PR target/39261
16299         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
16300         ix86_expand_vector_set for V4DImode in 64bit mode only.
16301         (ix86_expand_vector_init_one_var): Likewise.
16302
16303 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
16304
16305         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
16306
16307 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
16308
16309         PR bootstrap/39257
16310         * loop-iv.c: Revert last change.
16311         * emit-rtl.c: Likewise.
16312
16313 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
16314
16315         PR target/39256
16316         * config/i386/i386.c (type_natural_mode): Remove an extra
16317         space in the warning message.
16318         (function_value_32): Handle 32-byte vector modes.
16319         (return_in_memory_32): Likewise.
16320
16321 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
16322
16323         * loop-iv.c (truncate_value): New function.
16324         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
16325         of lowpart_subreg.
16326         (lowpart_subreg): Move to...
16327         * emit-rtl.c: ...here.
16328
16329 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
16330
16331         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
16332         accidental and undocumented change at revision 140860.
16333
16334 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
16335
16336         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
16337         take gimple_seq * arguments.
16338         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
16339         types_compatible_p langhook.
16340
16341 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
16342             Joseph Myers  <joseph@codesourcery.com>
16343
16344         * config/arm/arm.c (arm_builtin_va_list): New function.
16345         (arm_expand_builtin_va_start): Likewise.
16346         (arm_gimplify_va_arg_expr): Likewise.
16347         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
16348         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
16349         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
16350         (va_list_type): New variable.
16351         (arm_mangle_type): Mangle va_list_type appropriately.
16352
16353 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
16354
16355         PR middle-end/39157
16356         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
16357         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
16358         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
16359         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
16360         parameter to 1000 for -O1 by default.
16361         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
16362         parameter.
16363         * loop-invariant.c: Include params.h.
16364         (move_loop_invariants): Don't call move_single_loop_invariants on
16365         very large loops.
16366
16367 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
16368
16369         * calls.c (emit_library_call_value_1): Use slot_offset instead of
16370         offset when calculating bounds for indexing stack_usage_map.  Fixes
16371         a buffer overflow with certain target setups.
16372
16373 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
16374
16375         PR target/39240
16376         * calls.c (expand_call): Clear try_tail_call if caller and callee
16377         disagree in promotion of function return value.
16378
16379 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
16380
16381         PR target/39175
16382         * c-common.c (c_determine_visibility): If visibility changed and
16383         DECL_RTL has been already set, call make_decl_rtl to update symbol
16384         flags.
16385
16386 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
16387
16388         PR c++/39188
16389         * varasm.c (assemble_variable): Don't check DECL_NAME when
16390         globalizing a variable.
16391
16392 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
16393
16394         PR c/38483
16395         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
16396         expression before any __builtin_trap call.
16397         * c-typeck.c (build_function_call): Convert and check function
16398         arguments before generating a call to a trap.  Evaluate the
16399         function arguments before the trap.
16400
16401 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
16402
16403         PR target/39228
16404         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
16405         (UNSPEC_FXAM_MEM): New unspec.
16406         (fxam<mode>2_i387_with_temp): New insn and split pattern.
16407         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
16408         memory using fxam<mode>2_i387_with_temp to remove excess precision.
16409
16410 2009-02-19  Richard Guenther  <rguenther@suse.de>
16411
16412         PR tree-optimization/39207
16413         PR tree-optimization/39074
16414         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
16415         storedanything_tree): New.
16416         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
16417         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
16418         (build_succ_graph): Add edges from STOREDANYTHING to all
16419         non-direct nodes.
16420         (init_base_vars): Initialize STOREDANYTHING.
16421         (compute_points_to_sets): Free substitution info after
16422         building the succ graph.
16423         (ipa_pta_execute): Likewise.
16424
16425         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
16426         field.
16427         (do_ds_constraint): Do not add to special var or non-pointer
16428         field solutions.
16429         (type_could_have_pointers): Split out from ...
16430         (could_have_pointers): ... here.  For arrays use the element type.
16431         (create_variable_info_for): Initialize may_have_pointers.
16432         (new_var_info): Likewise.
16433         (handle_lhs_call): Make the HEAP variable unknown-sized.
16434         (intra_create_variable_infos): Use a type with pointers for
16435         PARM_NOALIAS, make it unknown-sized.
16436
16437 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
16438
16439         PR target/39224
16440         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
16441
16442 2009-02-18  Jason Merrill  <jason@redhat.com>
16443
16444         PR target/39179
16445         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
16446         value if DECL_EXTERNAL.
16447         * tree-sra.c (sra_walk_gimple_assign): Likewise.
16448         * target.h (gcc_target::binds_local_p): Clarify "module".
16449         * tree.h (TREE_PUBLIC): Clarify "module".
16450
16451 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
16452
16453         PR target/38891
16454         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
16455         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
16456
16457 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
16458
16459         PR target/39082
16460         * c.opt (Wabi): Support C and ObjC.
16461         (Wpsabi): New.
16462
16463         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
16464
16465         * config/i386/i386.c (classify_argument): Warn once about the ABI
16466         change when passing union with long double.
16467
16468         * doc/invoke.texi: Update -Wabi for warning psABI changes.
16469
16470 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
16471
16472         PR c/35447
16473         * c-parser.c (c_parser_compound_statement): Always enter and leave
16474         a scope.
16475
16476 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16477
16478         PR target/34587
16479         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
16480
16481 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
16482
16483         PR tree-optimization/36922
16484         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
16485         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
16486         Likewise.
16487
16488 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
16489
16490         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
16491         to 0 for EABI64.
16492
16493 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
16494
16495         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
16496
16497 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
16498
16499         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
16500         tree sharing.
16501
16502 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
16503             Richard Sandiford  <rdsandiford@googlemail.com>
16504
16505         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
16506         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
16507         (loongson_biadd): ...this.
16508
16509 2009-02-17  Richard Guenther  <rguenther@suse.de>
16510
16511         PR tree-optimization/39202
16512         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
16513         a var make sure to follow existing collapses.
16514
16515 2009-02-17  Richard Guenther  <rguenther@suse.de>
16516
16517         PR middle-end/39214
16518         * langhooks.c (lhd_print_error_function): Check for NULL block.
16519
16520 2009-02-17  Richard Guenther  <rguenther@suse.de>
16521
16522         PR tree-optimization/39204
16523         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
16524         of the PHI arg.
16525
16526 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
16527
16528         * config/soft-fp/double.h: Update from glibc CVS.
16529
16530 2009-02-17  Richard Guenther  <rguenther@suse.de>
16531
16532         PR tree-optimization/39207
16533         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
16534         strict-aliasing warnings for pointers pointing to NULL.
16535
16536 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
16537
16538         PR c/35446
16539         * c-parser.c (c_parser_braced_init): Call pop_init_level when
16540         skipping until next close brace.
16541
16542 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
16543
16544         PR target/37049
16545         * config/i386/i386.c (ix86_expand_push): Set memory alignment
16546         to function argument boundary.
16547
16548 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
16549
16550         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
16551         in the lea_add. Reload eventually constraints it properly.
16552         * config/picochip/constraints.md: Remove the target constraint
16553         "b", since it is not needed anymore.
16554
16555 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
16556
16557         * gthr-dce.h: Uglify function parameter and local variable names.
16558         * gthr-gnat.h: Likewise.
16559         * gthr-mipssde.h: Likewise.
16560         * gthr-nks.h: Likewise.
16561         * gthr-posix95.h: Likewise.
16562         * gthr-posix.h: Likewise.
16563         * gthr-rtems.h: Likewise.
16564         * gthr-single.h: Likewise.
16565         * gthr-solaris.h: Likewise.
16566         * gthr-tpf.h: Likewise.
16567         * gthr-vxworks.h: Likewise.
16568         * gthr-win32.h: Likewise.
16569
16570 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
16571
16572         PR target/39196
16573         * config/i386/i386.md: Restrict the new peephole2 to move
16574         between MMX/SSE registers.
16575
16576 2009-02-15  Richard Guenther  <rguenther@suse.de>
16577
16578         Revert
16579         2009-02-13  Richard Guenther  <rguenther@suse.de>
16580
16581         * configure.ac: Enable LFS.
16582         * configure: Re-generate.
16583         * config.in: Likewise.
16584
16585 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16586
16587         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
16588         spu_srqwbyte, spu_srqwbytebc): Define.
16589         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
16590         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
16591         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
16592         "shrqby_<mode>"): New insn-and-split patterns.
16593         * config/spu/spu.c (expand_builtin_args): Determine and return
16594         number of operands using spu_builtin_description data.
16595         (spu_expand_builtin_1): Use it.
16596
16597 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
16598
16599         PR target/38056
16600         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
16601         TARGET_CONST_GP.
16602
16603 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
16604
16605         PR target/39149
16606         * config/i386/i386.c (override_options): Correct warning
16607         messages for -malign-loops, -malign-jumps and -malign-functions.
16608
16609 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
16610
16611         PR target/39152
16612         * config/i386/i386.md: Restrict the new peephole2 to move
16613         between the general purpose registers.
16614
16615 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
16616
16617         PR target/39162
16618         * config/i386/i386.c (type_natural_mode): Add a new argument.
16619         Return the original mode and warn ABI change if vector size is 32byte.
16620         (function_arg_advance): Updated.
16621         (function_arg): Likewise.
16622         (ix86_function_value): Likewise.
16623         (ix86_return_in_memory): Likewise.
16624         (ix86_sol10_return_in_memory): Likewise.
16625         (ix86_gimplify_va_arg): Likewise.
16626         (function_arg_32): Don't warn ABX ABI change here.
16627         (function_arg_64): Likewise.
16628
16629 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
16630
16631         * loop-iv.c (implies_p): In the final case, test that operands 0
16632         of the two comparisons match.
16633
16634         * config/bfin/bfin.c (find_prev_insn_start): New function.
16635         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
16636         (find_next_insn_start): Move.
16637
16638 2009-02-13  Richard Guenther  <rguenther@suse.de>
16639
16640         * configure.ac: Enable LFS.
16641         * configure: Re-generate.
16642         * config.in: Likewise.
16643
16644 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
16645
16646         PR c/35444
16647         * c-parser.c (c_parser_parms_list_declarator): Discard pending
16648         sizes on syntax error after some arguments have been parsed.
16649
16650 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
16651
16652         * doc/invoke.texi (-fira): Remove.
16653
16654 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
16655
16656         * caller-save.c: Replace regclass.c with reginfo.c in comments.
16657         * recog.c: Likewise.
16658         * rtl.h: Likewise.
16659
16660 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
16661
16662         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
16663         (umul_ppmm): Likewise.
16664         (count_leading_zeros): Likewise.
16665         (count_trailing_zeros): Likewise.
16666         (UMUL_TIME): Likewise.
16667
16668 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
16669
16670         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
16671         soft-fp/t-softfp to tmake_file.
16672
16673         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
16674         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
16675         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
16676         IA64_BUILTIN_INFQ]: New.
16677         (ia64_init_builtins): Initialize __builtin_infq,
16678         __builtin_fabsq and __builtin_copysignq if not HPUX.
16679         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
16680         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
16681
16682         * config/ia64/lib1funcs.asm (__divtf3): Define only if
16683         SHARED is defined.
16684         (__fixtfti): Likewise.
16685         (__fixunstfti): Likewise.
16686         (__floattitf): Likewise.
16687
16688         * config/ia64/libgcc-glibc.ver: New.
16689         * config/ia64/t-fprules-softfp: Likewise.
16690         * config/ia64/sfp-machine.h: Likewise.
16691
16692         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
16693         (LIBGCC2_TF_CEXT): Likewise.
16694         (TF_SIZE): Likewise.
16695         (TARGET_INIT_LIBFUNCS): Likewise.
16696
16697         * config/ia64/t-glibc (SHLINB_MAPFILES):
16698         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
16699
16700 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
16701
16702         * config/i386/i386.c (construct_container): Rewrite processing
16703         BLKmode with X86_64_SSE_CLASS.
16704
16705 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
16706
16707         PR target/39152
16708         * config/i386/i386.md: Replace simplify_replace_rtx with
16709         replace_rtx in the new peephole2.
16710
16711 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
16712
16713         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
16714         loop unrolling do not happen at -O2.
16715
16716 2009-02-12  Michael Matz  <matz@suse.de>
16717
16718         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
16719
16720 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
16721
16722         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
16723         for -g3.
16724
16725 2009-02-12  Ben Elliston  <bje@au.ibm.com>
16726
16727         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
16728         patterns when updating the back chain.  Missed in the 2009-02-10
16729         change.
16730
16731 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
16732
16733         * doc/extend.texi (Decimal Floating Types): Update identifier of
16734         draft TR and list of missing support.
16735
16736 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
16737
16738         PR middle-end/39154
16739         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
16740         bit to variable length decl's flags, add it also to its
16741         pointer replacement variable.
16742
16743 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
16744             Jakub Jelinek  <jakub@redhat.com>
16745
16746         PR target/39118
16747         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
16748         (memory_blockage): New expander.
16749         (*memory_blockage): New insn pattern.
16750         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
16751         instead of general blockage at the end of function prologue when
16752         frame pointer is used to access red zone area.  Do not emit blockage
16753         when profiling, it is emitted in generic code.
16754         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
16755         function epilogue when frame pointer is used to access red zone area.
16756
16757 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
16758
16759         PR target/38824
16760         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
16761         by arithmetic with memory operands.
16762         * config/i386/predicates.md (commutative_operator): New.
16763
16764 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
16765
16766         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
16767         bulleted lists.
16768
16769 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
16770
16771         * alias.h (record_alias_subset): Declare.
16772         * alias.c (record_alias_subset): Make global.
16773
16774 2009-02-10  Nick Clifton  <nickc@redhat.com>
16775
16776         * tree-parloops.c: Change license to GPLv3.
16777         * ipa-struct-reorg.c: Change license to GPLv3.
16778         * ipa-struct-reorg.h: Change license to GPLv3.
16779
16780 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
16781
16782         PR c/39084
16783         * c-decl.c (start_struct): Return NULL on error.
16784
16785 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
16786
16787         PR middle-end/39124
16788         * cfgloopmanip.c (remove_path): Call remove_bbs after
16789         cancel_loop_tree, not before it.
16790
16791         PR target/39139
16792         * function.h (struct function): Add has_local_explicit_reg_vars bit.
16793         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
16794         VAR_DECLs were seen.
16795         * tree-ssa-live.c (remove_unused_locals): Recompute
16796         cfun->has_local_explicit_reg_vars.
16797         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
16798         copies or clearings if cfun->has_local_explicit_reg_vars.
16799
16800 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
16801
16802         PR target/39118
16803         * config/i386/i386.c (expand_prologue): Emit blockage at the end
16804         of function prologue when frame pointer is used to access
16805         red zone area.
16806
16807 2009-02-10  Richard Guenther  <rguenther@suse.de>
16808
16809         PR middle-end/39127
16810         * gimplify.c (gimple_regimplify_operands): Always look if
16811         we need to create a temporary.
16812
16813 2009-02-10  Richard Guenther  <rguenther@suse.de>
16814
16815         PR tree-optimization/39132
16816         * tree-loop-distribution.c (todo): New global var.
16817         (generate_memset_zero): Trigger TODO_rebuild_alias.
16818         (tree_loop_distribution): Return todo.
16819
16820 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
16821
16822         PR target/39119
16823         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
16824         (x86_64_reg_class_name): Removed.
16825         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
16826         first one isn't X86_64_SSE_CLASS or any other ones aren't
16827         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
16828         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
16829         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
16830         and 3 X86_64_SSEUP_CLASS.
16831         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
16832         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
16833
16834 2009-02-10  Ben Elliston  <bje@au.ibm.com>
16835
16836         * config/rs6000/rs6000.md (allocate_stack): Always use an update
16837         form instruction to update the stack back chain word, even if the
16838         user has disabled the generation of update instructions.
16839         (movdi_<mode>_update_stack): New.
16840         (movsi_update_stack): Likewise.
16841         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
16842         always use an update form instruction to update the stack back
16843         chain word.
16844
16845 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
16846
16847         PR middle-end/38953
16848         * graphite.c (if_region_set_false_region): After moving a region in
16849         the false branch of a condition, remove the empty dummy basic block.
16850         (gloog): Remove wrong fix for PR38953.
16851
16852 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16853
16854         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
16855         generation due to implicit sign extension.
16856
16857 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
16858
16859         PR middle-end/38981
16860         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
16861         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
16862
16863 2009-02-09  Richard Guenther  <rguenther@suse.de>
16864
16865         PR middle-end/35202
16866         * convert.c (convert_to_real): Disable (float)fn((double)x)
16867         to fnf(x) conversion if errno differences may occur and
16868         -fmath-errno is set.
16869
16870 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
16871
16872         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
16873         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
16874         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
16875
16876 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
16877
16878         PR c/35434
16879         * c-common.c (handle_alias_attribute): Disallow attribute for
16880         anything not a FUNCTION_DECL or VAR_DECL.
16881
16882 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
16883
16884         PR c/39035
16885         * real.c (do_compare): Special-case compare of zero against
16886         decimal float value.
16887
16888 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
16889
16890         PR c/36432
16891         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
16892         as indicating flexible array members unless the field itself is
16893         being declarared as the incomplete array.
16894
16895 2009-02-06  Jan Hubicka  <jh@suse.cz>
16896
16897         PR tree-optimization/38844
16898         * ipa-inline.c (try_inline): Stop inlining recursion when edge
16899         is already inlined.
16900
16901 2009-02-06  Richard Guenther  <rguenther@suse.de>
16902
16903         PR middle-end/38977
16904         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
16905         fork because we may expand it as __gcov_fork.
16906
16907 2009-02-06  Nick Clifton  <nickc@redhat.com>
16908
16909         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
16910
16911 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
16912
16913         PR tree-optimization/35659
16914         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
16915         vn_phi_eq): Shortcut if hashcode does not match.
16916         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
16917         NULL operands.
16918         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
16919         and avoid iterative_hash_expr.
16920         (FOR_EACH_VALUE_ID_IN_SET): New.
16921         (value_id_compare): Remove.
16922         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
16923         sort expressions by value id.
16924
16925 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
16926
16927         PR target/38991
16928         * config/sh/predicates.md (general_movsrc_operand): Don't check
16929         the subreg of system registers here.
16930
16931 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
16932
16933         PR c++/39106
16934         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
16935         on the copied decl.
16936
16937 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
16938
16939         PR rtl-optimization/39110
16940         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
16941         addresses, not aligned ones.
16942
16943 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
16944             Richard Guenther  <rguenther@suse.de>
16945
16946         PR tree-optimization/39100
16947         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
16948         comment says and add edges.
16949
16950 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
16951
16952         PR c/35435
16953         * c-common.c (handle_tls_model_attribute): Ignore attribute for
16954         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
16955
16956 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
16957
16958         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
16959         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
16960         register_bb_in_sese, new_sese, free_sese): Moved.
16961         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
16962         outermost_loop_in_scop, build_scop_iteration_domain,
16963         expand_scalar_variables_ssa_name, get_vdef_before_scop,
16964         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
16965         Use loop_in_sese_p instead of loop_in_scop_p.
16966         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
16967         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
16968         (scopdet_basic_block_info): Fix bug in scop detection.
16969         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
16970         eq_loop_to_cloog_loop): Remove.
16971         (nb_loops_around_loop_in_scop, nb_loop
16972         ref_nb_loops): Moved here...
16973         * graphite.h (ref_nb_loops): ... from here.
16974         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
16975         (loop_domain_dim, loop_iteration_vector_dim): Remove.
16976         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
16977         * testsuite/gcc.dg/graphite/scop-19.c: New
16978
16979 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
16980             Hans-Peter Nilsson  <hp@axis.com>
16981
16982         PR rtl-optimization/37889
16983         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
16984         Move offset handling from PLUS to before the switch.  Use new
16985         arguments when considering SYMBOL_REFs too.
16986         (rtx_addr_can_trap_p): Pass dummy offset and size.
16987         (enum may_trap_p_flags): Remove.
16988         (may_trap_p_1): Pass size from MEM_SIZE.
16989
16990         PR rtl-optimization/38921
16991         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
16992         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
16993         * rtlanal.c (may_trap_after_code_motion_p): Delete.
16994         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
16995
16996 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
16997
16998         AVX Programming Reference (January, 2009)
16999         * config/i386/sse.md (*vpclmulqdq): New.
17000
17001 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
17002
17003         PR tree-optimization/38977
17004         PR gcov-profile/38292
17005         * calls.c (special_function_p): Disregard __builtin_ prefix.
17006
17007 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
17008
17009         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
17010         non-indexable addresses even before reload.
17011
17012 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
17013
17014         PR c/29129
17015         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
17016         as having variable size.  Do not give an error for unnamed
17017         parameters with [*] declarators.  Give a warning for type names
17018         with [*] declarators and mark them as variable size.
17019         * c-parser.c (c_parser_sizeof_expression): Do not give an error
17020         for sizeof applied to [*] type names.
17021
17022 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17023
17024         PR C++/36607
17025         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
17026
17027 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
17028
17029         * gcc.c (process_command): Update copyright notice dates.
17030         * gcov.c (print_version): Likewise.
17031         * gcov-dump.c (print_version): Likewise.
17032         * mips-tfile.c (main): Likewise.
17033         * mips-tdump.c (main): Likewise.
17034
17035 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
17036
17037         PR c/35433
17038         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
17039         for composite type involving a zero-length array type.
17040
17041 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
17042
17043         PR target/35318
17044         * function.c (match_asm_constraints_1): Skip over
17045         initial optional % in the constraint.
17046
17047         PR inline-asm/39059
17048         * c-parser.c (c_parser_postfix_expression): If fixed point is not
17049         supported, don't accept FIXED_CSTs.
17050         * c-decl.c (finish_declspecs): Error if fixed point is not supported
17051         and _Sat is used without _Fract/_Accum.  Set specs->type to
17052         integer_type_node for cts_fract/cts_accum if fixed point is not
17053         supported.
17054
17055 2009-02-02  Catherine Moore  <clm@codesourcery.com>
17056
17057         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
17058
17059 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
17060
17061         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
17062         (ABI_HAS_64BIT_SYMBOLS): Use it.
17063         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
17064
17065 2009-02-02  Paul Brook  <paul@codesourcery.com>
17066
17067         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
17068
17069 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
17070
17071         PR inline-asm/39058
17072         * recog.h (asm_operand_ok): Add constraints argument.
17073         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
17074         recurse on matching constraint.
17075         (check_asm_operands): Pass constraints as 3rd argument to
17076         asm_operand_ok.  Don't look up matching constraint here.
17077         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
17078         to asm_operand_ok.
17079
17080 2009-02-02  Ben Elliston  <bje@au.ibm.com>
17081
17082         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
17083         TARGET_NARROW_VOLATILE_BITFIELD macro names.
17084
17085 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17086
17087         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
17088         information.  Remove some obsolete information.  Reorganize.
17089
17090         * config/pa/fptr.c: Revert license to GPL 2.
17091         * config/pa/milli64.S: Likewise.
17092
17093 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
17094
17095         PR target/38904
17096         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
17097         LIBRARY name in, instead of hard-coding it.
17098         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
17099         extra target make frag to tmake_files according to EH model.
17100         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
17101         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
17102         frags that define makefile variable EH_MODEL appropriately.
17103         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
17104         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
17105         to "-sjlj" according to type of EH configured.
17106         (LIBGCC_SONAME):  Concatenate it to shared library base name.
17107         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
17108         to "_sjlj" according to type of EH configured.
17109         (LIBGCC_SONAME):  Concatenate it to shared library base name.
17110         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
17111         (SHLIB_LINK):  Add missing semicolon to if-else construct.
17112         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
17113         string value of "pe_dll" command-line option.
17114         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
17115         (SHLIB_SONAME):  Use it when overriding t-cygming default.
17116         (SHLIB_IMPLIB):  Override t-cygming default.
17117         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
17118         string value of "pe_dll" command-line option.
17119
17120 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
17121
17122         PR target/38952
17123         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
17124         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
17125
17126 2009-01-31  Richard Guenther  <rguenther@suse.de>
17127
17128         PR tree-optimization/38937
17129         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
17130         computing the transitive closure.
17131
17132 2009-01-30  Richard Guenther  <rguenther@suse.de>
17133
17134         PR tree-optimization/39041
17135         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
17136         Propagate variable indices only if the types match for this stmt.
17137
17138 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
17139
17140         PR target/39013
17141         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
17142         inline but never defined.
17143
17144 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
17145
17146         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
17147         (*insv_h_di_reg_extimm): New insn.
17148         (*insv_l<mode>_reg_extimm): New insn.
17149
17150 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
17151
17152         * config/picochip/picochip.c (flag_conserve_stack): set
17153         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
17154         fconserve-stack. Reduce call-overhead used by inliner.
17155
17156 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
17157
17158         PR/38157
17159         * common.opt (flag_conserve_stack): Initialised to zero.
17160
17161 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
17162
17163         PR/39002
17164         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
17165         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
17166         method.
17167
17168 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
17169
17170         * ira-color.c (allocno_reload_assign): Update comments.
17171         * regmove.c (regmove_optimize): Likewise.
17172
17173         * ra.h: Removed.
17174
17175 2009-01-29  Robert Millan  <rmh@aybabtu.com>
17176
17177         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
17178         * config/i386/kopensolaris-gnu.h: New file.  Undefine
17179         `MD_UNWIND_SUPPORT'.
17180         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
17181
17182 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
17183
17184         PR tree-optimization/39007
17185         * tree-loop-distribution.c (generate_builtin): Use
17186         recompute_dominator to compute the immediate dominator of the
17187         basic block just after the loop.
17188
17189 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17190
17191         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
17192         (ASM_OUTPUT_DWARF_PCREL): Define.
17193
17194 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
17195
17196         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
17197         * doc/passes.texi: Remove entries about regclass, local-alloc, and
17198         global.  Modify entries about regmove and IRA.
17199
17200         * ra-conflict.c: Remove the file.
17201
17202         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
17203
17204         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
17205         (pass_regclass_init): Rename to pass_reginfo_init.
17206
17207         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
17208
17209         * toplev.h (flag_ira): Remove.
17210
17211         * caller-save.c (setup_save_areas): Remove flag_ira.
17212
17213         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
17214
17215         * global.c: Remove the file.
17216
17217         * opts.c (decode_options): Remove flag_ira.
17218
17219         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
17220
17221         * regmove.c: Modify file description.
17222         (find_use_as_address, try_auto_increment): Define them only if
17223         AUTO_INC_DEC is defined.
17224         (replacement_quality, replace_in_call_usage, fixup_match_1,
17225         stable_and_no_regs_but_for_p): Remove.
17226         (reg_set_in_bb): Make it static.
17227         (regmove_optimize): Remove flag_ira and code which worked for
17228         !flag_ira.
17229
17230         * local-alloc.c: Remove the file.
17231
17232         * common.opt (fira): Remove.
17233
17234         * ira.c: Include except.h.
17235         (eliminable_regset): Move from global.c.
17236         (mark_elimination): Ditto.  Remove flag_ira.
17237         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
17238         equiv_mem_modified, validate_equiv_mem_from_store,
17239         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
17240         contains_replace_regs, memref_referenced_p, memref_used_between_p,
17241         no_equiv, recorded_label_ref): Move from local-alloc.c.
17242         (update_equiv_regs): Ditto.  Make it static.
17243         (print_insn_chain, print_insn_chains): Move it from global.c.
17244         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
17245         (build_insn_chain): Ditto.  Make it static.
17246         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
17247         Rename to init_live_subregs.
17248         (gate_ira): Remove flag_ira.
17249
17250         * regclass.c: Rename reginfo.c.  Change file description.
17251         (FORBIDDEN_INC_DEC_CLASSES): Remove.
17252         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
17253         (init_reg_sets_1): Remove code for evaluation of
17254         reg_class_superclasses and losing_caller_save_reg_set.
17255         (init_regs): Remove init_reg_autoinc.
17256         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
17257         ok_for_base_p_nonstrict): Remove.
17258         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
17259         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
17260         corresponding entries.
17261         (dump_regclass, record_operand_costs, scan_one_insn,
17262         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
17263         record_address_regs, auto_inc_dec_reg_p): Remove.
17264         (gt-regclass.h): Rename to gt-reginfo.h.
17265
17266         * rtl.h (dump_global_regs, retry_global_alloc,
17267         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
17268
17269         * Makefile.in (RA_H): Remove.
17270         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
17271         Rename regclass.o to reginfo.o.
17272         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
17273         gt-reginfo.h.
17274         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
17275         (GTFILES): Rename regclass.c to reginfo.c.
17276
17277         * passes.c (init_optimization_passes): Remove pass_local_alloc and
17278         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
17279
17280         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
17281         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
17282         Remove flag_ira.
17283         (finish_spills): Ditto.  Remove code for !flag_ira.
17284
17285 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
17286
17287         PR middle-end/35854
17288         * doc/invoke.texi (rtl debug options): Complete rewrite.
17289         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
17290         to auto_inc_dec".
17291         * mode-switching.c (pass_mode_switching): Rename pass from
17292         "mode-sw" to "mode_sw".
17293         * except.c (pass_convert_to_eh_ranges): Rename pass from
17294         "eh-ranges" to "eh_ranges".
17295         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
17296         to "subreg1".
17297
17298
17299 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
17300             Alexander Monakov  <amonakov@ispras.ru>
17301
17302         PR middle-end/38857
17303         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
17304         register.
17305         (move_exprs_to_boundary): Change return type and pass through
17306         should_move from move_op.  Relax assert.  Update usage ...
17307         (schedule_expr_on_boundary): ... here.  Use should_move instead of
17308         cant_move.
17309         (move_op_orig_expr_found): Indicate that insn was disconnected from
17310         stream.
17311         (code_motion_process_successors): Do not call after_merge_succs
17312         callback if original expression was not found when traversing any of
17313         the branches.
17314         (code_motion_path_driver): Change return type.  Update prototype.
17315         (move_op): Update comment.  Add a new parameter (should_move).  Update
17316         prototype.  Set *should_move based on indication provided by
17317         move_op_orig_expr_found.
17318
17319 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
17320
17321         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
17322         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
17323         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
17324         * config/rs6000/rs6000.c (rs6000_override_options): Default
17325         avoid-indexed-addresses on for Power6, off for everything else.
17326         (avoiding_indexed_address_p): New function.
17327         (rs6000_legitimize_address): Use it.
17328         (rs6000_legitimate_address): Likewise.
17329         * config/rs6000/rs6000.md (movXX_updateX): Likewise
17330
17331 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
17332
17333         PR tree-optimization/38997
17334         * tree-loop-distribution.c (generate_memset_zero): Use
17335         POINTER_PLUS_EXPR for a pointer addition.
17336
17337 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
17338
17339         * config/s390/s390.md (bswap<mode>2): New pattern added.
17340
17341 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
17342
17343         * config/s390/s390.md (*tls_load_31): Added type attribute.
17344
17345 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
17346
17347         * config/s390/s390.md: Fix a few comments.
17348
17349 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
17350
17351         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
17352         (*tm<mode>_full): Fixed z10prop attribute.
17353         (*tst<mode>_extimm): Fixed z10prop attribute.
17354         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
17355         (*tstqiCCT_cconly): Fixed z10prop attribute.
17356         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
17357         (*movsi_larl): Fixed z10prop attribute.
17358         (*movsi_zarch): Fixed z10prop attribute.
17359         (*movsi_eas): Fixed z10prop attribute.
17360         (*movhi): Fixed z10prop attribute.
17361         (*movqi): Fixed z10prop attribute.
17362         (*movstrictqi): Fixed z10prop attribute.
17363         (*mov<mode>): Fixed z10prop attribute.
17364         (*movcc): Fixed z10prop attribute.
17365         (*sethighpartdi_64): Fixed z10prop attribute.
17366         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
17367         (*negdi2_sign_cc): Fixed z10prop attribute.
17368         (*negdi2_sign): Fixed z10prop attribute.
17369         (*absdi2_sign_cc): Fixed z10prop attribute.
17370         (*absdi2_sign): Fixed z10prop attribute.
17371         (*negabsdi2_sign_cc): Fixed z10prop attribute.
17372         (*negabsdi2_sign): Fixed z10prop attribute.
17373         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
17374         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
17375         (doloop_si64): Fixed z10prop attribute.
17376         (doloop_si31): Fixed z10prop attribute.
17377         (doloop_long): Fixed z10prop attribute.
17378         (indirect_jump): Fixed z10prop attribute.
17379         (nop): Fixed z10prop attribute.
17380         (main_base_64): Fixed z10prop attribute.
17381         (reload_base_64): Fixed z10prop attribute.
17382
17383 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
17384
17385         PR rtl-optimization/38740
17386         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
17387         if !optimize.
17388         * config/mips/mips.c (mips_reorg): Likewise.
17389
17390 2009-01-28  Richard Guenther  <rguenther@suse.de>
17391
17392         PR tree-optimization/38926
17393         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
17394         with the correct value id to a value.
17395         (do_regular_insertion): Use the value number of edoubleprime
17396         for the value number of the expr.
17397
17398         Revert
17399         2008-08-21  Richard Guenther  <rguenther@suse.de>
17400
17401         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
17402         a PHI ask VN if it is already available.
17403         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
17404         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
17405
17406 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
17407
17408         PR middle-end/38934
17409         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
17410         set to varying whenever max has TREE_OVERFLOW set, similarly
17411         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
17412
17413 2009-01-28  Richard Guenther  <rguenther@suse.de>
17414
17415         PR middle-end/38908
17416         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
17417         uninitialized aggregate uses in call arguments.
17418
17419 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
17420
17421         PR tree-optimization/38984
17422         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
17423         the nothing_id variable if -fno-delete-null-pointer-checks.
17424
17425 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
17426
17427         PR target/38988
17428         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
17429         (set_got_offset_rex64): Ditto.
17430
17431 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
17432
17433         PR target/38941
17434         * doc/extend.texi: Improve local variable with asm reg.
17435
17436 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
17437
17438         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
17439         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
17440         was not supplied then set warn_packed_bitfield_compat to the
17441         default value of 1.
17442         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
17443         against 1.
17444
17445 2009-01-27  Richard Guenther  <rguenther@suse.de>
17446
17447         PR tree-optimization/38503
17448         * cfgexpand.c (expand_gimple_basic_block): Ignore
17449         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
17450         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
17451         variables that cannot have TBAA applied.
17452         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
17453         statements.
17454
17455 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
17456
17457         PR middle-end/38969
17458         * calls.c (initialize_argument_information): Do not wrap complex
17459         arguments in SAVE_EXPR.
17460
17461 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
17462
17463         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
17464         (INSTALL_LIBGCC): Revert typo commit.
17465
17466 2009-01-26  Richard Guenther  <rguenther@suse.de>
17467
17468         PR tree-optimization/38745
17469         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
17470         from special handling.
17471
17472 2009-01-26  Richard Guenther  <rguenther@suse.de>
17473
17474         PR tree-optimization/38745
17475         * tree-ssa.c (execute_update_addresses_taken): Do not include
17476         variables that cannot possibly be a register in not_reg_needs.
17477         Do not clear TREE_ADDRESSABLE on vars that may not become
17478         registers.
17479         * tree-ssa.c (update_alias_info_1): Include those in the set
17480         of addressable vars.
17481
17482 2009-01-26  Richard Guenther  <rguenther@suse.de>
17483
17484         PR middle-end/38851
17485         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
17486         * tree-ssa-dse.c: Include langhooks.h
17487         (execute_simple_dse): Remove stores with zero size.
17488
17489 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
17490
17491         PR c/38957
17492         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
17493         as PLUS_EXPR.
17494
17495 2009-01-24  Julian Brown  <julian@codesourcery.com>
17496
17497         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
17498         config/arm/linux-atomic.c.
17499         * config/arm/linux-atomic.c: New.
17500
17501 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
17502
17503         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
17504         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
17505         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
17506
17507 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
17508
17509         PR c/38938
17510         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
17511         properly.
17512
17513 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
17514
17515         PR tree-optimization/38953
17516         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
17517         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
17518         (gloog): Split the exit of the scop when the scop exit is a loop exit.
17519         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
17520         changed the CFG.
17521
17522 2009-01-24  Paul Brook  <paul@codesourcery.com>
17523
17524         * config/arm/neon.md (neon_type): Move to arm.md.
17525         (neon_mov<VSTRUCT>): Add neon_type attribute.
17526         * config/arm/arm.md (neon_type): Move to here.
17527         (conds): Add "unconditioal" and use as default for NEON insns.
17528
17529 2009-01-24  Ben Elliston  <bje@au.ibm.com>
17530
17531         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
17532         void *' warning from -Wc++-compat.
17533         * Makefile.in (dominance.o-warn): Remove.
17534
17535 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
17536
17537         PR tree-optimization/38932
17538         * fold-const.c (fold_unary_ignore_overflow): New.
17539         * tree.h (fold_unary_ignore_overflow): Declare.
17540         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
17541         * tree-ssa-sccvn.c (visit_reference_op_load,
17542         simplify_unary_expression): Likewise.
17543
17544 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
17545
17546         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
17547         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
17548         regardless of their type.
17549         * c-common.c (handle_packed_attribute): Don't ignore packed on
17550         bitfields.
17551         * c.opt (Wpacked-bitfield-compat): New warning option.
17552         * stor-layout.c (place_field): Warn if offset of a field changed.
17553         * doc/extend.texi (packed): Mention the ABI change.
17554         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
17555         (Warning Options): Add it to the list.
17556
17557 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
17558
17559         * c-opts.c (c_common_post_options): Fix a typo in comments.
17560
17561 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
17562
17563         PR middle-end/38615
17564         * gimplify.c (gimplify_init_constructor): Fix promotion of const
17565         variables to static.
17566         * doc/invoke.texi (-fmerge-all-constants): Update description.
17567
17568 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
17569
17570         PR target/38931
17571         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
17572         (*movdi_1_rex64): Use type "mmx" for alternative 5.
17573
17574 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
17575
17576         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
17577         a word boundary.
17578         (LOCAL_ALIGNMENT): Similarly.
17579
17580 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
17581             Joseph Myers  <joseph@codesourcery.com>
17582
17583         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
17584         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
17585         * config/arm/arm-tune.md: Regenerate.
17586         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
17587         -march=iwmmxt2.
17588
17589 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
17590
17591         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
17592         version number to five.
17593
17594 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
17595
17596         PR c++/38930
17597         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
17598         * c-common.c (set_underlying_type): Likewise.
17599         (is_typedef_decl ): Likewise
17600         * tree.h: Likewise
17601         (set_underlying_type): Likewise.
17602         (is_typedef_type): Likewise.
17603
17604 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
17605
17606         PR middle-end/38587
17607         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
17608         crossing setjmps.
17609
17610 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
17611
17612         PR bootstrap/37660
17613         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
17614         (LIBGCC_SPEC):  Don't define.
17615         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
17616
17617 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
17618
17619         PR rtl-optimization/38879
17620         * alias.c (base_alias_check): Unaligned access via AND address can
17621         alias all surrounding object types except those with sizes equal
17622         or wider than the size of unaligned access.
17623
17624 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
17625
17626         PR c++/26693
17627         * c-decl.c (clone_underlying_type): Move this ...
17628         * c-common.c (set_underlying_type): ... here.
17629         Also, make sure the function properly sets TYPE_STUB_DECL() on
17630         the newly created typedef variant type.
17631         (is_typedef_decl ): New entry point.
17632         * tree.h: Added a new member member_types_needing_access_check to
17633         struct tree_decl_non_common.
17634         (set_underlying_type): New entry point.
17635         (is_typedef_type): Likewise.
17636
17637 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
17638
17639         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
17640         Check whether two instructions have memory references that
17641         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
17642         are helper functions for traversing.
17643         * alias.h (insn_alias_sets_confilict_p): New prototypes.
17644         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
17645         not to draw dependency edge for instructions with non-conflicting
17646         alias sets.
17647
17648 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
17649
17650         PR other/38758
17651         * longlong.h: Update copyright years.  Use soft-fp license notice.
17652         Sync __clz_tab declaration with glibc.
17653
17654 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
17655
17656         PR target/30687
17657         * doc/extend.texi (syscall_linkage): New.
17658         (version_id): Modify.
17659
17660 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17661             Richard Guenther  <rguenther@suse.de>
17662
17663         PR tree-optimization/38747
17664         PR tree-optimization/38748
17665         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
17666         conversion if the base address is an indirect reference and the
17667         aliasing sets could cause issues.
17668
17669 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
17670
17671         * common.opt (fgraphite, fgraphite-identity): Add comment for
17672         explaining why these options are not documented.
17673
17674 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
17675
17676         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
17677         gimple_call_lhs is NULL.
17678
17679 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
17680
17681         PR target/38868
17682         * emit-rtl.c (adjust_address_1): Make sure memref is never
17683         overwritten.
17684
17685 2009-01-20  Ben Elliston  <bje@au.ibm.com>
17686
17687         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
17688         const qualifier from arg parameter. Remove unnecessary cast to char *.
17689         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
17690         const qualifier from arg 2.
17691
17692 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
17693
17694         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
17695
17696 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
17697
17698         PR c/38869
17699         * rtl.h (reinit_regs): New prototype.
17700         * regclass.c: Include ira.h.
17701         (reinit_regs): New.
17702         * Makefile.in (regclass.o): Add ira.h.
17703         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
17704
17705 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
17706
17707         PR target/38736
17708         * c-common.c (handle_aligned_attribute): Use
17709         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
17710         default alignment value.
17711
17712         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
17713
17714         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
17715         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
17716
17717         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
17718         __BIGGEST_ALIGNMENT__.
17719
17720         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
17721
17722 2009-01-18  Richard Guenther  <rguenther@suse.de>
17723
17724         PR tree-optimization/38819
17725         * tree-flow.h (operation_could_trap_helper_p): Declare.
17726         * tree-eh.c (operation_could_trap_helper_p): Export.
17727         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
17728         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
17729         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
17730         are about to insert a possibly trapping instruction and fail
17731         in this case.
17732
17733 2009-01-18  Andreas Schwab  <schwab@suse.de>
17734
17735         * doc/install.texi (Configuration): Remove obsolete paragraph
17736         about use of --with-gnu-ld with --with-gnu-as.
17737
17738 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
17739
17740         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
17741         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
17742         Follow spelling conventions.
17743
17744 2009-01-18  Ben Elliston  <bje@au.ibm.com>
17745
17746         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
17747         C++ warning about implicit conversion from void * to struct
17748         bitmap_head_def *.
17749         (bitmap_obstack_free): Likewise for bitmap_element *.
17750         * Makefile.in (bitmap.o-warn): Remove.
17751
17752 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
17753
17754         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
17755
17756 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
17757             Tobias Grosser  <tobi.grosser@amd.com>
17758
17759         * graphite.c (graphite_trans_scop_block): Do not block single
17760         nested loops.
17761
17762 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
17763
17764         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
17765         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
17766         test with assertion.
17767
17768 2009-01-16  Richard Guenther  <rguenther@suse.de>
17769
17770         PR tree-optimization/38835
17771         PR middle-end/36227
17772         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
17773         and INT + PTR -> (INT)(PTR p+ INT) folding.
17774         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
17775
17776 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
17777
17778         PR target/38554
17779         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
17780         the subreg from a lowpart subreg if it is also casting the value.
17781
17782 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
17783             Tobias Grosser  <tobi.grosser@amd.com>
17784
17785         * graphite.c (compare_prefix_loops): New.
17786         (build_scop_canonical_schedules): Rewritten.
17787         (graphite_transform_loops): Move build_scop_canonical_schedules
17788         after build_scop_iteration_domain.
17789
17790 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
17791             Tobias Grosser  <tobi.grosser@amd.com>
17792
17793         * graphite.c (add_conditions_to_domain): Add the loops to
17794         the dimension of the iteration domain.  Do copy the domain
17795         only when it exists.
17796         (build_scop_conditions_1): Do not call add_conditions_to_domain.
17797         (add_conditions_to_constraints): New.
17798         (can_generate_code_stmt, can_generate_code): Removed.
17799         (gloog): Do not call can_generate_code.
17800         (graphite_transform_loops): Call add_conditions_to_constraints
17801         after building the iteration domain.
17802
17803 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
17804
17805         PR tree-optimization/38789
17806         * tree-ssa-threadedge.c
17807         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
17808         __builtin_constant_p.
17809
17810 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
17811
17812         * dce.c (delete_unmarked_insns): Reversed the order that insns are
17813         examined before deleting them.
17814
17815 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
17816
17817         * function.c (aggregate_value_p): Correctly extract the function
17818         type from CALL_EXPR_FN lookup.
17819
17820 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
17821
17822         * config/picochip/picochip.c (picochip_override_options): Revert
17823         CFI asm flag disable commited previously.
17824
17825 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
17826             Tobias Grosser  <tobi.grosser@amd.com>
17827             Jan Sjodin  <jan.sjodin@amd.com>
17828
17829         * graphite.c (scan_tree_for_params): On substractions negate
17830         all the coefficients of the term.
17831         (clast_to_gcc_expression_red): New.  Handle reduction expressions
17832         of more than two operands.
17833         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
17834         (get_vdef_before_scop): Handle also the case of default definitions.
17835
17836 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
17837
17838         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
17839         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
17840         Also use them when walking CALL_INSN_FUNCTION_USAGE.
17841
17842 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
17843             Joey Ye  <joey.ye@intel.com>
17844
17845         PR middle-end/37843
17846         * cfgexpand.c (expand_stack_alignment): Don't update stack
17847         boundary nor check incoming stack boundary here.
17848         (gimple_expand_cfg): Update stack boundary and check incoming
17849         stack boundary here.
17850
17851 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
17852
17853         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
17854
17855 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
17856
17857         PR rtl-optimization/38245
17858         * calls.c (expand_call): Add stack arguments to
17859         CALL_INSN_FUNCTION_USAGE even for pure calls (when
17860         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
17861         in regs and partially in memory or BLKmode arguments.
17862         (emit_library_call_value_1): Add stack arguments to
17863         CALL_INSN_FUNCTION_USAGE even for pure calls (when
17864         ACCUMULATE_OUTGOING_ARGS).
17865         * dce.c: Include tm_p.h.
17866         (find_call_stack_args): New function.
17867         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
17868         argument.
17869         (mark_insn): Call find_call_stack_args for CALL_Ps.
17870         (prescan_insns_for_dce): Walk insns backwards in bb rather than
17871         forwards.  Allocate and free arg_stores bitmap if needed, pass it
17872         down to deletable_insn_p, don't mark stores set in arg_stores
17873         bitmap, clear the bitmap at the beginning of each bb.
17874         * Makefile.in (dce.o): Depend on $(TM_P_H).
17875
17876 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
17877
17878         PR target/22599
17879         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
17880         to make sure the insn is a conditional test (bug 22599).  Reformat a
17881         few long lines.
17882
17883 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
17884
17885         PR middle-end/38431
17886         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
17887         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
17888         (gloog): Do not call cleanup_tree_cfg.
17889         (graphite_transform_loops): Call cleanup_tree_cfg after all
17890         scops have been code generated.
17891
17892 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
17893         * doc/gty.texi (Invoking the garbage collector): Added new node
17894         and section documenting ggc_collect.
17895
17896 2009-01-14  Richard Guenther  <rguenther@suse.de>
17897
17898         PR tree-optimization/38826
17899         PR middle-end/38477
17900         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
17901         initialization notes only if we actually emitted a warning.
17902         (intra_create_variable_infos): Add constraints for a result decl
17903         that is passed by hidden reference.
17904         (build_pred_graph): Mark all related variables non-direct on
17905         address-taking.
17906
17907 2009-01-14  Nick Clifton  <nickc@redhat.com>
17908
17909         * ira-conflicts.c: Include addresses.h for the definition of
17910         base_reg_class.
17911         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
17912         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
17913
17914 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17915
17916         PR target/38811
17917         * Makefile.in (ira-lives.o): Add except.h.
17918
17919         * ira-lives.c: Include except.h.
17920         (process_bb_node_lives): Process can_throw_internal.
17921
17922 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
17923
17924         PR rtl-optimization/38774
17925         * combine.c (simplify_set): When undoing cc_use change, don't do
17926         PUT_CODE on the newly created comparison, but instead put back the
17927         old comparison.
17928
17929 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
17930
17931         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
17932         values.  Remove duplicate arm8 entry.
17933
17934 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
17935
17936         PR tree-optimization/38786
17937         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
17938         the SSA_NAME case of expand_scalar_variables_expr.
17939         Set the type of an expression to the type of its assign statement.
17940         (expand_scalar_variables_expr): Also gather the scalar computation
17941         used to index the memory access.  Do not pass loop_p.
17942         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
17943         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
17944         the gimple_stmt_iterator where it inserts new code.
17945         Do not pass loop_p.
17946         (copy_bb_and_scalar_dependences): Do not pass loop_p.
17947         (translate_clast): Update call to copy_bb_and_scalar_dependences.
17948
17949 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
17950
17951         * graphite.h (debug_value): Removed.
17952         * graphite.c (debug_value): Removed.
17953
17954 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
17955
17956         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
17957         ldrd/strd with two 32-bit instructions.
17958
17959 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
17960
17961         * config/arm/arm.c (struct processors): Pass for speed down into
17962         cost helper functions.
17963         (const_ok_for_op): Handle COMPARE and inequality nodes.
17964         (arm_rtx_costs_1): Rewrite.
17965         (arm_size_rtx_costs): Update prototype.
17966         (arm_rtx_costs): Pass speed down to helper functions.
17967         (arm_slowmul_rtx_costs): Rework cost calculations.
17968         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
17969         (arm_9e_rtx_costs): Likewise.
17970
17971 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
17972
17973         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
17974         relocations of local symbols wider than UNITS_PER_WORD are not valid.
17975         (alpha_legitimize_address): Do not split local symbols wider than
17976         UNITS_PER_WORD into HIGH/LO_SUM parts.
17977
17978 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
17979
17980         PR bootstrap/38580
17981         * gcc.c (process_command): Replace call to execvp with calls
17982         to pex_one and exit.
17983
17984 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
17985
17986         PR target/29141
17987         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
17988         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
17989         variant for devices with 3-byte PC.
17990         (__tablejump_elpm__): New.
17991
17992 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
17993
17994         PR c/32041
17995         * c-parser.c (c_parser_postfix_expression): Allow `->' in
17996         offsetof member-designator, handle it as `[0].'.
17997
17998 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17999
18000         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
18001         function when not using named sections on targets with named sections
18002         if branch distance is less than 262132.
18003
18004 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
18005
18006         * combine.c (combine_instructions):  Recompute
18007         optimize_this_for_speed_p  for each BB in the main combine loop.
18008
18009 2009-01-12  Tomas Bily  <tbily@suse.cz>
18010
18011         PR middlend/38385
18012         * tree-loop-distribution.c (prop_phis): New function.
18013         (generate_builtin): Call prop_phis.
18014         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
18015
18016 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
18017
18018         PR tree-optimization/38807
18019         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
18020         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
18021
18022 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
18023
18024         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
18025         subreg of op0 to the original op0.
18026
18027 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
18028
18029         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
18030
18031 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
18032
18033         PR debug/7055
18034         * mips-tfile.c (parse_def): Fix parsing of def strings
18035         starting with digits.
18036
18037 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
18038
18039         PR target/38695
18040         * config/arm/arm.c (arm_is_long_call_p): Don't call
18041         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
18042
18043 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
18044
18045         * regrename.c (regrename_optimize): Fix dumping.
18046         (find_oldest_value_reg): Preserve REG_POINTER.
18047         (copy_hardreg_forward_1): Likewise.
18048
18049 2009-01-09  Diego Novillo  <dnovillo@google.com>
18050
18051         * gimple.h (struct gimple_statement_base) <uid>: Document
18052         the restrictions on its use.
18053         (gimple_uid): Tidy.
18054         (gimple_set_uid): Tidy.
18055
18056 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
18057
18058         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
18059         zero guard even if align_bytes != 0 and count is smaller than
18060         size_needed.
18061
18062 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
18063
18064         PR rtl-optimization/38495
18065         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
18066         (add_range_and_copies_from_move_list): Print all added ranges.
18067         Add ranges to memory optimized destination.
18068
18069 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
18070
18071         PR target/38686
18072         PR target/38708
18073         * config/i386/i386.c (override_options): Reject
18074         -mstringop-strategy=rep_8byte with -m32.
18075         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
18076         to 1.  Do count comparison against epilogue_size_needed at compile
18077         time even when count_exp was constant forced into register.  For
18078         size_needed don't jump to epilogue, instead just avoid aligning
18079         and invoke the body algorithm.  If need_zero_guard, add zero guard
18080         even if count is non-zero, but smaller than size_needed + number of
18081         bytes that could be stored for alignment.
18082         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
18083         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
18084         but smaller than size_needed + number of bytes that could be stored
18085         for alignment.  Compare size_needed with epilogue_size_needed instead
18086         of desired_align - align, don't adjust size_needed, pass
18087         epilogue_size_needed to the epilogue expanders.
18088
18089         PR c/35742
18090         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
18091
18092 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18093
18094         * pa.c (last_address): Change to unsigned.
18095         (update_total_code_bytes): Change argument to unsigned.  Don't
18096         check if insn addresses are set.
18097         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
18098         addresses are not set.
18099         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
18100
18101 2009-01-09  Nick Clifton  <nickc@redhat.com>
18102
18103         * config/sh/symbian.c: Replace uses of DECL_INLINE with
18104         DECL_DECLARED_INLINE_P.
18105
18106 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
18107
18108         PR middle-end/38347
18109         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
18110         GET_MODE (op0) in operand_subword_force calls.
18111
18112         PR middle-end/38771
18113         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
18114         fold_convert arg0 operands to TREE_TYPE (op0) first.
18115
18116 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
18117
18118         * params.def (ira-max-conflict-table-size): Decrease default value
18119         to 1000.
18120
18121 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
18122
18123         PR tree-optimization/37031
18124         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
18125         on parameter_set.
18126         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
18127         allocate it using gc instead of heap, use VEC_quick_push instead of
18128         VEC_safe_push.
18129         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
18130         instead of heap, use VEC_quick_push instead of VEC_safe_push.
18131         * tree-data-ref.h (struct access_matrix): Change matrix to gc
18132         allocated vector from heap allocated.
18133         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
18134         * tree-loop-linear.c (linear_transform_loops): Allocate nest
18135         vector only after perfect_loop_nest_depth call.
18136
18137 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
18138             Jan Sjodin  <jan.sjodin@amd.com>
18139
18140         PR tree-optimization/38559
18141         * graphite.c (debug_value, copy_constraint,
18142         swap_constraint_variables, scale_constraint_variable, ): New.
18143         (get_lower_bound, get_upper_bound): Removed.
18144         (graphite_trans_bb_strip_mine): Clean up this code that works
18145         only for constant number of iterations.  Fully copy upper and
18146         lower bound constraints, not only the constant part of them.
18147         * graphite.h (debug_value): Declared.
18148
18149 2009-01-08  Ira Rosen  <irar@il.ibm.com>
18150
18151         PR tree-optimization/37194
18152         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
18153         Don't add the cost of cost model guard in prologue to scalar
18154         outside cost in case of known number of iterations.
18155
18156 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
18157             Alan Modra  <amodra@bigpond.net.au>
18158
18159         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
18160         non-word-aligned REG+CONST addressing.
18161
18162 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
18163
18164         PR target/38706
18165         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
18166         free_after_compilation when outputting a thunk.
18167         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
18168         Do not call free_after_compilation here.
18169
18170 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
18171
18172         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
18173         (ix86_valid_target_attribute_inner_p): Ditto.
18174
18175 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
18176
18177         PR tree-optimization/38492
18178         PR tree-optimization/38498
18179         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
18180         * tree-chrec.h (scev_is_linear_expression): Declared.
18181         * graphite.c (graphite_cannot_represent_loop_niter): New.
18182         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
18183         (graphite_loop_normal_form): Use gcc_assert.
18184         (scan_tree_for_params): Use CASE_CONVERT.
18185         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
18186         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
18187         Use gcc_assert.  Discard scops that contain unhandled cases.
18188         (build_scop_conditions): Return a boolean status for unhandled cases.
18189         (strip_mine_profitable_p): Print the loop number, not its depth.
18190         (is_interchange_valid): Pass the depth of the loop nest, don't
18191         recompute it wrongly.
18192         (graphite_trans_bb_block): Same.
18193         (graphite_trans_bb_block): Print tentative of loop blocking.
18194         (graphite_trans_scop_block): Do not print that the loop has been
18195         blocked.
18196         (graphite_transform_loops): Do not handle scops that contain condition
18197         scalar phi nodes.
18198
18199 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
18200
18201         AVX Programming Reference (December, 2008)
18202         * config/i386/avxintrin.h (_mm256_stream_si256): New.
18203         (_mm256_stream_pd): Likewise.
18204         (_mm256_stream_ps): Likewise.
18205
18206         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
18207         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
18208         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
18209         (bdesc_special_args): Add __builtin_ia32_movntdq256,
18210         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
18211         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
18212         (ix86_expand_special_args_builtin): Likewise.
18213
18214         * config/i386/sse.md (AVXMODEDI): New.
18215         (avx_movnt<mode>): Likewise.
18216         (avx_movnt<mode>): Likewise.
18217         (<sse>_movnt<mode>): Remove AVX support.
18218         (sse2_movntv2di): Likewise.
18219
18220 2009-01-07  Richard Guenther  <rguenther@suse.de>
18221
18222         PR middle-end/38751
18223         * fold-const.c (extract_muldiv): Remove obsolete comment.
18224         (fold_plusminus_mult_expr): Undo MINUS_EXPR
18225         to PLUS_EXPR canonicalization for the canonicalization.
18226
18227 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
18228
18229         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
18230         hosted cross-compilers generating less efficient code.
18231
18232 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
18233
18234         * function.h (rtl_data): Add a dbr_scheduled_p field.
18235         * reorg.c (dbr_schedule): Set it.
18236         (gate_handle_delay_slots): Check it.
18237         * config/mips/mips.c (mips_base_delayed_branch): Delete.
18238         (mips_reorg): Check flag_delayed_branch instead of
18239         mips_base_delayed_branch.
18240         (mips_override_options): Don't set mips_base_delayed_branch
18241         or flag_delayed_branch.
18242
18243 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
18244
18245         PR rtl-optimization/38426.
18246         * ira.c (ira): Set current_function_is_leaf earlier.
18247
18248 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
18249
18250         PR rtl-optimization/38722
18251         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
18252         too early, only set a flag and modify after last possible
18253         undo_all point.
18254
18255 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
18256
18257         PR c/34252
18258         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
18259         * real.c (decimal_single_format): Correct values of emin and emax.
18260         (decimal_double_format): Ditto.
18261         (decimal_quad_format): Ditto.
18262         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
18263         computation of DECnn_MIN and DECnn_MAX for corrected values of
18264         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
18265         __DECnn_MIN__, and adjust its computation for the corrected value
18266         of emin.
18267
18268 2009-01-06  Jan Hubicka  <jh@suse.cz>
18269
18270         PR target/38744
18271         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
18272
18273 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
18274
18275         * doc/contrib.texi (Contributors): Slightly adjust the end note.
18276         Add Robert Clark to the list of testers.
18277
18278 2009-01-06  Jan Hubicka  <jh@suse.cz>
18279             Kai Tietz  <kai.tietz@onevision.com>
18280
18281         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
18282         * config/i386/i386.c (ix86_expand_call): Add clobbers.
18283
18284 2009-01-06  Jan Hubicka  <jh@suse.cz>
18285             Kai Tietz  <kai.tietz@onevision.com>
18286
18287         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
18288         for w64 ABI.
18289         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
18290         (ix86_nsaved_regs): Count only general purpose regs.
18291         (ix86_nsaved_sseregs): New.
18292         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
18293         to 16 for w64; compute padding and size of sse reg save area.
18294         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
18295         general purpose regs.
18296         (ix86_emit_save_sse_regs_using_mov): New.
18297         (ix86_expand_prologue): Save SSE regs if needed.
18298         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
18299         (ix86_emit_restore_sse_regs_using_mov): New.
18300         (ix86_expand_epilogue): Save SSE regs if needed.
18301
18302 2009-01-06  Jan Hubicka  <jh@suse.cz>
18303             Kai Tietz  <kai.tietz@onevision.com>
18304
18305         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
18306         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
18307         functions when accumulate outgoing args is off.
18308
18309 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
18310
18311         PR bootstrap/38742
18312         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
18313         before using pseudos_have_intersected_live_ranges_p.
18314
18315         * ira-int.h (ira_assert): Always define.
18316
18317 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
18318
18319         AVX Programming Reference (December, 2008)
18320         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
18321         (_mm256_permute2_pd): Likewise.
18322         (_mm_permute2_ps): Likewise.
18323         (_mm256_permute2_ps): Likewise.
18324         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
18325         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
18326
18327         * config/i386/i386.c (ix86_builtins): Remove
18328         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
18329         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
18330         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
18331         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
18332         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
18333         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
18334         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
18335         __builtin_ia32_vpermil2ps256.
18336         (ix86_init_mmx_sse_builtins): Updated.
18337         (ix86_expand_args_builtin): Likewise.
18338
18339 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18340
18341         * pa.c (output_call): Relocate non-jump insns in the delay slot of
18342         long absolute calls when generating PA 2.0 code.
18343
18344 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
18345
18346         PR rtl-optimization/38583
18347         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
18348
18349         * params.def (ira-max-conflict-table-size): New.
18350
18351         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
18352
18353         * ira.h (ira_conflicts_p): New external definition.
18354
18355         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
18356         table.  Report this.  Return result of building.
18357         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
18358         building conflict table.
18359
18360         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
18361         (ira_color): Use ira_conflicts_p.
18362
18363         * global.c: Include ira.h.
18364         (pseudo_for_reload_consideration_p, build_insn_chain): Use
18365         ira_conflicts_p.
18366
18367         * Makefile.in (global.o): Add ira.h.
18368
18369         * ira-build.c (mark_all_loops_for_removal,
18370         propagate_some_info_from_allocno): New.
18371         (remove_unnecessary_allocnos): Call
18372         propagate_some_info_from_allocno.
18373         (remove_low_level_allocnos): New.
18374         (remove_unnecessary_regions): Add parameter.  Call
18375         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
18376         parameter to remove_unnecessary_regions.
18377         (ira_build): Remove all regions but root if the conflict table was
18378         not built.  Update conflict hard regs for allocnos crossing calls.
18379
18380         * ira.c (ira_conflicts_p): New global.
18381         (ira): Define and use ira_conflicts_p.
18382
18383         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
18384         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
18385         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
18386
18387 2009-01-06  Ben Elliston  <bje@au.ibm.com>
18388
18389         * gengtype-lex.l (YY_NO_INPUT): Define.
18390
18391 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18392
18393         PR c/34911
18394         * c-common.c (handle_vector_size_attribute): Also reject
18395         BOOLEAN_TYPE types.
18396
18397 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
18398
18399         PR tree-optimization/38492
18400         * graphite.c (rename_map_elt, debug_rename_elt,
18401         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
18402         rename_map_elt_info, eq_rename_map_elts,
18403         get_new_name_from_old_name, bb_in_sese_p): Moved around.
18404         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
18405         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
18406         (sese_build_livein_liveouts): New.
18407         (new_sese, free_sese): New.
18408         (new_scop): Call new_sese.
18409         (free_scop): Call free_sese.
18410         (rename_variables_from_edge, rename_phis_end_scop): Removed.
18411         (register_old_new_names): Renamed register_old_and_new_names.
18412         (register_scop_liveout_renames, add_loop_exit_phis,
18413         insert_loop_close_phis, struct igp,
18414         default_liveout_before_guard, add_guard_exit_phis,
18415         insert_guard_phis, copy_renames): New.
18416         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
18417         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
18418         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
18419         (scop_adjust_phis_for_liveouts): New.
18420         (gloog): Call scop_adjust_phis_for_liveouts.
18421
18422         * graphite.h (struct sese): Documented.  Added fields liveout,
18423         num_ver and livein.
18424         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
18425         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
18426         (struct scop): Added field liveout_renames.
18427         (SCOP_LIVEOUT_RENAMES): New.
18428
18429 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
18430
18431         PR tree-optimization/38510
18432         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
18433         (translate_clast): Call recompute_all_dominators before
18434         graphite_verify.
18435         (gloog): Call recompute_all_dominators before graphite_verify.
18436
18437 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
18438             Jan Sjodin  <jan.sjodin@amd.com>
18439
18440         PR tree-optimization/38500
18441         * graphite.c (create_sese_edges): Call fix_loop_structure after
18442         splitting blocks.
18443
18444 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
18445
18446         * config.gcc: Add m32r*-*-rtems*.
18447         * config/m32r/rtems.h: New file.
18448
18449 2009-01-05  Ben Elliston  <bje@au.ibm.com>
18450
18451         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
18452         (.po.pox): Likewise.
18453         (po/gcc.pot): Likewise.
18454
18455 2009-01-04  David S. Miller  <davem@davemloft.net>
18456
18457         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
18458         (STARTING_FRAME_OFFSET): Always set to zero.
18459
18460 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
18461
18462         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
18463         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
18464         fixed-point types, and vectors of the same.
18465
18466 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
18467
18468         * config/mips/sync.md (*mb_barrier): Rename to...
18469         (*memory_barrier): ...this.
18470
18471 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
18472
18473         * doc/extend.texi (Function Attributes): Move @cindex after @item
18474         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
18475         and put in alphabetical order. Fix 'target' name and put in order.
18476         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
18477         typos.
18478
18479 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
18480
18481         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
18482         (memory_barrier): Expand as unspec instead of unspec_volatile.
18483         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18484         (*memory_barrier): Define as unspec instead of unspec_volatile.
18485         Use (match_dup 0) as input operand.
18486
18487         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
18488         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
18489         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
18490         scratch register.  Remove operand 1.
18491         (*stbar): Define as unspec instead of unspec_volatile.
18492         Use (match_dup 0) as input operand, remove (const_int 8).
18493         (*membar): Define as unspec instead of unspec_volatile.
18494         Use (match_dup 0) as input operand, remove input operand 2.
18495
18496         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
18497         (memory_barrier): Expand as unspec instead of unspec_volatile.
18498         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18499         (*memory_barrier): Define as unspec instead of unspec_volatile.
18500         Use (match_dup 0) as input operand.
18501
18502         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
18503         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18504         Set volatile flag on operand 0.
18505         (*memory_barrier): New insn pattern.
18506
18507         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
18508         insn operands.
18509         (*memory_barrier): Use (match_dup 0) as input operand.
18510
18511         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
18512         Remove mem:BLK from insn operands.  Use Pmode scratch register.
18513         Set volatile flag on operand 0.
18514         (*mb_internal): New insn pattern.
18515
18516         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
18517
18518 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
18519
18520         PR middle-end/38586
18521         * function.c (struct temp_slot): Move to the section of the file
18522         that deals with temp slots.  Remove field 'address'.
18523         (temp_slot_address_table): New hash table of address -> temp slot.
18524         (struct temp_slot_address_entry): New struct, items for the table.
18525         (temp_slot_address_compute_hash, temp_slot_address_hash,
18526         temp_slot_address_eq, insert_temp_slot_address): Support functions
18527         for the new table.
18528         (find_temp_slot_from_address): Rewrite to use the new hash table.
18529         (remove_unused_temp_slot_addresses): Remove addresses of temp
18530         slots that have been made available.
18531         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
18532         worker function for remove_unused_temp_slot_addresses.
18533         (assign_stack_temp_for_type): Don't clear the temp slot address list.
18534         Add the temp slot address to the address -> temp slot map.
18535         (update_temp_slot_address): Update via insert_temp_slot_address.
18536         (free_temp_slots): Call remove_unused_temp_slot_addresses.
18537         (pop_temp_slots): Likewise.
18538         (init_temp_slots): Allocate the address -> temp slot map, or empty
18539         the map if it is already allocated.
18540         (prepare_function_start): Initialize temp slot processing.
18541
18542 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
18543
18544         PR middle-end/38584
18545         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
18546         Calculate the size of all stack vars assuming no packing of stack
18547         vars will happen, replacing a quadratic algorithm with a linear one.
18548
18549 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
18550
18551         PR target/38707
18552         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
18553         can't be used.
18554
18555 2009-01-03  Diego Novillo  <dnovillo@google.com>
18556
18557         * doc/contrib.texi: Update contributions.
18558
18559 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
18560
18561         PR c++/38705
18562         * builtins.c (fold_builtin_memory_op): Give up if either operand
18563         is volatile.  Set srctype or desttype to non-qualified version
18564         of the other type.
18565
18566         PR c/38700
18567         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
18568         and FUNCTION_DECLs.
18569
18570 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
18571
18572         PR rtl-optimization/35805
18573         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
18574         problem if fast dce is able to remove any instructions.
18575         * dce.c (dce_process_block): Fix dump message.
18576
18577 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
18578
18579         PR 33649
18580         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
18581
18582 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
18583
18584         PR middle-end/38690
18585         * tree-flow.h (op_code_prio, op_prio): New prototypes.
18586         * tree-pretty-print.c (op_code_prio): New function.
18587         (op_prio): No longer static.  Use op_code_prio.
18588         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
18589         Use op_prio and op_code_prio to determine if () should be
18590         printed around operand(s) or not.
18591
18592         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
18593         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
18594         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
18595         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
18596         pp_character instead of pp_string for single letter printing.
18597
18598 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
18599
18600         * doc/extend.texi: Fix '#pragma GCC option' typo.
18601
18602 2009-01-02  Richard Guenther  <rguenther@suse.de>
18603
18604         * doc/install.texi (--enable-checking): Mention different
18605         default for stage1.
18606         (--enable-stage1-checking): Document.
18607
18608 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
18609
18610         PR middle-end/30142
18611         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
18612         case to be an error.
18613
18614 2009-01-02  Ben Elliston  <bje@au.ibm.com>
18615
18616         * config/fp-bit.h (pack_d): Constify argument.
18617         * config/fp-bit.c (makenan): Constify return type. Remove casts.
18618         (isnan): Constify argument.
18619         (isinf): Likewise.
18620         (iszero): Likewise.
18621         (pack_d): Likewise.
18622         (_fpadd_parts): Constify return type.
18623         (_fpmul_parts): Likewise.
18624         (_fpdiv_parts): Likewise.
18625
18626 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
18627
18628         PR c/36489
18629         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
18630         warn about overwriting initializer with side-effects or
18631         -Woverride-init if !IMPLICIT.
18632         (output_init_element): Likewise.  Pass IMPLICIT down to
18633         add_pending_init.
18634         (process_init_element): Add IMPLICIT argument.  Pass it down
18635         to output_init_element.
18636         (push_init_element, pop_init_level, set_designator): Adjust
18637         process_init_element callers.
18638         (set_nonincremental_init, set_nonincremental_init_from_string):
18639         Adjust add_pending_init callers.
18640         (output_pending_init_elements): Adjust output_init_element callers.
18641         * c-tree.h (process_init_element): Adjust prototype.
18642         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
18643         process_init_element callers.
18644
18645 \f
18646 Copyright (C) 2009 Free Software Foundation, Inc.
18647
18648 Copying and distribution of this file, with or without modification,
18649 are permitted in any medium without royalty provided the copyright
18650 notice and this notice are preserved.