OSDN Git Service

* config/arc/arc.h (LIB_SPEC): Define.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
2
3         * config/arc/arc.h (LIB_SPEC): Define.
4         * config.gcc (arc-*-elf*): Don't use svr4.h.
5
6 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
7
8         * config/sh/elf.h (LIB_SPEC): Define.
9         * config.gcc (sh-*-elf* | sh[12346l]*-*-elf* | sh-*-symbianelf* |
10         sh[12346l]*-*-symbianelf* | sh-*-linux* | sh[2346lbe]*-*-linux* |
11         sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* |
12         sh5l*-*-netbsd* | sh64-*-netbsd* | sh64l*-*-netbsd*, sh-*-rtems*,
13         sh-wrs-vxworks): Don't use svr4.h.
14
15 2010-12-14  Jan Hubicka  <jh@suse.cz>
16
17         PR lto/46940
18         PR lto/44463
19         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Construct nodes
20         for aliases when they are used.
21
22 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
23
24         * config.gcc (sparc-*-elf*, sparc-*-rtems*, sparc-*-linux*,
25         sparc-*-netbsdelf*, sparc*-*-solaris2*, sparc-wrs-vxworks,
26         sparc64-*-elf*, sparc64-*-rtems*, sparc64-*-linux*,
27         sparc64-*-netbsd*, sparc64-*-openbsd*): Don't use svr4.h.
28
29 2010-12-14  Thomas Klein  <th.r.klein@web.de>
30
31         * config/arm/arm.c (arm_expand_prologue): Report the static stack
32         size if -fstack-usage is used.
33         (thumb1_expand_prologue): Likewise.
34
35 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
36
37         PR debug/46885
38         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Use gsi_last_bb
39         instead of gsi_last_nondebug_bb if bump_in_latch.
40
41         PR tree-optimization/46909
42         * gimple-fold.c (and_var_with_comparison_1): Save partial
43         result even in the is_and case, if both partial results
44         are the same, return it.
45         (or_var_with_comparison_1): Use is_or predicate instead of
46         innercode == TRUTH_OR_EXPR test.  Save partial result
47         even in the is_or case, if both partial results are the
48         same, return it.  In the !is_or case when both partial
49         results are the same, return the partial result instead
50         of boolean_true_node.
51
52 2010-12-14  Jan Hubicka  <jh@suse.cz>
53
54         PR middle-end/46667
55         * varasm.c (assemble_start_function): Do not call resolve_unique_section.
56         * cfgexpand.c (gimple_expand_cfg): Resolve it here.
57
58 2010-12-14  Alexander Monakov  <amonakov@ispras.ru>
59
60         PR rtl-optimization/46875
61         * sched-vis.c (print_pattern): Dump "sequence" for ADDR_VECs.
62         * sel-sched-ir.c (bb_has_removable_jump_to_p): Forbid table jumps.
63
64 2010-12-14  Kaushik Phatak <kaushik.phatak@kpitcummins.com>
65
66         * config/h8300/h8300.md (define_split) : Add condition for
67         "and with single_zero" splitter to handle 16-bit const operands.
68         * config/h8300/h8300.md (define_split) : Add condition for
69         "ior with single_one" splitter to handle 16-bit const operands.
70         * config/h8300/h8300.md (define_split) : Add condition for
71         "xor with single_one" splitter to handle 16-bit const operands. 
72         * testsuite/gcc.dg/h8300-bit-insn-ice.c: New.
73
74 2010-12-13  Jan Hubicka  <jh@suse.cz>
75
76         PR middle-end/45388
77         * ipa.c (cgraph_build_static_cdtor_1): Break out from ... ; add FINAL parameter.
78         (cgraph_build_static_cdtor): ... here.
79         (build_cdtor): Use cgraph_build_static_cdtor_1.
80
81 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
82
83         * config/m32c/m32c.h (ENDFILE_SPEC, LINK_SPEC, SIZE_TYPE,
84         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
85         * config.gcc (m32c-*-rtems*, m32c-*-elf*): Don't use svr4.h.
86
87 2010-12-14  Bernd Schmidt  <bernds@codesourcery.com>
88
89         PR rtl-optimization/44374
90         Reapply patch with fixes.
91         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
92         * df-core.c (df_set_bb_dirty): Set it.
93         * ifcvt.c (find_memory): Remove function.
94         (dead_or_predicable): Use can_move_insns_across.
95         * df.h (can_move_insns_across): Declare function.
96         * cfgcleanup.c (block_was_dirty): New static variable.
97         (flow_find_head_matching_sequence): Test for epilogue notes.
98         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
99         than df_get_bb_dirty.
100         (try_head_merge_bb): New static function.
101         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
102         is set.
103         * df-problems.c: Include "target.h"
104         (df_simulate_find_uses): New static function.
105         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
106         (find_memory, find_memory_store): New static functions.
107         (can_move_insns_across): New function.
108         * Makefile.in (df-problems.o): Update dependencies.
109
110 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
111
112         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
113         (DBX_REGISTER_NUMBER): Undefine.
114         * config/xtensa/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
115         (DBX_REGISTER_NUMBER): Undefine.
116         * config.gcc (xtensa*-*-elf*, xtensa*-*-linux*): Don't use svr4.h.
117
118 2010-12-13  Jack Howarth <howarth@bromo.med.uc.edu>
119             Joseph Myers <joseph@codesourcery.com>
120
121         PR bootstrap/46650
122         * system.h: Include cstring for cxx bootstrap.
123
124 2010-12-13  Jakub Jelinek  <jakub@redhat.com>
125
126         PR lto/46879
127         * lto-streamer-out.c (output_gimple_stmt): Never replace first
128         GIMPLE_DEBUG argument with MEM_REF.
129
130         PR debug/46867
131         * var-tracking.c (emitted_notes, string_pointer_flags): Removed.
132         (emit_note_insn_var_location): Remove ENABLE_RTL_CHECKING verification.
133         (vt_emit_notes): Don't initialize and destroy emitted_notes.
134
135 2010-12-13  Nathan Froyd  <froydnj@codesourcery.com>
136
137         PR target/46040
138         * config.gcc (arm*-*-linux-*eabi): Use bpabi-lib.h.
139         (arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.
140
141 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
142
143         * config/v850/v850.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
144         WCHAR_TYPE_SIZE): Define.
145         * config.gcc (v850e1-*-*, v850e-*-*, v850-*-*): Don't use svr4.h.
146
147 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
148
149         * config.gcc (s390-*-linux*, s390x-*-linux*, s390x-ibm-tpf*):
150         Don't use svr4.h.
151
152 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
153
154         * config/mn10300/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
155         WCHAR_TYPE_SIZE): Undefine.
156         * config/mn10300/mn10300.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
157         WCHAR_TYPE_SIZE): Define.
158         * config.gcc (mn10300-*-*): Don't use svr4.h.
159
160 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
161
162         * config/m68k/linux.h (DBX_REGISTER_NUMBER): Undefine and
163         redefine.
164         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
165         * config.gcc (m68k-*-uclinux*, m68k-*-linux*): Don't use svr4.h.
166
167 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
168
169         PR debug/46576
170         * jump.c (mark_all_labels): Skip debug insns.
171
172 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
173
174         PR debug/46782
175         * cfgcleanup.c (try_forward_edges): Skip debug insns.
176
177 2010-12-12  Jan Hubicka  <jh@suse.cz>
178             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
179
180         * varasm.c (default_function_section): Check flag_reorder_functions
181         and targetm.have_named_sections.
182         * config/darwin.c (darwin_function_section): Check
183         flag_reorder_functions.
184
185 2010-12-12  Finn Thain  <fthain@telegraphics.com.au>
186
187         PR target/46179
188         * config/m68k/m68k.c (handle_move_double): Insert calls to
189         m68k_final_prescan_insn to clean up @TLS operand syntax.
190
191 2010-12-10  Sebastian Pop  <sebastian.pop@amd.com>
192
193         PR tree-optimization/43023
194         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
195         Removed.
196         (stores_zero_from_loop): Call stmt_stores_zero.
197         * tree-data-ref.h (stmt_stores_zero): New.
198         * tree-loop-distribution.c (generate_memset_zero): Do not return a
199         boolean.  Call gcc_assert on stride_of_unit_type_p.
200         (generate_builtin): Call stmt_stores_zero.
201         (rdg_flag_all_uses): Removed.
202         (rdg_flag_similar_memory_accesses): Removed.
203         (build_rdg_partition_for_component): Removed parameter
204         other_stores.  Removed call to rdg_flag_similar_memory_accesses.
205         (can_generate_builtin): New.
206         (similar_memory_accesses): New.
207         (fuse_partitions_with_similar_memory_accesses): New.
208         (rdg_build_partitions): Call
209         fuse_partitions_with_similar_memory_accesses.
210
211 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
212
213         PR rtl-optimization/46804
214         * regmove.c (optimize_reg_copy_3): Look for REG_EQUAL note
215         on the setter of src_reg rather than on insn.  If it is
216         equal to the setter's original SET_SRC, replace it with its
217         zero or sign extension instead of dropping it.
218
219 2010-12-10  Richard Guenther  <rguenther@suse.de>
220
221         PR lto/46808
222         * lto-symtab.c (lto_symtab_merge_decls_2): Avoid type warnings
223         after errors.
224         (lto_symtab_merge_decls_1): Adjust.
225
226 2010-12-10  Dave Korn  <dave.korn.cygwin@gmail.com>
227
228         PR middle-end/46674
229         PR lto/43157
230         * target.def (mangle_assembler_name): New target asm_out hook.
231         * targhooks.c (default_mangle_assembler_name): Add default hook
232         implementation.
233         * targhooks.h (default_mangle_assembler_name): Add prototype.
234         * lto-symtab.c (lto_symtab_register_decl): Use new hook when
235         processing DECL_ASSEMBLER_NAMEs for lto symtabs.
236         (lto_symtab_get_resolution): Likewise.
237         (lto_cgraph_replace_node): Likewise.
238         (lto_symtab_prevailing_decl): Likewise.
239         * lto-streamer-out.c (write_symbol): Likewise.
240         * doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
241         * doc/tm.texi: Regenerate.
242         * config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
243         point at i386_pe_mangle_assembler_name.
244         * config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
245         * config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
246         prototype.
247
248 2010-12-10  Nathan Froyd  <froydnj@codesourcery.com>
249
250         * c-typeck.c (readonly_error): Delete.
251
252 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
253
254         PR rtl-optimization/46865
255         * rtl.c (rtx_equal_p_cb, rtx_equal_p): For last operand of
256         ASM_OPERANDS and ASM_INPUT if integers are different,
257         call locator_eq.
258         * jump.c (rtx_renumbered_equal_p): Likewise.
259
260         PR tree-optimization/46864
261         * tree-ssa-loop-im.c (loop_suitable_for_sm): Return false even
262         when there are EDGE_EH exit edges.
263
264 2010-12-10  Tobias Burnus  <burnus@net-b.de>
265
266         PR fortran/46540
267         * configure.ac: Handle --disable-libquadmath-support.
268         * doc/install.texi: Document --disable-libquadmath and
269         --disable-libquadmath-support
270         * configure: Regenerate.
271         * config.in: Regenerate.
272
273 2010-12-10  Jack Howarth  <howarth@bromo.med.uc.edu>
274             Iain Sandoe  <iains@gcc.gnu.org>
275
276         PR 43751/target
277         * config/darwin9.h (DSYMUTIL_SPEC): Add fortran source types.
278
279 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
280
281         * config/rs6000/rs6000.c
282         (rs6000_darwin64_record_arg_advance_recurse): Name register increment
283         explicitly.  (rs6000_darwin64_record_arg_recurse): Make sure we split
284         long doubles when we run out of regs.   Also flag that this requires
285         stack and therefore cannot be returned by value.
286         (rs6000_darwin64_record_arg): Update comment.
287         (rs6000_function_value): Likewise.
288
289 2010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
290
291         * c-parser.c (c_parser_objc_class_definition): Recognize
292         Objective-C 2.0 class extensions.
293
294 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
295
296         * config/darwin.c: Remove c-tree.h and c-lang.h
297         * config/t-darwin: Remove dependencies on c-tree.h and c-lang.h.
298
299 2010-12-10  Joern Rennecke  <amylaar@spamcop.net>
300
301         PR target/46881
302         * doc/tm.texi: Regenerate.
303         * target.def: Fix "preferred" spelling.  Refer to rclass by its
304         exact name.
305         * config/arm/arm.c (arm_preferred_rename_class): Rename parameter class
306         to rclass.
307
308 2010-12-09  Paul Koning  <ni1d@arrl.net>
309
310         * config/pdp11/pdp11-protos.h (output_move_double,
311         output_move_quad): Delete.
312         (output_move_multiple, pdp11_expand_operands): New functions.
313         (pdp11_action, pdp11_partorder): New enums.
314         * config/pdp11/pdp11.md (movdi, movsi, movdf, movsf): Use
315         output_move_multiple.
316         (adddi3, subdi3, negdi2): New patterns.
317         (addsi3, subsi3, negsi2): Use pdp11_expand_operands.
318         (abshi2): Delete.
319         (neghi2, negqi2): Use PDPint iterator.
320         * config/pdp11/pdp11.c (find_addr_reg, output_move_double,
321         output_move_quad): Delete.
322         (pdp11_expand_operands, output_move_multiple): New functions.
323
324 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
325
326         * config/vax/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
327         * config.gcc (vax-*-linux*): Don't use svr4.h.
328
329 2010-12-09  Nathan Froyd  <froydnj@codesourcery.com>
330
331         * c-typeck.c (build_indirect_ref): Call invalid_indirection_error.
332
333 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
334
335         * doc/extend.texi (Attribute Syntax): Correct description of
336         attributes in pointer declarators.
337
338 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
339
340         * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Undefine.
341         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux*,
342         mips*-*-linux*, mips-wrs-vxworks): Don't use svr4.h.
343
344 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
345
346         * config/mep/mep.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
347         WCHAR_TYPE_SIZE): Define.
348         * config.gcc (mep-*-*): Don't use svr4.h.
349
350 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
351
352         * config/mcore/mcore.h (PTRDIFF_TYPE, WCHAR_TYPE,
353         WCHAR_TYPE_SIZE): Define.
354         * config/svr3.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
355         WCHAR_TYPE_SIZE): Don't define.
356         * config.gcc (mcore-*-elf): Don't use svr4.h.
357
358 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
359
360         * config.gcc (m32r-*-elf*, m32rle-*-elf*, m32r-*-rtems*,
361         m32r-*-linux*, m32rle-*-linux*): Don't use svr4.h.
362
363 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
364
365         * config/iq2000/iq2000.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
366         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
367         * config.gcc (iq2000*-*-elf*): Don't use svr4.h.
368
369 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
370
371         * config.gcc (ia64*-*-linux*, ia64*-*-hpux*): Don't use svr4.h.
372
373 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
374
375         * config/pa/pa32-linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
376         * config.gcc (hppa*64*-*-linux*, hppa*-*-linux*): Don't use
377         svr4.h.
378
379 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
380
381         * config/moxie/moxie.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
382         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
383         * config/moxie/rtems.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
384         WCHAR_TYPE, WCHAR_TYPE_SIZE): Undefine.
385         * config.gcc (moxie-*-elf, moxie-*-uclinux*): Don't use svr4.h.
386
387 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
388
389         * config/frv/frv.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
390         WCHAR_TYPE_SIZE): Define.
391         * config.gcc (frv-*-elf, frv-*-*linux*): Don't use svr4.h.
392
393 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
394
395         * config/fr30/fr30.h (LIB_SPEC, LINK_SPEC, SIZE_TYPE,
396         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
397         * config.gcc (fr30-*-elf): Don't use svr4.h.
398
399 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
400
401         * config/cris/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
402         * config.gcc (crisv32-*-linux* | cris-*-linux*): Don't use svr4.h.
403
404 2010-12-09  Richard Guenther  <rguenther@suse.de>
405
406         PR middle-end/46844
407         * gimple-fold.c (canonicalize_constructor_val): Canonicalize
408         addresses.
409
410 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
411
412         * config/i386/netware.h (TARGET_POSIX_IO): Define.
413         * config/i386/nto.h (TARGET_POSIX_IO): Define.
414         * config/ia64/hpux.h (TARGET_POSIX_IO): Define.
415         * config/moxie/moxie.h (TARGET_POSIX_IO): Don't undefine.
416         * config/openbsd.h (TARGET_POSIX_IO): Define.
417         * config/rtems.h (TARGET_POSIX_IO): Define.
418         * config/sh/embed-elf.h (TARGET_POSIX_IO): Don't undefine.
419         * config/sol2.h (TARGET_POSIX_IO): Define.
420         * config/svr4.h (TARGET_POSIX_IO): Don't define.
421         * config/vxworksae.h (TARGET_POSIX_IO): Define.
422
423 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
424
425         * config/i386/nto.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
426         * config/ia64/hpux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
427         Define.
428         * config/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
429         undefine.
430         * config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
431         undefine.
432         * config/mips/netbsd.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
433         Don't undefine.
434         * config/rs6000/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
435         Don't undefine.
436         * config/rs6000/linux64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
437         Don't undefine.
438         * config/sol2.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
439         * config/sparc/netbsd-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
440         Don't undefine.
441         * config/sparc/openbsd64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
442         Don't undefine.
443         * config/sparc/sp64-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
444         Don't undefine.
445         * config/svr4.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
446         define.
447         * config/xtensa/elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
448         undefine.
449
450 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
451
452         * config/ia64/hpux.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
453         non-GNU assembler.
454         * config/m68k/netbsd-elf.h (AS_NEEDS_DASH_FOR_PIPED_INPUT):
455         Remove.
456         * config/m68k/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
457         * config/mips/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
458         * config/sol2.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
459         non-GNU assembler.
460         * config/sparc/sparc.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
461         * config/svr4.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
462
463 2010-12-09  Martin Jambor  <mjambor@suse.cz>
464
465         * ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the
466         zero is the first phi parameter.
467
468 2010-12-09  Martin Jambor  <mjambor@suse.cz>
469
470         * ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type.
471         * ipa-prop.c (ipa_modify_call_arguments): Use it.
472         * tree-sra.c (splice_param_accesses): Test that all accesses have the
473         same alias reference type.
474         (turn_representatives_into_adjustments): Set alias_ptr_type of the
475         adjustment.
476
477 2010-12-09  Martin Jambor  <mjambor@suse.cz>
478
479         PR middle-end/46734
480         * tree-sra.c (splice_param_accesses): Check that there are not
481         multiple ADDRESSABLE types.
482
483 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
484
485         * config/arc/arc.h (ASM_SPEC): Remove %{v}.
486         * config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
487         * config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
488         * config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
489         * config/frv/frv.h (ASM_SPEC): Remove %{v}.
490         * config/i386/linux.h (ASM_SPEC): Remove %{v}.
491         * config/i386/linux64.h (ASM_SPEC): Remove %{v}.
492         * config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
493         * config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
494         * config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
495         * config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
496         * config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
497         * config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
498         * config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
499         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
500         * config/mips/mips.h (ASM_SPEC): Remove %{v}.
501         * config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
502         * config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
503         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
504         * config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
505         * config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
506         * config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
507         * config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
508         * config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
509         * config/xtensa/linux.h (ASM_SPEC): Remove %{v}.
510
511 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
512
513         * config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
514         * config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
515         * config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not
516         %{r*:}.
517         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not
518         %{r*:}.
519         * config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
520         * config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.
521
522 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
523
524         * config/alpha/freebsd.h (LINK_SPEC): Don't use
525         %{!dynamic-linker:}.
526         * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
527         * config/arm/freebsd.h (LINK_SPEC): Likewise.
528         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
529         * config/bfin/linux.h (LINK_SPEC): Likewise.
530         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
531         * config/frv/linux.h (LINK_SPEC): Likewise.
532         * config/i386/freebsd.h (LINK_SPEC): Likewise.
533         * config/i386/freebsd64.h (LINK_SPEC): Likewise.
534         * config/i386/linux.h (LINK_SPEC): Likewise.
535         * config/i386/linux64.h (LINK_SPEC): Likewise.
536         * config/i386/openbsdelf.h (LINK_SPEC): Likewise.
537         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
538         * config/ia64/linux.h (LINK_SPEC): Likewise.
539         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
540         * config/m32r/linux.h (LINK_SPEC): Likewise.
541         * config/m68k/linux.h (LINK_SPEC): Likewise.
542         * config/microblaze/linux.h (LINK_SPEC): Likewise.
543         * config/mips/linux.h (LINK_SPEC): Likewise.
544         * config/mips/linux64.h (LINK_SPEC): Likewise.
545         * config/mips/openbsd.h (LINK_SPEC): Likewise.
546         * config/mn10300/linux.h (LINK_SPEC): Likewise.
547         * config/netbsd-elf.h (LINK_SPEC): Likewise.
548         * config/pa/pa-linux.h (LINK_SPEC): Likewise.
549         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
550         LINK_OS_LINUX_SPEC64): Likewise.
551         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
552         LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC):
553         Likewise.
554         * config/s390/linux.h (LINK_SPEC): Likewise.
555         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
556         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
557         * config/sparc/linux.h (LINK_SPEC): Likewise.
558         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
559         LINK_SPEC): Likewise.
560         * config/sparc/openbsd64.h (LINK_SPEC): Likewise.
561         * config/vax/linux.h (LINK_SPEC): Likewise.
562         * config/xtensa/linux.h (LINK_SPEC): Likewise.
563
564 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
565
566         * config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
567         * config/frv/frv.h (ASM_SPEC): Likewise.
568         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
569         * config/i386/sol2.h (ASM_SPEC): Likewise.
570         * config/m68k/linux.h (ASM_SPEC): Likewise.
571         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
572         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
573         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
574         * config/sol2.h (ASM_SPEC): Likewise.
575         * config/sparc/linux.h (ASM_SPEC): Likewise.
576         * config/sparc/linux64.h (ASM_SPEC): Likewise.
577         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
578         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
579         * config/svr4.h (SVR4_ASM_SPEC): Likewise.
580
581 2010-12-09  Richard Guenther  <rguenther@suse.de>
582
583         * reginfo.c (struct subregs_of_mode_node): Remove.
584         (subregs_of_mode): Likewise.
585         (som_hash): Likewise.
586         (som_eq): Likewise.
587         (invalid_mode_changes): New bitmap.
588         (record_subregs_of_mode): Get subregs_of_mode argument.
589         Fill in invalid_mode_changes bitmap.
590         (find_subregs_of_mode): Get subregs_of_mode argument and pass
591         it through.
592         (init_subregs_of_mode): Adjust.
593         (finish_subregs_of_mode): Likewise.
594         (invalid_mode_change_p): Query invalid_mode_changes bitmap.
595
596 2010-12-09  Richard Guenther  <rguenther@suse.de>
597
598         * ira.c (ira): Do not call finish_subregs_of_mode.
599         * ira-costs.c (finish_costs): Call finish_subregs_of_mode.
600
601 2010-12-09  Richard Guenther  <rguenther@suse.de>
602
603         * rtl.h (invalid_mode_change_p): Adjust prototype.
604         * reginfo.c (invalid_mode_change_p): Remove from argument.
605         * ira-costs.c (print_allocno_costs): Adjust callers.
606         (find_costs_and_classes): Likewise.
607
608 2010-12-09  Jakub Jelinek  <jakub@redhat.com>
609
610         * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
611         locg and stocg even in comment.
612         (sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.
613
614         PR target/41082
615         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
616         instead of stve*x.
617         (altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
618         of operand 0.
619         * config/rs6000/altivec.md (VI_scalar): New mode attr.
620         (altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
621         vector mode for operand 0, put operand 1 into UNSPEC.
622
623 2010-12-09  Yao Qi  <yao@codesourcery.com>
624
625         * config/arm/arm.c (arm_preferred_rename_class): Implement targethook
626         PREFERRED_RENAME_CLASS.
627
628 2010-12-08  Ian Lance Taylor  <iant@google.com>
629
630         * doc/sourcebuild.texi (Front End): Remove reference to
631         snapshot-README and snapshot-index.html.
632
633 2010-12-08  Ian Lance Taylor  <iant@google.com>
634
635         * doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
636         to update_web_docs_svn.
637         (Front End): Likewise.
638
639 2010-12-08  Iain Sandoe <iains@gcc.gnu.org>
640
641         gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
642         x86_64-*-darwin* to with_cpu:-core2.
643         gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
644         with movd for darwin assembler.
645         gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
646         (*vec_concatv2di_rex64_sse): Ditto.
647
648 2010-12-08  Richard Guenther  <rguenther@suse.de>
649             Sebastian Pop  <sebastian.pop@amd.com>
650
651         PR tree-optimization/45230
652         PR tree-optimization/45231
653         PR tree-optimization/45370
654         * sese.c (rename_uses): Returns a bool.  Call
655         recompute_tree_invariant_for_addr_expr only on the RHS of a
656         GIMPLE_ASSIGN.
657         (graphite_copy_stmts_from_block): Call fold_stmt_inplace when
658         rename_uses returns true.
659         * tree-ssa-copy.c (replace_exp): Add a comment about calling
660         fold_stmt_inplace after replace_exp.
661
662 2010-12-08  Mike Stump  <mikestump@comcast.net>
663
664         PR debug/46749
665         * config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
666         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
667         * config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
668         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
669         * collect2.c (post_ld_pass): Add.
670         (process_args): Add.
671         (maybe_run_lto_and_relink): Call post_ld_pass after ld.
672         (main): Likewise.  Call process_args.
673
674 2010-12-08  Jakub Jelinek  <jakub@redhat.com>
675
676         PR middle-end/46844
677         * regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg
678         parameter.
679
680 2010-12-08  Richard Earnshaw  <rearnsha@arm.com>
681
682         PR target/46631
683         * arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
684         into a 16-bit instruction.
685
686 2010-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
687
688         PR middle-end/42694
689         * builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
690         where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
691         instruction, but do optimize if y is 0.5 or 1./3. since that
692         changes an expensive call into a cheaper one.
693
694 2010-12-08  Richard Guenther  <rguenther@suse.de>
695
696         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
697         instead of a division to divide by BITS_PER_UNIT.
698
699 2010-12-08  Richard Guenther  <rguenther@suse.de>
700
701         * gimplify.c (gimple_tree_eq): Assert hashes are equal only
702         when checking is enabled.
703
704 2010-12-07  Andrey Belevantsev  <abel@ispras.ru>
705
706         PR target/43603
707         * haifa-sched.c (sched_create_recovery_edges): Update
708         dominator info.
709         * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
710         after deleting an empty block.
711         (tidy_control_flow): Also verify dominators.
712         (sel_remove_bb): Update dominator info after removing a block.
713         (sel_redirect_edge_and_branch_force): Assert that no unreachable
714         blocks will be created. Update dominator info.
715         (sel_redirect_edge_and_branch): Update dominator info when
716         basic blocks do not become unreachable.
717         (sel_remove_loop_preheader): Update dominator info.
718
719 2010-12-07  Richard Guenther  <rguenther@suse.de>
720
721         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
722         Reset alignment information.
723         (bump_vector_ptr): Likewise.
724
725 2010-12-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
726
727         PR middle-end/46671
728         PR target/46685
729         * config/pa/pa.c (pa_function_section): New function.
730         (TARGET_ASM_FUNCTION_SECTION): Define.
731
732 2010-12-07  Ian Lance Taylor  <iant@google.com>
733             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
734
735         PR bootstrap/46810
736         * configure.ac: Disable AC_MSG_ERROR while looking for the C++
737         preprocessor.
738         * configure: Rebuild.
739
740 2010-12-07  Paul Koning  <ni1d@arrl.net>
741
742         * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
743         values with sign rather than as unsigned.
744
745 2010-12-07  Paul Koning  <ni1d@arrl.net>
746
747         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
748         (pdp11_function_section): New function.
749
750 2010-12-07  Joseph Myers  <joseph@codesourcery.com>
751
752         * config/mcore/mcore.c Don't include assert.h.
753         (layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
754         * config/spu/spu.c: Don't include assert.h.
755         (spu_sms_res_mii): Use gcc_assert.
756
757 2010-12-07  Sebastian Pop  <sebastian.pop@amd.com>
758
759         PR tree-optimization/42327
760         * tree-data-ref.c (omega_setup_subscript): Call build_int_cst
761         instead of using integer_minus_one_node.
762
763 2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>
764
765         PR c++/45330
766         * params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
767         * doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.
768
769 2010-12-07  Richard Guenther  <rguenther@suse.de>
770
771         PR tree-optimization/46832
772         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
773         that the call has a lhs.
774
775 2010-12-07  Yao Qi  <yao@codesourcery.com>
776
777         * Makefile.in: Add $(TARGET_H) to the regrename.o rule.
778         * regrename.c (struct du_head): Add new element length.
779         (sort_du_head, get_element, merge, merge_sort_comparison):
780         New functions of merge sort implementation to du_head list.
781         (regrename_optimize): Sort du_head linked list by length.
782         Iterate registers in a preferred-register-first order.
783         Move some code to ...
784         (check_new_reg_p): here.  New function.
785         (create_new_chain):  Initialize length.
786         (scan_rtx_reg): Increase length for non-debug insns.
787         * target.def: New hook preferred_rename_class.
788         * targhook.c (default_preferred_rename_class): New.
789         * targhook.h: Declare it.
790         * doc/tm.texi.in: New hook TARGET_PREFERRED_RENAME_CLASS.
791         * doc/tm.texi: Regenerate.
792
793 2010-12-07  Jakub Jelinek  <jakub@redhat.com>
794
795         PR debug/46799
796         * tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
797         instead of BUILTINS_LOCATION.
798         (create_loop_fn): Add LOC argument, pass it to build_decl instead of
799         BUILTINS_LOCATION.
800         (create_parallel_loop): Add LOC argument, use it for OMP clauses
801         and GIMPLE_*OMP* statements.
802         (gen_parallel_loop): Determine locus for the parallel loop, pass it
803         to create_loop_fn and create_parallel_loop.
804         * cfgexpand.c (gimple_expand_cfg): For builtin functions, call
805         set_curr_insn_source_location (UNKNOWN_LOCATION).
806
807 2010-12-07  Joern Rennecke  <amylaar@spamcop.net>
808             Richard Guenther  <rguenther@suse.de>
809
810         PR target/46737
811         * config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
812         (bfin_reorder_loops): Change type of index to intptr_t.
813
814 2010-12-07  Richard Guenther  <rguenther@suse.de>
815
816         PR tree-optimization/46726
817         * tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
818
819 2010-12-07  Richard Guenther  <rguenther@suse.de>
820
821         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
822         virtual operands.
823
824 2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>
825
826         * c-parser.c (c_parser_typeof_specifier): Removed special
827         treatment of objc_volatilized attribute for Objective-C.
828
829 2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>
830
831         * ira.c (update_equiv_regs): Prohibit move insns if
832         pressure-sensitive scheduling was done.
833
834 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
835
836         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
837         of c_process_expr_stmt() for the iterating and collection
838         expressions of an Objective-C fast enumeration loop.
839
840 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
841
842         PR debug/45997
843         * dwarf2out.c (modified_type_die): If both is_const_type and
844         is_volatile_type is set, start with DW_TAG_const_type or
845         DW_TAG_volatile_type depending on where we get qualified type
846         in the recursive call.
847
848         PR target/43897
849         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
850         as a store into that register.
851
852         PR tree-optimization/46528
853         PR debug/46338
854         * profile.c (branch_prob): Make sure last is never set to a debug
855         stmt.
856
857         PR debug/46771
858         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
859         on DEBUG_INSNs.
860
861         PR rtl-optimization/46777
862         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
863         also barrier after tablejump.
864
865 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
866             Richard Henderson  <rth@redhat.com>
867
868         PR target/46740
869         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
870
871 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
872
873         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
874         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
875
876 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
877
878         PR target/46735
879         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
880         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
881         (int12_operand, int_2word_operand, uint16_operand): Likewise.
882         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
883         (uint5_operand, uint4_operand): Likewise.
884         * config/frv/frv.h (IN_RANGE_P): Delete.
885         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
886         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
887         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
888         (CONST_OK_FOR_P): Likewise.
889         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
890         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
891         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
892         (*movsicc_internal2_float, casesi): Likewise.
893         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
894         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
895         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
896         (frv_split_cond_move, frv_rtx_costs): Likewise.
897
898         PR target/46739
899         * config/mmix/mmix.c (mmix_intval): Split shift count.
900
901 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
902
903         * config/i386/i386.c (m_COREI7): New.
904         (initial_ix86_tune_features): Turn on
905         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
906         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
907
908 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
909
910         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
911
912         * config/i386/driver-i386.c (host_detect_local_cpu): Support
913         Sandy Bridge.
914
915         * config/i386/i386.c (override_options): Handle "corei7-avx".
916
917         * doc/invoke.texi: Document corei7-avx.
918
919 2010-12-06  Richard Guenther  <rguenther@suse.de>
920
921         PR tree-optimization/46806
922         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
923         coalesce different types.
924
925 2010-12-06  Richard Guenther  <rguenther@suse.de>
926
927         PR tree-optimization/46785
928         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
929         call statements as operand definition.
930
931 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
932
933         * doc/tm.texi.in: Fix typo.
934         * doc/tm.texi: Regenerate.
935
936 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
937
938         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
939         last change.
940
941 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
942
943         * c-family/c-common.h: Removed the declarations of all the objc_
944         callbacks, and moved them into c-objc.h.  Removed
945         objc_ivar_visibility_kind and moved it into c-objc.h.
946         * c-family/c-objc.h: New file.
947         * c-family/c-common.c: Include c-objc.h.
948         * c-family/c-format.c: Same change.
949         * c-family/stub-objc.c: Same change.
950         * c-decl.c: Include c-family/c-objc.h.
951         * c-parser.c: Same change.
952         * c-typeck.c: Same change.
953         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
954         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
955         (c-parser.o): same change.
956         (c-typeck.o): Same change.
957         (c-family/c-format.o): Same change.
958         (c-family/stub-objc.o): Same change.
959         (c-family/c-common.o): Same change.
960         (PLUGIN_HEADERS): Added c-family/c-objc.h.
961
962 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
963
964         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
965         --with-dwarf2 option.
966
967 2010-12-03  Jan Hubicka  <jh@suse.cz>
968
969         * lto-streamer-in.c (input_cfg): Fix pasto.
970
971 2010-12-03  Jan Hubicka  <jh@suse.cz>
972
973         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
974         and functions with user asm defined names.
975         (varpool_externally_visible_p): Do not localize vars with user
976         asm defined names.
977
978 2010-12-03  Jan Hubicka  <jh@suse.cz>
979
980         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
981         to prevent mangling with lto frontend.
982
983 2010-12-03  Jan Hubicka  <jh@suse.cz>
984
985         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
986         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
987
988 2010-12-03  Jan Hubicka  <jh@suse.cz>
989
990         PR tree-optimization/46760
991         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
992         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
993         * lto-cgraph.c (lto_output_edge): Fix assert.
994         (lto_output_node): Output count_materialization_scale.
995         (output_profile_summary): Output only runs and sum_max.
996         (input_node): Input count_materialization_scale.
997         (input_profile_summary): Read data into file specific gcov summary.
998         (merge_profile_summaries): New function.
999         (input_cgraph): Update call of input_profile_summary;
1000         call merge_profile_summaries.
1001         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
1002         rescale counts at read in.
1003         (intput_bb): Likewise.
1004         (input_function): Update call of input_bb.
1005         (lto_read_body): Update call of input_cfg.
1006         * lto-streamer.h: Inlclude gcov-io.h
1007         (lto_file_decl_data): Add gcov_ctr_summary.
1008
1009 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
1010
1011         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
1012         (Cond Exec Macros): ... to this.
1013         * doc/tm.texi: Regenerate.
1014
1015 2010-12-03  Jason Merrill  <jason@redhat.com>
1016
1017         PR debug/46123
1018         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
1019         a declaration DIE.
1020
1021 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
1022
1023         * config/arm/arm.c (arm_legitimate_index_p): Split
1024         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
1025         slightly larger constants in the latter case.
1026         (thumb2_legitimate_index_p): Likewise.
1027
1028 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
1029
1030         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
1031         * gcc.c (cc1_options): Add %{Qy:}.
1032
1033 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
1034
1035         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
1036         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
1037         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
1038
1039 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
1040
1041         PR rtl-optimization/45354
1042         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
1043         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
1044         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
1045         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
1046
1047 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1048
1049         * basic-block.h (struct edge_prediction): Remove forward
1050         declaration.
1051         * tree-flow.h (struct edge_prediction): Move from here...
1052         * predict.c (struct edge_prediction): ...to here.
1053         * cselib.h (struct elt_list): Move from here...
1054         * cselib.c (struct elt_list): ...to here.
1055
1056 2010-12-02  Ian Lance Taylor  <iant@google.com>
1057
1058         * gcc.c (default_compilers): Add entry for ".go".
1059         * common.opt: Add -static-libgo as a driver option.
1060         * doc/install.texi (Configuration): Mention libgo as an option for
1061         --enable-shared.  Mention go as an option for --enable-languages.
1062         * doc/invoke.texi (Overall Options): Mention .go as a file name
1063         suffix.  Mention go as a -x option.
1064         * doc/frontends.texi (G++ and GCC): Mention Go as a supported
1065         language.
1066         * doc/sourcebuild.texi (Top Level): Mention libgo.
1067         * doc/standards.texi (Standards): Add section on Go language.
1068         Move references for other languages into their own section.
1069         * doc/contrib.texi (Contributors): Mention that I contributed the
1070         Go frontend.
1071
1072 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1073
1074         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
1075         (const_call_expr_arg_iterator_d): Likewise.
1076         (expanded_location): Likewise.
1077         * c-tree.h (struct c_arg_tag_d): Likewise.
1078         * dwarf2out.c (struct cfa_loc): Likewise.
1079         (struct skeleton_chain_struct): Likewise.
1080         * except.c (struct ttypes_filter): Likewise.
1081         * cselib.h (struct cselib_val_struct): Likewise.
1082         (elt_loc_list): Likewise.
1083         (elt_list): Likewise.
1084         * varasm.c (struct addr_const): Likewise.
1085         * tree-flow.h (struct edge_prediction): Likewise.
1086         (struct int_tree_map): Likewise.
1087         (struct _edge_var_map): Likewise.
1088
1089 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1090
1091         PR target/46768
1092         * config/i386/i386.c (initial_ix86_tune_features): Turn on
1093         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
1094
1095 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1096
1097         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
1098
1099 2010-12-02  Ian Lance Taylor  <iant@google.com>
1100
1101         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
1102         header files unordered_map, tr1/unordered_map, and ext/hash_map.
1103         * configure, config.in: Rebuild.
1104
1105 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
1106
1107         PR target/46685
1108         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
1109         (sparc_expand_move): Call it to decide whether to emit the special
1110         mov{si,di}_pic_label_ref patterns.
1111         (sparc_legitimize_pic_address): Call it to decide whether to emit
1112         the regular PIC sequence for labels.  Fix long line.
1113         (sparc_file_end): Set is_thunk for the PIC helper.
1114
1115 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
1116
1117         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
1118         for a non-shared type.
1119
1120 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
1121
1122         PR middle-end/45297
1123         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
1124         with MEM_REFs as POINTER_PLUS_EXPR.
1125
1126 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1127
1128         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
1129         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
1130         mentioning /lib/elf.
1131
1132 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1133
1134         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
1135         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
1136         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
1137         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
1138         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
1139         * config/sol2.h (LINK_SPEC): Remove %{b}.
1140         * config/svr4.h (LINK_SPEC): Remove %{b}.
1141
1142 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1143
1144         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
1145         * config/i386/linux.h (LINK_SPEC): Cut long comment.
1146         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
1147         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
1148         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
1149         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
1150         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
1151         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
1152         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
1153         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
1154         %{v:%{!V:-V}}.
1155
1156 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1157
1158         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
1159         -ftraditional.
1160
1161 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1162
1163         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
1164         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
1165         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
1166         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
1167         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
1168         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
1169         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
1170         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
1171         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
1172         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
1173         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
1174         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
1175         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
1176         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
1177         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
1178         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
1179         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
1180         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
1181
1182 2010-12-02  Paul Koning  <ni1d@arrl.net>
1183
1184         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
1185         opcodes if CC_NO_OVERFLOW is set.
1186         (notice_update_cc_on_set): Correct setting of CC0 as a side
1187         effect; set CC_NO_OVERFLOW for cases where C flag is not
1188         meaningful.
1189
1190 2010-12-02  Ian Lance Taylor  <iant@google.com>
1191
1192         * doc/install.texi (Configuration): Update default for
1193         --with-boot-ldflags.
1194
1195 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
1196
1197         PR c/45062
1198         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
1199         !funcdef_flag.
1200
1201 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
1202
1203         PR tree-optimization/45199
1204         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
1205         (stores_zero_from_loop): Call
1206         mem_write_stride_of_same_size_as_unit_type_p.
1207         * tree-data-ref.h (stride_of_unit_type_p): New.
1208         * tree-loop-distribution.c (generate_memset_zero): Simplified.
1209         Call stride_of_unit_type_p.
1210         (build_rdg_partition_for_component): Do not call
1211         rdg_flag_similar_memory_accesses when
1212         flag_tree_loop_distribute_patterns is set.
1213
1214 2010-12-02  Richard Guenther  <rguenther@suse.de>
1215
1216         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
1217         sign-changing conversions for induction detection.
1218
1219 2010-12-02  Richard Guenther  <rguenther@suse.de>
1220
1221         PR tree-optimization/46723
1222         * tree-vect-loop.c (get_initial_def_for_induction): Strip
1223         conversions from the induction evolution and apply it to
1224         the result instead.
1225         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
1226         assigns for induction defs.
1227
1228 2010-12-02  Richard Guenther  <rguenther@suse.de>
1229
1230         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
1231         the case we need to split the edge and not the block.
1232
1233 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
1234
1235         DFA model for Core 2 and Core i7 scheduling.
1236
1237         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
1238         * config/i386/i386.c (ix86_option_override_internal): Update entries
1239         for Core 2 and Core i7.
1240         (ix86_issue_rate): Set issue rate to 3 [be realistic].
1241         * config/i386/i386.md: Include "core2.md".
1242         (define_attr cpu): Add "corei7".
1243
1244 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
1245
1246         Define tuning for Core 2 and Core i7.
1247
1248         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
1249         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
1250         (m_CORE2): Replace with m_CORE2_{32,64}.
1251         (m_CORE2I7{,_32,_64}): New macros.
1252         (m_GENERIC32, m_GENERIC64): Update.
1253         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
1254         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
1255         set m_CORE2I7_64 iff m_GENERIC64.
1256         (processor_target_table): Use generic costs for Core 2 and Core i7.
1257         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
1258         (ix86_issue_rate): Remove entry for Core 2.
1259         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
1260         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
1261         (TARGET_CORE2): Update.
1262         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
1263         (PROCESSOR_CORE2): Remove.
1264
1265 2010-12-02  Richard Guenther  <rguenther@suse.de>
1266
1267         * lto-streamer.h (LTO_major_version): Bump to 2.
1268
1269 2010-12-02  Richard Guenther  <rguenther@suse.de>
1270
1271         PR lto/44871
1272         * gimple.c (canonical_type_hash_cache): New hashtable.
1273         (gimple_type_hash): Make a wrapper around ...
1274         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
1275         (gimple_canonical_type_hash): Likewise.
1276         (gtc_visit): Take a gtc_mode argument.
1277         (gimple_types_compatible_p_1): Likewise. Do not compare struct
1278         tag names or field names when computing canonical types.
1279         (gimple_types_compatible_p): Adjust.
1280         (visit): Take a gtc_mode argument.
1281         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
1282         names or field names when computing hashes of canonical types.
1283         (gimple_register_canonical_type): Use gimple_canonical_type_hash
1284         for the hash.
1285         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
1286         (free_gimple_type_tables): Free canonical_type_hash_cache.
1287
1288 2010-12-02  Richard Guenther  <rguenther@suse.de>
1289             Ira Rosen  <irar@il.ibm.com>
1290
1291         PR tree-optimization/46663
1292         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
1293         FUNCTION_DECL exists and that it's a builtin.
1294
1295 2010-12-02  Jie Zhang  <jie@codesourcery.com>
1296
1297         PR middle-end/46674
1298         * varasm.c (compute_visible_aliases): Handle user set
1299         assembler name.
1300
1301 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
1302
1303         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
1304         thinko regarding setting -mno-<xxx> debug switches.
1305         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
1306
1307 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1308
1309         * intl.c: Don't include tm.h.
1310         * Makefile.in (intl.o): Don't depend on $(TM_H).
1311
1312 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1313
1314         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
1315         unused warning.
1316         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
1317
1318 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1319
1320         * graphite-sese-to-poly.c (analyze_drs): Removed.
1321         (build_scop_drs): Do not call analyze_drs.
1322         (analyze_drs_in_stmts): New.
1323         (insert_stmts): New.
1324         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
1325         (insert_out_of_ssa_copy_on_edge): Same.
1326         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
1327         (rewrite_phi_out_of_ssa): Same.
1328         (rewrite_cross_bb_scalar_dependence): Same.
1329         (split_reduction_stmt): Move data references in the new basic blocks.
1330         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
1331
1332 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1333
1334         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
1335
1336 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1337
1338         PR middle-end/45297
1339         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
1340         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
1341         * graphite-poly.h (new_poly_bb): Update declaration.
1342         (gbb_from_bb): Moved here...
1343         (pbb_from_bb): New.
1344         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
1345         Removed.
1346         (graphite_stmt_p): Removed.
1347         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
1348         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
1349         new_poly_bb.
1350         (build_scop_bbs_1): Do not pass in sbitmap reductions.
1351         (build_scop_bbs): Same.
1352         (gbb_from_bb): ... from here.
1353         (add_conditions_to_constraints): Moved up.
1354         (analyze_drs): New.
1355         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
1356         not contain data references.
1357         (new_pbb_from_pbb): New.
1358         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
1359         block is split.
1360         (rewrite_close_phi_out_of_ssa): Update call to
1361         insert_out_of_ssa_copy_on_edge.
1362         (rewrite_reductions_out_of_ssa): Now static.
1363         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
1364         (split_pbb): New.
1365         (split_reduction_stmt): Call split_pbb.
1366         (translate_scalar_reduction_to_array): Pass in the scop, do not
1367         pass in the sbitmap reductions.
1368         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
1369         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
1370         (rewrite_commutative_reductions_out_of_ssa): Same.
1371         (build_poly_scop): Call build_scop_bbs,
1372         rewrite_commutative_reductions_out_of_ssa,
1373         rewrite_reductions_out_of_ssa, and
1374         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
1375         before scop_to_lst.
1376         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
1377         Removed declaration.
1378         (rewrite_reductions_out_of_ssa): Same.
1379         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
1380         (build_scop_bbs): Same.
1381         * graphite.c (graphite_transform_loops): Do not initialize reductions.
1382         Do not call build_scop_bbs,
1383         rewrite_commutative_reductions_out_of_ssa,
1384         rewrite_reductions_out_of_ssa, and
1385         rewrite_cross_bb_scalar_deps_out_of_ssa.
1386         * sese.h (struct gimple_bb): Add field pbb.
1387         (GBB_PBB): New.
1388
1389 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1390
1391         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
1392         New.
1393         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
1394         handle_scalar_deps_crossing_scop_limits.
1395         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
1396         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
1397
1398 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1399
1400         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
1401         when replacing a constant in an ADDR_EXPR.
1402
1403 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1404
1405         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
1406         for the stride.
1407         (lst_do_strip_mine): Same.
1408         (scop_do_strip_mine): Same.
1409         * graphite-poly.c (apply_poly_transforms): Update call to
1410         scop_do_strip_mine.
1411         * graphite-poly.h (scop_do_strip_mine): Update declaration.
1412
1413 2010-12-01  Jan Hubicka  <jh@suse.cz>
1414
1415         * tree.c (build_common_builtin_nodes): Do not initialize
1416         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
1417         * builtins.c (expand_builtin_profile_func): Remove.
1418         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
1419         BUILT_IN_PROFILE_FUNC_EXIT.
1420         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
1421         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
1422         * gimplify.c (gimplify_function_tree): Reorganize code calling
1423         profiling functions.
1424
1425 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1426
1427         * opts.c: Expand comment on tm.h include.
1428
1429 2010-12-01  Yao Qi  <yao@codesourcery.com>
1430
1431         * config/arm/predicates.md ("vfp_register_operand"): Return true for
1432         VFP_D0_D7_REGS classes.
1433
1434 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1435
1436         * common.opt (flag_stack_check): New Variable entry.
1437         (fcompare-debug-second): Use Var.
1438         * flags.h (flag_compare_debug, flag_stack_check): Remove.
1439         * opts.c (flag_compare_debug): Remove.
1440         (common_handle_option): Don't handle OPT_fcompare_debug_second.
1441         Set opts->x_flag_stack_check for OPT_fstack_check_.
1442         * toplev.c (flag_stack_check): Remove.
1443
1444 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1445
1446         * common.opt (main_input_filename, main_input_basename,
1447         main_input_baselength): New Variable entries.  From toplev.c.
1448         * final.c (output_quoted_string): Move from toplev.c.
1449         * output.h (output_quoted_string): Move from toplev.h.
1450         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
1451         access main_input_filename, main_input_baselength and
1452         main_input_basename.
1453         * targhooks.c: Include intl.h and opts.h.
1454         (option_affects_pch_p, default_get_pch_validity): Move from
1455         toplev.c.
1456         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
1457         Move from toplev.h.
1458         * toplev.c (main_input_filename, main_input_basename,
1459         main_input_baselength): Move to common.opt.
1460         (output_quoted_string): Move to final.c.
1461         (warn_deprecated_use): Move to tree.c.
1462         (option_affects_pch_p, default_get_pch_validity,
1463         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
1464         * toplev.h (skip_leading_substring): Move to tree-dump.c.
1465         (warn_deprecated_use): Move to tree.h.
1466         (output_quoted_string): Move to output.h.
1467         (main_input_filename, main_input_basename, main_input_baselength):
1468         Move to common.opt.
1469         (default_get_pch_validity, default_pch_valid_p): Move to
1470         targhooks.c.
1471         * tree-dump.c (skip_leading_substring): Move from toplev.h.
1472         * tree.c (warn_deprecated_use): Move from toplev.c.
1473         * tree.h (warn_deprecated_use): Move from toplev.h.
1474         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
1475         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
1476         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
1477         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
1478         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
1479         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
1480         config/mcore/mcore.c, config/mep/mep.c,
1481         config/microblaze/microblaze.c, config/mips/mips.c,
1482         config/mmix/mmix.c, config/mn10300/mn10300.c,
1483         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
1484         config/picochip/picochip.c, config/s390/s390.c,
1485         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
1486         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
1487         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
1488         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
1489         varasm.c, xcoffout.c: Don't include toplev.h.
1490         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
1491         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
1492         varasm.o, xcoffout.o): Update dependencies.
1493         * config/arm/t-arm (arm.o): Update dependencies.
1494         * config/spu/t-spu-elf (spu.o): Update dependencies.
1495
1496 2010-12-01  Richard Guenther  <rguenther@suse.de>
1497
1498         PR tree-optimization/46730
1499         * value-prof.c (gimple_ic): Always generate a separate merge BB.
1500
1501 2010-11-30  Ian Lance Taylor  <iant@google.com>
1502
1503         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
1504         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
1505         * config/i386/linux64.h (ASM_SPEC): Likewise.
1506         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
1507         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
1508         * config/i386/vxworks.h (ASM_SPEC): Likewise.
1509         * config/i386/x86-64.h (ASM_SPEC): Likewise.
1510         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
1511         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
1512
1513 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1514
1515         * c-decl.c (finish_function): Call objc_finish_function in
1516         Objective-C.
1517         * c-typeck.c (convert_for_assignment): Do not call
1518         objc_type_quals_match().
1519
1520 2010-11-30  Richard Guenther  <rguenther@suse.de>
1521
1522         PR tree-optimization/46722
1523         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
1524         operands as arguments.
1525         (execute_optimize_widening_mul): Also handle power of two as
1526         multiplication.
1527
1528 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1529
1530         PR middle-end/46709
1531         * cgraphunit.c (process_function_and_variable_attributes): Fix
1532         cut'n'pasteo.
1533
1534 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
1535
1536         * hwint.c:  New.  Extracted from toplev.c.
1537         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1538         Move from toplev.h.
1539         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1540         Move to hwint.c.
1541         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1542         Move to hwint.h.
1543         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
1544         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
1545         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
1546         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
1547         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
1548         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
1549         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
1550         tree-vrp.c: Don't include toplev.h.
1551         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
1552         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
1553         toplev.h in generated output.
1554         * Makefile.in (OBJS-common): Add hwint.o.
1555         Dependencies for above files changed to remove toplev.h.
1556         (hwint.o): New.
1557         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
1558         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
1559         toplev.h.
1560         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
1561         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
1562
1563 2010-11-30  Richard Guenther  <rguenther@suse.de>
1564
1565         PR tree-optimization/46717
1566         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
1567         call.  Manually create EH edges for the direct call and update
1568         target PHI nodes.
1569
1570 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
1571
1572         * diagnostic-core.h: Include bversion.h.
1573         * toplev.h: Don't include input.h or bversion.h.
1574         (parse_optimize_options): Don't declare here.
1575         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
1576         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
1577         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
1578         config/host-darwin.c, config/i386/host-cygwin.c,
1579         config/i386/host-mingw32.c, config/i386/msformat-c.c,
1580         config/i386/netware.c, config/i386/nwld.c,
1581         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
1582         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
1583         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
1584         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
1585         config/score/score3.c, config/score/score7.c,
1586         config/sh/symbian-base.c, config/sh/symbian-c.c,
1587         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
1588         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
1589         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
1590         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
1591         graphite-blocking.c, graphite-clast-to-gimple.c,
1592         graphite-dependences.c, graphite-flattening.c,
1593         graphite-interchange.c, graphite-poly.c,
1594         graphite-scop-detection.c, graphite.c, haifa-sched.c,
1595         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
1596         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
1597         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
1598         lto-opts.c, lto-section-in.c, lto-section-out.c,
1599         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
1600         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
1601         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
1602         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
1603         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
1604         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
1605         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
1606         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
1607         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
1608         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
1609         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
1610         include toplev.h.
1611         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
1612         toplev.h.  Dependencies for above files and c-family files changed
1613         to remove $(TOPLEV_H) or toplev.h.
1614         (C_TREE_H): Don't include $(TOPLEV_H).
1615         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
1616         bversion.h.
1617         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
1618         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
1619         config/t-darwin, config/t-sol2,
1620         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
1621         Dependencies for above files changed to remove $(TOPLEV_H) or
1622         toplev.h.
1623
1624 2010-11-30  Richard Guenther  <rguenther@suse.de>
1625
1626         PR lto/44986
1627         * gcc.c (main): Use the first input with a compiler as infile
1628         for link spec processing.
1629
1630 2010-11-30  Richard Guenther  <rguenther@suse.de>
1631
1632         PR lto/45949
1633         * cgraphunit.c (ipa_passes): Stop after errors from
1634         small IPA passes.
1635
1636 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
1637
1638         * gcc-plugin.h: Include coretypes.h.
1639         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
1640
1641 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1642
1643         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
1644         * ggc-none.c (ggc_internal_alloc_zone_stat)
1645         (ggc_internal_cleared_alloc_zone_stat): New.
1646
1647 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
1648
1649         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
1650         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
1651         (rs6000_emit_prologue): Don't set PIC register if
1652         TARGET_SINGLE_PIC_BASE.
1653         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
1654         * doc/invoke.texi (msingle-pic-base): Document.
1655
1656 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
1657
1658         PR driver/46712
1659         * exec-tool.in (id): New.
1660         Check and export LT_RCU_$id instead of LT_RCU.
1661
1662 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
1663
1664         PR tree-optimization/46675
1665         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
1666         in offset calculation.
1667
1668 2010-11-29  Jan Hubicka  <jh@suse.cz>
1669
1670         * collect2.c (main): Do not imply verbose output with
1671         LTO and linker plugin.
1672
1673 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
1674
1675         * dwarf2out.c (print_die): Print the address of the current DIE or
1676         of any DIE referenced by the current one.
1677
1678 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
1679
1680         PR debug/46101
1681         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
1682         function.
1683         (scope_die_for, gen_type_die_for_member): Replace uses of
1684         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
1685
1686 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
1687
1688         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
1689         (darwin_asm_declare_object_name): Correct spelling.
1690         (darwin_output_aligned_bss): Likewise.
1691
1692 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
1693             Mike Stump  <mrs@gcc.gnu.org>
1694
1695         PR target/26427
1696         PR target/33120
1697         PR testsuite/35710
1698         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
1699         (ASM_OUTPUT_LOCAL): Likewise.
1700         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
1701         (darwin_output_aligned_bss): Likewise.
1702         (darwin_asm_output_aligned_decl_local): Likewise.
1703         (darwin_asm_output_aligned_decl_common): Likewise.
1704         (darwin_use_anchors_for_symbol_p): Likewise.
1705         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
1706         (TARGET_ASM_OUTPUT_ANCHOR): Define.
1707         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
1708         (DARWIN_SECTION_ANCHORS): Set to 1.
1709         * config/darwin.c (emit_aligned_common): New var.
1710         (darwin_init_sections): Check that the Darwin private zero-size section
1711         marker is in range.
1712         (darwin_text_section): Check for zero-sized objects.
1713         (darwin_mergeable_string_section): Likewise.
1714         (darwin_mergeable_constant_section): Likewise.
1715         (machopic_select_section): Adjust to check for zero-sized objects.
1716         Assert that OBJC meta data are non-zero sized.
1717         (darwin_asm_declare_object_name): New.
1718         (darwin_asm_declare_constant_name): Adjust for zero-sized
1719         object sections.
1720         (BYTES_ZFILL): Define.
1721         (darwin_emit_weak_or_comdat): New.
1722         (darwin_emit_local_bss): New.
1723         (darwin_emit_common): New.
1724         (darwin_output_aligned_bss): New.
1725         (darwin_asm_output_aligned_decl_common): New.
1726         (darwin_asm_output_aligned_decl_local): New.
1727         (darwin_file_end): Disable subsections_via_symbols when section
1728         anchoring is active.
1729         (darwin_asm_output_anchor): Re-enable.
1730         (darwin_use_anchors_for_symbol_p): New.
1731         (darwin_override_options): Check for versions that can emit
1732         aligned common.  Update usage of flags to current.
1733         * config/darwin-sections.def: Update comments and flags for
1734         non-anchor sections.  zobj_const_section, zobj_data_section,
1735         zobj_bss_section, zobj_const_data_section: New.
1736         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
1737         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
1738         (L2_MAX_OFILE_ALIGNMENT): Define.
1739         (ASM_OUTPUT_ALIGNED_BSS): Define.
1740         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
1741         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
1742         (SECTION_NO_ANCHOR): Define.
1743         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
1744         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
1745
1746 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
1747
1748         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
1749         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
1750         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
1751         Conditionally define.
1752         (GET_ENVIRONMENT): Poison.
1753         * configure.ac: Don't test for mincore.
1754         * configure: Regenerate.
1755         * config.in: Regenerate.
1756         * collect2-aix.c: Don't include <sys/mman.h>.
1757         * collect2.c: Don't include <signal.h>.
1758         (SIGCHLD): Don't define.
1759         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
1760         * config/alpha/alpha.c: Include "splay-tree.h" instead of
1761         <splay-tree.h>.
1762         * config/arm/arm.c (arm_target_help): Use getenv instead of
1763         GET_ENVIRONMENT.
1764         * config/avr/driver-avr.c: Don't include <stdlib.h>.
1765         * config/frv/frv.c: Don't include <ctype.h>.
1766         * config/host-darwin.c: Don't include <sys/mman.h>.
1767         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
1768         (MAP_FAILED): Don't define.
1769         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
1770         * config/host-solaris.c: Don't include <sys/mman.h>.
1771         * config/i386/cygming.h: Don't include <stdio.h>.
1772         * config/i386/driver-i386.c: Don't include <stdlib.h>.
1773         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
1774         * config/iq2000/iq2000.c: Don't include <signal.h>.
1775         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
1776         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
1777         * config/mep/mep-pragma.c: Don't include <stdio.h>.
1778         * config/microblaze/microblaze.c: Don't include <signal.h>.
1779         * config/mips/mips.c: Don't include <signal.h>.
1780         * config/rs6000/host-darwin.c: Don't include <signal.h>.
1781         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
1782         * defaults.h (GET_ENVIRONMENT): Don't define.
1783         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
1784         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
1785         (SIGCHLD, MAP_FAILED, kill): Don't define.
1786         (process_command): Use getenv instead of GET_ENVIRONMENT.
1787         * genhooks.c: Don't include <string.h>.
1788         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
1789         <sys/types.h>.
1790         (MAP_FAILED): Don't define.
1791         * ggc-page.c Don't include <sys/mman.h>.
1792         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
1793         * ggc-zone.c: Don't include <sys/mman.h>.
1794         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
1795         * graph.c: Include "config.h" instead of <config.h>.
1796         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
1797         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
1798         (SIGCHLD, kill): Don't define.
1799         * mips-tfile.c: Don't include <signal.h>.
1800         * opts.c: Don't include <signal.h> or <sys/resource.h>.
1801         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
1802         * passes.c: Don't include <signal.h>, <sys/resource.h> or
1803         <sys/times.h>.
1804         * sparseset.h: Don't include <assert.h>.
1805         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
1806         * tlink.c: Don't include "libiberty.h".
1807         * toplev.c: Don't include <signal.h> or <sys/times.h>.
1808         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
1809         * tree-switch-conversion.c: Don't include <signal.h>.
1810         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
1811
1812 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1813
1814         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
1815         c_parser_objc_try_catch_finally_statement for consistency with the
1816         C++ parser.  Parse @catch(...) and pass NULL_TREE to
1817         objc_begin_catch_clause() in that case.  Improved error recovery.
1818         Reorganized code to be almost identical to
1819         cp_parser_objc_try_catch_finally_statement.
1820
1821 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
1822
1823         PR tree-optimization/46621
1824         * gimple.h: Don't include tm.h or hard-reg-set.h .
1825         * Makefile.in (GIMPLE_H): Remove $(TM_H).
1826
1827         PR bootstrap/44756
1828         * cppbuiltin.c: Include target.h .
1829         (define_builtin_macros_for_type_sizes):
1830         Use targetm.float_words_big_endian.
1831
1832 2010-11-27  Jan Hubicka  <jh@suse.cz>
1833
1834         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
1835         and output cold_text_section_label.
1836         (dwarf2out_init): Don't do that there.
1837         (dwarf2out_finish): Handle cold section end label only if cold
1838         section was used.
1839
1840 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1841
1842         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
1843         VLA variables.
1844
1845 2010-11-27  Richard Guenther  <rguenther@suse.de>
1846
1847         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
1848         (gimple_assign_ssa_name_copy_p): Likewise.
1849         (gimple_assign_unary_nop_p): Use is_gimple_assign.
1850         (is_gimple_cast): Remove.
1851         (gimple_assign_single_p): Move ...
1852         * gimple.h (gimple_assign_single_p): ... here.
1853         (is_gimple_cast): Remove.
1854         (gimple_assign_rhs_code): Simplify.
1855         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
1856         instead of is_gimple_cast.
1857         * ipa-type-escape.c (look_for_casts): Likewise.
1858
1859 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
1860
1861         * doc/options.texi (Enum, EnumValue): Document new record types.
1862         (Enum): Document new option flag.
1863         * opt-functions.awk
1864         * optc-gen.awk: Handle enumerated option arguments.
1865         * opth-gen.awk: Handle enumerated option arguments.
1866         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
1867         enum_value_to_arg): New.
1868         (decode_cmdline_option): Handle enumerated arguments.
1869         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
1870         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
1871         * opts.c (print_filtered_help, print_specific_help): Take
1872         lang_mask arguments.
1873         (print_filtered_help): Handle printing values of enumerated
1874         options.  Print possible arguments for enumerated options.
1875         (print_specific_help): Update call to print_filtered_help.
1876         (common_handle_option): Update calls to print_specific_help.  Use
1877         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
1878         handle OPT_ffp_contract_, OPT_fexcess_precision_,
1879         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
1880         OPT_fira_region_ here.
1881         * opts.h (enum cl_var_type): Add CLVC_ENUM.
1882         (struct cl_option): Add var_enum.
1883         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
1884         struct cl_enum, cl_enums, cl_enums_count): New.
1885         (CL_ERR_ENUM_ARG): Define.
1886         (CL_ERR_NEGATIVE): Update value.
1887         (enum_value_to_arg): Declare.
1888         * common.opt (flag_ira_algorithm, flag_ira_region,
1889         flag_fp_contract_mode, flag_excess_precision_cmdline,
1890         default_visibility, flag_tls_default): Remove Variable entries.
1891         (help_enum_printed): New Variable.
1892         (fdiagnostics-show-location=): Use Enum.  Add associated
1893         SourceInclude, Enum and EnumValue entries.
1894         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
1895         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
1896         associated Enum and EnumValue entries.
1897
1898 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
1899
1900         PR target/46623
1901         * config/microblaze/microblaze.c (microblaze_block_move_straight):
1902         Use XALLOCAVEC.
1903         (microblaze_option_override): Don't use C++ style comments.
1904         (save_restore_insns): Remove unused variable base_offset.
1905         (microblaze_expand_prologue): Remove unused variable insn.
1906         (microblaze_secondary_reload): Adjust type to match target.h .
1907         (microblaze_elf_in_small_data_p): Move declarations to start of block.
1908         (microblaze_expand_move): Likewise.
1909         * config/microblaze/microblaze.h (LARGE_INT):
1910         Avoid signed / unsigned comparisons.
1911         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1912         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
1913         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
1914
1915 2010-11-26  Michael Matz  <matz@suse.de>
1916
1917         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
1918
1919         * passes.c (init_optimization_passes): Remove superfluous
1920         copy-prop pass.
1921
1922 2010-11-26  Richard Guenther  <rguenther@suse.de>
1923
1924         PR lto/46648
1925         * gimple.c (gtc_visit): Do not return true for members of an
1926         SCC still being processed but the current lattice value of
1927         the member.  Treat SCC members comparison state as lattice,
1928         starting at equal, eventually dropping to unequal.
1929         (gimple_types_compatible_p_1): Likewise.
1930
1931 2010-11-26  Richard Guenther  <rguenther@suse.de>
1932
1933         PR middle-end/46559
1934         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
1935         for location list processing.
1936
1937 2010-11-26  Richard Guenther  <rguenther@suse.de>
1938
1939         PR lto/46560
1940         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
1941         flags manually.
1942
1943 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1944
1945         * config/s390/s390.c (print_operand_address): Replace assert with
1946         error message.
1947         (print_operand): Replace assertions, gcc_unreachable and
1948         fatal_insn with error messages.
1949
1950 2010-11-26  Richard Guenther  <rguenther@suse.de>
1951
1952         PR tree-optimization/46665
1953         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
1954
1955 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
1956
1957         * config/arm/arm.c (arm_option_override): enable loop array
1958         prefetching at -O3 for suitable targets, and configure params.
1959         * config/arm/arm-protos.h (struct tune_params): Add fields for
1960         configuring loop array prefetching.
1961
1962 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
1963
1964         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
1965
1966 2010-11-26  Richard Guenther  <rguenther@suse.de>
1967
1968         PR tree-optimization/46664
1969         * tree-affine.c (aff_combination_to_tree): Add rest last.
1970
1971 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
1972
1973         PR target/33637
1974         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
1975         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
1976         * configure: Regenerated.
1977         * exec-tool.in: Not quoting command, may have extra arguments.
1978
1979 2010-11-26  Richard Guenther  <rguenther@suse.de>
1980
1981         PR tree-optimization/46528
1982         PR debug/46338
1983         * profile.c (branch_prob): Do not split blocks based on locations
1984         from debug statements.
1985
1986 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
1987
1988         PR middle-end/46647
1989         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
1990         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
1991
1992         PR bootstrap/45700
1993         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
1994         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
1995         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
1996         build6_loc): Define.
1997         * fold-const.c (protected_set_expr_location_unshare): New inline.
1998         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
1999         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
2000         pedantic_omit_one_operand_loc, omit_two_operands_loc,
2001         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
2002         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
2003         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
2004         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
2005         instead of buildN followed by SET_EXPR_LOCATION or
2006         protected_set_expr_location.
2007         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
2008         Use buildN_stat_loc instead of buildN_stat followed by
2009         SET_EXPR_LOCATION.
2010
2011 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
2012
2013         * Makefile.in (s-tm-texi): Remove spurous tab.
2014
2015 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
2016
2017         PR debug/46258
2018         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
2019         debug stmts.
2020
2021 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
2022
2023         * toplev.c (finalize): Add no_backend parameter.  Don't finish
2024         passes when preprocessing only.  Adjust...
2025         (do_compile): ... caller.
2026
2027 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2028
2029         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
2030         flag_unsafe_math_optimizations.
2031         (negsf2): Likewise.
2032         Move fnegabs related patterns together.  Only use fmpynfadd instruction
2033         to negate a multiply if !flag_signed_zeros is true.
2034
2035 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
2036
2037         * gengtype-state.c (read_state_structures): Initialize "previous".
2038
2039 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
2040             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2041
2042         * gengtype-state.c: Add new file.
2043
2044         * gengtype.c (type count): New variable.
2045         (new_structure, find_param_structure, create_pointer)
2046         (create_array): Use it to set state_number in types.
2047         (dump_everything): Improve comment.
2048         (main): Call read_state and write_state. Print type_count.
2049
2050         * gengtype.h (type_lineloc): New function.
2051         (read_state, write_state): New declarations.
2052
2053         * Makefile.in (GENGTYPE_FLAGS): New variable.
2054         (s-gtype): Run gengtype twice and generate gtype.state.
2055         (build/gengtype-state.o): New rule.
2056         (build/gengtype$(build_exeext)): Link gengtype-state.o.
2057         (mostlyclean): Update comment.  Remove gtype.state.
2058
2059 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
2060
2061         PR middle-end/46637
2062         * combine.c (try_combine): When substing i2dest for i2src, pass
2063         1 as last argument even if
2064         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
2065
2066 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
2067
2068         PR middle-end/46647
2069         * builtins.c (target_char_cast): Check INTEGER_CST instead of
2070         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
2071
2072 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
2073
2074         * target.def (supports_split_stack, except_unwind_info): Take
2075         gcc_options parameters.
2076         * targhooks.c (default_except_unwind_info,
2077         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
2078         gcc_options parameters.
2079         * targhooks.h (default_except_unwind_info,
2080         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
2081         prototypes.
2082         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
2083         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
2084         Document that hooks must not be modified.
2085         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
2086         * doc/tm.texi: Regenerate.
2087         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
2088         &global_options to targetm.except_unwind_info.
2089         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
2090         dwarf2out_begin_prologue, dwarf2out_frame_init,
2091         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
2092         &global_options to targetm.except_unwind_info.
2093         * except.c (init_eh, finish_eh_generation,
2094         gate_convert_to_eh_region_ranges,
2095         output_one_function_exception_table): Pass &global_options to
2096         targetm.except_unwind_info.
2097         * expr.c (build_personality_function): Pass &global_options to
2098         targetm.except_unwind_info.
2099         * function.c (expand_function_end): Pass &global_options to
2100         targetm.except_unwind_info.
2101         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
2102         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
2103         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
2104         and targetm.supports_split_stack.  Remove assertions about opts
2105         and opts_set.
2106         (common_handle_option): Remove assertions about opts, opts_set and dc.
2107         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
2108         &global_options to targetm.except_unwind_info.
2109         * tree.c (build_common_builtin_nodes: Pass &global_options to
2110         targetm.except_unwind_info.
2111         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
2112         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
2113         thumb1_expand_prologue, thumb1_output_function_prologue,
2114         arm_unwind_emit, arm_output_fn_unwind): Update calls to
2115         arm_except_unwind_info.
2116         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
2117         parameter.
2118         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
2119         parameter.
2120         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
2121         ia64_reorg, ia64_asm_unwind_emit): Update calls to
2122         ia64_except_unwind_info.
2123         * config/pa/pa.c (pa_option_override): Pass &global_options to
2124         targetm.except_unwind_info.
2125         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
2126         Remove prototype.
2127
2128 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
2129
2130         * cgraphunit.c (process_function_and_variable_attributes):
2131         Mark dllexport-ed function/variables as needed.
2132         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
2133         as externally visible.
2134
2135 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
2136
2137         PR rtl-optimization/46585
2138         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
2139         (vinsn_init): Skip computation of dependencies for local NOPs.
2140         (vinsn_delete): Don't try to free regsets for local NOPs.
2141         (setup_nop_and_exit_insns): Change definition of nop_pattern.
2142
2143 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
2144
2145         PR rtl-optimization/46602
2146         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
2147         (tidy_control_flow): Here.
2148
2149 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
2150             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2151
2152         PR bootstrap/45888
2153         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
2154         Fix target.def pathname in timestamp comparison.
2155
2156 2010-11-24  Richard Henderson  <rth@redhat.com>
2157
2158         * config/ia64/predicates.md (pmpyshr_operand): New.
2159         * config/ia64/ia64.c (ia64_expand_unpack): New.
2160         (ia64_expand_widen_mul_v4hi): New.
2161         (ia64_expand_widen_sum): Update for pattern renames.
2162         (ia64_expand_dot_prod_v8qi): Likewise.
2163         * config/ia64/ia64-protos.h: Update.
2164         * config/ia64/vect.md (vecwider): New mode attribute.
2165         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
2166         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
2167         (pmpyshr2, pmpyshr2_u): New.
2168         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
2169         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
2170         (mulv2si3): New.
2171         (vec_pack_ssat_v4hi): Rename from pack2_sss.
2172         (vec_pack_usat_v4hi): Rename from *pack2_uss.
2173         (vec_pack_ssat_v2si): Rename from pack4_sss.
2174         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
2175         vec_select operation.
2176         (vec_interleave_highv8qi): Similarly.
2177         (mux1_alt): Rename from *mux1_alt.
2178         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
2179         (vec_interleave_lowv4hi): Rename from unpack2_l.
2180         (vec_interleave_highv4hi): Rename from unpack2_h.
2181         (mix2_r): Rename from *mix2_r.
2182         (mix2_l): Similarly.
2183         (vec_extract_evenodd_helper): New.
2184         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
2185         (vec_interleave_lowv2si): Rename from *unpack4_l.
2186         (vec_interleave_highv2si): Rename from *unpack4_h.
2187         (vec_extract_evenv2si, vec_extract_oddv2si): New.
2188         (vec_interleave_lowv2sf): Rename from fmix_r.
2189         (vec_interleave_highv2sf): Rename from *fmix_l.
2190         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
2191         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
2192         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
2193         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
2194
2195 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
2196
2197         * targhooks.c (default_except_unwind_info): Remove
2198         MUST_USE_SJLJ_EXCEPTIONS case.
2199         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
2200         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2201         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
2202         * doc/tm.texi: Regenerate.
2203         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
2204
2205 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
2206
2207         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
2208         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
2209         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
2210         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
2211         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
2212
2213 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
2214
2215         PR target/46519
2216         * config/i386/i386.c (ix86_expand_call): Don't check
2217         TREE_THIS_VOLATILE.
2218
2219 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
2220
2221         PR target/46519
2222         * config/i386/i386.c (upper_128bits_state): New.
2223         (block_info_def): Remove upper_128bits_set and done.  Add state,
2224         referenced, count, processed and rescanned.
2225         (check_avx256_stores): Updated.
2226         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
2227         Call note_stores only if needed.  Set referenced and count.
2228         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
2229         (rescan_move_or_delete_vzeroupper): New.
2230         (move_or_delete_vzeroupper):  Process and rescan all all basic
2231         blocks instead of predecessor blocks of all exit points.
2232         (ix86_option_override_internal): Enable vzeroupper optimization
2233         only for -fexpensive-optimizations and not optimizing for size.
2234         (use_avx256_p): Removed.
2235         (init_cumulative_args): Don't set use_avx256_p.
2236         (ix86_function_arg): Likewise.
2237         (ix86_expand_move): Likewise.
2238         (ix86_expand_vector_move_misalign): Likewise.
2239         (ix86_local_alignment): Likewise.
2240         (ix86_minimum_alignment): Likewise.
2241         (ix86_expand_epilogue): Don't check use_avx256_p when generating
2242         vzeroupper.
2243         (ix86_expand_call): Likewise.
2244
2245         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
2246         and use_avx256_p.  Add rescan_vzeroupper_p.
2247
2248 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
2249
2250         * toplev.c: Include <signal.h>.
2251
2252 2010-11-24  Richard Guenther  <rguenther@suse.de>
2253
2254         PR lto/43218
2255         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
2256         conflicting function signatures as non-inlineable.
2257
2258 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
2259
2260         PR rtl-optimization/46614
2261         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
2262          (deps_analyze_insn): Mark JUMP_INSNs in
2263         last_pending_memory_flush that weren't added through
2264         flush_pending_lists with NON_FLUSH_JUMP_KIND.
2265         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
2266         on INSN_LIST instead of JUMP_P check on its operand.
2267         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
2268
2269 2010-11-24  Richard Guenther  <rguenther@suse.de>
2270
2271         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
2272
2273 2010-11-24  Richard Guenther  <rguenther@suse.de>
2274
2275         PR lto/46606
2276         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
2277         a FIELD_DECL that is type correct issue a warning and fixup
2278         with a VIEW_CONVERT_EXPR.
2279
2280 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
2281
2282         * doc/invoke.texi (Options for Debugging Your Program or GCC):
2283         Explain static numbering of dump files.
2284
2285 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
2286
2287         * common.opt (user_vect_verbosity_level): New Variable entry.
2288         (ftree-vectorizer-verbose=): Mark as UInteger.
2289         * flag-types.h (enum vect_verbosity_levels): Move from enum
2290         verbosity_levels in tree-vectorizer.h.
2291         * opts.c: Don't include tree.h.
2292         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
2293         gcc_options parameter; take integer option argument.
2294         (common_handle_option): Update call to vect_set_verbosity_level.
2295         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
2296         (vect_set_verbosity_level): Move to opts.c.
2297         (vect_verbosity_level, vect_print_dump_info): Update for change of
2298         enum name.
2299         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
2300         (vect_print_dump_info): Update for change of enum name.
2301         * tree.h (vect_set_verbosity_level): Remove.
2302         * Makefile.in (opts.o): Update dependencies.
2303
2304 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
2305
2306         PR middle-end/46629
2307         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
2308         instead of insn with any_condjump_p.
2309
2310 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
2311
2312         * config/mips/loongson.md: Change the description comment of the file
2313         and update the copyright years.
2314         (define_insn "<u>div<mode>3): Add loongson3a support.
2315         (define_insn "<u>mod<mode>3"): Likewise.
2316         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
2317         mul<mode>3_mul3_loongson.
2318         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
2319         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
2320
2321 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2322
2323         * common.opt (initial_max_fld_align, flag_debug_asm,
2324         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
2325         flag_print_asm_name, graph_dump_format, help_printed,
2326         help_columns, flag_opts_finished): New Variable entries.
2327         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
2328         frandom-seed=): Mark deferred.
2329         (fsched-verbose=): Use UInteger and Var.
2330         * flags.h (set_struct_debug_option, flag_print_asm_name,
2331         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
2332         graph_dump_format): Don't declare here.
2333         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
2334         * opts-global.c: Include dbgcnt.h and debug.h.
2335         (decode_options): Pass location to finish_options.
2336         (handle_common_deferred_options): Check flag_dump_all_passed.
2337         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
2338         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
2339         OPT_fstack_limit.
2340         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
2341         (set_struct_debug_option): Add location_t parameter.  Update
2342         recursive call.  Use error_at.
2343         (default_options_optimization): Use error_at.
2344         (finish_options): Add location_t parameter.  Use
2345         opts->x_flag_opts_finished instead of first_time_p.  Use
2346         opts->x_optimize instead of optimize.  Use error_at.  Pass
2347         location to inform.
2348         (print_filtered_help): Use opts->x_help_printed to track what
2349         options have been printed.
2350         (print_specific_help): Use opts->x_help_columns to track number of
2351         columns.
2352         (common_handle_option): Pass locations and gcc_options pointers to
2353         more functions.  Use warning_at instead of fnotice and warning.
2354         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
2355         OPT_fdebug_prefix_map_.  Use error_at.  Set
2356         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
2357         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
2358         OPT_fsched_verbose_.
2359         (handle_param): Add location_r parameter.  Use error_at.
2360         (set_debug_level): Add location_r parameter.  Use error_at and
2361         warning_at.
2362         (setup_core_dumping): Add diagnostic_context parameter.
2363         (decode_d_option): Add gcc_options, location_t and
2364         diagnostic_context parameters and use them instead of global
2365         state.  Use warning_at.
2366         (enable_warning_as_error): Use error_at.
2367         * opts.h (finish_options): Update prototype.
2368         (set_struct_debug_option): Declare here.
2369         * rtl.h (fix_sched_param): Remove.
2370         * stor-layout.c (initial_max_fld_align): Remove.
2371         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
2372         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
2373         (process_options): Set maximum_field_alignment.
2374         * tree.h (initial_max_fld_align) Don't declare here.
2375         * Makefile.in (opts.o, opts-global.o): Update dependencies.
2376
2377 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2378
2379         * flag-types.h (struct visibility_flags): Don't declare here.
2380         * flags.h (strip_off_ending, fast_math_flags_set_p,
2381         fast_math_flags_struct_set_p): Declare here.
2382         (visibility_options): Don't declare here.
2383         * opts-common.c (option_enabled, get_option_state): Move from
2384         opts.c.
2385         * opts-global.c: Include diagnostic.h instead of
2386         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
2387         and toplev.h.
2388         (const_char_p, ignored_options, in_fnames, num_in_fnames,
2389         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
2390         print_ignored_options, unknown_option_callback,
2391         post_handling_callback, lang_handle_option, add_input_filename,
2392         read_cmdline_options, initial_lang_mask, init_options_once,
2393         decode_cmdline_options_to_array_default_mask,
2394         set_default_handlers, decode_options): Move from opts.c.
2395         (print_ignored_options): Use warning_at instead of saving and
2396         restoring input_location.
2397         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
2398         instead of expr.h.  Don't include langhooks.h, except.h or
2399         lto-streamer.h.  Add more comments on includes.
2400         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
2401         toplev.c.
2402         (visibility_options): Move to c-family/c-common.c.
2403         (const_char_p, ignored_options, in_fnames, num_in_fnames,
2404         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
2405         print_ignored_options, unknown_option_callback,
2406         post_handling_callback, lang_handle_option, add_input_filename,
2407         read_cmdline_options, initial_lang_mask, init_options_once,
2408         decode_cmdline_options_to_array_default_mask,
2409         set_default_handlers, decode_options): Move to opts-global.c.
2410         (target_handle_option, default_options_optimization,
2411         finish_options, common_handle_option): Remove static.
2412         (option_enabled, get_option_state): Move to opts-common.c.
2413         * opts.h (common_handle_option, target_handle_option,
2414         finish_options, default_options_optimization): Declare.
2415         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
2416         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
2417         opts.c.
2418         * toplev.h (strip_off_ending, decode_d_option,
2419         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
2420         declare here.
2421         * Makefile.in (opts.o, opts-global.o): Update dependencies.
2422
2423 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
2424
2425         PR driver/42690
2426         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
2427         options, replace by call of pass-through-libs spec function to process
2428         link_gcc_c_sequence spec.
2429         (lto_libgcc_spec): Delete variable.
2430         (static_specs[]): Remove related entry.
2431         (static_spec_functions[]): Add new entry for pass-through-libs.
2432         (main): Don't generate deleted lto_libgcc_spec.
2433         (pass_through_libs_spec_func): New function to implement the new
2434         pass-through-libs spec function.
2435         * doc/invoke.texi (pass-through-libs): Document new spec function.
2436
2437 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2438
2439         * doc/options.texi (Warning, Optimization): Document.
2440
2441 2010-11-23  Jan Hubicka  <jh@suse.cz>
2442
2443         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
2444         (tree_decl_with_vis): Add implicit_section_name_p.
2445         * targhooks.h (default_function_section): Declare.
2446         * target.def (function_section): New hook.
2447         * defaults.h (HOT_TEXT_SECTION_NAME,
2448         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2449         * predict.c (choose_function_section): Remove.
2450         (estimate_bb_frequencies): Do not use choose_function_section.
2451         * coretypes.h (enum node_frequency): Move here from cgraph.h
2452         * cgraph.h (enum node_frequency): Remove.
2453         * varasm.c (initialize_cold_section_name, unlikely_text_section,
2454         unlikely_text_section_p): Remove.
2455         (named_subsection_entry): New structure.
2456         (get_text_section): New function.
2457         (default_function_section): New function.
2458         (function_section_1): Break out from ...; handle profile info.
2459         (function_section): ... here.
2460         (unlikely_text_section): Remove.
2461         (unlikely_text_section_p): Use function_section_1.
2462         (assemble_start_function): Do not initialize cold section.
2463         (default_section_type_flags): Do not special case cold subsection.
2464         (switch_to_section): Likewise.
2465         * output.h (get_text_section): Define.
2466         * config/i386/winnt.c: Do not special case cold section.
2467         * config/darwin-protos.h (darwin_function_section): Declare.
2468         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
2469         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2470         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
2471         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2472         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
2473         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
2474         * config/darwin.c (machopic_select_section): Use
2475         darwin_function_section.
2476         (darwin_function_section): New function.
2477         * config/darwin.h (HOT_TEXT_SECTION_NAME,
2478         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2479         (TARGET_ASM_FUNCTION_SECTION): Define.
2480         * system.h (HOT_TEXT_SECTION_NAME,
2481         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
2482
2483 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
2484
2485         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
2486         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
2487
2488 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
2489
2490         PR middle-end/46499
2491         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
2492         following unconditional jumps.
2493
2494 2010-11-23  Richard Guenther  <rguenther@suse.de>
2495
2496         * doc/md.texi (386 constraints): Clarify A constraint documentation.
2497
2498 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
2499             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2500
2501         * gengtype.c (enum typekind, struct options)
2502         (struct nested_ptr_data, struct pair, NUM_PARAM)
2503         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
2504         Move to gengtype.h.
2505         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
2506         Remove static, add zero state_number.
2507         (typedefs, structures, param_structs, variables): Remove static.
2508         (create_option): Remove.
2509         (create_string_option, create_type_option, create_nested_option):
2510         New functions.
2511         (create_nested_ptr_option): Use create_nested_option.
2512         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
2513         new create*option functions.
2514         (process_gc_options): Adjust for discriminated option.
2515         (output_mangled_typename): Handle TYPE_NONE.
2516         (walk_type): Test option kinds.
2517         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
2518         (write_func_for_structure, write_type, write_local, write_root)
2519         (write_roots, note_def_vec, dump_options): Adjust for
2520         discriminated option.
2521
2522         * gengtype.h (typedefs, structures, param_structs, variables
2523         enum typekind): Move from gengtype.c
2524         (enum option_kind): New discriminating enumeration.
2525         (struct options): Becomes discriminated.
2526         (struct nested_ptr_data): Nove from gengtype.c
2527         (create_string_option, create_type_option, create_nested_option)
2528         (create_nested_ptr_option): New functions
2529         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
2530         (UNION_OR_STRUCT_P): Move from gengtype.c
2531
2532         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
2533         discriminated options.
2534
2535 2010-11-23  Richard Guenther  <rguenther@suse.de>
2536
2537         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
2538         twice.  Avoid re-allocating the ops vector all the time.
2539
2540 2010-11-23  Richard Guenther  <rguenther@suse.de>
2541
2542         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
2543         is_gimple_min_invariant, group tree code checks to allow
2544         combining them.
2545         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
2546         of is_gimple_reg.
2547
2548 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
2549
2550         * config.gcc (sparc*-*-*): Reorder.
2551
2552 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
2553
2554         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
2555         Remove ENABLE_CHECKING around DBGPRINTF.
2556
2557 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
2558
2559         * common.opt (exit_after_options, write_symbols, debug_info_level,
2560         use_gnu_debug_info_extensions): New Variable entries.
2561         (fprofile-dir=): Use Var.
2562         * flag-types.h (enum debug_info_level): Rename to enum
2563         debug_info_levels.
2564         * flags.h (write_symbols, debug_info_level,
2565         use_gnu_debug_info_extensions): Remove declarations.
2566         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
2567         (set_struct_debug_option): Make static variables const.
2568         (use_gnu_debug_info_extensions): Remove.
2569         (set_debug_level, print_filtered_help, print_specific_help,
2570         fast_math_flags_set_p): Take gcc_options parameters and use them
2571         in place of global variables.
2572         (print_filtered_help): Make new_help non-static.
2573         (print_specific_help): Update call to print_filtered_help.
2574         (common_handle_option): Update calls to print_specific_help.  Use
2575         gcc_options structure for more settings.  Make --help table
2576         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
2577         set_debug_level.
2578         * toplev.c (profile_data_prefix): Remove.
2579         * toplev.h (profile_data_prefix, exit_after_options): Remove
2580         declarations.
2581         (fast_math_flags_set_p): Update prototype.
2582         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
2583         Update call to fast_math_flags_set_p.
2584
2585 2010-11-22  Richard Henderson  <rth@redhat.com>
2586
2587         PR target/46434
2588         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
2589         return the address register extracted.
2590         (crx_decompose_address): Update the extracted address register.
2591
2592 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
2593
2594         PR driver/43335
2595         * gcc.c (main): Don't crash when lto-wrapper program is not found.
2596
2597 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
2598
2599         PR target/46608
2600         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
2601         * config/picochip/picochip-protos.h: Don't include "target.h" .
2602         (picochip_secondary_reload): Don't declare.
2603
2604         PR target/46613
2605         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
2606         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
2607         static.
2608
2609 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
2610
2611         PR bootstrap/46609
2612         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
2613         (source_dot_c_frul): Likewise.
2614
2615 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
2616
2617         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
2618
2619 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
2620
2621         PR bootstrap/44970
2622         * Makefile.in (fwprop.o) Add sparseset.h.
2623         * fwprop.c: Include sparseset.h
2624         (struct find_occurrence_data, find_occurrence_callback,
2625         find_occurrence): Remove.
2626         (active_defs, active_defs_check, register_active_defs,
2627         update_df_init, update_uses): New.
2628         (update_df): Rewrite.
2629         (try_fwprop_subst, forward_propagate_asm): Add calls to
2630         update_df_init and update_df.
2631         (fwprop_init): Allocate active_defs and active_defs_check.
2632         (fwprop_done): Free them.
2633         (fwprop, fwprop_addr): Adjust comments.
2634         * df.h (df_uses_create): Declare.
2635         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
2636         (df_ref_create): Return result of df_ref_create_structure directly.
2637         (df_ref_create_structure): Call df_install_ref_incremental when
2638         no collection_rec is passed.
2639         (df_ref_record): Do not create multiword hard reg info when no
2640         collection_rec is passed.
2641         (df_uses_create): New.
2642
2643 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
2644
2645         PR middle-end/43057
2646         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
2647         setting location.
2648
2649 2010-11-22  Richard Guenther  <rguenther@suse.de>
2650
2651         * gimple-fold.c (maybe_fold_reference): When canonicalizing
2652         MEM_REFs, preserve volatileness.
2653         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
2654         addresses.
2655
2656 2010-11-22  Richard Guenther  <rguenther@suse.de>
2657
2658         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
2659
2660 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
2661
2662         PR rtl-optimization/45652
2663         * alias.c (get_reg_base_value): New.
2664         * rtl.h (get_reg_base_value): Add prototype.
2665         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
2666         non-null REG_BASE_VALUE for renaming.
2667
2668 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
2669             Basile Starynkevitch  <basile@starynkevitch.net>
2670
2671         * gengtype.c: Include xregex.h and obstack.h
2672         Added comments about role of get_output_file_with_visibility and
2673         our regexpr machinery.
2674         (frul_actionrout_t, struct file_rule_st): New.
2675         (hader_dot_h_frul, source_dot_c_frul): New functions.
2676         (NULL_REGEX,  NULL_FRULACT): New.
2677         (files_rules): New.
2678         (matching_file_name_substitute): New function.
2679         (get_output_file_with_visibility): Updated comments and rewritten
2680         to use the new files_rules machinery.
2681
2682         * Makefile.in (XREGEX_H): Added variable.
2683         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
2684
2685 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
2686
2687         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
2688
2689 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
2690
2691         * target.def (conditional_register_usage): Define.
2692         * reginfo.c (init_reg_sets_1): Call
2693         targetm.conditional_register_usage.
2694         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
2695         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
2696         for making it a hook.
2697         * doc/tm.texi: Regenerate.
2698         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2699         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
2700         New function.
2701         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2702         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2703         * config/arc/arc.c (arc_conditional_register_usage): ...here.
2704         New function.
2705         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2706         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2707         * config/arm/arm.c (arm_conditional_register_usage): ...here.
2708         New function.
2709         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2710         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
2711         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
2712         * config/bfin/bfin.c (conditional_register_usage): Move code into...
2713         (bfin_conditional_register_usage): ...here.  New function.
2714         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2715         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
2716         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
2717         * config/cris/cris.c (cris_conditional_register_usage): Make static.
2718         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2719         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
2720         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
2721         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
2722         * config/frv/frv.c (frv_conditional_register_usage): Make static.
2723         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2724         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2725         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
2726         New function.
2727         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2728         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
2729         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
2730         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
2731         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2732         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
2733         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
2734         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
2735         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2736         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2737         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
2738         New function.
2739         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2740         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
2741         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
2742         Delete.
2743         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
2744         static.
2745         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2746         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
2747         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
2748         * config/mep/mep.c (mep_conditional_register_usage): Make static.
2749         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2750         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
2751         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
2752         * config/mips/mips.c (mips_conditional_register_usage): Make static.
2753         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2754         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
2755         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
2756         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
2757         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2758         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2759         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
2760         ...here.  New function.
2761         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2762         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2763         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
2764         * config/pa/pa.c (pa_conditional_register_usage): ...here.
2765         New function.
2766         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2767         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2768         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
2769         New function.
2770         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2771         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
2772         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
2773         Delete.
2774         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
2775         static.
2776         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2777         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
2778         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
2779         * config/rx/rx.c (rx_conditional_register_usage): Make static.
2780         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2781         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
2782         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
2783         * config/s390/s390.c (s390_conditional_register_usage): Make static.
2784         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2785         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2786         * config/score/score.c (score_conditional_register_usage): ...here.
2787         New function.
2788         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2789         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2790         * config/sh/sh.c (sh_conditional_register_usage): ...here.
2791         New function.
2792         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2793         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2794         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
2795         New function.
2796         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2797         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
2798         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
2799         * config/spu/spu.c (spu_conditional_register_usage): Make static.
2800         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2801         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2802         * config/v850/v850.c (v850_conditional_register_usage): ...here.
2803         New function.
2804         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2805
2806 2010-11-21  Jan Hubicka  <jh@suse.cz>
2807             Dominique d'Humieres <dominiq@lps.ens.ft>
2808
2809         PR target/46510
2810         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
2811         finalize external decls.
2812
2813 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
2814
2815         * system.h (strerror): Poison.
2816
2817 2010-11-21  Richard Henderson  <rth@redhat.com>
2818
2819         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
2820         for infq/huge_valq.
2821
2822 2010-11-21  Richard Henderson  <rth@redhat.com>
2823
2824         PR rtl-optimization/46571
2825         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
2826         (compute_hash_table_work): Use NONDEBUG_INSN_P.
2827
2828 2010-11-21  Paul Koning  <ni1d@arrl.net>
2829
2830         * config/mips/pdp11.md (negsi2): Fix wrong code.
2831
2832 2010-11-21  Paul Koning  <ni1d@arrl.net>
2833
2834         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
2835         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2836
2837 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
2838
2839         * config/mips/mips.c (machine_function): Rename load_label_length to
2840         load_label_num_insns.
2841         (mips_load_label_length): Rename to...
2842         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
2843         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
2844
2845 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
2846
2847         PR target/46533
2848         * config/alpha/predicates.md (direct_call_operand): Return false
2849         for !TARGET_SMALL_TEXT targets.
2850
2851 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
2852
2853         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
2854         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
2855         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
2856         * doc/tm.texi: Regenerate.
2857         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
2858         HANDLE_PRAGMA_WEAK): Poison.
2859         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2860         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2861         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
2862         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
2863         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2864         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2865         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2866         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
2867         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2868         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
2869         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2870         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
2871         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2872         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2873         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2874         (HANDLE_PRAGMA_WEAK): Don't undefine.
2875         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2876         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
2877         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2878         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
2879         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2880         (HANDLE_PRAGMA_WEAK): Don't undefine.
2881         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2882         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
2883         (HANDLE_PRAGMA_PACK): Don't undefine.
2884         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
2885         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2886         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2887         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2888         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
2889         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2890         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2891         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2892         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
2893         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2894         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
2895         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2896         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2897         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2898         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2899         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
2900         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2901
2902 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
2903
2904         PR target/31100
2905         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
2906         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
2907         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
2908
2909 2010-11-20  Jan Hubicka  <jh@suse.cz>
2910
2911         * cgraph.c (ld_plugin_symbol_resolution_names): New.
2912         (dump_cgraph_node): Dump resolution.
2913         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
2914         (cgraph_comdat_can_be_unshared_p): Dclare.
2915         * lto-streamer-out.c (produce_symtab): Use
2916         cgraph_comdat_can_be_unshared_p.
2917         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
2918         (cgraph_comdat_can_be_unshared_p): New function based on logic
2919         in cgraph_externally_visible_p.
2920         (cgraph_externally_visible_p): Use it.
2921         (varpool_externally_visible_p): Virtual tables can be unshared.
2922         * varpool.c (dump_varpool_node): Dump resolution.
2923
2924 2010-11-20  Jan Hubicka  <jh@suse.cz>
2925
2926         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
2927
2928 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2929
2930         PR other/46202
2931         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
2932         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
2933         shell quoting.
2934         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
2935         (install-strip): New target.
2936         (STRIPPROG): New variable, exported if STRIP is set.
2937         * doc/install.texi (Final install): Minor markup and code style
2938         fixes.  Document install-strip target.
2939
2940 2010-11-20  Paul Koning  <ni1d@arrl.net>
2941
2942         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
2943         pdp11_regno_reg_class): New functions.
2944         * config/pdp11/pdp11.md (define_constants): Add register numbers.
2945         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
2946         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
2947         functions.
2948         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
2949         frame pointer and argument pointer pseudo-registers.
2950         (ARG_POINTER_REGNUM): Define.
2951         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
2952         argument pointer.
2953         (FIRST_PARM_OFFSET): Update for argument pointer.
2954         (INITIAL_FRAME_POINTER_OFFSET): Delete.
2955         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
2956         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
2957         frame pointer and argument pointer.
2958
2959 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
2960
2961         PR debug/46561
2962         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
2963         when looking for immediate uses.
2964
2965         PR tree-optimization/45830
2966         * stmt.c (expand_switch_using_bit_tests_p): New function.
2967         (expand_case): Use it.
2968         * tree.h (expand_switch_using_bit_tests_p): New prototype.
2969         * tree-switch-conversion.c (struct switch_conv_info): Add
2970         bit_test_uniq, bit_test_count and bit_test_bb fields.
2971         (check_range): Fix a comment.
2972         (check_process_case): Compute bit_test_uniq and bit_test_count.
2973         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
2974         allocation.
2975         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
2976         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
2977         (array_value_type): New function.
2978         (build_one_array): Use it, if it returned different type,
2979         fold_convert all constructor fields and convert back to the
2980         wider type in the generated code.
2981         (process_switch): Initialize bit_test_uniq, bit_test_count and
2982         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
2983         returned true.
2984
2985 2010-11-19  Michael Matz  <matz@suse.de>
2986
2987         PR tree-optimization/46077
2988         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
2989
2990 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
2991
2992         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2993         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
2994         function.
2995         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2996
2997 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2998
2999         * mode-switching.c (optimize_mode_switching): Use
3000         FOR_BB_INSNS instead of open-coded loop.
3001         * cfgrtl.c (redirect_branch_edge): Ditto.
3002
3003 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
3004
3005         PR target/46436
3006         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
3007         to accomodate 32 bit HOST_WIDE_INT.
3008         (m68hc11_emit_logical): Remove unused variable insn.
3009         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
3010         this_insn_uses_iy before use.
3011
3012         PR target/46434
3013         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
3014
3015 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3016
3017         PR c/46547
3018         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
3019         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
3020
3021 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
3022
3023         * doc/extend.texi (Function attributes): Document PowerPC target
3024         attributes that are supported.
3025         (Pragmas): Document that PowerPC now supports target pragmas.
3026
3027         * doc/options.texi (TargetVariable): Document TargetVariable,
3028         HeaderInclude, and SourceInclude.
3029
3030         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
3031         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
3032         -ffp-contract=off.
3033
3034         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
3035         SourceInclude directives.  Fix a cut+paste error with target save
3036         enum variables.  Sort enums in the structures after ints and
3037         before shorts.
3038         * opth-gen.awk: Ditto.
3039
3040         * configure.ac: Add support for HeaderInclude and SourceInclude option
3041         directives to add the appropriate files to the dependency lists.
3042         * configure: Regenerate.
3043         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
3044         (OPTIONS_C_EXTRA): New variable for SourceInclude.
3045         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
3046         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
3047         (gcc-options.o): Ditto.
3048         * opt-include.awk: New awk script to handle HeaderInclude and
3049         TargetInclude.
3050
3051         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
3052         gets saved in the target options.
3053         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
3054         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
3055         (-mprototype): Ditto.
3056         (-mbit-word): ditto.
3057         (-mregnames): Ditto.
3058         (-msecure-plt): Ditto.
3059         (-mbss-plt): Ditto.
3060         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
3061         (-mpowerpc-gfxopt): Ditto.
3062         (-mmfcrf): Ditto.
3063         (-mpopcntb): Ditto.
3064         (-mfprnd): Ditto.
3065         (-mcmpb): Ditto.
3066         (-mmmfpgpr): Ditto.
3067         (-maltivec): Ditto.
3068         (-mhard-dfp): Ditto.
3069         (-mmulhw): Ditto.
3070         (-mdlmzb): Ditto.
3071         (-mmultiple): Ditto.
3072         (-mstring): Ditto.
3073         (-mpopcntd): Ditto.
3074         (-mfriz): Ditto.
3075         (-mvsx): Ditto.
3076         (-mno-update): Ditto.
3077         (-mavoid-indexed-addresses): Ditto.
3078         (-mtls-markers): Ditto.
3079         (-msched-epilog): Ditto.
3080         (-msched-prolog): Ditto.
3081         (-maix-struct-return): Ditto.
3082         (-msvr4-struct-return): Ditto.
3083         (-mxl-compat): Ditto.
3084         (-mrecip-precision): Ditto.
3085         (-mfp-in-toc): Ditto.
3086         (-msum-in-toc): Ditto.
3087         (-mvrsave): Ditto.
3088         (-mblock-move-inline-limit=): Ditto.
3089         (-misel): Ditto.
3090         (-mpaired): Ditto.
3091         (-mlongcall): Ditto.
3092         (-mgen-cell-microcode): Ditto.
3093         (-mwarn-cell-microcode): Ditto.
3094         (-mwarn-altivec-long): Ditto.
3095         (-mprioritize-restricted-insns=): Ditto.
3096         (-msingle-float): Ditto.
3097         (-mdouble-float): Ditto.
3098         (-msimple-fpu): Ditto.
3099         (-mxilinx-fpu): Ditto.
3100         * config/rs6000/aix64.opt (-mpe): Ditto.
3101
3102         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
3103         (rs6000_cpu): Move variable to be a target variable.  Rename
3104         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
3105         -mdebug=<xxx> variables into a single int.
3106         (rs6000_always_hint): Ditto.
3107         (rs6000_sched_groups): Ditto.
3108         (rs6000_align_branch_targets): Ditto.
3109         (rs6000_sched_costly_dep): Ditto.
3110         (rs6000_sched_insert_nops): Ditto.
3111         (rs6000_long_double_type_size): Ditto.
3112         (rs6000_ieeequad): Ditto.
3113         (rs6000_altivec_abi): Ditto.
3114         (rs6000_spe): Ditto.
3115         (rs6000_spe_abi): Ditto.
3116         (rs6000_float_gprs): Ditto.
3117         (rs6000_darwin64_abi): Ditto.
3118         (can_override_loop_align): Ditto.
3119         (rs6000_sdata): Ditto.
3120         (rs6000_tls_size): Ditto.
3121         (rs6000_current_abi): Ditto.
3122         (rs6000_traceback): Ditto.
3123         (rs6000_alignment_flags): Ditto.
3124         (rs6000_current_cmodel): Ditto.
3125         (rs6000_recip_control): Ditto.
3126         (rs6000_cpu_index): Ditto.
3127         (rs6000_tune_index): Ditto.
3128         (rs6000_debug): Ditto.
3129         (rs6000_target_flags_explict): Ditto.
3130
3131         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
3132         declaration.
3133
3134         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
3135         cmodel.  Change all uses.
3136
3137         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
3138         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
3139         Rename cmodel to rs6000_current_cmodel.
3140         (rs6000_sched_groups): Ditto.
3141         (rs6000_align_branch_targets): Ditto.
3142         (rs6000_sched_costly_dep): Ditto.
3143         (rs6000_sched_insert_nops): Ditto.
3144         (rs6000_long_double_type_size): Ditto.
3145         (rs6000_ieeequad): Ditto.
3146         (rs6000_altivec_abi): Ditto.
3147         (rs6000_spe): Ditto.
3148         (rs6000_spe_abi): Ditto.
3149         (rs6000_float_gprs): Ditto.
3150         (rs6000_darwin64_abi): Ditto.
3151         (can_override_loop_align): Ditto.
3152         (rs6000_sdata): Ditto.
3153         (rs6000_tls_size): Ditto.
3154         (rs6000_current_abi): Ditto.
3155         (rs6000_traceback): Ditto.
3156         (rs6000_alignment_flags): Ditto.
3157         (rs6000_current_cmodel): Ditto.
3158         (rs6000_recip_control): Ditto.
3159         (rs6000_cpu_index): Ditto.
3160         (rs6000_tune_index): Ditto.
3161         (rs6000_debug): Ditto.
3162         (rs6000_target_flags_explict): Ditto.
3163         (rs6000_sched_insert_nops_str): Make static.
3164         (rs6000_sched_costly_dep_str): Ditto.
3165         (rs6000_recip_name): Ditto.
3166         (rs6000_abi_name): Ditto.
3167         (rs6000_sdata_name): Ditto.
3168         (enum rs6000_traceback_name): Move to rs6000-opts.h.
3169         (rs6000_parse_tls_size_option): Delete.
3170         (rs6000_valid_attribute_p): New function for target attributes and
3171         pragmas.
3172         (rs6000_function_specific_save): Ditto.
3173         (rs6000_function_specific_restore): Ditto.
3174         (rs6000_function_specific_print): Ditto.
3175         (rs6000_can_inline_p): Ditto.
3176         (rs6000_set_current_function): Ditto.
3177         (rs6000_inner_target_options): Ditto.
3178         (rs6000_debug_target_options): Ditto.
3179         (rs6000_pragma_target_parse): Ditto.
3180         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
3181         attributes and pragmas.
3182         (TARGET_OPTION_SAVE): Ditto.
3183         (TARGET_OPTION_RESTORE): Ditto.
3184         (TARGET_OPTION_PRINT): Ditto.
3185         (TARGET_CAN_INLINE_P): Ditto.
3186         (TARGET_SET_CURRENT_FUNCTION): Ditto.
3187         (POWER_MASKS): Move to file level scope from the
3188         rs6000_option_override_internal function.
3189         (POWERPC_MASKS): Ditto.
3190         (ISA_*_MASKS): Ditto.
3191         (struct rs6000_ptt): Ditto.
3192         (processor_target_table): Ditto.
3193         (rs6000_cpu_name_lookup): Map cpu name to an index in
3194         processor_target_table.
3195         (rs6000_debug_reg_global): Print more information on processor
3196         options for -mdebug=reg.
3197         (rs6000_init_hard_regno_mode_ok): Add support for target
3198         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
3199         Allow -mdebug=val1,val2.  Rename cmodel variable.
3200         (rs6000_option_override_internal): Ditto.
3201         (rs6000_option_override): Ditto.
3202         (rs6000_handle_option): Ditto.
3203         (rs6000_conditional_register_usage): Add debug trace message.
3204         (struct rs6000_opt_mask): New for target attribute/pragma support.
3205         (rs6000_opt_masks): Ditto.
3206         (struct rs6000_opt_var): Ditto.
3207         (rs6000_opt_vars): Ditto.
3208         (rs6000_previous_function): Ditto.
3209
3210         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
3211         wasn't already included.
3212         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
3213         (enum processor_type): Ditto.
3214         (rs6000_cpu): Ditto.
3215         (enum fpu_type_t): Ditto.
3216         (fpu_type): Ditto.
3217         (enum rs6000_dependence_cost): Ditto.
3218         (enum rs6000_nop_insertion): Ditto.
3219         (enum group_termination): Ditto.
3220         (rs6000_long_double_type_size): Ditto.
3221         (rs6000_ieeequad): Ditto.
3222         (rs6000_altivec_abi): Ditto.
3223         (rs6000_spe_abi): Ditto.
3224         (rs6000_spe): Ditto.
3225         (rs6000_float_gprs): Ditto.
3226         (rs6000_alignment_flags): Ditto.
3227         (rs6000_sched_insert_nops): Ditto.
3228         (enum rs6000_vector): Ditto.
3229         (enum rs6000_abi): Ditto.
3230         (rs6000_current_opt): Ditto.
3231         (rs6000_debug_*): Delete.
3232         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
3233         (TARGET_DEBUG*): Ditto.
3234
3235         * config/rs6000/rs6000-opts.h: New header file to define the enums
3236         that are used in target variables that are now defined in rs6000.opt.
3237
3238         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
3239         rs6000-opts.h.
3240         (rs6000_sdata): Ditto.
3241         (rs6000_abi_name): Delete.
3242         (rs6000_sdata_name): Ditto.
3243         (rs6000_tls_size_string): Ditto.
3244
3245 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3246
3247         * common.opt (debug_struct_ordinary, debug_struct_generic): New
3248         Variable entries.
3249         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
3250         should_emit_struct_debug): Move from opts.c.
3251         * flag-types.h (enum debug_struct_file): Move from opts.c.
3252         * flags.h (should_emit_struct_debug): Remove.
3253         (base_of_path): Declare.
3254         (set_struct_debug_option): Add gcc_options parameter.
3255         * optc-gen.awk, opth-gen.awk: Handle array variables.
3256         * opts.c (enum debug_struct_file, debug_struct_ordinary,
3257         debug_struct_generic): Remove.
3258         (set_struct_debug_option): Add gcc_options parameter.
3259         (base_of_path): Remove static.
3260         (main_input_basename, main_input_baselength, matches_main_base,
3261         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
3262         Remove.
3263         * toplev.c (main_input_basename, main_input_baselength): Define
3264         here.
3265         * toplev.h (main_input_basename, main_input_baselength): Declare
3266         here.
3267
3268 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3269
3270         * common.opt (flag_instrument_functions_exclude_functions,
3271         flag_instrument_functions_exclude_files): New Variable definitions.
3272         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
3273         * gimplify.c (char_p): Declare type and vectors.
3274         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
3275         * opts.c (flag_instrument_functions_exclude_functions,
3276         flag_instrument_functions_exclude_files): Remove.
3277         (add_comma_separated_to_vector): Take void **.
3278         (flag_instrument_functions_exclude_p): Move to gimplify.c.
3279         (common_handle_option): Use options structure for
3280         -finstrument-functions-exclude- options.
3281
3282 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3283
3284         * doc/options.texi (Var): Document effects of Defer.
3285         (Defer): Document.
3286         * opt-functions.awk (var_type, var_set): Handle deferred options.
3287         * opts-common.c (set_option): Handle CLVC_DEFER.
3288         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
3289         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
3290         fstack-limit-symbol=): Mark as deferred.
3291         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
3292         plugin.h.
3293         (print_filtered_help): Don't report state of CLVC_DEFER options.
3294         (common_handle_option): Move code for OPT_fcall_used_,
3295         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
3296         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
3297         OPT_fstack_limit_symbol_ to opts-global.c.
3298         (option_enabled, get_option_state): Handle CLVC_DEFER.
3299         * opts.h: Include vec.h.
3300         (enum cl_var_type): Add CLVC_DEFER.
3301         (cl_deferred_option): Define type and vectors.
3302         (handle_common_deferred_options): Declare.
3303         * opts-global.c: New.
3304         * toplev.c (toplev_main): Call handle_common_deferred_options
3305         * Makefile.in (OPTS_H): Include $(VEC_H).
3306         (OBJS-common): Include opts-global.o.
3307         (opts.o): Update dependencies.
3308         (opts-global.o): Add dependencies.
3309
3310 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
3311
3312         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
3313         to objc_declare_protocols.
3314
3315 2010-11-19  Richard Guenther  <rguenther@suse.de>
3316
3317         PR lto/45789
3318         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
3319         IDENTIFIERs do not stream TREE_TYPE.
3320         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
3321
3322 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
3323
3324         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
3325
3326 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
3327
3328         PR target/45870
3329         * dwarf2out.c (const_ok_for_output_1): Don't complain about
3330         non-delegitimized TLS UNSPECs.
3331
3332 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
3333             Ian Lance Taylor  <iant@google.com>
3334
3335         * config/darwin-c.c (darwin_additional_format_types): Export.
3336
3337 2010-11-18  Paul Koning  <ni1d@arrl.net>
3338
3339         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
3340         pointer.
3341
3342 2010-11-18  Paul Koning  <ni1d@arrl.net>
3343
3344         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
3345         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
3346         * config/pdp11/pdp11.opt (-mabshi): Delete.
3347
3348 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
3349
3350         * resource.h (struct resources): Fix typo in the comment.
3351
3352 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
3353
3354         PR target/46546
3355         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
3356
3357 2010-11-18  Richard Henderson  <rth@redhat.com>
3358
3359         PR middle-end/46515
3360         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
3361         maybe_copy_epilogue_insn; handle prologue insns as well.
3362         * rtl.h, cfglayout.c: Update for rename.
3363         * recog.c (peep2_attempt): Copy prologue/epilogue data for
3364         RTX_FRAME_RELATED_P insns.
3365
3366 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
3367
3368         PR middle-end/46534
3369         * builtins.c (fold_builtin_printf): Don't copy and modify string
3370         before build_string_literal, instead modify what
3371         build_string_literal returned.
3372
3373 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
3374
3375         PR c/33193
3376         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
3377         REALPART_EXPR and IMAGPART_EXPR.
3378
3379 2010-11-18  Richard Guenther  <rguenther@suse.de>
3380
3381         PR tree-optimization/46172
3382         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
3383         function.
3384         (slpeel_tree_peel_loop_to_edge): Call it.
3385
3386 2010-11-18  Jeff Law  <law@redhat.com>
3387
3388         PR middle-end-optimization/46297
3389         * postreload.c (reload_combine_note_store): Deal with embedded
3390         side effects in MEM expressions.
3391
3392 2010-11-18  Richard Guenther  <rguenther@suse.de>
3393
3394         PR lto/45089
3395         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
3396         when checking is not enabled.
3397
3398 2010-11-18  Richard Guenther  <rguenther@suse.de>
3399
3400         PR lto/46525
3401         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
3402         type leaders.
3403         (gimple_register_canonical_type): Also cache the canoncial type
3404         for non type leaders.
3405
3406 2010-11-18  Richard Guenther  <rguenther@suse.de>
3407
3408         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
3409
3410 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
3411
3412         PR middle-end/46518
3413         * sel-sched-ir.c (init_expr): Use the correct type for
3414         target_available.
3415         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
3416
3417 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
3418
3419         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
3420         as well as -mrelocatable at the same time.
3421
3422 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
3423
3424         PR target/46422
3425         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
3426         Call the clz builtin.
3427
3428 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
3429             Steve Ellcey  <sje@cup.hp.com>
3430
3431         PR middle-end/31490
3432         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
3433         if section attribute used.
3434
3435 2010-11-17  Jan Hubicka  <jh@suse.cz>
3436
3437         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
3438         expand errno setting variant when optimizing for size.
3439
3440 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
3441
3442         * postreload.c (reload_combine): Call control_flow_insn_p only once.
3443         Reverse backward loop.  Fix formatting issues.
3444
3445 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
3446
3447         * c-parser.c (c_token_is_qualifier,
3448         c_parser_next_token_is_qualifier): New.
3449         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
3450         Improve error message on specs->tagdef_seen_p.
3451         (c_parser_struct_or_union_specifier): Improve error recovery.
3452         (c_parser_declspecs): Move exit condition on C_ID_ID early.
3453         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
3454         using c_parser_next_token_is_qualifier; extend it to cover
3455         a ctsk_tagdef typespec and !typespec_ok in general.
3456
3457 2010-11-17  Richard Guenther  <rguenther@suse.de>
3458
3459         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
3460         (gimple_mod_pow2_value_transform): Likewise.
3461         (gimple_mod_subtract_transform): Likewise.
3462
3463 2010-11-17  Richard Guenther  <rguenther@suse.de>
3464
3465         PR lto/46504
3466         * gimple.c (gimple_register_canonical_type): Make sure to only
3467         make type leaders canonical types.
3468
3469 2010-11-17  Michael Matz  <matz@suse.de>
3470
3471         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
3472         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
3473         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
3474         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
3475         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
3476         (pass_build_ssa): ... but here.
3477         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
3478         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
3479         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
3480         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
3481         * predict.c (rebuild_frequencies): Ditto.
3482         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
3483         * emit-rtl.c (verify_rtl_sharing): Ditto.
3484         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
3485         * tree-ssa-live.c (remove_unused_locals): Ditto.
3486         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
3487         * tree-ssa.c (pass_early_warn_uninitialized,
3488         execute_update_addresses_taken, pass_update_address_taken): Ditto.
3489         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
3490         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
3491         * passes.c (pass_postreload, execute_todo): Ditto.
3492         * tree-ssanames.c (pass_release_ssa_names): Ditto.
3493
3494 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
3495
3496         * doc/invoke.texi (-dy): Remove.
3497         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
3498         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
3499         * langhooks.c (lhd_do_nothing_i): Remove.
3500         * langhooks.h (lang_hooks.parse_file): Take no arguments.
3501         * toplev.c (set_yydebug): Remove.
3502         (compile_file): Update call to lang_hooks.parse_file.
3503         (decode_d_option): Don't handle -dy.
3504
3505 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
3506
3507         PR rtl-optimization/46440
3508         * combine.c (update_cfg_for_uncondjump): When changing
3509         an indirect jump into unconditional jump, remove BARRIERs
3510         from bb's footer.
3511
3512 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
3513
3514         * opts.c (target_handle_option): Do not assert that loc ==
3515         UNKNOWN_LOCATION.
3516
3517 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
3518             Richard Guenther  <rguenther@suse.de>
3519
3520         PR middle-end/45838
3521         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
3522         call_may_clobber_ref_p_1): Return true for __sync_* and some
3523         OpenMP builtins that act as threading barriers.
3524
3525 2010-11-17  Richard Guenther  <rguenther@suse.de>
3526
3527         PR tree-optimization/46498
3528         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
3529
3530 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3531
3532         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
3533         (xtensa_function_arg_boundary): ...this.
3534         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
3535         thinko in declaration.
3536         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
3537         number of parameters to picochip_function_arg_boundary.
3538         (picochip_arg_advance): Likewise.
3539
3540 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3541
3542         PR target/46512
3543         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
3544         under check for type.
3545
3546 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3547
3548         * ifcvt.c (dead_or_predicable): Fix typo.
3549
3550 2010-11-16  Richard Henderson  <rth@redhat.com>
3551
3552         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
3553         * config/s390/s390.opt (mfused-madd): Remove.
3554         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
3555         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3556         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
3557         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
3558
3559 2010-11-16  Richard Henderson  <rth@redhat.com>
3560
3561         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
3562         * config/rs6000/rs6000.opt (mfused-madd): Remove.
3563         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
3564         (*altivec_vmaddfp_1): Remove.
3565         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
3566         (altivec_mulv4sf3): Expand to FMA directly.
3567         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
3568         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
3569         * config/rs6000/paired.md (paired_madds0): Use FMA.
3570         (paired_madds1): Likewise.
3571         (*paired_madd): Rename from paired_madd; use FMA.
3572         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
3573         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
3574         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
3575         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
3576         (rs6000_emit_madd): Use fma_optab.
3577         (rs6000_emit_msub): Use fms_optab.
3578         (rs6000_emit_nmsub): Expand the FMA pattern directly.
3579         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
3580         (*fmasf4_fpr): Rename from fmasf4_fpr.
3581         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
3582         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
3583         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
3584         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
3585         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
3586         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
3587         (*fmadf4_fpr): Rename from fmadf4_fpr.
3588         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
3589         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
3590         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
3591         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
3592         (fmasf4, fmadf4): Macroize into...
3593         (fma<FMA_F>4): ... here.
3594         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
3595         (nfma<FMA_F>4, nfms<FMA_F>4): New.
3596         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
3597         TARGET_FUSED_MADD.
3598         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
3599         (*vsx_fmadd<mode>4_1): Remove.
3600         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
3601         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
3602         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
3603         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
3604         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
3605         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
3606         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
3607
3608 2010-11-16  Richard Henderson  <rth@redhat.com>
3609
3610         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
3611         (fmasf4, fnmadf4, fnmasf4): Likewise.
3612         (unnamed plus+mult insns and splitters): Delete.
3613
3614 2010-11-16  Richard Henderson  <rth@redhat.com>
3615
3616         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
3617         (fnma<VSF>4): Rename from fnms_<VSF>.
3618         (fms<VSF>4): Rename from fms_<VSF>.
3619         (fma<VDF>4): Rename from fma_<VDF>.
3620         (fms<VDF>4): Rename from fms_<VDF>.
3621         (nfma<VDF>4): Rename from fnma_<VDF>.
3622         (nfms<VDF>4): Rename from fnms_<VDF>.
3623         (fnma<VDF>4, fnms<VDF>4): New expanders.
3624         (floatunsdisf2): Update for the renames.
3625         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
3626         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
3627
3628 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3629
3630         PR rtl-optimization/46490
3631         * combine.c (expand_compound_operation): Fix thinko.
3632
3633 2010-11-16  Richard Henderson  <rth@redhat.com>
3634
3635         PR target/46470
3636         * recog.c (peep2_attempt): Convert frame-related info when possible.
3637         (peep2_fill_buffer): Allow frame-related insns into the buffer.
3638         (peephole2_optimize): Allow peep2_attempt to fail.
3639
3640 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3641
3642         PR rtl-optimization/46315
3643         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
3644         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
3645         extracted from...
3646         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
3647         (remove_reg_equal_equiv_notes_for_defs): ...this.
3648         (delete_unmarked_insns): Adjust to above renaming.
3649         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
3650         referring to registers set in the insns being moved, if any.
3651
3652         * df-core.c (df_ref_dump): New function extracted from...
3653         (df_refs_chain_dump): ...here.  Call it.
3654         (df_regs_chain_dump): Likewise.
3655         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
3656         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
3657
3658 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
3659
3660         PR rtl-optimization/46395
3661         * postreload.c (reload_combine): Invalidate register use
3662         information on all control flow insns.
3663
3664         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
3665         LABEL_REF in UNSPEC operand.
3666
3667 2010-11-16  Jan Hubicka  <jh@suse.cz>
3668
3669         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
3670         when !flag_toplevel_reorder do not remove unless variable is
3671         COMDAT or ARTIFICIAL.
3672         * ipa.c (varpool_can_remove_if_no_refs): ... here.
3673         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
3674         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
3675         * varpool.c (decide_is_variable_needed): Do not handle visibility
3676         issues.
3677         (varpool_finalize_decl): Likewise.
3678         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
3679         update outdated comment on DECL_RTL_SET_P check.
3680
3681 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3682
3683         * config/sol2.h (NM_FLAGS): Define.
3684         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
3685         * doc/tm.texi: Update.
3686
3687 2010-11-16  Nick Clifton  <nickc@redhat.com>
3688
3689         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
3690         (msubsf4): Rename to fmssf4, and use fma.
3691         (nmaddsf4): Rename to fnmasf4 and use fma.
3692         (nmsubsf4): Rename to fnmssf4 and use fma.
3693
3694 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
3695
3696         PR target/44762
3697         * config/score/score3.c (score3_return_in_memory): Constify arguments.
3698         (score3_in_small_data_p, score3_function_value): Likewise.
3699         (score3_trampoline_init): Use LCT_NORMAL.
3700         (score3_print_operand): Initialize code as UNKNOWN.
3701         * config/score/predicates.md (score_load_multiple_operation):
3702         Remove unused variable.
3703         (score_store_multiple_operation): Likewise.
3704         * config/score/score7.c (score7_return_in_memory): Constify arguments.
3705         (score7_in_small_data_p, score7_function_value): Likewise.
3706         (score7_trampoline_init): Use LCT_NORMAL.
3707         (score7_print_operand): Initialize code as UNKNOWN.
3708         * config/score/score3.h (score3_return_in_memory): Update prototype.
3709         (score3_in_small_data_p, score3_function_value): Likewise.
3710         * config/score/score-protos.h (score_function_value): Likewise.
3711         * config/score/score7.h (score7_return_in_memory): Update prototype.
3712         (score7_in_small_data_p, score7_function_value): Likewise.
3713         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
3714         (score_return_in_memory, score_pass_by_reference): Constify arguments.
3715         (score_output_mi_thunk, score_function_prologue): Don't return a value.
3716         (score_function_epilogue, score_in_small_data_p): Likewise.
3717         (score_option_override, score_asm_trampoline_template): Likewise.
3718         (score_trampoline_init, score_print_operand): Likewise.
3719         (score_print_operand_address, score_prologue): Likewise.
3720         (score_epilogue, score_call, score_call_value): Likewise.
3721         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
3722         (score_function_arg_advance): Likewise. Make static.
3723         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
3724         (score_function_arg, score_legitimate_address_p): Make static.
3725         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
3726         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
3727         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
3728         Allow (W) == HOST_BITS_PER_WIDE_INT.
3729
3730         PR java/46386
3731         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
3732         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
3733
3734 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3735
3736         * config/arc/arc.c: Delete pasto.
3737         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
3738
3739 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
3740
3741         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
3742         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
3743         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
3744         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3745         (mn10300_preferred_reload_class,
3746         mn10300_preferred_output_reload_class): New functions.
3747
3748 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3749
3750         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
3751         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
3752         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
3753         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
3754
3755 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3756
3757         * builtins.c (std_gimplify_va_arg_expr): Use
3758         targetm.calls.function_arg_boundary.
3759         * function.c (assign_parms, locate_and_pad_parm): Likewise.
3760         * calls.c (struct arg_data): Update comment.
3761         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
3762         * target.def (function_arg_boundary): Define.
3763         * targhooks.h (default_function_arg_boundary): Declare.
3764         * targhooks.c (default_function_arg_boundary): Define.
3765         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
3766         TARGET_FUNCTION_ARG_BOUNDARY.
3767         (FUNCTION_ARG_BOUNDARY): Delete.
3768         (TARGET_FUNCTION_ARG_BOUNDARY): New.
3769         * doc/tm.texi: Regenerate.
3770         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
3771         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
3772         * config/arc/arc.c (arc_function_arg_boundary): Define.
3773         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3774         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
3775         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
3776         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
3777         (arm_function_arg_boundary): Define.
3778         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3779         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
3780         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
3781         * config/frv/frv.c (frv_function_arg_boundary): Make static.
3782         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3783         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
3784         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
3785         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
3786         (ix86_compat_function_arg_boundary): Take and return unsigned int.
3787         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3788         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
3789         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
3790         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
3791         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3792         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
3793         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
3794         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3795         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
3796         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
3797         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
3798         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3799         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
3800         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
3801         * config/mips/mips.c (mips_function_arg_boundary): Make static.
3802         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3803         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
3804         * config/pa/pa.c (pa_function_arg_boundary): Define.
3805         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3806         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
3807         * config/picochip/picochip-protos.h
3808         (picochip_get_function_arg_boundary): Delete.
3809         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
3810         Rename to...
3811         (picochip_function_arg_boundary): ...this.  Make static.
3812         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
3813         (picochip_arg_advance): Adjust.
3814         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3815         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
3816         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
3817         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
3818         (rs6000_function_arg_boundary): ...this.  Make static.
3819         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
3820         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3821         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
3822         * config/rx/rx.c (rx_function_arg_boundary): Define.
3823         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3824         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
3825         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
3826         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3827         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
3828         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
3829         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
3830         (xtensa_function_arg_boundary): ...this.  Make static.
3831         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3832
3833 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3834
3835         * expr.c (alignment_for_piecewise_move): New function.
3836         (widest_int_mode_for_size): New function.
3837         (move_by_pieces, move_by_pieces_ninsns): Call them.
3838         (can_store_by_pieces, store_by_pieces_1): Likewise.
3839
3840 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3841
3842         * gcc.c (char_p): Define.  Define a VEC of it.
3843         (n_linker_options, n_assembler_options, n_preprocessor_options):
3844         Delete.
3845         (linker_options, assembler_options, preprocessor_options): Convert
3846         to a VEC.
3847         (add_preprocessor_option): Adjust.
3848         (add_assembler_option): Adjust.
3849         (add_linker_option): Adjust.
3850         (do_specs_vec): New function.
3851         (do_spec_1): Call it.  Adjust for new types.
3852
3853 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3854
3855         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
3856         (sreal.o, statistics.o, stringpool.o): Likewise.
3857
3858 2010-11-16  Richard Guenther  <rguenther@suse.de>
3859
3860         PR tree-optimization/44545
3861         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
3862         statements are not reassociatable.
3863         (reassociate_bb): Likewise.
3864
3865 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3866
3867         * bitmap.c: Delete unnecessary includes.
3868         * ebitmap.c: Likewise.
3869         * et-forest.c: Likewise.
3870         * sreal.c: Likewise.
3871         * statistics.c: Likewise.
3872         * stringpool.c: Likewise.
3873         * double-int.c: Add comment for inclusion of tm.h.
3874
3875 2010-11-16  Richard Guenther  <rguenther@suse.de>
3876
3877         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
3878         (visit_nary_op): ... this.
3879         (visit_binary_op): Remove.
3880         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
3881
3882 2010-11-16  Richard Guenther  <rguenther@suse.de>
3883
3884         PR middle-end/45172
3885         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
3886
3887 2010-11-16  Nick Clifton  <nickc@redhat.com>
3888
3889         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
3890         record is packed.
3891
3892 2010-11-15  Richard Henderson  <rth@redhat.com>
3893
3894         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
3895         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
3896         DOT_PROD_EXPR.
3897
3898 2010-11-15  Richard Henderson  <rth@redhat.com>
3899
3900         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
3901         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
3902         fma rtx_code.
3903
3904 2010-11-15  Richard Henderson  <rth@redhat.com>
3905
3906         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
3907         and *mulsubsf4 respectively.  Use fma rtx_code.
3908
3909 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
3910
3911         * gcc.c: Include "vec.h".
3912         (argbuf): Make into a VEC.
3913         (argbuf_length, argbuf_index): Remove.
3914         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
3915         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
3916         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
3917         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
3918         (gcc.o): Depend on $(VEC_H).
3919
3920 2010-11-15  Richard Henderson  <rth@redhat.com>
3921
3922         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
3923         via FMA if unsafe math.
3924         (insert_var_expansion_initialization): Handle FMA.
3925         (combine_var_copies_in_loop_exit): Likewise.
3926
3927 2010-11-15  Richard Henderson  <rth@redhat.com>
3928
3929         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
3930         * config/ia64/ia64.opt: Remove mfused-madd.
3931         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
3932         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
3933         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
3934         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
3935         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
3936         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
3937         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
3938         (fmav2sf4): Rename from fpma; use FMA code.
3939         (fmsv2sf4): Rename from fpms; use FMA code.
3940         (fnmav2sf4): Rename from *fpnma; use FMA code.
3941         * config/ia64/ia64.md (MODE_SDF): New iterator.
3942         (suffix): New mode attribute.
3943         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
3944         (fmssf4): Rename from *fmssf4.
3945         (fnmasf4): Rename from *nfmasf4.
3946         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
3947         (*nmadddf4, *nmadddf4_truncsf): Remove.
3948         (fmsdf4): Rename from *fmsdf4.
3949         (fnmadf4): Rename from *nfmadf4.
3950         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
3951         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
3952         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
3953         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
3954         (fmsxf4): Rename from *fmsxf4.
3955         (fnmaxf4): Rename from *nfmaxf4.
3956         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
3957         (*fnmaxf_trunc_<MODE_SDF>): New.
3958
3959 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
3960
3961         PR tree-optimization/46461
3962         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
3963         a gimple val.
3964
3965 2010-11-15  Ian Lance Taylor  <iant@google.com>
3966
3967         * godump.c: New file.
3968         * common.opt (fdump-go-spec=): New option.
3969         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
3970         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
3971         (TYPE_SYMTAB_IS_DIE): Define.
3972         (struct tree_type): Change GTY for symtab field to use
3973         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
3974         to pick the union field.
3975         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
3976         (dump_go_spec_init): Declare.
3977         * toplev.c (process_options): Handle flag_dump_go_spec.
3978         * debug.c: Include "tree.h".
3979         (do_nothing_debug_hooks): Set tree_type_symtab_field.
3980         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3981         * dbxout.c (dbx_debug_hooks): Likewise.
3982         (xcoff_debug_hooks): Likewise.
3983         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3984         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
3985         SDB_DEBUGGING_INFO is not defined.
3986         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
3987         (Overall Options): Document -fdump-go-spec.
3988         * Makefile.in (OBJS-common): Add godump.o.
3989         (debug.o): Add dependency on $(TREE_H).
3990         (godump.o): New target.
3991         (GTFILES): Add $(srcdir)/godump.c.
3992
3993 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
3994
3995         PR debug/46095
3996         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
3997         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
3998         style < 0, add REG_FRAME_RELATED_EXPR.
3999
4000         PR debug/46387
4001         * rtl.h (vt_equate_reg_base_value): New prototype.
4002         * alias.c (vt_equate_reg_base_value): New function.
4003         * var-tracking.c (vt_init_cfa_base): Use it.
4004
4005 2010-11-15  Jan Hubicka  <jh@suse.cz>
4006             Diego Novillo  <dnovillo@google.com>
4007
4008         PR lto/41528
4009         * doc/lto.texi: Add.
4010         * doc/gccint.texi: Add reference to lto.texi.
4011         * doc/invoke.texi: Update user documentation for LTO.
4012         Move internal flags to lto.texi
4013
4014 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
4015
4016         * c-typeck.c (build_unary_op): Use
4017         objc_build_incr_expr_for_property_ref to build the pre/post
4018         increment/decrement of an Objective-C property ref, and skip the
4019         lvalue_or_else check in that case.
4020
4021 2010-11-15  Martin Jambor  <mjambor@suse.cz>
4022
4023         PR tree-optimization/46349
4024         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
4025         (contains_vce_or_bfcref_p): Likewise.
4026         (sra_modify_assign): Use them.
4027
4028 2010-11-15  Richard Guenther  <rguenther@suse.de>
4029
4030         PR tree-optimization/46467
4031         * tree-ssa-structalias.c (do_structure_copy): Properly treat
4032         variables without subvars.
4033
4034 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
4035
4036         * config/picochip/picochip.c (file header): Picochip name change.
4037         * config/picochip/picochip.md (file header): Likewise.
4038         * config/picochip/predicates.md (file header): Likewise.
4039         * config/picochip/dfa_space.md (file header): Likewise.
4040         * config/picochip/dfa_speed.md (file header): Likewise.
4041         * config/picochip/picochip.h(file header): Likewise.
4042         * config/picochip/constraints.md (file header): Likewise.
4043         * config/picochip/picochip-protos.h (file header): Likewise.
4044         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
4045         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
4046         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
4047         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
4048         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
4049         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
4050         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
4051         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
4052         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
4053         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
4054         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
4055         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
4056         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
4057         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
4058
4059 2010-11-15  Richard Guenther  <rguenther@suse.de>
4060
4061         PR bootstrap/46474
4062         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
4063
4064 2010-11-15  Nick Clifton  <nickc@redhat.com>
4065
4066         * config/stormy16/stormy16.c (direct_return): Do not generate a
4067         direct return for interrupt handlers.
4068
4069 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
4070
4071         * Makefile.in (tm.texi): Replace with rule for:
4072         ($(srcdir)/doc/tm.texi).
4073         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
4074         $(srcdir)/doc/tm.texi .
4075         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
4076         tm.texi .
4077
4078         PR target/46427
4079         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
4080
4081         PR bootstrap/45444
4082         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
4083         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
4084
4085         PR target/46432
4086         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
4087
4088 2010-11-15  Richard Guenther  <rguenther@suse.de>
4089
4090         PR lto/44150
4091         * lto-opts.c (lto_write_options): Write -fexceptions even if
4092         not set by the user.
4093
4094 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4095
4096         PR c/46462
4097         * c-decl.c (declspecs_add_type): Make variables with error types
4098         integers.
4099         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
4100         do not start a declaration before an Objective-C foreach.
4101         (c_parser_declaration_or_fndef): Improve recovery after unknown
4102         type name.
4103         (c_parser_for_statement): Hoist entrance of "foreach context"
4104         before ifs, add corresponding reset where it was missing.  Do
4105         not set objc_could_be_foreach_context for C.
4106
4107 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
4108
4109         PR tree-optimization/45722
4110         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
4111         this is a reference to a component.
4112         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
4113         (ipa_note_param_call): Adjust comment.
4114
4115 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
4116
4117         * config/mips/mips.c (machine_function): Remove
4118         initialized_mips16_gp_pseudo_p.
4119         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
4120         detect whether a pseudo has already been created.  Unconditionally
4121         create a new one if not.
4122         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
4123         expanding to rtl.  Create a new pseudo otherwise, if allowed.
4124
4125 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
4126
4127         PR target/43440
4128         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
4129         * tm.texi: Regenerated.
4130         * output.h (decode_reg_name_and_count): Declare.
4131         * varasm.c (decode_reg_name_and_count): New function.
4132         (decode_reg_name): Reimplement using decode_reg_name_and_count.
4133         * reginfo.c (fix_register): Use decode_reg_name_and_count and
4134         iterate over all regs used.
4135         * stmt.c (expand_asm_operands): Likewise.
4136         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
4137         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
4138         multiple machine registers.
4139
4140 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
4141
4142         * stor-layout.c (place_union_field): Do not put location information
4143         on offset expressions.
4144         (place_field): Likewise.
4145         (finalize_record_size): Likewise on size expressions.
4146         (finalize_type_size): Likewise.
4147         (layout_type): Likewise.
4148
4149 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
4150
4151         PR debug/42889
4152         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
4153         * df-core.c (df_set_bb_dirty_nonrl): Remove.
4154         * df.h (df_set_bb_dirty_nonlr): Likewise.
4155
4156 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
4157
4158         * config/mips/mips.md (call_internal): Pass curr_insn to
4159         mips_split_call.
4160         (call_internal_direct): Ditto.
4161         (call_value_internal): Ditto.
4162         (call_value_internal_direct): Ditto.
4163         (call_value_multiple_internal): Ditto.
4164         * config/mips/mips.c (mips_split_call): Do not copy
4165         CALL_INSN_FUNCTION_USAGE here.
4166
4167 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
4168
4169         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
4170         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
4171         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
4172         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
4173         (TUNE_LOONGSON_3A): Define.
4174         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
4175         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
4176         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
4177         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
4178         (mips_rtx_cost_data): Add Loongson-3A.
4179
4180 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
4181
4182         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
4183         switches.
4184
4185 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
4186
4187         * dwarf2out.c (macinfo_entry): New struct.
4188         (output_comp_unit): Emit the section start label here and flag that we
4189         will emit an info section.
4190         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
4191         emitting directly.
4192         (dwarf2out_end_source_file): Likewise.
4193         (dwarf2out_define): Likewise.
4194         (dwarf2out_undef): Likewise.
4195         (output_macinfo): New.
4196         (dwarf2out_init): Do not emit debug section switches here, allocate a
4197         vec for macinfo, when required.
4198         (dwarf2out_finish): First switch to debug_abbrev_section here.
4199         debug_line_section,  debug_macinfo_section, Likewise.
4200         Check that the pubtypes table has at least one unpruned entry before
4201         trying to emit it.
4202
4203 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4204
4205         PR c/20385
4206         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
4207         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
4208         token lookahead.
4209         (c_parser_compound_statement_nostart, c_parser_label,
4210         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
4211         (c_parser_declaration_or_fndef): Detect the case now matched by
4212         c_parser_next_tokens_start_declaration, give error and correct it.
4213
4214 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4215
4216         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
4217         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
4218         with typespec_kind.
4219         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
4220         (shadow_tag_warned, check_compound_literal_type): Adjust
4221         uses of tag_defined_p.
4222         (declspecs_add_type): Set typespec_kind.
4223         * c-parser.c (c_parser_declaration_or_fndef,
4224         c_parser_declspecs, c_parser_struct_declaration,
4225         c_parser_parameter_declaration, c_parser_type_name,
4226         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
4227         of type_seen_p.
4228         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
4229         tag_defined_p, pass ctsk_firstref through.
4230
4231 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4232
4233         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
4234         (struct format_wanted_type): Replace field "name" with "kind", add
4235         "format_start" and "format_length".
4236         (check_format_info_main): Fill in new fields.  Fill in
4237         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
4238         after the final NUL outside the while loop.  Do not include
4239         width and precision modifiers in the format_start/format_length
4240         of the main format.
4241         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
4242         arguments.  Compute WANTED_TYPE first so that format_type_warning
4243         can be called for missing arguments.  Adjust calls to
4244         format_type_warning.
4245         (format_type_warning): Fetch as much information as possible
4246         from format_wanted_type.  Adjust printing now that every
4247         warning has a "descr", as well as for missing argument warnings
4248         and to include % sign for format specifiers.
4249
4250 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
4251
4252         PR rtl-optimization/46204
4253         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
4254         Update all callers.  Do not recompute topological order.  Adjust
4255         fallthrough edges following a degenerate conditional jump.
4256
4257 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
4258
4259         * opts-common.c (control_warning_option): New.
4260         * opts.c (set_default_handlers): New.
4261         (decode_options): Use set_default_handlers and
4262         control_warning_option.
4263         (common_handle_option): Update call to enable_warning_as_error.
4264         (enable_warning_as_error): Take gcc_options parameters.  Use
4265         control_warning_option.
4266         * opts.h (set_default_handlers, control_warning_option): Declare.
4267
4268 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
4269
4270         * Makefile.in (OPTS_H): Define.
4271         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
4272         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
4273         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
4274         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
4275         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
4276         * gcc.c (driver_handle_option): Take location_t parameter.
4277         (process_command, do_self_spec): Update calls to
4278         read_cmdline_option.
4279         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
4280         * langhooks.c (lhd_handle_option): Take location_t parameter.
4281         * langhooks.h (handle_option): Take location_t parameter.
4282         * lto-opts.c (lto_reissue_options): Update call to set_option.
4283         * opts-common.c (handle_option): Make static.  Take location_t
4284         parameter and pass it to other functions.
4285         (handle_generated_option): Take location_t parameter and pass it
4286         to other functions.
4287         (read_cmdline_option): Take location_t parameter and pass it to
4288         other functions.  Use warning_at and error_at.
4289         (set_option): Take location_t parameter and pass it to other
4290         functions.
4291         * opts.c (common_handle_option): Take location_t parameter and
4292         pass it to other functions.
4293         (enable_warning_as_error): Make static.  Take location_t parameter
4294         and pass it to other functions.
4295         (lang_handle_option): Take location_t parameter and pass it to
4296         other functions.
4297         (target_handle_option): Take location_t parameter.
4298         (read_cmdline_options, maybe_default_option,
4299         maybe_default_options, default_options_optimization,
4300         decode_options): Take location_t parameter and pass it to other
4301         functions.
4302         * opts.h: Include input.h.
4303         (struct cl_option_handler_func, decode_options, set_option,
4304         handle_generated_option, read_cmdline_option): Take location_t
4305         parameters.
4306         (handle_option, enable_warning_as_error): Remove.
4307         * toplev.c (toplev_main): Update call to decode_options.
4308
4309 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
4310
4311         * graphite-cloog-util.c (oppose_constraint,
4312         cloog_matrix_to_ppl_constraint,
4313         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
4314         CLooG isl uses unsigned integers.  This triggered a warning.
4315
4316 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
4317
4318         PR target/46438
4319         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
4320         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
4321         (xtensa_function_arg_1): De-constify cum.
4322         (xtensa_expand_prologue): Use add_reg_note.
4323
4324         PR target/46435
4325         * config/cris/cris.c (saved_regs_mentioned): Delete.
4326         (cris_reload_address_legitimized): Cast itype to enum reload_type.
4327         Remove unused variable op0p.
4328         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
4329         (cris_emit_movem_store): Use add_reg_note.
4330
4331         PR bootstrap/46456
4332         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
4333
4334 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
4335
4336         * function.c (expand_function_end): Set the locator of the prologue on
4337         the stack checking insns.
4338
4339 2010-11-12  Richard Henderson  <rth@redhat.com>
4340
4341         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
4342         * config/xtensa/xtensa.opt (mfused-madd): Remove.
4343         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
4344         MASK_FUSED_MADD.
4345         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
4346         (fnmasf4): Rename from mulsubsf3; use fma.
4347
4348 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
4349             Richard Henderson  <rth@redhat.com>
4350
4351         PR target/46428
4352         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
4353         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
4354         comparison.
4355
4356 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
4357
4358         * opts-common.c (decode_cmdline_option): Initialize separate_args.
4359
4360 2010-11-12  Jan Hubicka  <jh@suse.cz>
4361
4362         * doc/invoke.texi (early-inlining-insns): Update default.
4363         * params.def (early-inlining-insns): Default to 10.
4364
4365 2010-11-12  Olivier Hainque  <hainque@adacore.com>
4366
4367         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
4368
4369 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4370
4371         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
4372         (SUPPORTS_INIT_PRIORITY): Define.
4373
4374 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
4375
4376         PR target/46430
4377         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
4378         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
4379         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
4380         (avr_device_to_devicelib): Likewise.
4381         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
4382         into block.
4383         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
4384         (zero_extendhidi2, zero_extendsidi2): Likewise.
4385         * config/avr/avr.c (avr_num_arg_regs): Constify type.
4386         (avr_return_addr_rtx): De-constify tem.
4387         (avr_rotate_bytes): Move declarations to start of block.
4388         Don't use variable length array.  Put nested if/else into block.
4389
4390         PR rtl-optimization/46433
4391         * var-tracking.c: Include tm_p.h .
4392
4393         PR bootstrap/44756
4394         PR build/44767
4395         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
4396         should be unsigned.
4397         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
4398         * doc/tm.texi: Regenerate.
4399
4400         PR target/46412
4401         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
4402         * config/bfin/bfin.c: Include sel-sched.h .
4403         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
4404         (expand_interrupt_handler_prologue): Remove unused variable insn.
4405         (bfin_load_pic_reg): Likewise.
4406         (bfin_rtx_costs): Make code / outer_code variables of type
4407         enum rtx_code, copied from re-named parameters.
4408         (bfin_local_alignment): Change align argument and return type
4409         to unsigned.
4410         (bfin_adjust_cost): Remove unused variable insn_type.
4411         Declare variables at start of block.
4412         (struct loop_info): Rename to...
4413         (struct loop_info_d).
4414         (workaround_rts_anomaly): Change type of icode to int.
4415         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
4416         with int-typed variable.
4417         (note_np_check_stores): Likewise.
4418         (trapping_loads_p): Remove unused variable pat.
4419         (bfin_expand_binop_builtin): Use expand_normal.
4420         (bfin_expand_unop_builtin): Likewise.
4421         (bfin_expand_builtin): Likewise.  Set tmode before use.
4422
4423         PR middle-end/44769
4424         * final.c (split_double): Don't use BITS_PER_WORD directly in
4425         shift count.
4426
4427         PR target/46431
4428         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
4429         assignment.
4430
4431         PR target/46450
4432         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
4433         Use add_reg_note.
4434         (xstormy16_function_arg): Dereference cum.
4435         (xstormy16_expand_builtin): Use expand_normal.
4436         Change type of omode to enum machine_mode.
4437         (combine_bnp): Rename and to and_insn.
4438
4439         PR target/46437
4440         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
4441         localreg.
4442
4443 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
4444
4445         PR debug/46375
4446         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
4447
4448 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
4449
4450         PR lto/46376
4451         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
4452
4453 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
4454
4455         PR c/44782
4456         * common.opt (fmax-errors=): New option.
4457         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
4458         * diagnostic.h (struct diagnostic_context): Add max_errors field.
4459         * diagnostic.c (diagnostic_initialize): Initialize it.
4460         (diagnostic_action_after_output): Exit if more than max_errors
4461         have been output.
4462         * doc/invoke.texi (Warning Options): Add -fmax-errors.
4463         (-fmax-errors): Document.
4464
4465 2010-11-11  Richard Henderson  <rth@redhat.com>
4466
4467         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
4468
4469 2010-11-11  Richard Henderson  <rth@redhat.com>
4470
4471         * config/fused-madd.opt: New file.
4472         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
4473         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
4474         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
4475         * config/i386/i386.opt (mfused-madd): Remove.
4476         * config/i386/sse.md (split_fma): Remove.
4477         (split_fms, split_fnma, split_fnms): Remove.
4478
4479 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
4480
4481         PR target/46088
4482         * config/i386/i386.md (*ashl<mode>3_cconly,
4483         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
4484         change nonimmediate_operand predicate to register_operand.
4485
4486 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
4487
4488         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
4489
4490 2010-11-11  Jan Hubicka  <jh@suse.cz>
4491
4492         * opts.c (finish_options): Do not error on -flto-partition alone.
4493
4494         * doc/invoke.texi (-fwhopr): Merge into -flto section.
4495         (-flto-partition): Document none.
4496         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
4497         * lto-wrapper.c: Update comment.
4498         (run_gcc): Update LTO option parsing.
4499         * opts.c (finish_options): add support -flto-partition=none
4500         (common_handle_option): Remove fwhopr.
4501         * common.opt: Turn fwhopr into flto.
4502         * collect2.c (main): Update option handling.
4503         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
4504         * ipa-split.c (execute_split_functions): Remove flag_whopr.
4505         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
4506         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
4507         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
4508
4509 2010-11-11  Jan Hubicka  <jh@suse.cz>
4510
4511         PR tree-optimize/40436
4512         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
4513         (eliminated_by_inlining_prob): ... this one; return 50% probability
4514         for SRA.
4515         (estimate_function_body_sizes): Update use of
4516         eliminated_by_inlining_prob; estimate static function size
4517         for 2 instructions.
4518
4519 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
4520
4521         PR target/44749
4522         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
4523         declare.  Change type of argument four to type int.
4524         (mep_secondary_input_reload_class): Returns enum reg_class.
4525         (mep_secondary_output_reload_class): Likewise.
4526         (mep_function_value): Change types of arguments to cont_tree.
4527         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
4528         argument four to type int.
4529         (mep_secondary_input_reload_class): Returns enum reg_class.
4530         (mep_secondary_output_reload_class): Likewise.
4531         (mep_function_value): Change types of arguments to cont_tree.
4532         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
4533         mep_regno_reg_class to enum reg_class.
4534
4535 2010-11-11  Richard Henderson  <rth@redhat.com>
4536
4537         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
4538         that the target has the exact fma operation that we matched.
4539
4540 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
4541
4542         * reginfo.c (fix_register): Avoid inserting English word in
4543         diagnostic sentence.  Use %qs for quoting and %'.
4544
4545 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
4546
4547         * config/i386/driver-i386.c (host_detect_local_cpu): Support
4548         Intel processor family 6, model 0x2c.
4549
4550 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
4551
4552         * opts.c (warning_as_error_callback,
4553         register_warning_as_error_callback): Remove.
4554         (enable_warning_as_error): Don't use warning_as_error_callback.
4555         * opts.h (register_warning_as_error_callback): Remove.
4556
4557 2010-11-11  Richard Henderson  <rth@redhat.com>
4558
4559         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
4560         in between the MULT and the PLUS/MINUS.
4561
4562 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
4563
4564         PR middle-end/46388
4565         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
4566         BLKmode mode for it.
4567         (expand_expr_real_1): Similarly for op0.
4568
4569 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4570
4571         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
4572         Document optional target selector.
4573
4574 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
4575
4576         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
4577         assembling high and low parts of size if not using 32-bit HWINT; else
4578         use DECL_SIZE_UNITS, not DECL_SIZE.
4579
4580 2010-11-11  Martin Jambor  <mjambor@suse.cz>
4581
4582         PR tree-optimization/46383
4583         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
4584         offsets.
4585         (compute_complex_ancestor_jump_func): Likewise.
4586         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
4587
4588 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
4589
4590         PR debug/46150
4591         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
4592         true if expr1->hash != expr2->hash.
4593
4594 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4595
4596         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
4597         diagnostics with lowercase letters.
4598         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
4599         lowercase letters.
4600         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
4601         diagnostic.
4602         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4603         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
4604         lowercase letters.
4605         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4606         Remove trailing ' ' from diagnostic.
4607         * config/avr/avr.c (print_operand_address): Start diagnostic with
4608         a lowercase letter and remove trailing '.'.
4609         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
4610         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
4611         with lowercase letters.  Use %' in diagnostics.  Remove trailing
4612         '.' from diagnostics.
4613         (bfin_handle_longcall_attribute): Use %' in diagnostic.
4614         * config/cris/cris.c (cris_split_movdx,
4615         cris_expand_pic_call_address): Start diagnostics with lowercase
4616         letters.
4617         (cris_asm_output_label_ref): Use %' in diagnostic.
4618         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
4619         letter.
4620         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
4621         lowercase letter.
4622         * config/darwin-c.c (version_as_macro): Start diagnostic with a
4623         lowercase letter.
4624         * config/darwin-driver.c (darwin_default_min_version): Use %' in
4625         diagnostic.
4626         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
4627         diagnostic.
4628         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4629         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
4630         diagnostics.
4631         * config/i386/i386.c (ix86_option_override_internal): Write
4632         diagnostic as a single sentence without trailing '.'.  Use %' in
4633         diagnostics.
4634         (ix86_function_sseregparm, classify_argument): Start diagnostics
4635         with lowercase letters.
4636         (ix86_expand_prologue): Use %' in diagnostic.
4637         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
4638         diagnostic.
4639         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
4640         lowercase letter.
4641         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
4642         diagnostic.
4643         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4644         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
4645         '`' in help text.
4646         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
4647         lowercase letter.
4648         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
4649         lowercase letters.
4650         * config/microblaze/microblaze.c (microblaze_handle_option):
4651         Remove trailing '.' from diagnostic.
4652         (print_operand): Start diagnostic with a lowercase letter.
4653         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
4654         lowercase letters.  Avoid '`' in diagnostics.
4655         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
4656         lowercase letters.  Avoid '`' in diagnostics.
4657         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
4658         lowercase letters.  Avoid '`' in diagnostics.
4659         * config/picochip/picochip.c (picochip_option_override,
4660         picochip_emit_save_register, picochip_function_arg,
4661         picochip_output_label, picochip_output_internal_label,
4662         picochip_asm_output_opcode, picochip_output_cbranch,
4663         picochip_output_compare, picochip_output_branch,
4664         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
4665         diagnostics. Start diagnostics with lowercase letters.  Use %' in
4666         diagnostics.
4667         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
4668         "SPE" capitalization.  Start diagnostic with a lowercase letter.
4669         (rs6000_handle_option): Start diagnostics with lowercase letters.
4670         (def_builtin): Remove trailing '.' from diagnostic.
4671         (rs6000_savres_routine_name): Start diagnostic with a lowercase
4672         letter.
4673         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
4674         diagnostic.
4675         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
4676         lowercase letter.
4677         * config/s390/s390.c (s390_option_override) Start diagnostics with
4678         lowercase letters.  Use %' in diagnostic.
4679         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
4680         lowercase letters.
4681         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
4682         diagnostic.
4683         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
4684         diagnostic.
4685         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
4686         diagnostic.
4687         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4688         * config/spu/spu.c (spu_option_override): Start diagnostics with
4689         lowercase letters.  Use %qs for quoting in diagnostics.
4690         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
4691         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
4692         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
4693         from diagnostic.
4694         * convert.c (convert_to_integer, convert_to_vector): Use %' in
4695         diagnostics.
4696         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
4697         letter and use "cannot" spelling.
4698         * expmed.c (extract_fixed_bit_field): Start diagnostic with
4699         lowercase letter and format as a single sentence without '.'.
4700         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
4701         Use %' in diagnostics.
4702         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
4703         Use %' in diagnostics.
4704         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
4705         Use %' in diagnostics.
4706         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
4707         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
4708         with lowercase letters and remove tailing '.' and '\n'.
4709         * lto-cgraph.c (input_profile_summary): Start diagnostic with
4710         lowercase letter and remove trailing '.'.
4711         (input_cgraph): Start diagnostics with lowercase letters and
4712         remove trailing '\n'.
4713         * opts.c (finish_options, common_handle_option): Start diagnostics
4714         with lowercase letters and remove trailing '.'.  Fix typo in
4715         diagnostic.
4716         * passes.c (position_pass): Start diagnostic with lowercase letter.
4717         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
4718         register_callback, try_init_one_plugin): Start diagnostics with
4719         lowercase letters.
4720         * reload1.c (spill_failure): Use %' in diagnostic.
4721         (gen_reload): Start diagnostic with a lowercase letter.
4722         * stor-layout.c (place_field): Start diagnostic with a lowercase
4723         letter.
4724         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
4725         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
4726         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
4727         Start diagnostics with lowercase letters, remove trailing '.' and
4728         use %' in diagnostics.
4729         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
4730         (verify_ssa): Don't split diagnostic across two error calls.
4731         Spell out "number" and use %' in diagnostic.
4732         * value-prof.c (visit_hist, check_counter): Start diagnostics with
4733         lowercase letters.
4734
4735 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
4736
4737         PR middle-end/46419
4738         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
4739         (_mm_cvtpu16_ps): Ditto.
4740
4741 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4742
4743         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
4744         warn_larger_than, larger_than_size, warn_frame_larger_than,
4745         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
4746         default_visibility, flag_tls_default): New Variable declarations.
4747         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
4748         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
4749         (v): Declare as Common and document here.
4750         * flags.h (default_visibility, flag_generate_lto,
4751         warn_larger_than, larger_than_size, warn_frame_larger_than,
4752         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
4753         flag_shlib, flag_excess_precision_cmdline): Remove.
4754         (set_Wstrict_aliasing): Update prototype.
4755         * gcc.c (verbose_flag): Remove.
4756         (driver_handle_option): Add diagnostic_context parameter.  Don't
4757         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
4758         incrementing it.
4759         * opts-common.c (handle_option): Pass dc to handler.
4760         * opts.c (warn_larger_than, larger_than_size,
4761         warn_frame_larger_than, frame_larger_than_size,
4762         default_visibility): Remove.
4763         (common_handle_option): Add diagnostic_context parameter.
4764         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
4765         gcc_options parameters.
4766         (lang_handle_option, target_handle_option, read_cmdline_options,
4767         decode_options): Add diagnostic_context parameters.
4768         (finish_options): Access option state through opts pointer where
4769         possible.
4770         (common_handle_option): Access option state through opts pointer
4771         where possible.  Do not set local static variable verbose.  Do not
4772         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
4773         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
4774         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
4775         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
4776         OPT_fwhopr_.  Do not explicitly set .opt file variables for
4777         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
4778         (set_Wstrict_aliasing): Add gcc_options parameter.
4779         * opts.h (struct cl_option_handler_func): Add diagnostic_context
4780         parameter to handler.
4781         (decode_options): Add diagnostic_context parameter.
4782         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
4783         asm_file_name, flag_generate_lto, flag_gen_aux_info,
4784         aux_info_file_name, flag_shlib, flag_tls_default,
4785         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
4786         (toplev_main): Pass global_dc to decode_options.
4787         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
4788         aux_info_file_name, asm_file_name): Remove.
4789         * tree.h (flag_tls_default): Remove.
4790
4791 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
4792
4793         PR target/45986
4794         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
4795         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
4796
4797 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
4798
4799         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
4800         (x86_64-*-*): Likewise.
4801         * config/i386/cpuid.h: Define TBM bit.
4802         * config/i386/driver-i386.c (host_detect_local_cpu): Define
4803         and set has_tbm.
4804         * config/i386/i386-c.c (ix86_target_macros_internal): Check
4805         isa_flag for TBM.
4806         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
4807         (OPTION_MASK_ISA_TBM_UNSET): New.
4808         (ix86_handle_option): Handle -mtbm.
4809         (isa_opts): Add -mtbm.
4810         (enum pta_flags): Add PTA_TBM.
4811         (ix86_option_override_internal): Add TBM support.
4812         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
4813         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
4814         (IX86_BUILTIN_BEXTRI64): Likewise.
4815         (bdesc_args): Add TBM intrinsics.
4816         (ix86_expand_builtin): Add TBM specific case.
4817         * config/i386/i386.h (TARGET_TBM): New for TBM.
4818         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
4819         (tbm_bextri_<mode>): Likewise.
4820         (*tbm_blcfill_<mode>): Likewise.
4821         (*tbm_blci_<mode>): Likewise.
4822         (*tbm_blcic_<mode>): Likewise.
4823         (*tbm_blcmsk_<mode>): Likewise.
4824         (*tbm_blcs_<mode>): Likewise.
4825         (*tbm_blsfill_<mode>): Likewise.
4826         (*tbm_blsic_<mode>): Likewise.
4827         (*tbm_t1mskc_<mode>): Likewise.
4828         (*tbm_tzmsk_<mode>): Likewise.
4829         * config/i386/i386.opt: Add -mtbm.
4830         * config/i386/tbmintrin.h (__bextri_u32): New.
4831         (__blcfill_u32): Likewise.
4832         (__blci_u32): Likewise.
4833         (__blcic_u32): Likewise.
4834         (__blcmsk_u32): Likewise.
4835         (__blcs_u32): Likewise.
4836         (__blsfill_u32): Likewise.
4837         (__blsic_u32): Likewise.
4838         (__t1mskc_u32): Likewise.
4839         (__tzmsk_u32): Likewise.
4840         (__bextri_u64): Likewise.
4841         (__blcfill_u64): Likewise.
4842         (__blci_u64): Likewise.
4843         (__blcic_u64): Likewise.
4844         (__blcmsk_u64): Likewise.
4845         (__blcs_u64): Likewise.
4846         (__blsfill_u64): Likewise.
4847         (__blsic_u64): Likewise.
4848         (__t1mskc_u64): Likewise.
4849         (__tzmsk_u64): Likewise.
4850         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
4851         * doc/invoke.texi: Document -mtbm.
4852         * doc/extend.texi: Document TBM built-in functions.
4853
4854 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
4855
4856         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
4857         (x86_64-*-*): Likewise.
4858         * config/i386/cpuid.h: Define BMI bit.
4859         * config/i386/driver-i386.c (host_detect_local_cpu): Define
4860         and set has_bmi.
4861         * config/i386/i386-c.c (ix86_target_macros_internal): Check
4862         isa_flag for BMI.
4863         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
4864         (OPTION_MASK_ISA_BMI_UNSET): New.
4865         (ix86_handle_option): Handle -mbmi.
4866         (isa_opts): Add -mbmi.
4867         (enum pta_flags): Add PTA_BMI.
4868         (ix86_option_override_internal): Add BMI support.
4869         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
4870         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
4871         (IX86_BUILTIN_BEXTR64): Likewise.
4872         (IX86_BUILTIN_CTZS): Likewise.
4873         (bdesc_args): Add BMI intrinsics.
4874         (ix86_expand_args_builtin): Add BMI specific cases.
4875         * config/i386/i386.h (TARGET_BMI): New for BMI.
4876         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
4877         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
4878         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
4879         (UNSPEC_TZCNT): Likewise.
4880         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
4881         (bmi_andn_<mode>): New for BMI.
4882         (bmi_bextr_<mode>): Likewise.
4883         (bmi_blsi_<mode>): Likewise.
4884         (bmi_blsmsk_<mode>): Likewise.
4885         (bmi_blsr_<mode>): Likewise.
4886         * config/i386/i386.opt: Add -mbmi.
4887         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
4888         * config/i386/bmiintrin.h (__lzcnt_u16): New.
4889         (__tzcnt_u16): Likewise.
4890         (__andn_u32): Likewise.
4891         (__bextr_u32): Likewise.
4892         (__blsi_u32): Likewise.
4893         (__blsmsk_u32): Likewise.
4894         (__blsr_u32): Likewise.
4895         (__lzcnt_u32): Likewise.
4896         (__tzcnt_u32): Likewise.
4897         (__andn_u64): Likewise.
4898         (__bextr_u64): Likewise.
4899         (__blsi_u64): Likewise.
4900         (__blsmsk_u64): Likewise.
4901         (__blsr_u64): Likewise.
4902         (__lzcnt_u64): Likewise.
4903         (__tzcnt_u64): Likewise.
4904         * doc/invoke.texi: Document -mbmi and -mno-bmi.
4905         * doc/extend.texi: Document BMI built-in functions.
4906
4907 2010-11-10  Jan Hubicka  <jh@suse.cz>
4908
4909         PR tree-optimize/46228
4910         * doc/invoke.texi (comdat-sharing-probability): Document.
4911         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
4912         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
4913
4914 2010-11-10  Jan Hubicka  <jh@suse.cz>
4915
4916         PR tree-optimize/46228
4917         * cgraph.c (cgraph_propagate_frequency): Fix typo.
4918
4919 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
4920
4921         PR tree-optimization/46414
4922         * tree-inline.c (estimate_move_cost): Check preferred vector
4923         mode for vector type.
4924
4925 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4926
4927         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
4928
4929 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
4930
4931         PR tree-optimization/45971
4932         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
4933         for phi nodes analyzable by scev.
4934
4935 2010-11-10  Richard Guenther  <rguenther@suse.de>
4936
4937         PR tree-optimization/44964
4938         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
4939
4940 2010-11-10  Martin Jambor  <mjambor@suse.cz>
4941
4942         PR tree-optimization/46351
4943         PR tree-optimization/46377
4944         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
4945         aggregate bit-fields.
4946
4947 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4948
4949         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4950         * doc/tm.texi: Regenerate.
4951         * opts-common.c (tm.h): Don't include.
4952         (target_option_translations): Remove.
4953         (decode_cmdline_options_to_array): Don't handle translating options.
4954         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
4955         * config/darwin-driver.c: Don't condition includes on
4956         CROSS_DIRECTORY_STRUCTURE.
4957         (darwin_default_min_version): Make static.
4958         (darwin_driver_init): New.  Call darwin_default_min_version if not
4959         CROSS_DIRECTORY_STRUCTURE.
4960         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4961         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
4962         (ASM_SPEC): Add %{static}.
4963         (darwin_default_min_version): Don't declare.
4964         (darwin_driver_init): Declare.
4965         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
4966         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
4967         * config/darwin.opt (all_load, allowable_client,
4968         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
4969         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
4970         exported_symbols_list, filelist, findirect-virtual-calls,
4971         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
4972         framework, fterminated-vtables, gfull, gused, image_base, init,
4973         install_name, multi_module, multiply_defined,
4974         multiply_defined_unused, no_dead_strip_inits_and_terms,
4975         seg_addr_table, seg_addr_table_filename, segaddr,
4976         segs_read_only_addr, segs_read_write_addr, single_module,
4977         umbrella, unexported_symbols_list, weak_reference_mismatches,
4978         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
4979         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
4980         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
4981         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
4982         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
4983         (ASM_SPEC): Add %{static}.
4984         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
4985         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4986         (DRIVER_SELF_SPECS): Handle options formerly in
4987         TARGET_OPTION_TRANSLATE_TABLE.
4988         * config/mep/mep.opt (mfar): New.
4989         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4990         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
4991         TARGET_OPTION_TRANSLATE_TABLE.
4992         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
4993         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
4994         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
4995         ffix-and-continue, findirect-data): New.
4996         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4997         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
4998         (mnofpu): Define mask and use Report here.
4999
5000 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5001
5002         * config/s390/s390.c (s390_emit_prologue): Report the stack
5003         size if -fstack-usage is used.
5004
5005 2010-11-10  Richard Guenther  <rguenther@suse.de>
5006
5007         PR tree-optimization/46398
5008         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
5009
5010 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
5011
5012         PR target/44760
5013         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
5014         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
5015         GP_REG_OR_PSEUDO_STRICT_P.
5016         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
5017         unexpected alternative.
5018         (*movsf_internal): Likewise.
5019         (indirect_jump): Replace call to non-existant function with call to
5020         internal_error.
5021         (tablejump): Likewise.
5022         * config/iq2000/iq2000.c: Include df.h .
5023         (iq2000_function_arg_advance): Use CONST_CAST2.
5024         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
5025         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
5026         a non-zero function address.
5027         (iq2000_initial_elimination_offset): Add gcc_unreachable for
5028         unexpected value of FROM.
5029         (symbolic_expression_p): Delete.
5030         (iq2000_function_value): Constify func.
5031         (expand_one_builtin): Use expand_normal.
5032         (iq2000_print_operand): Don't print VALUE if calculating it failed.
5033
5034         PR rtl-optimization/44764
5035         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
5036
5037         PR target/46407
5038         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
5039         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
5040         with ATTRIBUTE_UNUSED.
5041         (valid_psw_flag): Constify parameter which.
5042         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
5043
5044         PR target/46415
5045         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
5046         (mmix_dbx_register_number): Likewise.
5047         * config/mmix/mmix.c: Include df.h .
5048         (mmix_local_alignment): Change argument basic_align and return type
5049         to unsigned.
5050         (mmix_dbx_register_number): Change argument and return type to
5051         unsigned.
5052         (mmix_expand_prologue): Use add_reg_note.
5053
5054         PR target/46417
5055         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
5056         (spu_split_store): Use aform.
5057         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
5058
5059 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5060
5061         PR/46268
5062         * doc/gty.texi (GTY Options): Clarify that variable_size produces
5063         allocators taking size in bytes, compare with length option.  Add
5064         size calculation example.
5065         (Invoking the garbage collector): Ensure that sentences are
5066         followed by two spaces.  Describe that pointer fields must be
5067         initialized at ggc_collect call.
5068         (Troubleshooting): New section.
5069
5070 2010-11-09  Jan Hubicka  <jh@suse.cz>
5071
5072         PR tree-optimization/40436
5073         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
5074         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
5075         normal instructions; be sure bultin is not implemented in this file;
5076         compute non-zero return cost.
5077         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
5078         * tree-inline.h (eni_weights_d): Add return cost.
5079
5080 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
5081
5082         * c-parser.c (c_parser_struct_declaration): Handle declaration
5083         specifiers followed by CPP_CLOSE_BRACE.
5084
5085 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
5086
5087         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
5088         split occurs before reload, and we allocate memory at the time of
5089         the split, not during expansion.  Add attributes.
5090         (floatsi<mode>2_lfiwax_mem): Ditto.
5091         (floatunssi<mode>2_lfiwzx): Ditto.
5092         (floatunssi<mode>2_lfiwzx_mem): Ditto.
5093         (floatsidf2): Ditto.
5094         (floatunssisf2): Ditto.
5095         (floatunssidf2): Ditto.
5096         (fix_trunc<mode>si2): Ditto.
5097         (fix_trunc<mode>si2_stfiwx): Ditto.
5098         (fix_trunc<mode>si2_internal): Ditto.
5099         (fix_trunc<mode>si2): Ditto.
5100         (fix_trunc<mode>di2): Ditto.
5101         (fixuns_trunc<mode>si2_stfiwx): Ditto.
5102         (floatsisf2): Ditto.
5103         (floatdidf2_mem): Ditto.
5104         (floatunsdidf2_mem): Ditto.
5105         (floatunsdidf2): Ditto.
5106         (floatdisf2_internal1): Ditto.
5107         (floatdisf2_mem): Ditto.
5108         (floatunsdisf2_mem): Ditto.
5109         (floatsi<mode>2_lfiwax_mem2): Delete.
5110         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
5111         (fix_trunc<mode>si2_mem): Ditto.
5112         (fixuns_trunc<mode>si2_mem): Ditto.
5113         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
5114         type operations to reduce copying the values to multiple memory slots.
5115         (roundu32<mode>2_fprs): Ditto.
5116
5117         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
5118         PRE_INC, PRE_DEC, PRE_MODIFY.
5119         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
5120
5121         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
5122         Delete prototype.
5123
5124 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
5125
5126         PR target/43808
5127         * cfgexpand.c (partition_stack_vars): Call
5128         update_alias_info_with_stack_vars unconditionally.
5129         (update_alias_info_with_stack_vars): Allow unused
5130         unreferenced vars when not optimizing.
5131
5132 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
5133
5134         PR tree-optimization/46036
5135         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
5136         add_to_dst_predicate_list.
5137
5138 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
5139
5140         PR debug/46171
5141         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
5142         earlier.
5143         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
5144         argument, call dead_debug_reset when adding REG_UNUSED note.
5145         (dead_debug_reset): New function.
5146         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
5147         df_create_unused_note callers.
5148
5149 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
5150
5151         * config/fr30/fr30.c: Include "df.h".
5152
5153 2010-11-09  Richard Guenther  <rguenther@suse.de>
5154
5155         PR tree-optimization/46355
5156         * tree-loop-distribution.c (tree_loop_distribution): Do not
5157         distribute loops without a single exit.
5158
5159 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5160
5161         PR rtl-optimization/46237
5162         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
5163         saved hard regs if they might get partially clobbered.
5164
5165 2010-11-09  Paul Koning  <ni1d@arrl.net>
5166
5167         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
5168
5169 2010-11-09  Richard Guenther  <rguenther@suse.de>
5170
5171         PR tree-optimization/46177
5172         * tree-loop-distribution.c (prop_phis): Remove.
5173         (generate_builtin): Re-use the old loop exit edge to avoid
5174         needing to update PHI nodes.
5175
5176 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
5177
5178         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
5179         type of args_size to unsigned HOST_WIDE_INT.
5180
5181         PR target/44755
5182         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
5183         * config/t-pnt16-warn: New file.
5184         * config/picochip/picochip.c (picochip_emit_stack_allocate):
5185         Use add_reg_note.
5186         (picochip_emit_save_register): Likewise.
5187         (picochip_emit_restore_register): Remove variable insn.
5188         (picochip_legitimize_address): Don't use C++ style comments.
5189         (picochip_legitimize_reload_address): Likewise.
5190         (reorder_var_tracking_notes): Remove variable vliw_start.
5191         (picochip_reorg): Cast first arguemnt to emit_note_after to
5192         enum insn_note.
5193         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
5194         (picochip_expand_builtin_3op): Likewise.
5195         (picochip_expand_builtin_2opvoid): Likewise.
5196         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
5197         (picochip_expand_array_testport): Likewise.
5198         (picochip_init_builtins): Remove unused variables.
5199         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
5200         to unsigned long, and output it as such.
5201         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
5202         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
5203         (schedType): Cast result of picochip_schedule_type to
5204         enum attr_schedType.
5205
5206         PR target/44759
5207         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
5208         conditional to type of S.
5209         (mn10300_function_arg): Remove unused variable align.
5210         (mn10300_arg_partial_bytes): Likewise.
5211         * config/mn10300/mn10300.md (attribute cpu): Cast value to
5212         enum attr_cpu.
5213
5214 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
5215
5216         PR bootstrap/46392
5217         * gengtype-parse.c (type): Call get_input_file_name to get file name.
5218
5219 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
5220
5221         * tree.h (contains_placeholder_p): Fix comment.
5222         (type_contains_placeholder_p): Adjust comment.
5223         * tree.c (contains_placeholder_p): Fix comment.
5224         (type_contains_placeholder_1): Do not recurse on pointed-to types and
5225         adjust comment.
5226         (type_contains_placeholder_p): Add comment.
5227
5228 2010-11-09  Paul Koning  <ni1d@arrl.net>
5229
5230         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
5231         output of byte values.
5232
5233 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
5234
5235         PR middle-end/46360
5236         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
5237         not in SSA mode.
5238
5239 2010-11-09  Richard Guenther  <rguenther@suse.de>
5240
5241         PR middle-end/46221
5242         * varasm.c (compute_visible_aliases): New function.
5243         (remove_unreachable_alias_pairs): Aliases make a target available
5244         even though we reclaimed the cgraph node.
5245         (finish_aliases_1): Likewise.
5246         * Makefile.in (varasm.o): Add pointer-set.h dependency.
5247
5248 2010-11-09  Nick Clifton  <nickc@redhat.com>
5249
5250         * config/mn10300/mn10300-modes.def: New file.
5251
5252 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
5253             Jeremie Salvucci  <jeremie.salvucci@free.fr>
5254
5255         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
5256         (plugin_files, get_file_basename, get_file_realbasename)
5257         (get_file_langdir, error_at_line, gt_files, this_file)
5258         (system_h_file, read_input_list, create_field_all)
5259         (get_file_srcdir_relative_path, get_file_basename)
5260         (get_file_langdir, get_file_gtfilename)
5261         (get_output_file_with_visibility, get_output_file_name)
5262         (struct flist, put_mangled_filename, walk_type)
5263         (put_mangled_filename, finish_root_table, write_roots): Use
5264         input_file-s.
5265         (lang_dir_names, num_lang_dirs): Remove static.
5266         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
5267         (main): Use input_file-s.
5268
5269         * gengtype.h: (struct input_file_st, input_file): New type.
5270         (struct fileloc): Use it.
5271         (gt_files, num_gt_files, this_file, system_h_file)
5272         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
5273         (get_input_file_name): New function.
5274         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
5275         use input_file.
5276         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
5277         (get_output_file_name): Ditto.
5278
5279         * gengtype-lex.l (yybegin): Use input_file.
5280
5281         * gengtype-parse.c (parse_error): Use input_file.
5282
5283 2010-11-08  Xinliang David Li  <davidxl@google.com>
5284
5285         PR tree-optimization/46316
5286         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
5287         * double-int.h (double_int_mul_with_sign): New function.
5288         * double-int.c (double_int_mul_with_sign): New function.
5289
5290 2010-11-08  Paul Koning  <ni1d@arrl.net>
5291
5292         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
5293
5294 2010-11-08  Paul Koning  <ni1d@arrl.net>
5295
5296         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
5297
5298 2010-11-08  Paul Koning  <ni1d@arrl.net>
5299
5300         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
5301         to 8 bits.
5302
5303 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
5304
5305         PR target/46378
5306         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
5307         turn on ISA 2.04 rounding instructions for power5.
5308
5309         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
5310         not ISA 2.02.
5311
5312         PR target/45585
5313         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
5314         in FPR registers.
5315         (movdi_low_st): Ditto.
5316
5317 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
5318             Richard Henderson  <rth@redhat.com>
5319
5320         PR target/44758
5321         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
5322         (attribute acc_group): Cast value to enum attr_acc_group.
5323         (*movdi_nodouble+6): Use gen_int_mode.
5324         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
5325         if RTX_CODE is defined or not.
5326         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
5327         struct frv_io.
5328         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
5329         (frv_frame_access, frv_expand_prologue): Remove unused variables.
5330         (frv_expand_block_clear): Likewise.
5331         (frv_trampoline_init): Use LCT_NORMAL.
5332         (struct frv_packet_group): New struct, broken out of type of
5333         frv_packet.
5334         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
5335         use cast in loop counter increment.
5336         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
5337         assigning to io->type.
5338         (bdesc_set): Use rtx_code UNKNOWN in initializer.
5339         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
5340         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
5341         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
5342         (frv_read_argument): Use expand_normal.
5343
5344         PR target/44757
5345         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
5346         lm32_legitimate_constant_p.
5347         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
5348         * config/lm32/lm32.c (gen_int_relational): Make new block for
5349         LE / LT / LEU / LTU case.  Declare variables at start of block.
5350         (lm32_block_move_inline): Use XALLOCAVEC.
5351
5352 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5353
5354         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
5355
5356 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
5357
5358         * gengtype (get_output_file_for_structure): Ensure type is union
5359         or struct.
5360         (write_splay_tree_allocator_def): Use
5361         get_output_file_with_visibility.
5362
5363 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5364
5365         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
5366         to defined values in case of an error.
5367         (s390_option_override): Skip further processing if the -march
5368         parameter wasn't recognized.
5369
5370 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
5371
5372         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
5373         assert that REG is a hard register number before using it as an index.
5374
5375         PR bootstrap/46358
5376         * config/i386/i386.c (ix86_expand_split_stack_prologue):
5377         Avoid warnings when HOST_WIDE_INT is 32 bit.
5378
5379 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
5380
5381         PR target/46208
5382         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
5383         (sparc_promote_prototypes): Likewise.
5384         (sparc_promote_function_mode): Promote in 32-bit mode as well.
5385         (sparc_return_in_memory): Remove superfluous parentheses.
5386         (sparc_struct_value_rtx): Fix long lines.
5387         (sparc_function_value_1): Promote in 32-bit mode as well.
5388
5389 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
5390
5391         PR rtl-optimization/45352
5392         * sel-sched.c (find_best_expr): Do not set pneed_stall when
5393         the variable_issue hook is not implemented.
5394         (fill_insns): Remove dead variable stall_iterations.
5395         (init_seqno_1): Force EBB start for resetting sched cycles on any
5396         successor blocks of the rescheduled region.
5397         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
5398         (reset_sched_cycles_in_current_ebb): Add debug printing.
5399         New variable issued_insns.  Advance state when we have issued
5400         issue_rate insns.
5401
5402 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
5403
5404         * gengtype (main): Get here's position using POS_HERE macro for
5405         do*typedef calls.
5406
5407 2010-11-07  Ian Lance Taylor  <iant@google.com>
5408
5409         PR target/46089
5410         * config/i386/i386.c (split_stack_fn_large): New static variable.
5411         (ix86_expand_split_stack_prologue): Handle large model.
5412
5413 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
5414
5415         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
5416         all possible addressing modes.
5417
5418 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
5419
5420         PR tree-optimization/46346
5421         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
5422
5423 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
5424
5425         * config/mips/mips.c: Revert previous patch.
5426         * config/mips/mips.md: Likewise.
5427
5428 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
5429
5430         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
5431         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
5432         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
5433         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
5434         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
5435         to use FMA.
5436         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
5437         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
5438         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
5439         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
5440
5441 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
5442
5443         PR c/43384
5444         * c-decl.c (lookup_label): Labels can only be referenced in a
5445         function's scope.
5446         (store_parm_decls_oldstyle): Skip erroneous parameters.
5447
5448 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
5449
5450         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
5451         LIBCALL_VALUE): Remove macros.
5452         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5453         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5454         (fr30_function_value_regno_p, fr30_function_value,
5455         fr30_libcall_value): New functions.
5456
5457 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
5458
5459         PR middle-end/46314
5460         * target.def (generate_internal_label): New asm_out hook.
5461         * output.h (default_generate_internal_label): Declare.
5462         * varasm.c (default_generate_internal_label): Define.
5463
5464 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
5465
5466         PR target/44981
5467         * doc/extend.tex (format): Document NSString extension.
5468         (format_arg): Likewise.
5469         (Darwin Format Checks): New section.
5470         * doc/tm.texi: Document string object hooks (generated).
5471         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
5472         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
5473         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
5474         * target.def (objc_construct_string_object): Rename, amend
5475         documentation.
5476         (string_object_ref_type_p): New hook.
5477         (check_string_object_format_arg): New hook.
5478         * c-parser.c (c_parser_attributes): Allow objective-c class names as
5479         attribute identifiers.
5480         * config/darwin-c.c (darwin_cfstring_ref_p): New.
5481         (darwin_check_cfstring_format_arg): New.
5482         (darwin_additional_format_types): New.
5483         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
5484         (darwin_check_cfstring_format_arg): New.
5485         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
5486         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
5487         (TARGET_N_FORMAT_TYPES): New.
5488         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
5489
5490 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
5491             Pascal Obry  <obry@adacore.com>
5492
5493         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
5494         in 64-bit mode and 17 otherwise.
5495
5496 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5497
5498         PR debug/45939
5499         * var-tracking.c (emit_note_insn_var_location): Make sure that
5500         call related var location notes come before the normal ones.
5501
5502 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
5503
5504         PR target/46326
5505         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
5506         in the last change.
5507
5508 2010-11-05  Ian Lance Taylor  <iant@google.com>
5509
5510         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
5511
5512 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
5513
5514         PR c/44772
5515         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
5516         pointer_set_contains if DECL_NAME is NULL.
5517
5518 2010-11-05  Ian Lance Taylor  <iant@google.com>
5519
5520         PR target/46084
5521         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
5522         request enough additional space for alignment, and force alignment.
5523
5524 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
5525
5526         * config/i386/i386.c (legitimate_pic_address_disp_p):
5527         Handle UNSPEC_PCREL.
5528         (ix86_legitimate_address_p): Likewise.
5529         (legitimize_pic_address): Likewise.
5530         (output_pic_addr_const): Likewise.
5531         (ix86_delegitimize_address): Likewise.
5532         (ix86_find_base_term): Likewise.
5533         (memory_address_length): Likewise.
5534         (x86_output_mi_thunk): Handle special case x64
5535         for non local binding.
5536         * config/i386/i386.md (UNSPEC_PCREL): New.
5537         * config/i386/winnt.c (i386_pe_binds_local_p):
5538         Allow weak symbol for x64 windows with non-local binding.
5539
5540 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
5541
5542         PR target/45670
5543         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
5544         instead of EXPAND_NORMAL for base expansion.
5545
5546 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
5547
5548         * config.gcc: Support --with-fpmath=avx for x86.
5549         * config/i386/avxmath.h: New.
5550         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
5551
5552 2010-11-05  Ian Lance Taylor  <iant@google.com>
5553
5554         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
5555         * gengtype.c (walk_type): Don't recognize descbits option.
5556
5557 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
5558
5559         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
5560         WORD_SWITCH_TAKES_ARG): Remove.
5561         * doc/options.texi (Args): Document.
5562         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
5563         * doc/tm.texi: Regenerate.
5564         * opt-functions.awk (switch_flags): Handle Args.
5565         * opts-common.c: Update comment on tm.h include.
5566         (decode_cmdline_option): Handle options with multiple arguments.
5567         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
5568         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
5569         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
5570         CL_COMMON): Update values.
5571         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
5572         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
5573         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
5574         sectobjectsymbols, sectorder, segcreate, segprot): New.
5575
5576 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
5577             Uros Bizjak  <ubizjak@gmail.com>
5578
5579         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
5580         256bit AVX register is used.
5581         (ix86_expand_vector_move_misalign): Likewise.
5582         (ix86_expand_vector_move): Replace use_avx256_p with
5583         VALID_AVX256_REG_MODE.
5584
5585 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
5586
5587          PR target/44750
5588         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
5589         change.  Set $@-warn.o to -Wno-error.
5590
5591         PR bootstrap/44756
5592         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
5593         comparing it to a signed value.
5594
5595         PR middle-end/44766
5596         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
5597         PR bootstrap/44770
5598         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
5599         to i.
5600
5601         PR target/44754
5602         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
5603         (m32c_function_arg).  Add comma between arguments two and three.
5604         (m32c_promote_prototypes): Remove declaration.
5605         (current_function_special_page_vector): Likewise.
5606         (m32c_regno_reg_class): Change return type to enum reg_class.
5607         (m32c_pushm_popm): Use add_reg_note.
5608         (m32c_push_rounding): Change return type to unsigned int.
5609         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
5610         enum reload_type.
5611         (m32c_insert_attributes): Constify variable name.
5612         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
5613         (m32c_prepare_shift): Remove variable lref.
5614         (m32c_expand_movcc): Remove variable cmp.
5615         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
5616         (m32c_compare_redundant): Remove variable op2.
5617         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
5618         (m32c_pragma_memregs): Assign the number to target_memregs.
5619         (m32c_pragma_address): Remove variable var_str.
5620         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
5621         enum reg_class.
5622         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
5623         * config/m32c/bitops.md (andsi3): Add default case to switch.
5624         (iorsi3, xorsi3): Likewise.
5625         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
5626         * config/m32c/jump.md (call, call_value): Likewise.
5627         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
5628         (m32c_regno_reg_class): Likewise.
5629         (current_function_special_page_vector): Declare.
5630
5631 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
5632
5633         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
5634
5635         PR tree-optimization/46099
5636         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
5637         if it is NULL and uid wasn't found in the hash table.  Just fold the
5638         result if it is NULL otherwise.  Insert other potentially needed
5639         stmts right before current stmt instead of on the entry edge.
5640         (struct elv_data): Add gsi and reset fields.
5641         (eliminate_local_variables_1): Adjust caller.  If take_address_of
5642         failed for debug stmt, set dta->reset and return.
5643         (eliminate_local_variables_stmt): Change STMT argument for GSI,
5644         pass GSI through to the callback, handle resetting of debug stmts.
5645         (eliminate_local_variables): Adjust caller.  Process debug stmts
5646         in second phase.
5647
5648         PR middle-end/43690
5649         * gimplify.c (gimplify_asm_expr): If a "m" input is a
5650         {pre,post}{in,de}crement, fail.
5651
5652         PR debug/46307
5653         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
5654         * tree-pretty-print.c (dump_generic_node): Likewise.
5655         (op_code_prio): Likewise.
5656         * cfgexpand.c (expand_debug_expr): Likewise.
5657
5658 2010-11-04  Paul Koning  <ni1d@arrl.net>
5659
5660         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
5661         constraints.
5662
5663 2010-11-04  Chao-ying Fu  <fu@mips.com>
5664
5665         * configure.ac: Test assembler support for DSP Rev1 mult.
5666         * configure: Regenerate.
5667         * config.in: Regenerate.
5668         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
5669         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
5670         (CODE_FOR_mips_multu): New define.
5671         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
5672         dspr2_32 to dsp_32.
5673         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
5674         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
5675         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
5676         New define_expand patterns.
5677         * config/mips/constraints.md (ka): Update the constraint to test
5678         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
5679         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
5680         mips_multu): Delete.
5681         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
5682         Change target constraint to "ka".
5683         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
5684         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
5685         Emit the accumulator destination when ISA_HAS_DSP_MULT.
5686         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
5687         Emit the accumulator destination when ISA_HAS_DSP_MULT.
5688         (<u>maddsidi4): Likewise.
5689         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
5690         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
5691
5692 2010-11-04  Paul Koning  <ni1d@arrl.net>
5693
5694         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
5695
5696 2010-11-04  Paul Koning  <ni1d@arrl.net>
5697
5698         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
5699
5700 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
5701
5702         Fixed using the Objective-C 2.0 dot-syntax with class names.
5703         * c-parser.c (c_parser_next_token_starts_declspecs): In
5704         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
5705         (c_parser_next_token_starts_declaration): Same.
5706         (c_parser_postfix_expression): Parse the Objective-C 2.0
5707         dot-syntax with a class name.
5708
5709 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
5710
5711         * final.c (compute_alignments): Compute/free loop info all the time.
5712         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
5713         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
5714         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
5715         * config/rs6000/rs6000.c (cfgloop.h): Include.
5716         (can_override_loop_align): New.
5717         (rs6000_option_override_internal): Set it.
5718         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
5719         (rs6000_loop_align): New function.
5720         (rs6000_loop_align_max_skip): Likewise.
5721
5722 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5723
5724         PR driver/45703
5725         * collect2.c (main): Print --help output to stdout.  Do not
5726         exit right away, so ld --help is appended.  Add empty lines
5727         to separate output suitably.
5728
5729 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
5730
5731         PR tree-optimization/46233
5732         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
5733         after calling analyze_function, not before.
5734
5735         PR target/46234
5736         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
5737         instead of build_va_arg_indirect_ref.
5738         * config/spu/spu.c (spu_va_start): Likewise.
5739         * config/s390/s390.c (s390_va_start): Likewise.
5740
5741 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
5742
5743         PR middle-end/46292
5744         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
5745         if the innermode is not vector mode, determine the mode of a subreg
5746         by using mode_for_size of inner_size.
5747
5748 2010-11-04  Richard Guenther  <rguenther@suse.de>
5749
5750         PR rtl-optimization/46183
5751         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
5752         (execute_rtl_pre): Likewise.
5753         (execute_rtl_hoist): Likewise.
5754
5755 2010-11-04  Richard Guenther  <rguenther@suse.de>
5756
5757         PR tree-optimization/46068
5758         * ipa-split.c (consider_split): Remove gcc_unreachable.
5759
5760 2010-11-04  Richard Guenther  <rguenther@suse.de>
5761
5762         * tree-nested.c (build_addr): Use build_fold_addr_expr.
5763
5764 2010-11-04  Richard Guenther  <rguenther@suse.de>
5765
5766         PR tree-optimization/45991
5767         * gimplify.c (force_gimple_operand_1): Use the provded test
5768         function in the initial test.
5769
5770 2010-11-04  Jeff Law  <law@redhat.com>
5771
5772         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
5773         of readonly memory equivalances for const/pure calls.
5774
5775 2010-11-04  Richard Guenther  <rguenther@suse.de>
5776
5777         PR tree-optimization/45733
5778         * tree-vect-stmts.c (reverse_vec_elements): Honor the
5779         permute builtins function return type.
5780
5781 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
5782
5783         PR middle-end/44765
5784         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
5785         as an index, check it is not INVALID_REGNUM.
5786
5787         PR bootstrap/44756
5788         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
5789         unsignedp.
5790         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
5791
5792         PR bootstrap/44756
5793         * function.c (thread_prologue_and_epilogue_insns): Add
5794         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
5795
5796         PR bootstrap/44756
5797         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
5798
5799         PR target/44750
5800         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
5801         (pdp11_preferred_reload_class): Rename class to rclass.
5802         (pdp11_preferred_output_reload_class): Likewise.
5803         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
5804         ALL_COMPILERFLAGS .
5805         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
5806
5807         PR bootstrap/44756
5808         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
5809         iteration variables to enum machine_mode.
5810
5811         PR target/44751
5812         * config/h8300/h8300.c: Include df.h.
5813         (push, pop): Use add_reg_note.
5814         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
5815         (compute_a_shift_cc): Likewise.
5816         (expand_a_shift): Argument code has type enum rtx_code.
5817         (struct shift_insn): Member cc_valid has type enum attr_cc.
5818         (struct shift_info) <cc_inline, cc_special>: Likewise.
5819         enum attr_cc.
5820         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
5821         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
5822
5823 2010-11-04  Ira Rosen  <irar@il.ibm.com>
5824
5825         PR tree-optimization/46213
5826         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
5827         MINUS_EXPR only if the first operand is reduction operand.
5828
5829 2010-11-04  Richard Guenther  <rguenther@suse.de>
5830             Richard Henderson  <rth@redhat.com>
5831
5832         * tree.def (FMA_EXPR): New tree code.
5833         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
5834         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
5835         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
5836         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
5837         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
5838         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
5839         (execute_optimize_widening_mul): Call it.  Reorganize to allow
5840         dead stmt removal.  Move TODO flags ...
5841         (pass_optimize_widening_mul): ... here.
5842         * flag-types.h (enum fp_contract_mode): New enum.
5843         * common.opt (flag_fp_contract_mode): New variable.
5844         (-ffp-contract): New option.
5845         * opts.c (common_handle_option): Handle it.
5846         * doc/invoke.texi (-ffp-contract): Document.
5847         * tree.h (fold_fma): Declare.
5848         * builtins.c (fold_fma): New function.
5849         (fold_builtin_fma): Likewise.
5850         (fold_builtin_3): Call it for fma.
5851         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
5852         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
5853         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
5854         New expanders.
5855         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
5856         named patterns.
5857         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
5858         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
5859         (fms_optab, fnma_optab, fnms_optab): New defines.
5860         * gimplify.c (gimplify_expr): Handle binary truth expressions
5861         explicitly.  Handle FMA_EXPR.
5862         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
5863         operations.
5864
5865 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5866             Richard Guenther  <rguenther@suse.de>
5867
5868         * passes.c (init_optimization_passes): Move veclower after SSA.
5869         * tree-vect-generic.c (uniform_vector_p): New function.
5870         (expand_vector_operations_1): Handle conversion.
5871         (pass_lower_vector): Update SSA form.
5872
5873 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
5874
5875         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
5876         plugin capabilities.
5877         * configure: Regenerate.
5878
5879 2010-11-03  Xinliang David Li  <davidxl@google.com>
5880
5881         PR target/46200
5882         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
5883         Adjust cbase if the use stmt is after iv update.
5884
5885 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5886
5887         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
5888
5889 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5890
5891         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
5892         comment.  Pass true to the last argument of output_stack_adjust.
5893
5894 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5895
5896         PR target/46295
5897         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
5898         if 256bit AVX register is used.
5899
5900 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
5901
5902         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
5903         xsmindp/xsmaxdp on VSX for single precision min/max.
5904         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
5905         (vsx_sminsf3): Ditto.
5906
5907 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5908
5909         * combine.c (try_combine): Fix formatting issues, improve comments and
5910         fix a pasto.
5911
5912 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5913
5914         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
5915         of the result before building binary expressions.
5916
5917 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5918
5919         PR rtl-optimization/45865
5920         * Makefile.in (df-problems.o): Revert revision 164552.
5921         * basic-block.h (enum bb_flags): Likewise.
5922         * cfgcleanup.c (block_was_dirty): Likewise.
5923         (try_forward_edges): Likewise.
5924         (try_crossjump_bb): Likewise.
5925         (try_head_merge_bb): Likewise.
5926         (try_optimize_cfg): Likewise.
5927         (cleanup_cfg): Likewise.
5928         * df-core.c (df_set_bb_dirty): Likewise.
5929         * df-problems.c: Likewise.
5930         (df_simulate_find_uses): Likewise.
5931         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
5932         (find_memory, find_memory_store): Likewise.
5933         (can_move_insns_across): Likewise.
5934         * df.h (can_move_insns_across): Likewise.
5935         * ifcvt.c (find_memory): Likewise.
5936         (dead_or_predicable): Likewise.
5937
5938 2010-11-03  Richard Guenther  <rguenther@suse.de>
5939
5940         PR middle-end/46288
5941         * predict.c (strip_predict_hints): Simply DCE builtin expect if
5942         the result is unused.
5943
5944 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5945
5946         PR tree-optimization/46009
5947         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
5948         cond_if_else_store_replacement if bb1 and bb2 have the same
5949         single successor.
5950         (cond_store_replacement): Use gimple_assign_single_p, don't
5951         check if rhs is SSA_NAME or invariant.  Call release_defs for
5952         assign.
5953         (cond_if_else_store_replacement): New function.
5954
5955 2010-11-03  Richard Guenther  <rguenther@suse.de>
5956
5957         * opts.c (finish_options): Properly check for all WHOPR
5958         flags before complaining about -flto-partition.
5959
5960 2010-11-04  Alan Modra  <amodra@gmail.com>
5961
5962         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
5963         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
5964         TARGET_SECURE_PLT.
5965         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
5966         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
5967         on input, "r" on output.
5968
5969 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
5970
5971         Implemented -fobjc-std=objc1 flag.
5972         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
5973         option.
5974         * doc/standards.texi (Standards): Updated the section on
5975         Objective-C; mention support for Objective-C 2.0 features and the
5976         new -fstd-objc=objc1 flag to disable them.
5977
5978 2010-11-03  Richard Guenther  <rguenther@suse.de>
5979
5980         PR middle-end/46241
5981         * dwarf2out.c (scope_die_for): Properly detect global scope.
5982
5983 2010-11-03  Richard Guenther  <rguenther@suse.de>
5984
5985         PR tree-optimization/46190
5986         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5987         Properly compute peel iterations.
5988
5989 2010-11-03  Richard Guenther  <rguenther@suse.de>
5990
5991         PR tree-optimization/46286
5992         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
5993         re-allocated vector data.
5994
5995 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5996
5997         PR target/46285
5998         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
5999         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
6000         is completed.
6001
6002 2010-11-03  Richard Guenther  <rguenther@suse.de>
6003
6004         PR tree-optimization/46217
6005         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
6006         flag matches.
6007         (execute_update_addresses_taken): Likewise.
6008
6009 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
6010
6011         PR bootstrap/44335
6012         * targhooks.c (targhook_words_big_endian): New function.
6013         (targhook_float_words_big_endian): Likewise.
6014         * targhooks.h (targhook_words_big_endian): Declare.
6015         (targhook_float_words_big_endian): Likewise.
6016         * target.def (words_big_endian, float_words_big_endian): New hooks.
6017
6018 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6019
6020         PR tree-optimization/46165
6021         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
6022         a normal call into noreturn call.
6023
6024 2010-11-03  Richard Guenther  <rguenther@suse.de>
6025
6026         PR middle-end/46251
6027         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
6028         not INDIRECT_REFs.
6029
6030 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6031
6032         PR tree-optimization/46107
6033         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
6034         if cfg_hook_duplicate_loop_to_header_edge failed.
6035
6036 2010-11-03  Ian Lance Taylor  <iant@google.com>
6037
6038         PR lto/46273
6039         * config.gcc: Don't set lto_binary_reader.
6040         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
6041         (Configuration): Mention --disable-lto.  Remove --with-libelf
6042         paragraph.
6043
6044 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6045
6046         PR debug/46252
6047         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
6048         prev_real_insn.
6049         * gcse.c (insert_insn_end_basic_block): Likewise.
6050
6051         PR rtl-optimization/46034
6052         PR rtl-optimization/46212
6053         PR rtl-optimization/46248
6054         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
6055         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
6056         before i0dest -> i0src substitution and pass 1 instead of 0 as last
6057         argument to subst on i2pat.
6058
6059 2010-11-02  Ian Lance Taylor  <iant@google.com>
6060
6061         * configure.ac: Use AC_SYS_LARGEFILE.
6062         * configure: Rebuild.
6063         * config.in: Rebuild.
6064
6065 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
6066
6067         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
6068         fold_convert.
6069         * c-typeck.c (build_function_call_vec): Likewise.
6070         * cfgexpand.c (expand_debug_expr): Likewise.
6071         * cgraphunit.c (assemble_thunk): Likewise.
6072         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
6073         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
6074         (fold_binary_loc, fold_ternary_loc): Likewise.
6075         * gimple-fold.c (get_symbol_constant_value): Likewise.
6076         * gimple-low.c (lower_builtin_setjmp): Likewise.
6077         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
6078         * gimplify.c (gimplify_init_constructor): Likewise.
6079         * lambda.h (build_linear_expr): Likewise.
6080         * omp-low.c (omp_reduction_init): Likewise.
6081         * tree-inline.c (remap_ssa_name): Likewise.
6082         * tree-object-size.c (compute_object_sizes): Likewise.
6083         * tree-sra.c (init_subtree_with_zero): Likewise.
6084         (sra_ipa_modify_assign): Likewise.
6085         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
6086         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
6087         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
6088         (undistribute_ops_list): Likewise.
6089         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
6090         * tree-vect-stmts.c (vectorizable_call): Likewise.
6091         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
6092         (build_zero_cst): Handle more cases directly.  Update comment.
6093
6094 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
6095
6096         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
6097         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
6098
6099         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
6100         and call ix86_split_call_vzeroupper instead of
6101         ix86_split_call_pop_vzeroupper.
6102         (*call_pop_1_vzeroupper): Likewise.
6103         (*sibcall_pop_1_vzeroupper): Likewise.
6104         (*call_value_pop_0_vzeroupper): Likewise.
6105         (*call_value_pop_1_vzeroupper): Likewise.
6106         (*sibcall_value_pop_1_vzeroupper): Likewise.
6107
6108 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
6109
6110         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
6111
6112 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
6113
6114         * basic-block.h (insert_insn_end_bb_new): Delete.
6115         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
6116
6117 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
6118             H.J. Lu  <hongjiu.lu@intel.com>
6119
6120         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
6121         (ix86_split_call_pop_vzeroupper): Likewise.
6122
6123         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
6124         (ix86_expand_call): Conditionally decorate calls with
6125         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
6126         (ix86_split_call_vzeroupper): New.
6127         (ix86_split_call_pop_vzeroupper): Likewise.
6128
6129         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
6130         (*call_pop_0_vzeroupper): New insn_and_split pattern.
6131         (*call_pop_1_vzeroupper): Likewise.
6132         (*sibcall_pop_1_vzeroupper): Likewise.
6133         (*call_0_vzeroupper): Likewise.
6134         (*call_1_vzeroupper): Likewise.
6135         (*sibcall_1_vzeroupper): Likewise.
6136         (*call_1_rex64_vzeroupper): Likewise.
6137         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
6138         (*call_1_rex64_large_vzeroupper): Likewise.
6139         (*sibcall_1_rex64_vzeroupper): Likewise.
6140         (*call_value_pop_0_vzeroupper): Likewise.
6141         (*call_value_pop_1_vzeroupper): Likewise.
6142         (*sibcall_value_pop_1_vzeroupper): Likewise.
6143         (*call_value_0_vzeroupper): Likewise.
6144         (*call_value_0_rex64_vzeroupper): Likewise.
6145         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
6146         (*call_value_1_vzeroupper): Likewise.
6147         (*sibcall_value_1_vzeroupper): Likewise.
6148         (*call_value_1_rex64_vzeroupper): Likewise.
6149         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
6150         (*call_value_1_rex64_large_vzeroupper): Likewise.
6151         (*sibcall_value_1_rex64_vzeroupper): Likewise.
6152
6153 2010-11-02  Ian Lance Taylor  <iant@google.com>
6154
6155         PR lto/46273
6156         * config.gcc: Revert last patch: set lto_binary_reader.
6157
6158 2010-11-02  Richard Guenther  <rguenther@suse.de>
6159
6160         PR tree-optimization/46149
6161         * tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
6162         non-indirect MEM_REF variants.
6163
6164 2010-11-02  Richard Guenther  <rguenther@suse.de>
6165
6166         PR tree-optimization/46216
6167         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
6168         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
6169
6170 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6171
6172         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
6173         (*-*-osf*): Likewise.
6174         * configure: Regenerate.
6175
6176 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
6177
6178         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
6179         for Intel Core 2 and Core i7.
6180
6181 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
6182
6183         Model decoder of Core 2/i7 for multipass scheduling.
6184
6185         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
6186         New type to hold target-specific data for multipass scheduling.
6187         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
6188         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
6189         Core 2/i7.
6190         (core2i7_secondary_decoder_max_insn_size,)
6191         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
6192         New static variables.
6193         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
6194         ([_]ix86_first_cycle_multipass_data): New static variable.
6195         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
6196         Implement targetm.sched hooks.
6197         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
6198         of ...
6199         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
6200         Implement new targetm.sched hooks.
6201         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
6202         targetm.sched hook to install multipass scheduling hooks on demand.
6203
6204         * doc/tm.texi.in: Document new targetm.sched hooks.
6205         * doc/tm.texi: Regenerate.
6206
6207         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
6208         (first_cycle_multipass_data_t): New typedef.
6209         (struct choice_entry: target_data): New field.
6210         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
6211         to allow target model restrictions not represented in DFA.
6212         (choose_ready, schedule_block): Update.
6213         (sched_extend_ready_list, sched_finish_ready_list): Call new target
6214         hooks to initialize target-specific data for multipass scheduling.
6215         * sched-int.h (max_issue): Update declaration.
6216         * sel-sched.c (choose_best_insn): Update.
6217         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
6218         (first_cycle_multipass_{init, fini}): Define and document new
6219         targetm.sched hooks.
6220
6221 2010-11-02  Richard Guenther  <rguenther@suse.de>
6222
6223         PR tree-optimization/46184
6224         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
6225         input vector type from the reduction operand as well.
6226
6227 2010-11-02  Richard Guenther  <rguenther@suse.de>
6228
6229         PR tree-optimization/46177
6230         * tree-loop-distribution.c (prop_phis): Use
6231         mark_virtual_phi_result_for_renaming.
6232
6233 2010-11-02  Martin Jambor  <mjambor@suse.cz>
6234
6235         PR middle-end/46120
6236         * tree.c (get_binfo_at_offset): Bail out on artificial
6237         fields.  Identify primary bases according to their offsets.
6238
6239 2010-11-02  Martin Jambor  <mjambor@suse.cz>
6240
6241         PR tree-optimization/45875
6242         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
6243         (gimple_get_relevant_ref_binfo): Detect primary bases according to
6244         their field offset.
6245
6246 2010-11-02  Ian Lance Taylor  <iant@google.com>
6247
6248         * doc/install.texi (Configuration): Note in two places that Java
6249         is not enabled by default.
6250
6251 2010-11-02  Ian Lance Taylor  <iant@google.com>
6252
6253         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
6254         (Configuration): Mention --disable-lto.  Remove --with-libelf
6255         paragraph.
6256
6257 2010-11-02  Ian Lance Taylor  <iant@google.com>
6258
6259         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
6260         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
6261         LIBELFINC.  Remove HAVE_libelf.
6262         * config.gcc: Don't set lto_binary_reader.
6263         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
6264         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
6265         (LIBS): Remove $(LIBELFLIBS).
6266         (INCLUDES): Remove $(LIBELFINC).
6267         * configure: Rebuild.
6268         * config.in: Rebuild.
6269
6270 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
6271
6272         * config/microblaze/microblaze-protos.h (function_arg): Delete.
6273         (function_arg_advance): Delete.
6274         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
6275         (FUNCTION_ARG): Delete.
6276         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
6277         (microblaze_function_arg_advance): ...this.  Make static.  Take a
6278         const_tree and a bool.
6279         (function-arg): Rename to...
6280         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
6281         and a bool.
6282         (microblaze_expand_prologue): Call targetm.calls.function_arg and
6283         targetm.calls.function_arg_advance.
6284         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6285
6286 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
6287
6288         Merge from FSF "apple/trunk" branch.
6289
6290         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
6291         * config/darwin.opt: .. to here.
6292         (matt-stubs): New option.
6293         * config/i386/darwin.opt: Delete.
6294         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
6295         (MACHO_DYNAMIC_NO_PIC_P): New.
6296         (MACHOPIC_INDIRECT): New.
6297         (MACHOPIC_PURE): New.
6298         * config/i386/darwin.h (DARWIN_X86) Define to 1.
6299         (MACHOPIC_ATT_STUB): New.
6300         (CC1_SPEC): Do not remove mdynamic-no-pic.
6301         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
6302         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
6303         (FUNCTION_PROFILER): Correct over-length line.
6304         (SUBTARGET_OVERRIDE_OPTIONS): New.
6305         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
6306         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
6307         (legitimate_constant_p): Handle mdynamic-no-pic.
6308         (ix86_legitimate_address_p): Likewise.
6309         (ix86_legitimize_address): Likewise.
6310         (ix86_expand_move): Likewise.
6311         (machopic_output_stub): Update for ATT-style stubs and
6312         mdynamic-no-pic.
6313         * config/darwin-protos.h (machopic_symbol_defined_p): New.
6314         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
6315         TARGET_DYNAMIC_NO_PIC: Remove.
6316         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
6317         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
6318         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
6319         Remove handling of mdynamic-no-pic.
6320         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
6321         Define if required.
6322         (machopic_symbol_defined_p): Do not try to use current_function_decl
6323         when generating _get_pc thunks within stubs.
6324         (machopic_indirect_data_reference): Rework for direct conditionals
6325         rather than #ifdefs, add x86 mdynamic-no-pic
6326         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
6327         defined value.
6328         (darwin_override_options): Handle mdynamic-no-pic here.
6329         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
6330         (machopic_lazy_symbol_ptr3_section): New.
6331         (machopic_picsymbol_stub2_section): New.
6332         (machopic_picsymbol_stub3_section): New.
6333         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
6334         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
6335         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
6336         Moved common definition from x86 and rs6000.
6337         (MACHO_DYNAMIC_NO_PIC_P): Override value.
6338         (MACHOPIC_INDIRECT): Likewise.
6339         (MACHOPIC_PURE): Likewise.
6340         * config.gcc (x86-darwin-*): Remove darwin.opt.
6341
6342 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
6343
6344         PR debug/46255
6345         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
6346         instead of gsi_last_bb.
6347
6348 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
6349             Maxim Kuvyrkov  <maxim@codesourcery.com>
6350
6351         * config/i386/i386.c (cpu_names): Add "corei7".
6352         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
6353
6354 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
6355             Maxim Kuvyrkov  <maxim@codesourcery.com>
6356
6357         Tune alignment for Intel Core i7
6358
6359         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
6360         (enum processor_type): Update comment.  Add entries for Core i7.
6361         * config/i386-c.c (ix86_target_macros_internal): Update.
6362         * config/i386.c (m_COREI7{_32,_64}): New macros.
6363         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
6364         (processor_target_table): Tune alignment for Core i7.
6365         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
6366
6367         * doc/invoke.texi: Document "corei7" option value.
6368
6369 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
6370             Maxim Kuvyrkov  <maxim@codesourcery.com>
6371             H.J. Lu  <hjl.tools@gmail.com>
6372
6373         Basic support for Intel Core i7
6374
6375         * i386.c (ix86_option_override_internal): Add entry for corei7, use
6376         generic tuning.  Use generic32 when compiling for 32-bit ABI.
6377
6378 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
6379
6380         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
6381         sections and call darwin_asm_dwarf_section() to handle them.
6382         (darwin_asm_dwarf_section): New.
6383         (darwin_file_start): Remove code emitting dwarf section symbols.
6384
6385 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
6386
6387         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
6388         explicitly disable stack protection when building libgcc.
6389         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
6390
6391 2010-11-01  Jason Merrill  <jason@redhat.com>
6392
6393         * fold-const.c (fold_indirect_ref_1): Handle folding
6394         POINTER_PLUS_EXPR to ARRAY_REF.
6395
6396 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
6397
6398         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
6399         (sh_delegitimize_address): New function.
6400
6401 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
6402
6403         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
6404         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
6405         (CC1_SPEC): Don't handle -target.
6406         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
6407         options.
6408         * config/darwin.opt (Zallowable_client, Zbundle_loader,
6409         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
6410         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
6411         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
6412         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
6413         Zweak_reference_mismatches, client_name, compatibility_version,
6414         current_version, dylinker_install_name, pagezero_size,
6415         read_only_relocs, seg1addr, segs_read_only_addr,
6416         segs_read_write_addr, sub_library, sub_umbrella): New.
6417         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
6418         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
6419         * config/freebsd.opt: New.
6420         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
6421         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
6422         * config/rpath.opt: New.
6423         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
6424         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
6425         Use rpath.opt.
6426
6427 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
6428
6429         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
6430         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
6431         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
6432         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
6433         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
6434         Document that options in .opt files do not need to be included.
6435         * doc/tm.texi: Regenerate.
6436         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
6437         * opts-common.c: Update comment on tm.h include.
6438         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
6439         * system.h (SWITCH_TAKES_ARG): Poison.
6440         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
6441         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
6442         in darwin.opt.
6443         (LINK_COMMAND_SPEC_A): Don't include %{x}.
6444         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6445         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
6446         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
6447         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6448         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
6449         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
6450         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
6451         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
6452         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6453         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
6454         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
6455         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
6456         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
6457         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
6458         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
6459         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
6460         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
6461         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
6462         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
6463         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
6464         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
6465         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
6466         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6467
6468 2010-11-01  Paul Koning  <ni1d@arrl.net>
6469
6470         * config/pdp11/pdp11.md: Use iterators.
6471         (addqi3, subqi3, iorsi3, xorsi3): Delete.
6472
6473 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
6474
6475         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
6476         GCC_INSN_FLAGS_H.
6477         * libgcov.c (__gcov_indirect_call_profiler): Set
6478         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
6479         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
6480
6481 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
6482
6483         PR tree-optimization/46259
6484
6485         Revert:
6486         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6487         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
6488         build_vector_from_val.
6489
6490 2010-11-01  DJ Delorie  <dj@redhat.com>
6491
6492         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
6493         as well as an assertion.
6494
6495 2010-11-01  Paul Koning  <ni1d@arrl.net>
6496
6497         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
6498         complex modes in memory.
6499
6500 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
6501
6502         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
6503
6504 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
6505
6506         PR target/45250
6507         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
6508         (cfa_base_offset): New variable.
6509         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
6510         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
6511         is NULL.
6512         (vt_init_cfa_base): Initialize cfa_base_offset.
6513
6514 2010-11-01  Alan Modra  <amodra@gmail.com>
6515
6516         PR target/46030
6517         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
6518         and savres_strategy.
6519         (stack_info): New file scope var.
6520         (rs6000_init_machine_status): Init stack_info.
6521         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
6522         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
6523         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
6524         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
6525         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
6526         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
6527         (rs6000_savres_strategy): Rewrite.
6528         (rs6000_stack_info): Use "stack_info" in place of local "info".
6529         Return cached stack info when reload_completed unless ENABLE_CHECKING
6530         in which case confirm newly calculated stack info matches old info.
6531         Delay calculation of lr_save_p, set it for out of line gp save/restore
6532         as well as fp.  Call rs6000_savres_strategy from here..
6533         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
6534         (rs6000_output_function_prologue): Use info->savres_strategy to
6535         determine whether fp save/restore externs need to be emitted.
6536
6537 2010-10-31  Jason Merrill  <jason@redhat.com>
6538
6539         * tree.h (EXPR_LOC_OR_HERE): New macro.
6540         * builtins.c (c_strlen): Use it.
6541         * c-decl.c (build_enumerator): Likewise.
6542         * gimplify.c (internal_get_tmp_var): Likewise.
6543         (shortcut_cond_expr): Likewise.
6544         (gimplify_one_sizepos): Likewise.
6545
6546 2010-10-31  Richard Henderson  <rth@redhat.com>
6547
6548         * config/i386/cygming.h (TARGET_SEH): New.
6549         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
6550         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
6551         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
6552         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
6553         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
6554         (ASM_DECLARE_FUNCTION_SIZE): New.
6555         * config/i386/i386-protos.h: Update.
6556         * config/i386/i386.c (ix86_option_override_internal): Enable
6557         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
6558         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
6559         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
6560         (ix86_compute_frame_layout): For SEH, disable
6561         use_fast_prologue_epilogue, move frame pointer to the end of
6562         the frame.  Initialize hfp_save_offset.
6563         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
6564         at end of prologue for SEH.
6565         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
6566         emit blockage at beginning of epilogue.
6567         (ix86_expand_binary_operator): After reload, emit LEA if needed.
6568         (ix86_output_call_insn): New.
6569         * config/i386/i386.h (TARGET_SEH): New.
6570         (struct machine_function): Add member seh.
6571         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
6572         * config/i386/winnt.c (struct seh_frame_state): New.
6573         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
6574         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
6575         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
6576         i386_pe_start_function, i386_pe_end_function): New.
6577
6578         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
6579         as CFA_STORE in rules 12 and 13.
6580
6581 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
6582
6583         PR tree-optimization/46142
6584         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
6585         accommodate third function argument.
6586
6587 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6588
6589         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
6590
6591 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6592
6593         * fold-const.c (build_zero_vector): Use build_vector_from_val.
6594         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
6595         (get_initial_def_for_reduction): Likewise.
6596         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
6597         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
6598         * tree.c (build_one_cst): Likewise.
6599         (build_vector_from_val): Use types_compatible_p for assert.
6600
6601 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6602
6603         * emit-rtl.c (mark_used_flags): New function.
6604         (set_used_flags, reset_used_flags): Call it.
6605
6606 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
6607
6608         PR middle-end/44569
6609         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
6610         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
6611
6612 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
6613
6614         PR target/46195
6615         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
6616         (ix86_compat_aligned_value_p): This.
6617         (ix86_old_function_arg_boundary): Renamed to ...
6618         (ix86_compat_function_arg_boundary): This.  Updated.
6619         (ix86_contains_aligned_value_p): New.
6620         (ix86_function_arg_boundary): Align long double parameters on
6621         stack to 4byte in 32bit.
6622
6623 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
6624
6625         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
6626         * c-parser.c (c_parser_objc_at_property_declaration): Removed
6627         parsing of RID_COPIES and RID_IVAR.  Updated call to
6628         objc_add_property_declaration.
6629         * c-typecheck.c (build_component_ref): Call
6630         objc_maybe_build_component_ref instead of objc_build_setter_call.
6631         Use objc_is_property_ref to improve Objective-C checks.
6632         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
6633         of objc_build_getter_call.
6634
6635 2010-10-29  Paul Koning  <ni1d@arrl.net>
6636
6637         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6638         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
6639         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
6640         (REG_OK_STRICT): Move description.
6641
6642 2010-10-29  Paul Koning  <ni1d@arrl.net>
6643
6644         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
6645
6646 2010-10-29  Paul Koning  <ni1d@arrl.net>
6647
6648         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
6649
6650 2010-10-29  Paul Koning  <ni1d@arrl.net>
6651
6652         PR/41822
6653         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
6654
6655 2010-10-29  Richard Henderson  <rth@redhat.com>
6656
6657         PR rtl-opt/46226
6658         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
6659         for asm goto.
6660
6661 2010-10-29  Paul Koning  <ni1d@arrl.net>
6662
6663         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
6664         register to register move.
6665
6666 2010-10-29  Paul Koning  <ni1d@arrl.net>
6667
6668         * config/pdp11/pdp11.c (print_operand_address): Correct handling
6669         of integer constant addresses, delete vax-only logic.
6670
6671 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
6672
6673         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
6674         a conditional expression.
6675
6676 2010-10-29  Paul Koning  <ni1d@arrl.net>
6677
6678         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
6679         instruction encoding.
6680
6681 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6682             Andrew Pinski  <pinskia@gmail.com>
6683
6684         * tree.h (build_vector_from_val): Declare.
6685         * tree.c (build_vector_from_val): New function.
6686         * c-typeck.c (build_binary_op): Handle vector shifting.
6687         * doc/extend.texi: Description of the vector shifting operation.
6688
6689 2010-10-29  Paul Koning  <pkoning@equallogic.com>
6690
6691         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
6692         pdp11_secondary_memory_needed): Declare.
6693         * config/pdp11/predicates.md (float_operand): New predicate.
6694         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
6695         (cbranchdf4, movdf): Change predicate.
6696         (movsf): Handle FPU register case.
6697         (truncdfsf2, extendsfdf2): Add FPU register case.
6698         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
6699         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
6700         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6701         (pdp11_register_move_cost): Update cost matrix.
6702         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
6703         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
6704         pdp11_secondary_memory_needed): New function.
6705         (pdp11_return_in_memory): Add other float types.
6706         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
6707         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
6708         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
6709         REGISTER_MOVE_COST): Delete.
6710         (BASE_RETURN_VALUE_REG): Add other float types.
6711
6712 2010-10-29  Nick Clifton  <nickc@redhat.com>
6713
6714         * doc/invoke.texi: Document -mam34 and -mtune options.
6715         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
6716         (mn10300_tune_cpu): New variable.
6717         (mn10300_handle_option): Handle -mam34 and -mtune options.
6718         (mn10300_option_override): Convert tune string into tune cpu variable.
6719         (mn10300_legitimate_constant_p): Delete unused local variable.
6720         (is_load_insn): New function.
6721         (is_store_insn): New function.
6722         (mn10300_adjust_schedule_cost): New function.
6723         (TARGET_SCHED_ADJUST_COST): Define.
6724         * config/mn10300/mn10300.opt (mam34): New option.
6725         (mtune): New option.
6726         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
6727         (enum processor_type): Add AM34.
6728         (TARGET_AM34): Define.
6729         * config/mn10300/mn10300.md (attr cpu): Add am34.
6730         Add pipeline description.
6731         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
6732         Remove unneeded alternatives.  Add timing attribute.
6733         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
6734         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
6735         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
6736         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
6737         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
6738         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
6739         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
6740         float_conditional_branch, jump, indirect_jump, tablejump,
6741         call_internal, call_value_internal, zero_extendqisi2_am33,
6742         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
6743         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
6744         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
6745         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
6746         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
6747         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
6748         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
6749         return_internal_regs, store_movm, return, call_next_insn):
6750         Add timing attribute.
6751         (am33_subsi3): Add missing clobber of CC_REG.
6752         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
6753         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
6754         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
6755         extendqisi2): Fix predicates.
6756         (call_internal, call_internal_value): Separate alternatives.
6757         * config/mn10300/t-mn10300: Add AM34 multilib.
6758
6759 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
6760
6761         * config/sh/sh.c (sh_promote_function_mode): Use
6762         default_promote_function_mode if !sh_promote_prototypes.
6763
6764 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
6765
6766         * recog.c (split_all_insns): Remove dead code.
6767
6768 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6769
6770         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6771
6772 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6773
6774         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
6775         (FUNCTION_ARG_ADVANCE): Delete.
6776         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
6777         functions.
6778         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
6779         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6780         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6781
6782 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6783
6784         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
6785         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6786         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
6787         Take a const_tree and a bool.
6788         (mcore_function_arg_advance): New function.
6789         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6790
6791 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6792
6793         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
6794         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6795         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
6796         Take a const_tree and a bool.
6797         (mcore_function_arg_advance): New function.
6798         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6799
6800 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6801
6802         * config/h8300/h8300-protos.h (function_arg): Delete.
6803         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6804         * config/h8300/h8300.c (function_arg): Rename to...
6805         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
6806         a bool.
6807         (h8300_function_arg_advance): New function.
6808         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6809
6810 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6811
6812         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
6813         to...
6814         * config/arc/arc.c (arc_function_arg): ...here and...
6815         (arc_function_arg_advance): ...here.  New functions.
6816         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6817
6818 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6819
6820         * config/crx/crx-protos.h (crx_function_arg): Delete.
6821         (crx_function_arg_advance): Delete.
6822         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6823         * config/crx/crx.c (crx_function_arg): Make static.  Take a
6824         const_tree and a bool.
6825         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
6826         (enough_regs_for_param): Take a const_tree.
6827         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6828
6829 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6830
6831         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
6832         (m68hc11_function_arg_advance): Delete.
6833         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
6834         (FUNCTION_ARG_ADVANCE): Delete.
6835         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
6836         Take a const_tree and a bool.
6837         (m68hc11_function_arg_advance): Likewise.
6838         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6839
6840 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6841
6842         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
6843         (xstormy16_function_arg_advance): Delete.
6844         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
6845         (FUNCTION_ARG_ADVANCE): Delete.
6846         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
6847         Take a const_tree and a bool.
6848         (xstormy16_function_arg_advance): Likewise.  Return void, updating
6849         the CUM parameter instead.
6850         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6851
6852 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6853
6854         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
6855         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6856         (MOXIE_FUNCTION_ARG_SIZE): Move to...
6857         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
6858         (moxie_function_arg): Make static.  Take a const_tree and a bool.
6859         (moxie_function_arg_advance): New function.
6860         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6861
6862 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6863
6864         * config/mn10300/mn10300-protos.h (function_arg): Delete.
6865         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
6866         (FUNCTION_ARG_ADVANCE): Delete.
6867         * config/mn10300/mn10300.c (function_arg): Rename to...
6868         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
6869         and a bool.
6870         (mn10300_function_arg_advance): New function.
6871         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6872
6873 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6874
6875         * config/iq2000/iq2000-protos.h (function_arg): Delete.
6876         (function_arg_advance): Delete.
6877         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6878         * config/iq2000/iq2000.c (function_arg): Rename to...
6879         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
6880         a bool.
6881         (function_arg_advance): Rename to...
6882         (iq2000_function_arg_advance): ...this.  Make static.  Take a
6883         const_tree and a bool.
6884         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
6885         iq2000_function_arg.
6886         (iq2000_pass_by_reference): Call iq2000_function_arg).
6887         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6888
6889 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6890
6891         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
6892         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6893         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
6894         const_tree.
6895         (fr30_function_arg): New function.
6896         (fr30_function_arg_advance): New function.
6897         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6898
6899 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6900
6901         * config/frv/frv-protos.h (frv_function_arg): Delete.
6902         (frv_function_arg_advance): Delete.
6903         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6904         * config/frv/frv.c (frv_function_arg): Rename to...
6905         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
6906         (frv_function_arg, frv_function_incoming_arg): New functions.
6907         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
6908         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6909         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6910
6911 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
6912
6913         PR target/46153
6914         * config/i386/sse.md (sse_movhlps_exp): Use destination
6915         returned from ix86_fixup_binary_operands to expand insn.
6916         (sse_movlhps_exp): Ditto.
6917         (sse_loadhps_exp): Ditto.
6918         (sse_loadlps_exp): Ditto.
6919         (sse2_loadhpd_exp): Ditto.
6920         (sse2_loadlpd_exp): Ditto.
6921
6922 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
6923
6924         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
6925         constants in thumb2.
6926
6927 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
6928
6929         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
6930         arithmetics in masking operations.
6931         (contains_muldiv): Likewise.
6932         (try_combine): Likewise.
6933         (find_split_point): Likewise.
6934         (combine_simplify_rtx): Likewise.
6935         (simplify_if_then_else): Likewise.
6936         (simplify_set): Likewise.
6937         (expand_compound_operation): Likewise.
6938         (expand_field_assignment): Likewise.
6939         (make_extraction): Likewise.
6940         (extract_left_shift): Likewise.
6941         (make_compound_operation): Likewise.
6942         (force_to_mode): Likewise.
6943         (make_field_assignment): Likewise.
6944         (reg_nonzero_bits_for_combine): Likewise.
6945         (simplify_shift_const_1): Likewise.
6946         (simplify_comparison): Likewise.
6947
6948 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
6949
6950         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
6951         (ia64_function_arg_advance): Delete.
6952         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
6953         (FUNCTION_ARG_ADVANCE): Delete.
6954         * config/ia64/ia64.c (ia64_function_arg): Rename to...
6955         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
6956         bool arguments.
6957         (ia64_function_arg, ia64_function_incoming_arg): New functions.
6958         (ia64_function_arg_advance): Make static.  Take a const_tree and
6959         a bool.
6960         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6961         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6962
6963 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
6964
6965         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
6966         (TARGET_GET_RAW_ARG_MODE): New.
6967         * doc/tm.texi: Regenerate.
6968         * target.def (get_raw_result_mode): New.
6969         (get_raw_arg_mode): New.
6970         * targhooks.c (default_get_reg_raw_mode): New.
6971         * targhooks.h (default_get_reg_raw_mode): New.
6972         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
6973         (apply_result_size): Ditto.
6974         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
6975         (TARGET_GET_RAW_RESULT_MODE): Define.
6976         (TARGET_GET_RAW_ARG_MODE): Ditto.
6977
6978 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6979
6980         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
6981         for newer Solaris 10 release.
6982         (sparc_fallback_frame_state): Likewise.
6983
6984 2010-10-27  Jason Merrill  <jason@redhat.com>
6985
6986         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
6987         variables sooner.
6988
6989 2010-10-27  Jie Zhang  <jie@codesourcery.com>
6990             Maxim Kuvyrkov  <maxim@codesourcery.com>
6991
6992         * haifa-sched.c (ISSUE_POINTS): Remove.
6993         (max_issue): Don't issue more than issue_rate instructions.
6994
6995 2010-10-27  Ian Lance Taylor  <iant@google.com>
6996
6997         PR target/46197
6998         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
6999         (split_stack_return): Replace UNSPEC_STACK_CHECK with
7000         UNSPECV_SPLIT_STACK_RETURN.
7001
7002 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
7003
7004         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
7005
7006         * config/i386/i386.c (block_info): New.
7007         (BLOCK_INFO): Likewise.
7008         (call_avx256_state): Likewise.
7009         (check_avx256_stores): Likewise.
7010         (move_or_delete_vzeroupper_2): Likewise.
7011         (move_or_delete_vzeroupper_1): Likewise.
7012         (move_or_delete_vzeroupper): Likewise.
7013         (use_avx256_p): Likewise.
7014         (function_pass_avx256_p): Likewise.
7015         (flag_opts): Add -mvzeroupper.
7016         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
7017         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
7018         is disabled.
7019         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
7020         generate vzeroupper.
7021         (init_cumulative_args): Add an int to indicate caller.  Set
7022         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
7023         based on return type.
7024         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
7025         caller_pass_avx256_p based on argument type.
7026         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
7027         is used, but not returned by caller.
7028         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
7029         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
7030         is used.
7031         (ix86_minimum_alignment): Likewise.
7032         (ix86_expand_special_args_builtin): Set target to
7033         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
7034         (ix86_reorg): Run the vzeroupper optimization if needed.
7035
7036         * config/i386/i386.h (ix86_args): Add caller.
7037         (INIT_CUMULATIVE_ARGS): Updated.
7038         (machine_function): Add use_vzeroupper_p, use_avx256_p,
7039         caller_pass_avx256_p, caller_return_avx256_p,
7040         callee_pass_avx256_p and callee_return_avx256_p.
7041
7042         * config/i386/i386.opt (-mvzeroupper): New.
7043
7044         * config/i386/predicates.md (vzeroupper_operation): Removed.
7045
7046         * config/i386/sse.md (avx_vzeroupper): Removed.
7047         (*avx_vzeroupper): Removed.
7048         (avx_vzeroupper): New.
7049
7050         * doc/invoke.texi: Document -mvzeroupper.
7051
7052 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7053
7054         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
7055         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
7056         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
7057
7058 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7059             Olivier Hainque  <hainque@adacore.com>
7060
7061         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
7062         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
7063         fs->signal_frame instead.
7064
7065 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7066
7067         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
7068         parsing of RID_COPIES and RID_IVAR.
7069
7070 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7071
7072         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
7073         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
7074         Do not use objc_set_property_attr, but use local variables
7075         instead.  Detect repeated usage of setter, getter and ivar
7076         attributes.  Improved error processing when a setter name does not
7077         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
7078         that the token is a keyword.  Updated call to
7079         objc_add_property_declaration.
7080
7081 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7082
7083         * c-parser.c (c_parser_objc_at_property): Renamed to
7084         c_parser_objc_at_property_declaration.  Updated calls to
7085         objc_add_property_variable, now objc_add_property_declaration.
7086         Code rewritten to be much more robust in recovering from syntax
7087         errors.  Added comments.
7088         (c_parser_objc_property_attrlist): Removed.
7089         (c_parser_external_declaration): Updated calls to
7090         c_parser_objc_at_property, now
7091         c_parser_objc_at_property_declaration.
7092         (c_parser_objc_methodprotolist): Same change.
7093
7094 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
7095
7096         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
7097
7098 2010-10-26  Jan Hubicka  <jh@suse.cz>
7099
7100         * ipa.c (process_references): Enqueue all referenced nodes;
7101         mark as reachable only non-external nodes.
7102         (cgraph_remove_unreachable_nodes): All referenced nodes should
7103         be enqueued; remove bogues node->needed check.
7104
7105 2010-10-26  Jan Hubicka  <jh@suse.cz>
7106
7107         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
7108         to represent OMP.
7109
7110 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
7111
7112         * config/i386/i386.md (split_stack_return): Replace
7113         unspec_volatile with unspec.
7114
7115 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
7116
7117         * doc/install.texi: Fix typo in --with-sysroot description.
7118
7119 2010-10-26  Jan Hubicka  <jh@suse.cz>
7120
7121         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
7122         Use info provided by linker plugin.
7123
7124 2010-10-26  Jason Merrill  <jason@redhat.com>
7125
7126         * varasm.c (constructor_static_from_elts_p): Don't require a
7127         CONSTRUCTOR to have elements to be suitable for static
7128         initialization.  Allow ARRAY_TYPE as well.
7129
7130 2010-10-26  Jan Hubicka  <jh@suse.cz>
7131
7132         PR middle-end/45736
7133         * cgraph.c (cgraph_set_readonly_flag): Rename to...
7134         (cgraph_set_const_flags) ... this one; get also looping argument;
7135         clear constructor/destructor flags.
7136         (cgraph_set_pure_flag): Likewise.
7137         (cgraph_set_looping_const_or_pure_flag): Remove.
7138         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
7139         to optimize away static ctors/dtors; it does not work on inline clones;
7140         external functions can always be rmeoved.
7141         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
7142         inline clones; in LTO external functions always can go.
7143         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
7144         (cgraph_mark_address_taken_node): Assert that we are not taking
7145         address of inline clone.
7146         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
7147         external functions.
7148         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
7149         address taken.
7150         (ipcp_initialize_node_lattices): Only local functions can be
7151         handled without cloning.
7152         * cgraph.h (cgraph_set_readonly_flag,
7153         cgraph_set_looping_const_or_pure_flag): Remove.
7154         (cgraph_set_const_flag): Declare.
7155         (cgraph_set_pure_flag): Update.
7156         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
7157         flags setting code.
7158         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
7159         look at inline clones; fix handling of external definitions.
7160         (cgraph_postorder): Do not look at inline clones in the first pass.
7161         (function_and_variable_visibility): Drop constructors/destructor
7162         flags at pure and const functions.
7163         * tree-profile.c (tree_profiling): Update.
7164         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
7165         address taken; external functions do not account to whole program size.
7166         (cgraph_decide_inlining): Likewise; do not try to inline
7167         functions already inlined.
7168
7169 2010-10-26  Jie Zhang  <jie@codesourcery.com>
7170
7171         * doc/invoke.texi: Improve documentation of
7172         -fstrict-volatile-bitfields.
7173
7174 2010-10-26  Ira Rosen  <irar@il.ibm.com>
7175
7176         PR tree-optimization/46167
7177         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
7178         is basic block for the statement.
7179
7180 2010-10-26  Paul Koning  <ni1d@arrl.net>
7181
7182         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
7183         current definition of struct_real_format.
7184
7185 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
7186
7187         PR target/44948
7188         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
7189         (ix86_function_arg_boundary): Always align parameters on stack
7190         in 64bit and align parameters with alignment >= 16byte on stack
7191         in 32bit.  Warn alignment change.
7192
7193 2010-10-26  Ian Lance Taylor  <iant@google.com>
7194
7195         PR middle-end/45687
7196         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
7197         offset.
7198
7199 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
7200
7201         Implement opaque-enum-specifiesr for C++0x
7202         * tree.h (ENUM_IS_OPAQUE): New.
7203         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
7204
7205 2010-10-26  Jie Zhang  <jie@codesourcery.com>
7206
7207         * stor-layout.c (layout_decl): Use the field's type to
7208         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
7209         * config/arm/arm.c (arm_override_options): Default to
7210         -fstrict-volatile-bitfields.
7211
7212 2010-10-25  Paul Koning  <ni1d@arrl.net>
7213
7214         * config/pdp11/pdp11.md: Add define_constants for register
7215         numbers, branch offset limits.
7216         * config/pdp11/pdp11.c: Use named constants instead of numbers.
7217         * config/pdp11.pdp11.h: Ditto.
7218
7219 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
7220
7221         * configure.ac: Use $cpu_type instead of $target to define the nop.
7222         * configure: Regenerate.
7223
7224 2010-10-25  Jie Zhang  <jie@codesourcery.com>
7225
7226         * combine.c (try_combine): If insns need to be kept around, check that
7227         they can be copied in the merged instruction.
7228
7229 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
7230
7231         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
7232         has been modified.
7233         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
7234         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
7235         it has been modified.
7236
7237 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
7238
7239         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
7240
7241 2010-10-24  Paul Koning  <ni1d@arrl.net>
7242
7243         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
7244         * config/pdp11/pdp11.c (output_jump): Ditto.
7245
7246 2010-10-24  Ian Lance Taylor  <iant@google.com>
7247
7248         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
7249
7250 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
7251
7252         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
7253         least one insn with a locus corresponding to an edge's goto_locus,
7254         disregard non-fallthru edges to the exit block and merge the blocks
7255         created for the same goto_locus.
7256
7257 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
7258
7259         * gcc.c (n_switches_alloc_debug_check): New.
7260         (set_option_handlers): New.
7261         (process_command): Use set_option_handlers.
7262         (do_self_spec): Pass spec-generated options through option handlers.
7263         (main): Also save and restore n_switches_alloc when swapping
7264         switch arrays.
7265
7266 2010-10-23  Richard Henderson  <rth@redhat.com>
7267
7268         PR target/46144
7269         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
7270         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
7271         Honor matching operands when splitting to XOR.
7272
7273 2010-10-23  Ian Lance Taylor  <iant@google.com>
7274
7275         * tree-vrp.c (extract_range_from_binary_expr): If
7276         flag_non_call_exceptions don't eliminate division by zero.
7277         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
7278
7279 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
7280
7281         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
7282         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
7283         __ORDER_PDP_ENDIAN__.
7284         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7285         (struct DWstruct): Define based on __BYTE_ORDER__.
7286         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7287         (struct INTstruct): Define based on __BYTE_ORDER__.
7288         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7289         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
7290         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
7291         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7292         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7293         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7294         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7295         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7296         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7297         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7298         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7299         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7300         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7301         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7302         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7303         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7304         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7305         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7306         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7307         * doc/tm.texi: Regenerate.
7308         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
7309         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
7310
7311 2010-10-23  Jie Zhang  <jie@codesourcery.com>
7312
7313         PR rtl-optimization/37360
7314         * config/mips/mips.c (cached_can_issue_more): New local variable.
7315         (mips_sched_reorder_1): New.
7316         (mips_sched_reorder): Use mips_sched_reorder_1.
7317         (mips_sched_reorder2): New.
7318         (mips_variable_issue): Set cached_can_issue_more.
7319         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
7320         instead of mips_sched_reorder.
7321
7322         Revert:
7323         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
7324         PR rtl-optimization/37360
7325         * haifa-sched.c (max_issue): Do not assert that we never issue more
7326         insns than issue_rate.  Add comment.
7327
7328 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
7329
7330         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
7331         location info of the expression.
7332
7333 2010-10-22  DJ Delorie  <dj@redhat.com>
7334
7335         * doc/extend.texi (Named Address Spaces): Document the M32C named
7336         address space.
7337
7338         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
7339         __far address space.
7340         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
7341         "__far" address space for R8C and M16C processor variants.
7342         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
7343         (far_addr_space_p): New.
7344         (encode_pattern_1): Add sign and zero extend support.
7345         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
7346         (m32c_extra_constraint_p2): Add SF constraint.
7347         (m32c_legitimate_address_p): Support __far addresses.
7348         (m32c_addr_space_pointer_mode): New.
7349         (m32c_addr_space_address_mode): New.
7350         (m32c_addr_space_legitimate_address_p): New.
7351         (m32c_addr_space_legitimize_address): New.
7352         (m32c_addr_space_subset_p): New.
7353         (m32c_addr_space_convert): New.
7354         (conversions): Add __far operand patterns.
7355         (m32c_prepare_move): Force constants into registers for __far moves.
7356         (m32c_split_move): __far moves are always split.
7357         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
7358         * config/m32c/mov.md (mov<mode>_far_op1): New.
7359         (mov<mode>_far_op2): New.
7360         (movqi_op): Add __far (SF) support.
7361         (movhi_op): Likewise.
7362         (movsi_splittable): Split A1A0 also.
7363
7364 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
7365             Andrew Pinski  <pinskia@gmail.com>
7366
7367         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
7368         * doc/extend.texi: New paragraph
7369
7370 2010-10-22  Paul Koning  <ni1d@arrl.net>
7371
7372         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
7373
7374 2010-10-22  DJ Delorie  <dj@redhat.com>
7375
7376         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
7377
7378 2010-10-22  Paul Koning  <ni1d@arrl.net>
7379
7380         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
7381
7382 2010-10-22  Richard Henderson  <rth@redhat.com>
7383
7384         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
7385         cases for __builtin_fma and __builtin_fmaf.
7386
7387 2010-10-22  Richard Henderson  <rth@redhat.com>
7388
7389         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
7390         NEG+USE for vectors as well.
7391         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
7392         and splitter.
7393
7394 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
7395
7396         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
7397         SWITCH_CURTAILS_COMPILATION): Remove.
7398         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
7399         * doc/tm.texi: Regenerate.
7400         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
7401
7402 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
7403
7404         * config/i386/bdver1.md: New file.
7405         * config/i386/i386.md (include "bdver1.md"): Invoke the
7406         pipeline description for bdver1.
7407         (x86_sahf_1): Add "bdver1_decode" attribute.
7408         (*cmpfp_i_mixed): Likewise.
7409         (*cmpfp_i_sse): Likewise.
7410         (*cmpfp_i_i387): Likewise.
7411         (*cmpfp_iu_mixed): Likewise.
7412         (*cmpfp_iu_sse): Likewise.
7413         (*cmpfp_iu_387): Likewise.
7414         (*swap<mode>,*swap<mode>_1): Likewise.
7415         (fixuns_trunc<mode>hi2): Likewise.
7416         (fix_trunc<mode>si_sse): Likewise.
7417         (x86_fnstcw_1): Likewise.
7418         (x86_fldcw_1): Likewise.
7419         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
7420         (*floatsi<mode>2_vector_mixed): Likewise.
7421         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
7422         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
7423         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
7424         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
7425         (*floatsi<mode>2_vector_sse): Likewise.
7426         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
7427         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
7428         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
7429         (*mul<mode>3_1): Likewise.
7430         (*mulsi3_1_zext): Likewise.
7431         (*mulhi3_1): Likewise.
7432         (*mulqi3_1): Likewise.
7433         (*<u>mul<mode><dwi>3_1): Likewise.
7434         (*<u>mulqihi3_1): Likewise.
7435         (*<s>muldi3_highpart_1): Likewise.
7436         (*<s>mulsi3_highpart_1): Likewise.
7437         (*<s>mulsi3_highpart_zext): Likewise.
7438         (x86_64_shld): Likewise.
7439         (x86_shld): Likewise.
7440         (x86_64_shrd): Likewise.
7441         (x86_shrd): Likewise.
7442         (sqrtxf2): Likewise.
7443         (sqrt_extend<mode>xf2_i387): Likewise.
7444         (*sqrt<mode>2_sse): Likewise.
7445         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
7446         (sse_cvtsi2ssq): Likewise.
7447         (sse_cvtss2si): Likewise.
7448         (sse_cvtss2si_2): Likewise.
7449         (sse_cvtss2siq): Likewise.
7450         (sse_cvtss2siq_2): Likewise.
7451         (sse_cvttss2si): Likewise.
7452         (sse_cvttss2siq): Likewise.
7453         (sse2_cvtpi2pd): Likewise.
7454         (sse2_cvttpd2pi): Likewise.
7455         (sse2_cvtsi2sd): Likewise.
7456         (sse2_cvtsi2sdq): Likewise.
7457         (sse2_cvtsd2si): Likewise.
7458         (sse2_cvtsd2si_2): Likewise.
7459         (sse2_cvtsd2siq): Likewise.
7460         (sse2_cvtsd2siq_2): Likewise.
7461         (sse2_cvttsd2si): Likewise.
7462         (sse2_cvttsd2siq): Likewise.
7463         (*sse2_cvtpd2dq): Likewise.
7464         (*sse2_cvttpd2dq): Likewise.
7465         (sse2_cvtsd2ss): Likewise.
7466         (sse2_cvtss2sd): Likewise.
7467         (*sse2_cvtpd2ps): Likewise.
7468         (sse2_cvtps2pd): Likewise.
7469
7470 2010-10-22  Richard Guenther  <rguenther@suse.de>
7471
7472         PR middle-end/46137
7473         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
7474         remove the virtual operands if they are not needed.
7475
7476 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
7477
7478         * config/i386/i386.c (processor_costs bdver1_cost): Update
7479         insn costs and architectural parameters for bdver1.
7480
7481 2010-10-22  Richard Guenther  <rguenther@suse.de>
7482
7483         * gimple.h (gimple_register_canonical_type): Declare.
7484         * gimple.c (gimple_canonical_types): New global hashtable.
7485         (struct gimple_type_leader_entry_s): New type.
7486         (gimple_type_leader): New global cache.
7487         (gimple_lookup_type_leader): New function.
7488         (gtc_visit): Query the proper cache.
7489         (gimple_types_compatible_p): Likewise.
7490         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
7491         (gimple_canonical_type_eq): New function.
7492         (gimple_register_canonical_type): Likewise.
7493         (print_gimple_types_stats): Adjust for gimple_canonical_types.
7494         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
7495         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
7496         gimple_types_compatible_p for LTO.
7497
7498 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
7499
7500         PR target/46098
7501         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
7502         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
7503         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
7504         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
7505         (<sse>_movu<ssemodesuffix>): New expander.
7506         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
7507         (avx_movdqu<avxmodesuffix>): New expander.
7508         (*sse2_movdqu): Rename from sse2_movdqu.
7509         (sse2_movdqu): New expander.
7510
7511 2010-10-22  Richard Guenther  <rguenther@suse.de>
7512
7513         PR tree-optimization/45720
7514         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
7515         Handle negative step.
7516         (vect_enhance_data_refs_alignment): Likewise.
7517         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
7518         (vect_create_cond_for_align_checks): Likewise.
7519         (vect_create_cond_for_alias_checks): Likewise.
7520
7521 2010-10-22  Ira Rosen  <irar@il.ibm.com>
7522
7523         PR tree-optimization/46126
7524         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
7525         vectorizable_shift in case of basic block vectorization.
7526
7527 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
7528
7529         * target.h (enum opt_levels, struct default_options): New.
7530         * target.def (handle_ofast): Remove hook.
7531         (target_option.optimization): Change to
7532         target_option.optimization_table.
7533         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
7534         TARGET_OPTION_OPTIMIZATION_TABLE.
7535         (CAN_DEBUG_WITHOUT_FP): Remove.
7536         * doc/tm.texi: Regenerate.
7537         * opts.c (maybe_default_option, maybe_default_options,
7538         default_options_table): New.
7539         (default_options_optimization): Take extra parameters.  Don't
7540         assert that global_options and global_options_set are in use.  Use
7541         maybe_default_options.
7542         (decode_options): Pass extra parameters to
7543         default_options_optimization.
7544         * common.opt (falign-loops): Use value 0 with Var.
7545         (frerun-cse-after-loop, ftree-ter): Remove Init.
7546         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
7547         TARGET_OPTION_OPTIMIZATION): Remove.
7548         * targhooks.c (empty_optimization_table): New.
7549         * targhooks.h (empty_optimization_table): Declare.
7550         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
7551         * config/alpha/alpha.c (alpha_option_optimization_table,
7552         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7553         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
7554         * config/arm/arm.c (arm_option_optimization: Change to
7555         arm_option_optimization_table.
7556         (TARGET_OPTION_OPTIMIZATION): Change to
7557         TARGET_OPTION_OPTIMIZATION_TABLE.
7558         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
7559         * config/avr/avr.c (avr_option_optimization_table,
7560         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7561         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
7562         * config/cris/cris.c (cris_option_optimization): Change to
7563         cris_option_optimization_table.
7564         (TARGET_OPTION_OPTIMIZATION): Change to
7565         TARGET_OPTION_OPTIMIZATION_TABLE.
7566         * config/crx/crx.c (crx_option_optimization): Change to
7567         crx_option_optimization_table.
7568         (TARGET_OPTION_OPTIMIZATION): Change to
7569         TARGET_OPTION_OPTIMIZATION_TABLE.
7570         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
7571         * config/fr30/fr30.c (fr30_option_optimization_table,
7572         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7573         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
7574         * config/frv/frv.c (frv_option_optimization_table,
7575         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7576         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
7577         * config/h8300/h8300.c (h8300_option_optimization): Change to
7578         h8300_option_optimization_table.
7579         (TARGET_OPTION_OPTIMIZATION): Change to
7580         TARGET_OPTION_OPTIMIZATION_TABLE.
7581         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
7582         * config/i386/i386.c (ix86_option_optimization): Change to
7583         ix86_option_optimization_table.
7584         (TARGET_OPTION_OPTIMIZATION): Change to
7585         TARGET_OPTION_OPTIMIZATION_TABLE.
7586         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
7587         as initializer.
7588         * config/ia64/ia64.c (ia64_option_optimization): Change to
7589         ia64_option_optimization_table.
7590         (TARGET_OPTION_OPTIMIZATION): Change to
7591         TARGET_OPTION_OPTIMIZATION_TABLE.
7592         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
7593         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
7594         initializer.
7595         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
7596         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7597         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
7598         * config/lm32/lm32.c (lm32_option_optimization_table,
7599         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7600         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
7601         * config/m32r/m32r.c (m32r_option_optimization): Change to
7602         m32r_option_optimization_table.
7603         (TARGET_OPTION_OPTIMIZATION): Change to
7604         TARGET_OPTION_OPTIMIZATION_TABLE.
7605         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
7606         CAN_DEBUG_WITHOUT_FP): Remove.
7607         * config/mcore/mcore.c (mcore_option_optimization): Change to
7608         mcore_option_optimization_table.
7609         (TARGET_OPTION_OPTIMIZATION): Change to
7610         TARGET_OPTION_OPTIMIZATION_TABLE.
7611         * config/mep/mep.c (mep_option_optimization): Change to
7612         mep_option_optimization_table.
7613         (TARGET_OPTION_OPTIMIZATION): Change to
7614         TARGET_OPTION_OPTIMIZATION_TABLE.
7615         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
7616         * config/microblaze/microblaze.c
7617         (microblaze_option_optimization_table,
7618         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7619         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
7620         * config/mips/mips.c (mips_option_optimization_table,
7621         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7622         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
7623         * config/mmix/mmix.c (mmix_option_optimization): Change to
7624         mmix_option_optimization_table.
7625         (TARGET_OPTION_OPTIMIZATION): Change to
7626         TARGET_OPTION_OPTIMIZATION_TABLE.
7627         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
7628         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
7629         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7630         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
7631         * config/pa/pa.c (pa_option_optimization_table,
7632         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7633         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
7634         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
7635         pdp11_option_optimization_table.
7636         (TARGET_OPTION_OPTIMIZATION): Change to
7637         TARGET_OPTION_OPTIMIZATION_TABLE.
7638         * config/picochip/picochip.c (picochip_option_optimization_table,
7639         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7640         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
7641         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
7642         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7643         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
7644         * config/rx/rx.c (rx_option_optimization_table,
7645         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7646         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
7647         * config/s390/s390.c (s390_option_optimization): Change to
7648         s390_option_optimization_table.
7649         (s390_option_override): Update comment.
7650         (TARGET_OPTION_OPTIMIZATION): Change to
7651         TARGET_OPTION_OPTIMIZATION_TABLE.
7652         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
7653         * config/score/score.c (score_option_optimization_table,
7654         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7655         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
7656         * config/sh/sh.c (sh_option_optimization): Change to
7657         sh_option_optimization_table.
7658         (TARGET_OPTION_OPTIMIZATION): Change to
7659         TARGET_OPTION_OPTIMIZATION_TABLE.
7660         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
7661         (sh_option_override, expand_block_move, multcosts, find_barrier,
7662         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
7663         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
7664         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
7665         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
7666         instead of TARGET_SMALLCODE.
7667         * config/sh/sh.opt (mspace): Make into an alias for -Os.
7668         * config/sparc/sparc.c (sparc_option_optimization_table,
7669         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7670         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
7671         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
7672         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7673         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
7674         * config/v850/v850.c (v850_option_optimization): Change to
7675         v850_option_optimization_table.
7676         (TARGET_OPTION_OPTIMIZATION): Change to
7677         TARGET_OPTION_OPTIMIZATION_TABLE.
7678         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
7679         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
7680         xtensa_option_optimization_table.
7681         (TARGET_OPTION_OPTIMIZATION): Change to
7682         TARGET_OPTION_OPTIMIZATION_TABLE.
7683         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
7684
7685 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
7686
7687         Based on the CFString implementation in FSF apple/trunk branch.
7688
7689         * target.def (objc_construct_string): New Hook.
7690         * doc/tm.texi (objc_construct_string): Document.
7691         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
7692         * config/t-darwin: Amend build rules for darwin.o.
7693         * config/darwin.opt: Add cfstrings flags.
7694         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
7695         (darwin_objc_construct_string): New.
7696         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
7697         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
7698         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
7699         (darwin_fold_builtin): Likewise.
7700         (darwin_build_constant_cfstring): Likewise.
7701         (darwin_objc_construct_string): Likewise.
7702         (darwin_cfstring_p): Likewise.
7703         (darwin_enter_string_into_cfstring_table): Likewise.
7704         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
7705         * config/darwin.c (darwin_running_cxx): New var.
7706         (machopic_select_section): Return cfstring_constant_object_section.
7707         (darwin_override_options): Set darwin_running_cxx.
7708         (add_builtin_field_decl): New.
7709         (darwin_init_cfstring_builtins): New.
7710         (darwin_build_constant_cfstring): New.
7711         (darwin_fold_builtin): New.
7712         (cfstring_hash): New.
7713         (cfstring_eq): New.
7714         (darwin_enter_string_into_cfstring_table): New.
7715         * config/darwin-sections.def (cfstring_constant_object_section): New.
7716         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
7717         (TARGET_OBJC_CONSTRUCT_STRING): Define.
7718
7719 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7720
7721         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
7722         TYPE_STUB_DECL instead of TREE_CHAIN.
7723         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
7724         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
7725         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
7726         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
7727         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
7728         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
7729         Likewise.
7730         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
7731
7732 2010-10-22  Jie Zhang  <jie@codesourcery.com>
7733
7734         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
7735         (copy_blkmode_from_reg): Likewise.
7736         (read_complex_part): Likewise.
7737         (expand_expr_real_1): Calculate packedp and pass it to
7738         extract_bit_field.
7739         * expr.h (extract_bit_field): Update declaration.
7740         * calls.c (store_unaligned_arguments_into_pseudos): Update call
7741         to extract_bit_field.
7742         * expmed.c (extract_fixed_bit_field): Update calls to
7743         extract_fixed_bit_field.
7744         (store_split_bit_field): Likewise.
7745         (extract_bit_field_1): Add new argument packedp.
7746         (extract_bit_field): Add new argument packedp.
7747         (extract_fixed_bit_field): Add new argument packedp and let
7748         packed attribute override volatile.
7749         * stmt.c (expand_return): Update call to extract_bit_field.
7750
7751 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7752
7753         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
7754
7755 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7756
7757         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
7758         of gcc_checking_assert.
7759         * sel-sched.c (code_motion_process_successors): Likewise.
7760
7761 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
7762
7763         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
7764         when stopping because of a different locus on edge or insn.
7765         (try_optimize_cfg): Add comment.
7766         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
7767         block is a forwarder block, propagate locus on the edge.
7768         (cfg_layout_merge_blocks): Likewise.
7769
7770 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
7771
7772         PR target/45946
7773         * config/i386/i386.md (*pushti2): New insn pattern.
7774         (pushti2 splitter): New insn splitter.
7775         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
7776         DWI mode iterator.
7777
7778 2010-10-21  Paul Koning  <ni1d@arrl.net>
7779
7780         * config/pdp11/pdp11-protos.md (arith_operand,
7781         const_immediate_operand, expand_shift_operand,
7782         immediate15_operand): Delete
7783         * config/pdp11/pdp11.c: Ditto.
7784         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
7785         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
7786         EXTRA_CONSTRAINT): Delete.
7787         * config/pdp11/pdp11.md (various): Use standard constraints
7788         instead of removed ones.
7789         * config/pdp11/constraints.md: New file.
7790         * config/pdp11/predicates.md: New file.
7791
7792 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
7793
7794         PR c/45834
7795         * alias.c (true_dependence_1): Remove obsolete check for QImode.
7796         (may_alias_p): Ditto.
7797
7798 2010-10-21  Martin Jambor  <mjambor@suse.cz>
7799
7800         PR tree-optimization/45875
7801         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
7802
7803 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7804
7805         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
7806         variables.
7807         (create_new_def_for): Likewise.
7808
7809 2010-10-21  Nick Clifton  <nickc@redhat.com>
7810
7811         * config/mn10300/mn10300.c: Fold code to 80-character width.
7812         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7813         MEM, CONST_INT and CONST_DOUBLE.
7814         (targetm): Move initialization to end of file.
7815         (print_operand): Rename to mn10300_print_operand.
7816         (print_operand_address): Rename to mn10300_print_operand_address.
7817         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
7818         (expand_prologue): Rename to mn10300_expand_prologue.
7819         (expand_epilogue): Rename to mn10300_expand_epilogue.
7820         (initial_offset): Rename to mn10300_initial_offset.
7821         (function_arg): Rename to mn10300_function_arg.
7822         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
7823         (symbolic_operand): Rename to mn10300_symbolic_operand.
7824         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
7825         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
7826         * config/mn10300/mn10300-protos.h: Update prototypes.
7827         * config/mn10300/mn10300.h: Fold code to 80-character width.
7828         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7829         MEM, CONST_INT and CONST_DOUBLE.
7830         (CPP_SPEC): Move to...
7831         (TARGET_CPU_CPP_BUILTINS): ... here.
7832         * config/mn10300/mn10300.md: Fold code to 80-character width.
7833         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7834         MEM, CONST_INT and CONST_DOUBLE.
7835
7836 2010-10-21  Ira Rosen  <irar@il.ibm.com>
7837
7838         PR tree-optimization/46049
7839         PR tree-optimization/46052
7840         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
7841         (vect_get_slp_defs): Add arguments.
7842         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
7843         operands to vect_get_slp_defs.
7844         (vectorizable_reduction): Fix comment, pass scalar operands to
7845         vect_get_slp_defs.
7846         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
7847         type to determine number of units in the created vector.
7848         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
7849         (vectorizable_conversion): Fix comment.
7850         (vectorizable_shift): New function.
7851         (vectorizable_operation): Move code that handles shifts to
7852         vectorizable_shift.
7853         (vectorizable_type_demotion): Fix comment, pass scalar operands to
7854         vect_get_slp_defs.
7855         (vectorizable_type_promotion, vectorizable_store): Likewise.
7856         (vectorizable_condition): Fix comment.
7857         (vect_analyze_stmt): Call vectorizable_shift.
7858         (vect_transform_stmt): Likewise.
7859         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
7860         Use it as the operand to create vectors for, except reduction
7861         initial definition and store.  Use operands type.
7862         (vect_get_slp_defs): Add new arguments.  Pass them to
7863          vect_get_constant_vectors.
7864
7865 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7866
7867         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
7868         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
7869         * cfghooks.c (fixup_reorder_chain): Likewise.
7870         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
7871         * cgraph.c (cgraph_add_thunk): Likewise.
7872         (cgraph_create_edge_1): Likewise.
7873         (cgraph_create_virtual_clone): Likewise.
7874         * ddg.c (add_cross_iteration_register_deps): Likewise.
7875         * dwarf2out.c (modified_type_die): Likewise.
7876         * emit-rtl.c (set_mem_alias_set): Likewise.
7877         * ggc-zone.c (zone_allocate_marks): Likewise.
7878         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
7879         * gimple.c (iterative_hash_gimple_type): Likewise.
7880         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
7881         (create_single_exit_edge): Likewise.
7882         * haifa-sched.c (choose_ready): Likewise.
7883         * lto-streamer-in.c (input_gimple_stmt): Likewise.
7884         * passes.c (execute_todo): Likewise.
7885         * sched-ebb.c (begin_schedule_ready): Likewise.
7886         * sel-sched.c (code_motion_process_successors): Likewise.
7887         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
7888         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
7889         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
7890         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
7891         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
7892         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
7893         (ssa_conflicts_add): Likewise.
7894         * tree-ssa-copy.c (replace_exp): Likewise.
7895         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
7896         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
7897         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
7898         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
7899         (compute_antic): Likewise.
7900         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
7901         (add_dependence): Likewise.
7902         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
7903         * tree-vrp.c (supports_overflow_infinity): Likewise.
7904         (make_overflow_infinity, negative_overflow_infinity): Likewise.
7905         (avoid_overflow_infinity, register_new_assert_for): Likewise.
7906         (process_assert_insertions_for): Likewise.
7907         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
7908         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
7909         (intersect_loc_chains, variable_merge_over_cur): Likewise.
7910
7911 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7912
7913         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
7914         * reload1.c (has_nonexceptional_receiver): Likewise.
7915         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
7916         (create_new_def_for): Likewise.
7917         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
7918         (merge_phi_nodes): Likewise.
7919         (has_abnormal_incoming_edge_p): Delete.
7920
7921 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7922
7923         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
7924
7925 2010-10-21  Richard Guenther  <rguenther@suse.de>
7926             Michael Matz  <matz@suse.de>
7927
7928         PR tree-optimization/45764
7929         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7930         Adjust initial misalignment for negative DR_STEP.
7931         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
7932         do not have the same alignment over the whole iteration domain.
7933
7934 2010-10-21  Richard Guenther  <rguenther@suse.de>
7935
7936         PR tree-optimization/46111
7937         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
7938
7939 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7940
7941         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
7942
7943 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7944
7945         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
7946         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
7947
7948 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7949
7950         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
7951         signal_frame.
7952         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
7953
7954 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7955
7956         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
7957         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
7958
7959 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
7960
7961         * basic-block.h (find_fallthru_edge): Define.
7962         * cfgcleanup.c (merge_blocks_move): Use it.
7963         (try_crossjump_bb): Likewise.
7964         * cfglayout.c (fixup_reorder_chains): Likewise.
7965         (fixup_fallthru_exit_predecessor): Likewise.
7966         * cfgrtl.c (rtl_split_edge): Likewise.
7967         (rtl_verify_flow_info): Likewise.
7968         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7969         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
7970         * ifcvt.c (block_fallthru): Likewise.
7971         * reload1.c (fixup_abnormal_edges): Likewise.
7972         * sched-ebb.c (being_schedule_ready): Likewise.
7973         (schedule_ebb): Likwise.
7974         * sched-rgn.c (find_single_block_region): Likewise.
7975         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
7976         * tree-complex.c (expand_complex_move): Likewise.
7977         * sched-int.h (find_fallthru_edge): Rename to...
7978         (find_fallthru_edge_from): ...this.
7979         * haifa-sched.c (find_fallthru_edge): Rename to...
7980         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
7981         (init_before_recovery): Call find_fallthru_edge_from.
7982         * sel-sched-ir.c (merge_fences): Likewise.
7983         * sel-sched.c (in_fallthru_bb_p): Likewise.
7984         (move_cond_jump): Likewise.
7985
7986 2010-10-20  Paul Koning  <ni1d@arrl.net>
7987
7988         * config/pdp11/pdp11.md (various): Fix conditions on a number of
7989         insn to check for target 11/40 or higher.
7990
7991 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7992
7993         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
7994         bool instead of a tree.
7995         (c_parser_objc_method_decl): Added bool argument.  Updated call to
7996         objc_build_method_signature.
7997         (c_parser_objc_method_definition): Do not call
7998         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
7999         c_parser_objc_method_decl and objc_start_method_definition.
8000         (c_parser_objc_methodproto): Do not call objc_set_method_type.
8001         Updated calls to c_parser_objc_method_type,
8002         c_parser_objc_method_decl and objc_add_method_declaration.
8003
8004 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
8005
8006         PR tree-optimization/45919
8007         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
8008         array members.
8009
8010         PR tree-optimization/46066
8011         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
8012         instead of gsi_last_bb.
8013
8014 2010-10-20  DJ Delorie  <dj@redhat.com>
8015
8016         * config/m32c/m32c.c (m32c_option_override): Always disable
8017         function-cse in 16-bit mode.  Indirect calls are always worse than
8018         direct calls as there is no 16-bit indirect call opcode.
8019         (m32c_override_options_after_change): New, likewise.
8020
8021 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
8022
8023         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
8024         emitting the conditional move in the inner mode of the SUBREG.
8025
8026 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
8027
8028         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
8029         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
8030         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8031         (ia64_preferred_reload_class): Make static.  Change rclass argument
8032         and result types from enum reg_class to reg_class_t.
8033
8034 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
8035
8036         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
8037         call for single operand expression.
8038
8039 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
8040
8041         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
8042         if there is a call statement to pure or const function in the block.
8043
8044 2010-10-20  Paul Koning  <pkoning@equallogic.com>
8045
8046         Fix several build errors for pdp11 target.
8047         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
8048         (cbranchdf4): Conditional on TARGET_FPU.
8049         (movdf): Ditto; correct alternatives check.
8050         (movmemhi): Fix predicate and constraint.
8051         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
8052
8053 2010-10-20  Richard Guenther  <rguenther@suse.de>
8054
8055         PR lto/45667
8056         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
8057         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
8058         (verify_gimple_assign_single): Disable ADDR_EXPR type check
8059         when in LTO.
8060
8061 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
8062
8063         PR fortran/42169
8064         * ira-emit.c (store_can_be_removed_p): Return false instead of
8065         gcc_unreachable.
8066
8067 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
8068
8069         * fold-const.c (fold_binary_loc): New transformation.
8070
8071 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8072
8073         PR target/46085
8074         * config/i386/sse.md (reduc_splus_v8sf): Updated.
8075         (reduc_splus_v4df): Likewise.
8076
8077 2010-10-20  Richard Guenther  <rguenther@suse.de>
8078
8079         PR tree-optimization/45860
8080         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
8081         conditional store replacement for non-register type stores.
8082
8083 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
8084
8085         * stor-layout.c (skip_simple_constant_arithmetic): New function.
8086         (self_referential_size): Use it instead of skip_simple_arithmetic.
8087
8088 2010-10-20  Olivier Hainque  <hainque@adacore.com>
8089
8090         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
8091         If the current function calls eh_return, claim live all registers
8092         that we need to check for liveness otherwise.
8093
8094 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8095
8096         * c-decl.c (c_write_global_declarations): Call
8097         objc_write_global_declarations when compiling Objective-C.
8098         * c-lang.c (finish_file): Removed.
8099
8100 2010-10-19  DJ Delorie  <dj@redhat.com>
8101
8102         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
8103         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
8104         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
8105         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
8106         * doc/tm.texi: Regenerate.
8107         * targhooks.h (default_label_align_after_barrier_max_skip,
8108         default_loop_align_max_skip, default_label_align_max_skip,
8109         default_jump_align_max_skip): Declare.
8110         * target.def (label_align_after_barrier_max_skip): New.
8111         (loop_align_max_skip): New.
8112         (label_align_max_skip): New.
8113         (jump_align_max_skip): New.
8114         * system.h (poison): Add those macros to the list.
8115         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
8116         (LOOP_ALIGN_MAX_SKIP): Remove.
8117         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
8118         (JUMP_ALIGN_MAX_SKIP): Remove.
8119         (default_label_align_after_barrier_max_skip): New.
8120         (default_loop_align_max_skip): New.
8121         (default_label_align_max_skip): New.
8122         (default_jump_align_max_skip): New.
8123         (compute_alignments): Use the new hooks.
8124         (shorten_branches): Likewise.
8125
8126 2010-10-19  Richard Henderson  <rth@redhat.com>
8127
8128         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
8129         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
8130         (fma4i_fmadd_<mode>): New.
8131         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
8132         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
8133         standard fma patterns.
8134         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
8135         enable for FMA.
8136         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
8137         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
8138         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
8139
8140 2010-10-19  Paul Koning  <pkoning@equallogic.com>
8141
8142         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
8143         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
8144
8145 2010-10-19  Richard Henderson  <rth@redhat.com>
8146
8147         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
8148         (fmadf4, *fmsdf4, *nfmadf4): New.
8149         (fmaxf4, *fmsxf4, *nfmaxf4): New.
8150
8151 2010-10-19  Michael Eager  <eager@eagercon.com>
8152
8153         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
8154         Use sjlj unwind info for exceptions.
8155
8156 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
8157
8158         PR fortran/43414
8159         * dwarf2out.c (add_calling_convention_attribute): Flag main
8160         Fortran subroutine with DW_AT_main_subprogram.
8161
8162 2010-10-19  Nick Clifton  <nickc@redhat.com>
8163
8164         * config/rx/rx.c (rx_function_value): Small integer types are
8165         promoted to SImode.
8166         (rx_promote_function_mode): New function.
8167         (TARGET_PROMOTE_FUNCTION_MODE): Define.
8168
8169 2010-10-19  Nick Clifton  <nickc@redhat.com>
8170
8171         * config/mep/mep.c (mep_print_operand): Use
8172         targetm.strip_name_encoding.
8173         (mep_output_aligned_common): Likewise.
8174
8175 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
8176
8177         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
8178
8179 2010-10-18  Richard Henderson  <rth@redhat.com>
8180
8181         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
8182         (fma (neg a) (neg b) c) and (fma a (neg b) c).
8183
8184 2010-10-18  Richard Henderson  <rth@redhat.com>
8185
8186         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
8187         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
8188         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
8189         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
8190         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
8191         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
8192         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
8193         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
8194         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
8195         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
8196         (bdesc_multi_arg): Remove the corresponding builtins.
8197         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
8198         (UNSPEC_FMA4_FMSUBADD): Remove.
8199         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
8200         * config/i386/sse.md (FMA4MODEF4): Remove.
8201         (FMAMODE): Add.
8202         (fma<mode>4): New expander.
8203         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
8204         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
8205         (*fma4i_fmsub_<mode>): Similarly.
8206         (*fma4i_fnmadd_<mode>): Similarly.
8207         (*fma4i_fnmsub_<mode>): Similarly.
8208         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
8209         with the first operand.
8210         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
8211         of explicit arithmetic.  Macroize with AVXMODEF2P.
8212         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
8213         (xop_frcz<mode>2): Macroize with FMAMODE.
8214         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
8215         the first operand.
8216         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
8217         extra negations.
8218         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
8219         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
8220         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
8221         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
8222         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
8223         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
8224         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
8225         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
8226
8227 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
8228
8229         PR rtl-optimization/45966
8230         * combine.c (try_combine): If added_sets_2, deal with the case
8231         where i0 feeds i1 and i1 feeds i2.
8232
8233 2010-10-18  Jan Hubicka  <jh@suse.cz>
8234
8235         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
8236         preserve flags before trying to guess on visibility.
8237         (varpool_externally_visible_p): New function.
8238         (function_and_variable_visibility): Use it.
8239
8240 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
8241
8242         Implemented parsing @synthesize and @dynamic for Objective-C.
8243         * c-parser.c (c_parser_external_declaration): Recognize
8244         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
8245         (c_parser_objc_at_synthesize_declaration): New.
8246         (c_parser_objc_at_dynamic_declaration): New.
8247
8248 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
8249
8250         * c-parser.c (c_parser_objc_class_declaration): After finding an
8251         error, parse the whole declaration then reset parser->error.
8252
8253 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
8254
8255         PR target/46041
8256         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
8257         * builtins.c (mode_has_fma): Ditto.
8258
8259 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
8260
8261         PR target/36898
8262         PR middle-end/43760
8263         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
8264
8265 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
8266
8267         * config/i386/i386.c (ix86_option_override_internal): Define and
8268         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
8269         default.
8270         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
8271         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
8272
8273 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
8274
8275         Merge from 'apple/trunk' branch on FSF servers.
8276         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
8277         following Objective-C change:
8278
8279         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
8280
8281         Radar 4301047
8282         * c-parse.in (objc_quals): Build objc qualifier list same way
8283         as gcc-3.3
8284
8285 2010-10-18  Jan Hubicka  <jh@suse.cz>
8286
8287         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
8288         function_and_variable_visibility): Revert accidental commit.
8289
8290 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
8291
8292         Merge from 'apple/trunk' branch on FSF servers.
8293         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
8294         the following Objective-C change:
8295
8296         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
8297
8298         Radar 4204796
8299         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
8300         'volatilized' type used in a typeof operator.
8301
8302 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
8303
8304         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
8305         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
8306         rewrite modelled on gimple_purge_dead_eh_edges.
8307         (gimple_purge_all_dead_abnormal_call_edges): New function.
8308         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
8309         directly instead of through gimple_purge_dead_abnormal_call_edges.
8310         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
8311         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
8312         removed AB side-effects from one of its statements.
8313         (init_pre): Initialize need_ab_cleanup.
8314         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
8315         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
8316
8317 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
8318
8319         PR c/46015
8320         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
8321         on computed goto argument.
8322
8323 2010-10-18  Richard Guenther  <rguenther@suse.de>
8324
8325         PR tree-optimization/45967
8326         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
8327         (could_have_pointers): Likewise.
8328         (handle_rhs_call, handle_const_call, handle_pure_call,
8329         find_func_aliases, intra_create_variable_infos): Remove calls to them.
8330         (struct fieldoff): Add must_have_pointers field.
8331         (type_must_have_pointers): New function.
8332         (field_must_have_pointers): Likewise.
8333         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
8334         Adjust field merging.
8335         (create_function_info_for): May-have-pointers of varinfo is
8336         almost always true.
8337         (create_variable_info_for_1): Likewise.
8338
8339 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
8340
8341         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
8342         of operands to vec_concat.
8343
8344 2010-10-18  Richard Guenther  <rguenther@suse.de>
8345
8346         PR lto/44950
8347         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
8348         also clear references to entries of it.
8349
8350 2010-10-18  Andi Kleen  <ak@linux.intel.com>
8351
8352         PR other/43448
8353         * gccbug.in: Remove.
8354         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
8355         (doc, distclean, install-common): Remove reference to gccbug.
8356         * configure: Regenerate.
8357         * configure.ac (all_outputs): Remove gccbug.
8358         * doc/configfiles.texi: Remove references to gccbug.
8359         * doc/sourcebuild.texi: Dito.
8360
8361 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
8362
8363         PR middle-end/46019
8364         * fold-const.c (fold_binary_loc): If integer_pow2p has
8365         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
8366
8367 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
8368             Jeremie Salvucci  <jeremie.salvucci@free.fr>
8369
8370         * gengtype.c (verbosity_level): Add variable.
8371         (set_gc_used): Count variables for verbosity.
8372         (close_output_files): Backing up files, counting written ones
8373         verbosily.
8374         (write_types): Count emitted functions for verbosity. Added
8375         debug messages.
8376         (write_enum_defn): Count structures for verbosity. Added debug
8377         messages.
8378         (gengtype_long_options): Add "verbose" & "backupdir".
8379         (print_usage): Ditto.
8380         (main): Verbose display of parsed files.
8381
8382         * gengtype.h (verbosity_level): Add declaration.
8383
8384 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
8385
8386         * gengtype.c (parse_program_options): Add allocation of
8387         plugin_files, and correct test on nb_plugin_files.
8388
8389 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8390
8391         Merge from 'apple/trunk' branch on FSF servers.
8392
8393         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
8394
8395         Radar 4133425
8396         * c-decl.c (undeclared_variable): Issue diagnostic on
8397         private 'ivar' access.
8398
8399 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
8400
8401         PR target/46051
8402         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
8403         generated sequence to match *avx_vperm2f128<mode>_nozero.
8404         (vec_interleave_lowv4df): Ditto.
8405         (vec_interleave_highv8sf): Ditto.
8406         (vec_interleave_lowv8sf): Ditto.
8407
8408 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
8409
8410         * libgcov.c (create_file_directory): Enable it for win32 case.
8411         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
8412         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
8413         (GCOV_PREFIX_SKIP): Likewise.
8414
8415 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8416
8417         * doc/objc.texi (GNU Objective-C runtime API): New section.
8418         (Modern GNU Objective-C runtime API): New section.
8419         (Traditional GNU Objective-C runtime API): New section.
8420         (Executing code before main): Mention that this section is
8421         specific to the GNU Objective-C runtime.
8422         (Garbage Collection): Same.
8423
8424 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
8425
8426         * c-parser.c (c_parser_for_statement): Move initialization of
8427         cond and incr before if.
8428
8429 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
8430
8431         * target.def (preferred_output_reload_class): New hook.
8432         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
8433         * doc/tm.texi: Regenerate.
8434         * targhooks.c (default_preferred_output_reload_class): New function.
8435         * targhooks.h (default_preferred_output_reload_class): Declare.
8436         * reload.c (find_dummy_reload): Change rclass argument type from
8437         enum reg_class to reg_class_t. Change this_alternative array type
8438         from enum reg_class to reg_class_t.
8439         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
8440         (push_reload): Change preferred_class variable type to reg_class_t.
8441         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
8442         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
8443         argument type from enum reg_class to reg_class_t. Use
8444         HARD_REGISTER_NUM_P predicate.
8445         * recog.h (reg_fits_class_p): Update prototype.
8446
8447         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
8448         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
8449         Remove.
8450         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
8451         static. Change regclass argument and result types from enum reg_class
8452         to reg_class_t.
8453         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
8454
8455 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
8456
8457         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
8458         visibility enum, and handle @package.
8459
8460 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8461
8462         * doc/objc.texi (What you can and what you cannot do in +load):
8463         Document that sending messages to constant string objects in +load
8464         is not guaranteed to work.
8465
8466 2010-10-16  Jan Hubicka  <jh@suse.cz>
8467
8468         PR middle-end/44206
8469         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
8470         existence of refrences before removing the function.
8471
8472 2010-10-16  Jan Hubicka  <jh@suse.cz>
8473
8474         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
8475         only_called_at_startup and only_called_at_exit.
8476         (cgraph_propagate_frequency): Compute only_called_at_startup and
8477         only_called_at_exit.
8478         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
8479         only_called_at_exit.
8480         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
8481         flags.
8482         * predict.c (compute_function_frequency): Initialize the new flags.
8483
8484 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
8485
8486         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
8487         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
8488         on the bounds of its domain.
8489         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
8490
8491 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
8492
8493         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
8494         * config/avr/avr-protos.h (preferred_reload_class): Remove.
8495         * config/avr/avr.c (preferred_reload_class): Remove.
8496         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
8497         * config/pa/pa.c (emit_move_sequence): Update comment
8498         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
8499         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
8500         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
8501         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
8502         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
8503         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
8504         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
8505         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
8506         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
8507         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
8508         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
8509         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
8510         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
8511
8512 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
8513
8514         * opts.c (set_fast_math_flags,
8515         set_unsafe_math_optimizations_flags): Make static.
8516         * toplev.h (set_fast_math_flags,
8517         set_unsafe_math_optimizations_flags): Remove prototypes.
8518
8519 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
8520
8521         * config/arm/arm.c (arm_option_optimization): Set
8522         flag_section_anchors to 1 not 2.
8523         * config/i386/i386.c (ix86_option_override_internal): Check
8524         global_options_set.x_flag_zee and
8525         global_options_set.x_flag_omit_frame_pointer.
8526         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
8527         flag_zee to 2.
8528         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
8529         global_options_set.x_flag_omit_frame_pointer.
8530         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
8531         opts->x_flag_section_anchors to 1 not 2.
8532         * config/sh/sh.c (sh_option_optimization): Don't set
8533         flag_schedule_insns to 2.
8534         (sh_option_override): Check
8535         global_options_set.x_flag_schedule_insns.
8536         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
8537
8538 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
8539
8540         * configure.ac: Make sure inhibit_libc remains false for mingw targets
8541         as cross.
8542         * configure: Regenerated.
8543
8544 2010-10-15  Xinliang David Li  <davidxl@google.com>
8545
8546         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
8547         function.
8548         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
8549         into a recursive function.
8550
8551 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
8552
8553         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
8554         (*movdfcc_1): ditto.
8555
8556 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8557
8558         * target.def (target_option.init_struct): New hook.
8559         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
8560         * doc/tm.texi: Regenerate.
8561         * hooks.c (hook_void_gcc_optionsp): New.
8562         * hooks.h (hook_void_gcc_optionsp): Declare.
8563         * langhooks-def.h (lhd_init_options_struct): Remove.
8564         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
8565         * langhooks.c (lhd_init_options_struct): Remove.
8566         * opts.c (init_options_struct): Also call
8567         targetm.target_option.init_struct.
8568         * config/i386/i386.c (ix86_option_init_struct,
8569         TARGET_OPTION_INIT_STRUCT): New.
8570         (ix86_option_optimization): Move some settings to
8571         ix86_option_init_struct.
8572         * config/pdp11/pdp11.c (pdp11_option_init_struct,
8573         TARGET_OPTION_INIT_STRUCT): New.
8574         (pdp11_option_optimization): Move some settings to
8575         pdp11_option_init_struct.
8576         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
8577         rs6000_option_init_struct.  Use options structure pointer.
8578         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
8579         * config/s390/s390.c (s390_option_init_struct,
8580         TARGET_OPTION_INIT_STRUCT): New.
8581         (s390_option_optimization): Don't set
8582         flag_asynchronous_unwind_tables here.
8583         * config/sh/sh.c (sh_option_init_struct,
8584         TARGET_OPTION_INIT_STRUCT): New.
8585         (sh_option_optimization): Don't set flag_finite_math_only here.
8586         * config/spu/spu.c (spu_option_optimization): Replace by
8587         spu_option_optimization.  Use options structure pointer.
8588         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
8589
8590 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8591
8592         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
8593
8594         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
8595         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
8596         (Standard names): Document fma.
8597
8598         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
8599         __FP_FAST_FMAF, __FP_FAST_FMAL.
8600
8601         * builitns.c (expand_builtin_mathfn_ternary): New function for
8602         expanding ternary math functions, like fma.
8603         (expand_builtin): Call it for the fma builtins.
8604
8605         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
8606         ops at present.
8607
8608         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
8609         vectorizable functions to support vectorizing fma.
8610
8611         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
8612         Handle fma builtins.
8613
8614         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
8615         (UNSPEC_VSX_MSUB): Ditto.
8616         (UNSPEC_VSX_NMADD): Ditto.
8617         (UNSPEC_VSX_NMSUB): Ditto.
8618         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
8619         of UNSPEC. Renumber combiner patterns.
8620         (vsx_fmsub<mode>4*): Ditto.
8621         (vsx_fnmadd<mode>4*): Ditto.
8622         (vsx_fnmsub<mode>4*): Ditto.
8623
8624         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
8625         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
8626         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
8627         (altivec_vmaddfp_1): Ditto.
8628         (altivec_vmaddfp_2): Ditto.
8629         (atlivec_mulv4sf3): Ditto.
8630         (altivec_vnmsubfp): Ditto.
8631         (altivec_vnmsubfp_1): Ditto.
8632         (altivec_vnmsubfp_2): Ditto.
8633         (altivec_vnmsubfp_3): Delete.
8634
8635         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
8636         (fmasf4_fpr): Ditto.
8637         (fmssf4_fpr): Ditto.
8638         (fnmasf4_fpr): Ditto.
8639         (fnmssf4_fpr): Ditto.
8640         (fmadf4): Ditto.
8641         (fmadf4_fpr): Ditto.
8642         (fmsdf4_fpr): Ditto.
8643         (fnmadf4_fpr): Ditto.
8644         (fnmsdf4_fpr): Ditto.
8645
8646         * optabs.h (OTI_fma): Add fma optab.
8647         (fma_optab): Ditto.
8648
8649         * genopinit.c (optabs): Set fma optab.
8650
8651         * rtl.def (FMA): Add FMA rtl.
8652
8653         * tree.h (mode_has_fma): New function to return if MODE supports a
8654         fast multiply and add instruction.
8655         * builtins.c (mode_has_fma): Ditto.
8656
8657 2010-10-15  Jan Hubicka  <jh@suse.cz>
8658
8659         * lto-streamer-out.c (write_symbol): Use pointer set of seen
8660         objects instead of bitmap.
8661         (produce_symtab): Likewise; output defined symbols first.
8662
8663 2010-10-15  Jie Zhang  <jie@codesourcery.com>
8664
8665         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
8666         Option Summary and Index.
8667
8668 2010-10-15  Richard Guenther  <rguenther@suse.de>
8669
8670         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
8671         for automatic variables again.
8672
8673 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8674
8675         * doc/extend.texi (Variable Length): Don't refer to VLAs not
8676         conforming to C99.
8677
8678 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8679
8680         * config/rx/rx.c (rx_option_optimization): Change to
8681         rx_override_options_after_change.  Don't change
8682         flag_lto_compression_level.  Don't check for changes to whether
8683         FPU instructions can be used.  Check and set only
8684         flag_finite_math_only, not other fast-math flags.
8685         (rx_option_override): Call rx_override_options_after_change.
8686         (TARGET_OPTION_OPTIMIZATION): Remove.
8687         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
8688
8689 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8690
8691         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
8692         disable section anchors for lang_hooks.name[4] != 'O'.
8693
8694 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8695
8696         * config/frv/frv.c (frv_option_optimization,
8697         TARGET_OPTION_OPTIMIZATION): Remove.
8698         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
8699
8700 2010-10-15  Michael Matz  <matz@suse.de>
8701
8702         * cgraphunit.c (clone_of_p): Define unconditionally.
8703
8704 2010-10-15  Richard Guenther  <rguenther@suse.de>
8705
8706         PR lto/45957
8707         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
8708
8709 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
8710
8711         * ifcvt.c (find_active_insn_before): New function.
8712         (find_active_insn_after): New function.
8713         (cond_exec_process_if_block): Use new functions to replace
8714         prev_active_insn() and next_active_insn().
8715
8716 2010-10-14  Yao Qi  <yao@codesourcery.com>
8717
8718         PR target/45447
8719         * config/arm/arm.c (arm_build_builtin_va_list): Assign
8720         va_list_name to TYPE_STUB_DECL (va_list_type).
8721
8722 2010-10-14  Jan Hubicka  <jh@suse.cz>
8723
8724         PR middle-end/45621
8725         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
8726         redirected to clone, be happy.
8727         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
8728         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
8729         former_clone_of unconditionally.
8730
8731 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
8732
8733         Merge from FSF apple 'trunk' branch.
8734         2006 Fariborz Jahanian  <fjahanian@apple.com>
8735
8736         Radars 4436866, 4505126, 4506903, 4517826
8737         * c-parser.c (c_parser, objc_property_attr_context) New flag.
8738         (c_lex_one_token): Handle property attributes.
8739         (c_parser_external_declaration): Handle @property.
8740         (c_parser_declaration_or_fndef): Warn on invalid attributes before
8741         @alias, @class, @end and @property objc keywords.
8742         (c_parser_objc_methodprotolist): Handle @property.
8743         (c_parser_objc_property_attrlist): New.
8744         (c_parser_objc_at_property): New.
8745         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
8746         (build_modify_expr): Likewise.
8747
8748 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
8749
8750         PR tree-optimization/46008
8751         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
8752
8753 2010-10-14  Richard Guenther  <rguenther@suse.de>
8754
8755         PR tree-optimization/44913
8756         * tree-data-ref.c (disjoint_objects_p): Remove.
8757         (dr_may_alias_p): Simplify.  Only hand the base object to
8758         the alias-oracle.
8759         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
8760         some more trees, bail out instead of asserting.
8761         (ptr_derefs_may_alias_p): Likewise.  Export.
8762         (refs_may_alias_p_1): Handle STRING_CSTs.
8763         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
8764
8765 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
8766
8767         PR c/45969
8768         * c-typeck.c (build_binary_op): Don't try to compute a semantic
8769         type with excess precision for boolean operations.
8770
8771 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
8772             Basile Starynkevitch  <basile@starynkevitch.net>
8773
8774         * gengtype.c:  Include getopt.h and version.h.
8775
8776         (lang_bitmap, struct outf, outf_p)
8777         (get_output_file_with_visibility, oprintf): Definitions moved to
8778         gengtype.h
8779         (output_files, header_file, srcdir, srcdir_len, this_file)
8780         (do_dump): No more static variables.
8781         (do_debug): New.
8782         (dbgprint_count_type_at): Added new function.
8783         (gengtype_long_options): New.
8784         (print_usage, print_version, parse_program_options): New.
8785         (main): Call parse_program_options, and removed old option
8786         handling code.  Added some debug output.
8787
8788         * gengtype.h:  Updated copyright year.
8789         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
8790         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
8791         Moved from gengtype.c to here.
8792         (do_debug, read_state_filename, write_state_filename): New variables.
8793         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
8794
8795         * Makefile.in:
8796         (REVISION): Always defined.
8797         (version.o): Removed ifdef REVISION_c.
8798         (s-gtype): Pass arguments to build/gengtype program.
8799         (build/version.o): Added building rule.
8800         (build/gengtype$(build_exeext)): Added build/version.o.
8801
8802 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
8803
8804         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
8805         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
8806         __strong macros.
8807
8808 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
8809
8810         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
8811         may_trap_or_fault_p instead of may_trap_p predicate.
8812         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
8813         (substitute_placeholder_in_expr): Likewise.
8814         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
8815         flag on MEM_REF nodes.
8816         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
8817         flags on INDIRECT_REF nodes.
8818
8819 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
8820
8821         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
8822         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
8823         (arm*-*-eabi*) <tm_file>: Likewise.
8824         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
8825         (frv-*-*linux*) <tm_file>: Likewise.
8826         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
8827         and associated helper macros.
8828         * config/frv/frv-abi.h: Delete.
8829
8830 2010-10-14  Richard Guenther  <rguenther@suse.de>
8831
8832         PR lto/44561
8833         * tree.def (NULLPTR_TYPE): New tree code.
8834         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
8835         * dwarf2out.c (is_base_type): Likewise.
8836         (gen_type_die_with_usage): Likewise.
8837         * sdbout.c (plain_type_1): Likewise.
8838         * tree.c (build_int_cst_wide): Likewise.
8839         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
8840
8841 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
8842
8843         * params.c (params_finished): New.
8844         (add_params): Assert !params_finished.
8845         (finish_params): New.
8846         (set_param_value_internal): Take params and params_set
8847         parameters.  Assert params_finished.
8848         (set_param_value, maybe_set_param_value): Take params and
8849         params_set parameters.  Update calls to set_param_value_internal.
8850         (set_default_param_value): Assert !params_finished.  Don't use
8851         set_param_value_internal.
8852         (default_param_value, init_param_values): New.
8853         * params.h (struct param_info): Change value to default_value.
8854         Remove set.
8855         (set_param_value, maybe_set_param_value): Add params and
8856         params_set parameters.
8857         (PARAM_VALUE): Get parameters from global_options.
8858         (PARAM_SET_P): Remove.
8859         (finish_params, default_param_value, init_param_values): New.
8860         * common.opt (param_values): New Variable.
8861         * config/arm/arm.c (arm_option_override): Pass extra arguments to
8862         maybe_set_param_value.
8863         * config/i386/i386.c (ix86_option_override_internal): Pass extra
8864         arguments to maybe_set_param_value.
8865         * config/picochip/picochip.c (picochip_option_override): Pass
8866         extra arguments to maybe_set_param_value.
8867         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
8868         extra arguments to maybe_set_param_value.
8869         * config/s390/s390.c (s390_option_override): Use
8870         maybe_set_param_value instead of set_param_value.  Pass extra
8871         arguments to maybe_set_param_value.
8872         * config/sparc/sparc.c (sparc_option_override): Pass extra
8873         arguments to maybe_set_param_value.
8874         * config/spu/spu.c (spu_option_override): Pass extra arguments to
8875         maybe_set_param_value.
8876         * opts.c (handle_param): Take opts and opts_set parameters.
8877         Update call to set_param_value.
8878         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
8879         initial_loop_invariant_max_bbs_in_loop): Remove.
8880         (init_options_once): Don't set them.
8881         (init_options_struct): Initialize parameters structures.
8882         (default_options_optimization): Use default_param_value when
8883         restoring defaults.  Update calls to maybe_set_param_value.
8884         (finish_options): Update calls to maybe_set_param_value.
8885         (common_handle_option): Update calls to handle_param and
8886         set_param_value.
8887         * toplev.c (DEFPARAM): Update definition for changes to param_info.
8888         (general_init): Call finish_params.
8889
8890 2010-10-14  Nick Clifton  <nickc@redhat.com>
8891
8892         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
8893         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
8894         (FIRST_PSEUDO_REGISTER): Increase by one.
8895         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
8896         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
8897         (MODES_TIEABLE): Call mn10300_modes_tieable.
8898         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
8899         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
8900         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
8901         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
8902         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
8903         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
8904         (mn10300_cc_status_mdep): Delete.
8905         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
8906         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
8907         the combine-stack-adjust pass.
8908         (print_operand): Use the mode of the comparison operation to
8909         select the comparison suffix.
8910         (notice_update_cc): Delete.
8911         (mn10300_secondary_reload_class): Remove test for stack pointer
8912         based arithmetic.
8913         (output_tst): Rename to mn10300_output_cmp.
8914         (impossible_plus_operand): Move into predicates.md.
8915         (mn10300_legitimize_address): Make static.
8916         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
8917         constant pic operands.
8918         (mn10300_legitimate_constant_p): New function.
8919         (mn10300_case_values_threshold): Make static.
8920         (mn10300_hard_regno_mode_ok): New function.
8921         (mn10300_modes_tieable): New function.
8922         (mn10300_select_cc_mode): New function.
8923         * config/mn10300/predicates.md (impossible_plus_operand): Define.
8924         * config/mn10300/mn10300-protos.h: Tidy.
8925         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
8926         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
8927         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
8928         with clobbers or sets of CC_REG.
8929         (CC_REG): Define.
8930         (mov*): Remove use of CLR instruction.
8931         (cbranch_si4_<code>): New pattern/split.
8932         (integer_conditional_branch): New pattern.
8933         (cbranch_sf4_<code>): New pattern/split.
8934         (float_conditional_branch): New pattern.
8935         (casesi): Use addsi3 pattern instead of movsi pattern to add and
8936         move a value at the same time.
8937         (cc0 peepholes): Remove.
8938
8939 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8940
8941         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
8942         on RTX_FRAME_RELATED_P insns and the insn to which
8943         NOTE_INSN_EPILOGUE_BEG is attached.
8944         * sched-vis.c (print_value): Allow NULL value.
8945
8946 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8947
8948         PR rtl-optimization/45570
8949         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
8950         assert that we are pipelining outer loops.  Allow returning
8951         zero predecessors.
8952
8953 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8954
8955         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
8956         (tidy_control_flow): Tidy vertical space.
8957         (sel_remove_bb): New variable idx.  Use it to remember the basic
8958         block index before deleting the block.
8959         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
8960         (sel_merge_blocks): ... here.
8961         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
8962
8963 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
8964
8965         * cse.c (is_dead_reg): Change into inline function that is not
8966         called through for_each_rtx.
8967         (set_live_p): Adjust caller.
8968         (insn_live_p): Don't reset DEBUG_INSNs here.
8969         (struct dead_debug_insn_data): New data.
8970         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
8971         (delete_trivially_dead_insns): If there is just one setter for the
8972         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
8973         and add DEBUG_INSN for it right before the removed setter and
8974         use the DEBUG_EXPR instead of the dead pseudo.
8975
8976 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
8977
8978         * et-forest.c (et_nca): Return NULL immediately when
8979         the dominance forest has disjoint components.
8980
8981 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
8982
8983         * ira.c (setup_class_hard_regs): Fix typo in indexing
8984         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
8985
8986 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
8987
8988         * graph.c (inbb): New variable.
8989         (start_bb): Set inbb to 1 if output is inside of a building block.
8990         (end_bb): Check if output is inside of a building block.
8991
8992 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8993
8994         PR rtl-optimization/45912
8995         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
8996         regno of registers instead of their index to compute the alignment.
8997
8998 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
8999
9000         * config/i386/i386.c (ix86_build_const_vector): Check vector
9001         mode instead of scalar mode.
9002         (ix86_build_signbit_mask): Likewise.
9003         (ix86_expand_fp_absneg_operator): Updated.
9004         (ix86_expand_copysign): Likewise.
9005         (ix86_expand_int_vcond): Likewise.
9006         (ix86_emit_swdivsf): Likewise.
9007         (ix86_sse_copysign_to_positive): Likewise.
9008         (ix86_expand_sse_fabs): Likewise.
9009         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
9010         * config/i386/sse.md (copysign<mode>3): Likewise.
9011         (sse2_cvtudq2ps): Likewise.
9012         (vec_unpacku_float_hi_v4si): Likewise.
9013         (vec_unpacku_float_lo_v4si): Likewise.
9014
9015         * config/i386/i386.c (ix86_builtins): Add
9016         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
9017         (bdesc_args): Likewise.
9018         (ix86_builtin_vectorized_function): Support
9019         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
9020         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
9021         and IX86_BUILTIN_CVTPS2DQ256.
9022         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
9023
9024         * config/i386/sse.md (STORENT_MODE): New.
9025         (VEC_FLOAT_MODE): Likewise.
9026         (VEC_EXTRACT_MODE): Likewise.
9027         (*avx_cvtdq2pd256_2): Likewise.
9028         (vec_pack_trunc_v4df): Likewise.
9029         (vec_interleave_highv8sf): Likewise.
9030         (vec_interleave_lowv8sf): Likewise.
9031         (storent<mode>): Macroized.
9032         (<code><mode>2: absneg): Likewise.
9033         (copysign<mode>3): Likewise.
9034         (vec_extract<mode>): Likewise.
9035
9036         PR target/44180
9037         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
9038         for V8SFmode.
9039
9040 2010-10-13  Richard Guenther  <rguenther@suse.de>
9041             H.J. Lu  <hongjiu.lu@intel.com>
9042
9043         * config/i386/sse.md (reduc_splus_v8sf): Add.
9044         (reduc_splus_v4df): Likewise.
9045         (vec_unpacks_hi_v8sf): Likewise.
9046         (vec_unpacks_lo_v8sf): Likewise.
9047         (*avx_cvtps2pd256_2): Likewise.
9048         (vec_unpacks_float_hi_v8si): Likewise.
9049         (vec_unpacks_float_lo_v8si): Likewise.
9050         (vec_interleave_highv4df): Likewise.
9051         (vec_interleave_lowv4df): Likewise.
9052
9053 2010-10-13  Richard Guenther  <rguenther@suse.de>
9054
9055         PR objc/45878
9056         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
9057         alone if there are no virtual methods.
9058
9059 2010-10-13  Richard Henderson  <rth@redhat.com>
9060
9061         * expr.c (build_personality_function): Take parameter LANG instead
9062         of parameter NAME.  Build the name based on the lang prefix and the
9063         unwind method in use.
9064         * tree.c (lhd_gcc_personality): Update call to
9065         build_personality_function.
9066
9067 2010-10-13  Richard Guenther  <rguenther@suse.de>
9068
9069         PR objc/45878
9070         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
9071
9072 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
9073
9074         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
9075         Canonicalize input operands of ASM_OPERANDS insns.
9076
9077 2010-10-13  Richard Guenther  <rguenther@suse.de>
9078
9079         PR tree-optimization/45788
9080         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
9081         EH update until fixup-cfg.
9082
9083 2010-10-13  Julian Brown  <julian@codesourcery.com>
9084
9085         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
9086         from CORE_REGS and GENERAL_REGS classes.
9087         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
9088         final constraint for register preferencing.
9089
9090 2010-10-13  Richard Guenther  <rguenther@suse.de>
9091
9092         PR tree-optimization/45970
9093         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
9094         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
9095         (stmt_kills_ref_p): Likewise.
9096         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
9097
9098 2010-10-13  Richard Guenther  <rguenther@suse.de>
9099
9100         PR tree-optimization/45982
9101         * tree-ssa-structalias.c (make_constraints_to): New function.
9102         (make_constraint_to): Implement in terms of make_constraints_to.
9103         (find_func_aliases): Properly make return values of pure/const
9104         functions escape if they assign to sth that is not a pointer.
9105
9106 2010-10-13  Richard Guenther  <rguenther@suse.de>
9107
9108         PR middle-end/45874
9109         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
9110         Fixup the CFG when EH was fixed up.
9111
9112 2010-10-13  Ira Rosen  <irar@il.ibm.com>
9113
9114         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
9115         Use operand's type for POINTER_PLUS_EXPR.
9116
9117 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
9118
9119         * c-parser.c (c_parser_for_statement): Initialize incr.
9120
9121 2010-10-12  Xinliang David Li  <davidxl@google.com>
9122
9123         PR tree-optimization/45972
9124         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
9125         with too many arguments.
9126
9127 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
9128
9129         PR fortran/45636
9130         * tree-ssa-forwprop.c: Include expr.h.
9131         (constant_pointer_difference, simplify_builtin_call): New functions.
9132         (tree_ssa_forward_propagate_single_use_vars): Call
9133         simplify_builtin_call on builtin calls.
9134
9135 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
9136
9137         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
9138         (*adddi3_extend_sp32): Likewise.
9139         (*subdi3_insn_sp32): Likewise.
9140         (*subdi3_extend_sp32): Likewise.
9141         (*negdi2_sp32): Use negative test for consistency.
9142
9143 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
9144
9145         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
9146         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
9147         * config/fixed-bit.h: Likewise.
9148         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
9149         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
9150         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
9151         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
9152         (DF_SIZE): Likewise.
9153         * doc/tm.texi: Regenerate.
9154
9155 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
9156
9157         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
9158         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
9159         (*isel_reversed_unsigned_<mode>): New.
9160         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
9161         as valid comparisons and adjust operands and output appropriately.
9162         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
9163
9164 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
9165
9166         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
9167         DATA_ALIGNMENT and add COND parameter. Update comments above.
9168         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
9169         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
9170
9171 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
9172
9173         PR bootstrap/45958
9174         * exec-tool.in: Support '-plugin' as the second option to the linker.
9175
9176 2010-10-12  Richard Henderson  <rth@redhat.com>
9177
9178         PR middle-end/45962
9179         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
9180         (expand_stack_vars): Assert large base allocated when used.
9181
9182 2010-10-12  Richard Guenther  <rguenther@suse.de>
9183
9184         * tree-ssa-structalias.c (get_constraint_for_1): Constants
9185         only point to nonlocal, not anything.
9186
9187 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
9188
9189         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
9190         unwind info for exceptions.
9191
9192 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9193
9194         PR testsuite/45851
9195         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
9196         Document optional target selector.
9197
9198 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
9199
9200         * flag-types.h: New.
9201         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
9202         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
9203         options.h.
9204         (OPTIONS_H): Define.
9205         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
9206         of options.h.
9207         * configure.ac (tm_include_list): Include options.h not flags.h.
9208         * configure: Regenerate.
9209         * flags.h: Include flag-types.h.  Include options.h at top of file
9210         again.
9211         (enum debug_info_type, enum debug_info_level, enum
9212         debug_info_usage, enum symbol_visibility, struct visibility_flags,
9213         enum ira_algorithm, enum ira_region, enum excess_precision, enum
9214         graph_dump_types, enum stack_check_type,
9215         enum warn_strict_overflow_code): Move to flag-types.h
9216         * opth-gen.awk: Include flag-types.h in options.h.
9217
9218 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
9219
9220         * expr.c (store_expr): Share code for STRING_CST and
9221         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
9222         check if target is a MEM.
9223
9224         * rtl.h: Include hashtab.h.
9225         (iterative_hash_rtx): New prototype.
9226         * rtl.c (iterative_hash_rtx): New function.
9227         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
9228         (output_loc_list): Return immediately if emitted is set, set it.
9229         (hash_loc_operands, hash_locs, hash_loc_list,
9230         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
9231         optimize_location_lists_1, optimize_location_lists): New function.
9232         (dwarf2out_finish): Call optimize_location_lists.
9233         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
9234
9235 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9236
9237         PR testsuite/45974
9238         Revert:
9239         * Makefile.in ($(lang_checks_parallel))
9240         ($(lang_checks_parallelized)): Use single quotes for
9241         $(RUNTESTFLAGS), to allow passing quoted content.
9242
9243 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9244
9245         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
9246         actual_oldval.  Use __builtin_expect.
9247         (SUBWORD_VAL_CAS): Likewise.
9248
9249 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
9250
9251         * recog.c (nonmemory_operand): Call immediate_operand for
9252         CONSTANT_P operands.
9253
9254 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
9255
9256         * config/i386/i386.md (movmem<mode>): Macroize expander from
9257         movmem{si,di} using SWI48 mode iterator.
9258         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
9259         *strmovsi_rex_1 using P mode iterator.
9260         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
9261         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
9262         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
9263         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
9264         (setmem<mode>): Macroize expander from setmem{si,di} using
9265         SWI48 mode iterator.
9266         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
9267         *strsetsi_rex_1 using P mode iterator.
9268         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
9269         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
9270         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
9271         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
9272         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
9273         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
9274         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
9275         mode iterator.
9276         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
9277         *strlenqi_rex_1 using P mode iterator.
9278
9279 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
9280
9281         PR bootstrap/45445
9282         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
9283         static functions.
9284         (mark_ref_live, mark_ref_dead): Use them.
9285         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
9286         Save the original reg, and use the new functions.
9287         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
9288         changed.
9289         (check_and_make_def_conflict): Save the original reg.
9290
9291 2010-10-11  Martin Jambor  <mjambor@suse.cz>
9292
9293         PR middle-end/45699
9294         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
9295         thunks.
9296
9297 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9298
9299         * Makefile.in ($(lang_checks_parallel))
9300         ($(lang_checks_parallelized)): Use single quotes for
9301         $(RUNTESTFLAGS), to allow passing quoted content.
9302
9303         PR bootstrap/35855
9304         * opt-functions.awk (BEGIN): New section.
9305         (lower, upper, digit, alnum): New variables.
9306         (static_var, opt_sanitized_name): Use alnum instead of character
9307         classes, for non-C locale.
9308         * optc-gen.awk: Likewise.
9309         * opth-gen.awk: Likewise.
9310
9311 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
9312
9313         * target.def (preferred_reload_class): New hook.
9314         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
9315         * doc/tm.texi: Regenerate.
9316         * targhooks.c (default_preferred_reload_class): New function.
9317         * targhooks.h (default_preferred_reload_class): Declare.
9318         * reload.c (find_dummy_reload): Change preferred_class variable type
9319         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
9320         target hook.
9321         (find_reloads): Change goal_alternative array type from int to
9322         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
9323         (push_reload, find_reloads_address_part): Use
9324         TARGET_PREFERRED_RELOAD_CLASS target hook.
9325         * reload1.c (emit_input_reload_insns): Ditto.
9326         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
9327         hook. Change rclass argument and secondary_class variable types from
9328         'enum reg_class' to reg_class_t.
9329
9330         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
9331         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
9332         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
9333         Change regclass argument and result types from enum reg_class to
9334         reg_class_t.
9335         (TARGET_PREFERRED_RELOAD_CLASS): Define.
9336
9337 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
9338
9339         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
9340         in masking operations.
9341         (simplify_const_unary_operation): Likewise.
9342         (simplify_binary_operation_1): Likewise.
9343         (simplify_const_binary_operation): Likewise.
9344         (simplify_const_relational_operation): Likewise.
9345         (simplify_ternary_operation): Likewise.
9346         (simplify_immed_subreg): Likewise.
9347
9348 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9349
9350         PR middle-end/45862
9351         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
9352         (TARGET_SUPPORTS_WEAK): New.
9353         * doc/tm.texi: Regenerate.
9354         * defaults.h (SUPPORTS_WEAK): Update comment.
9355         (TARGET_SUPPORTS_WEAK): New.
9356         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
9357         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
9358         SUPPORTS_WEAK.
9359         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
9360         make_decl_one_only): Likewise.
9361         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
9362         TARGET_SUPPORTS_WEAK.
9363         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
9364         instead of SUPPORTS_WEAK.
9365
9366 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9367
9368         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
9369
9370 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
9371
9372         * vec.h (VEC_qsort): Define.
9373         * dbxout.c (output_used_types): Use it.
9374         * df-scan.c (df_sort_and_compress_refs): Likewise.
9375         (df_sort_and_compress_mws): Likewise.
9376         * genautomata.c (uniq_sort_alt_states): Likewise.
9377         (evaluate_equiv_classes): Likewise.
9378         (output_trans_table): Likewise.
9379         (output_state): Likewise.
9380         * gimplify.c (compare_case_labels): Likewise.
9381         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
9382         * ipa.c (build_cdtor_fns): Likewise.
9383         * lto.c (lto_wpa_write_files): Likewise.
9384         * sel-sched.c (fill_vec_av_set): Likewise.
9385         * tree-predcom.c (determine_roots_comp): Likewise.
9386         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
9387         (splice_param_accesses): Likewise.
9388         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
9389         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
9390         (reassociate_bb): Likewise.
9391         * tree-ssa-sccvn.c (sort_scc): Likewise.
9392         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
9393
9394 2010-10-11  Ian Lance Taylor  <iant@google.com>
9395
9396         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
9397         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
9398         TREE_THIS_NOTRAP when appropriate.
9399         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
9400         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
9401         newly created MEM_REF.
9402
9403 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
9404
9405         Nathan Froyds patch to hooks FUNCTION_ARG etc.
9406         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
9407         (picochip_incoming_function_arg): Delete.
9408         (picochip_arg_advance): Delete.
9409         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
9410         (FUNCTION_INCOMING_ARG): Delete.
9411         (FUNCTION_ARG_ADVANCE): Delete.
9412         * config/picochip/picochip.c (picochip_function_arg): Take a
9413         const_tree and a bool.
9414         (picochip_incoming_function_arg): Likewise.
9415         (picochip_arg_advance): Likewise.
9416         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
9417         (TARGET_FUNCTION_ARG_ADVANCE): Define.
9418
9419 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9420
9421         PR middle-end/45955
9422         * ipa.c (build_cdtor): Delete endless loop.
9423
9424 2010-10-07  Andi Kleen  <ak@linux.intel.com>
9425
9426         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
9427         checksum-options.
9428         (checksum-options): Add.
9429         (cc1-dummy): Remove.
9430         (cc1-checksum): Change to run checksum over object files
9431         and options only.
9432         * dummy-checksum.c: Remove.
9433         * genchecksum.c: Update copyright.
9434         (usage): Allow multiple arguments.
9435         (BLOCKSIZE): Add.
9436         (dosum): Change for incremental checksum. Remove C output.
9437         (main): Iterate over all argument files. Add C output.
9438
9439 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
9440
9441         * params.c (set_param_value_internal): New.
9442         (set_param_value): Use set_param_value_internal.
9443         (maybe_set_param_value, set_default_param_value): New.
9444         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
9445         (maybe_set_param_value, set_default_param_value): Declare.
9446         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
9447         * config/i386/i386.c (ix86_option_override_internal): Use
9448         maybe_set_param_value.
9449         * config/ia64/ia64.c (ia64_option_default_params,
9450         TARGET_OPTION_DEFAULT_PARAMS): New.
9451         (ia64_option_optimization): Move some code to
9452         ia64_option_default_params.
9453         * config/picochip/picochip.c (picochip_option_override): Use
9454         maybe_set_param_value.
9455         * config/rs6000/rs6000.c (rs6000_option_default_params,
9456         TARGET_OPTION_DEFAULT_PARAMS): New.
9457         (rs6000_option_override_internal): Use maybe_set_param_value.
9458         (rs6000_option_optimization): Move some code to
9459         rs6000_option_default_params.
9460         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
9461         * config/sh/sh.c (sh_option_default_params,
9462         TARGET_OPTION_DEFAULT_PARAMS): New.
9463         (sh_option_optimization): Move some code to sh_option_default_params.
9464         * config/sparc/sparc.c (sparc_option_override): Use
9465         maybe_set_param_value.
9466         * config/spu/spu.c (spu_option_default_params,
9467         TARGET_OPTION_DEFAULT_PARAMS): New.
9468         (spu_option_optimization): Move some code to spu_option_default_params.
9469         (spu_option_override): Use maybe_set_param_value.
9470         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
9471         * doc/tm.texi: Regenerate.
9472         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
9473         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
9474         compiler_params.
9475         (default_options_optimization): Use maybe_set_param_value.
9476         (finish_options): Use maybe_set_param_value.
9477         * target.def (target_option.default_params): New hook.
9478         * toplev.c (general_init): Call targetm.target_option.default_params.
9479
9480 2010-10-11  Ira Rosen  <irar@il.ibm.com>
9481
9482         PR tree-optimization/45902
9483         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
9484         vector type for constants, unless it's a pointer.
9485
9486 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9487
9488         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
9489
9490 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
9491
9492         PR target/45870
9493         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
9494         (ix86_delegitimize_address): Use it.
9495
9496 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
9497
9498         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
9499
9500 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
9501
9502         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
9503         to cum struct in the call to function_arg_advance.
9504         (alpha_function_arg_advance): Mark named as unused.
9505
9506 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
9507
9508         * config/mips/mips.c (mips_handle_option): Make "value" with
9509         ATTRIBUTE_UNUSED.
9510
9511 2010-10-09  Richard Henderson  <rth@redhat.com>
9512
9513         PR rtl-opt/33721
9514         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
9515         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
9516         required_align, tidy the code a bit.  Emit split_stack code in the
9517         right place.  Mark the return value with the alignment properly.
9518         * expr.h (allocate_dynamic_stack_space): Update decl.
9519         * builtins.c (expand_builtin_apply): Update call to
9520         allocate_dynamic_stack_space.
9521         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
9522         * calls.c (initialize_argument_information): Update call to
9523         allocate_dynamic_stack_space.
9524         (expand_call): Likewise.
9525
9526         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
9527         Don't update_stack_alignment here.
9528         (alloc_stack_frame_space): Make ALIGN unsigned.
9529         (stack_var_cmp): Sort by alignment too.
9530         (partition_stack_vars): Don't merge large and small alignment vars.
9531         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
9532         Take care when BASE is not virtual_stack_vars_rtx.
9533         (expand_stack_vars): Allocate dynamic stack space for large
9534         alignment variables.
9535         (expand_one_stack_var): Update all to expand_one_stack_var_at.
9536         (defer_stack_allocation): True for large alignment vars.
9537         (update_stack_alignment): Merge into ...
9538         (expand_one_var): ... here.
9539         (gimple_expand_cfg): Place code from expand_stack_vars.
9540
9541 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9542
9543         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9544         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
9545         (pdp11_function_arg_advance): New function.
9546         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9547
9548 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9549
9550         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
9551         * libgcc2.c: Likewise.
9552
9553 2010-10-09  Richard Guenther  <rguenther@suse.de>
9554
9555         PR lto/45956
9556         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
9557         Properly check if a decl is an automatic var.
9558
9559 2010-10-09  Richard Guenther  <rguenther@suse.de>
9560
9561         PR lto/45947
9562         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
9563
9564 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9565
9566         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
9567         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9568         * config/mmix/mmix.c (mmix_function_arg): Rename to...
9569         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
9570         bool arguments.
9571         (mmix_function_arg): New function.
9572         (mmix_function_incoming_arg): New function.
9573         (mmix_function_arg_advance): New function.
9574         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
9575         (TARGET_FUNCTION_ARG_ADVANCE): Define.
9576
9577 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9578
9579         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9580         * config/vax/vax.c (vax_function_arg): New function.
9581         (vax_function_arg_advance): New function.
9582         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9583
9584 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9585
9586         * config/pa/pa-protos.h (function_arg): Delete.
9587         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9588         * config/pa/pa.c (function_arg): Rename to...
9589         (pa_function_arg): ...this.  Make static.  Take a const_tree and
9590         a bool.
9591         (pa_function_arg_advance): New function.
9592         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9593
9594 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9595
9596         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9597         * config/m68k/m68k.c (m68k_function_arg): New function.
9598         (m68k_function_arg_advance): New function.
9599         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9600
9601 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9602
9603         * config/avr/avr-protos.h (function_arg): Delete.
9604         (function_arg_advance): Delete.
9605         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9606         * config/avr/avr.c (function_arg): Rename to...
9607         (avr_function_arg): ...this.  Make static.  Take a const_tree and
9608         a bool.
9609         (function_arg_advance): Rename to...
9610         (avr_function_arg_advance): ...this.  Make static.  Take a
9611         const_tree and a bool.
9612         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9613
9614 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9615
9616         * config/alpha/alpha-protos.h (function_arg): Delete.
9617         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9618         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
9619         * config/alpha/alpha.c (function_arg): Rename to...
9620         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
9621         a bool.  Delete TARGET_ABI_UNICOSMK code.
9622         (alpha_function_arg_advance): New function.
9623         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9624
9625 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9626
9627         * config/mep/mep-protos.h (mep_function_arg): Delete.
9628         (mep_function_arg_advance): Delete.
9629         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9630         * config/mep/mep.c (mep_function_arg): Make static.  Take a
9631         const_tree and a bool.
9632         (mep_function_arg_advance): Likewise.
9633         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9634
9635 2010-10-09  Richard Guenther  <rguenther@suse.de>
9636
9637         PR tree-optimization/45945
9638         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
9639
9640 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
9641
9642         PR tree-optimization/45612
9643         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
9644         Test LABEL_DECLs as well.  Fix formatting issues.
9645         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
9646         whose label is present in NON_SSA_VARS.
9647         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
9648         as well.  Fix formatting issues.
9649         (visit_bb): Fix typos and formatting issue.
9650
9651 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9652
9653         PR tree-optimization/45950
9654         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
9655         before initializing vno->op.
9656
9657 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
9658
9659         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
9660         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
9661
9662 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
9663
9664         PR target/45913
9665         * config/i386/i386.c (ix86_binary_operator_ok): Support
9666         "andhi/andsi/anddi" as a zero-extending move.
9667
9668 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9669
9670         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
9671         into a temporary array.
9672
9673 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
9674
9675         PR tree-optimization/45903
9676         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
9677         of {A,L}SHIFTRT of MEM.
9678
9679 2010-10-08  Richard Guenther  <rguenther@suse.de>
9680
9681         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
9682         Re-construct BLOCK_VARS.
9683         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
9684         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
9685         * tree.c (free_lang_data_in_block): Remove.
9686         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
9687         Do not touch the BLOCK tree.
9688         * expr.c (expand_expr_real_1): Allow externals.
9689
9690 2010-10-08  Richard Guenther  <rguenther@suse.de>
9691
9692         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
9693         Do not output BLOCK_SUBBLOCKS.
9694         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
9695         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
9696         Re-construct BLOCK_SUBBLOCKS of parent block.
9697         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
9698         for BINFO_BASE_ACCESSES.
9699
9700 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
9701
9702         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
9703         (TREE_H): Include $(FLAGS_H) instead of options.h.
9704         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
9705         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
9706         * common.opt (flag_complex_method, flag_evaluation_order,
9707         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
9708         Variable declarations.
9709         * configure.ac (tm_include_list): Include flags.h instead of options.h.
9710         * configure: Regenerate.
9711         * flags.h: Condition out contents for target libraries.  Include
9712         options.h at end of file.
9713         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
9714         flag_evaluation_order, flag_warn_unused_result): Remove.
9715         * gcc.c (main): Intialize global_options with global_options_init.
9716         * langhooks-def.h (lhd_init_options_struct): Declare.
9717         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
9718         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
9719         * langhooks.c (lhd_init_options_struct): New.
9720         * langhooks.h (struct lang_hooks): Add init_options_struct.
9721         Update comment on init_options.
9722         * optc-gen.awk: Generate initializer for global_options_init, not
9723         global_options.
9724         * opth-gen.awk: Condition out structure declarations for target
9725         libraries.  Declare global_options_init.
9726         * opts-common.c: Include flags.h instead of options.h.
9727         * opts.c (flag_warn_unused_result): Remove.
9728         (read_cmdline_options): Take gcc_options parameters.  Pass them to
9729         read_cmdline_option.
9730         (initial_lang_mask, initial_min_crossjump_insns,
9731         initial_max_fields_for_field_sensitive,
9732         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
9733         (init_options_once): New.  Split out of decode_options.
9734         (init_options_struct): New.  Split out of decode_options.
9735         (decode_cmdline_options_to_array_default_mask): New.
9736         (default_options_optimization): New.  Split out of decode_options.
9737         (decode_options): Move most code to other functions.  Update call
9738         to read_cmdline_options.
9739         (finish_options): New.  Split out of decode_options.
9740         * opts.h (decode_options): Add gcc_options parameters.
9741         (init_options_once, init_options_struct,
9742         decode_cmdline_options_to_array_default_mask): New.
9743         * toplev.c (flag_complex_method, flag_ira_algorithm,
9744         flag_ira_region, flag_evaluation_order): Remove.
9745         (general_init): Use global_options_init for initial flag values
9746         for global_dc.
9747         (toplev_main): Call init_options_once, init_options_struct,
9748         lang_hooks.init_options_struct,
9749         decode_cmdline_options_to_array_default_mask and
9750         lang_hooks.init_option before decode_options.  Update arguments to
9751         decode_options.
9752         * tree.h: Include flags.h instead of options.h.
9753
9754 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9755
9756         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9757
9758 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9759
9760         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
9761         Delete.
9762         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
9763         (FUNCTION_INCOMING_ARG): Delete.
9764         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
9765         (function_arg_slotno): Likewise.  Take bool arguments.
9766         (sparc_arg_partial_bytes): Update call to it.
9767         (function_arg): Rename to...
9768         (sparc_function_arg_1): ...this.  Take bool arguments.
9769         (sparc_function_arg, sparc_function_incoming_arg): New functions.
9770         (function_arg_advance): Rename to...
9771         (sparc_function_arg_advance): ...this.  Take bool argument.
9772         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
9773         (TARGET_FUNCTION_INCOMING_ARG): Define.
9774
9775 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9776
9777         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
9778         Delete.
9779         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9780         * config/bfin/bfin.c (function_arg_advance): Rename to...
9781         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
9782         and bool arguments.
9783         (function_arg): Rename to...
9784         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
9785         arguments.
9786         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9787
9788 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9789
9790         * config/score/score-protos.h (score_function_arg): Delete.
9791         (score_function_arg_advance): Delete.
9792         * config/score/score3.h (score3_function_arg_advance): Take a
9793         const_tree and a bool.
9794         (score3_function_arg): Likewise.
9795         * config/score/score7.h (score7_function_arg_advance): Likewise.
9796         (score7_function_arg): Likewise.
9797         * config/score/score3.c (score3_classify_arg): Likewise.
9798         (score3_function_arg_advance, score3_function_arg): Likewise.
9799         * config/score/score7.c (score7_classify_arg): Likewise.
9800         (score7_function_arg_advance, score7_function_arg): Likewise.
9801         * config/score/score.c (score_function_arg_advance): Likewise.
9802         (score_function_arg): Likewise.  De-const-ify `cum' argument.
9803         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9804
9805 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9806
9807         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
9808         (s390_function_arg): Delete.
9809         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9810         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
9811         (s390_function_arg_integer): Likewise.
9812         (s390_function_arg_advance): Make static.  Take a const_tree and
9813         a bool.
9814         (s390_function_arg): Likewise.
9815         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9816
9817 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9818
9819         * config/spu/spu-protos.h (spu_function_arg): Delete.
9820         * config/spu/spu.h (FUNCTION_ARG): Delete.
9821         (FUNCTION_ARG_ADVANCE): Move code to ...
9822         * config/spu/spu.c (spu_function_arg_advance): New function.
9823         (spu_function_arg): Make static.  Take a const_tree and a bool.
9824         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
9825         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9826
9827 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9828
9829         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9830
9831 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9832
9833         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
9834         (init_vn_nary_op_from_op): New function.
9835         (init_vn_nary_op_from_stmt): New function.
9836         (vn_nary_op_lookup_1): New function.
9837         (sizeof_vn_nary_op): New function.
9838         (alloc_vn_nary_op_noinit): New function.
9839         (alloc_vn_nary_op): New function.
9840         (vn_nary_op_insert_into): New function.
9841         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
9842         (vn_nary_op_lookup): Likewise.
9843         (vn_nary_op_lookup_stmt): Likewise.
9844         (vn_nary_op_insert_pieces): Likewise.
9845         (vn_nary_op_insert): Likewise.
9846         (vn_nary_op_insert_stmt): Likewise.
9847         (copy_nary): Likewise.
9848         (set_value_id_for_result): New function.
9849         (set_hashtable_value_ids): Call it.
9850
9851 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9852
9853         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9854         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
9855
9856 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9857
9858         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
9859         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9860
9861 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
9862
9863         PR debug/45656
9864         * cse.c (cse_extended_basic_block): Preserve cc0 info across
9865         debug isnsn.  Skip them when searching for cc0 setter.
9866         (set_live_p): Skip debug insns when searching for cc0 user.
9867
9868 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
9869
9870         PR debug/45673
9871         PR debug/45604
9872         PR debug/45419
9873         PR debug/45408
9874         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
9875         type of MEM_REFs to INTEGER_CSTs.
9876
9877 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
9878
9879         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
9880         m68hc11_print_operand_address.
9881
9882 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
9883
9884         * builtins.c (rewrite_call_expr): Move code to...
9885         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
9886         (rewrite_call_expr_array): New function.
9887         (fold_builtin_sprintf_chk_1): New function.
9888         (fold_builtin_sprintf_chk): Call it.
9889         (gimple_fold_builtin_sprintf_chk): Likewise.
9890         (fold_builtin_snprintf_chk_1): New function.
9891         (fold_builtin_snprintf_chk): Call it.
9892         (gimple_fold_builtin_snprintf_chk): Likewise.
9893         (gimple_rewrite_call_expr): Delete.
9894
9895 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9896
9897         * config.host: Update copyright year.
9898
9899 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9900
9901         * config.host (host_lto_plugin_soname): New shell variable.
9902         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
9903         * config.in: Regenerate.
9904         * configure: Regenerate.
9905         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
9906         LTO plugin shared library.
9907
9908 2010-10-07  Richard Henderson  <rth@redhat.com>
9909
9910         * target.h (enum unwind_info_type): Move ...
9911         * coretypes.h: ... here.
9912
9913 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
9914
9915         * doc/objc.texi (Fast enumeration protocol): Mention that
9916         'unsigned int' can also be used instead of 'unsigned long' in
9917         countByEnumeratingWithState:objects:count:.
9918
9919 2010-10-07  Martin Jambor  <mjambor@suse.cz>
9920
9921         * tree-sra.c (struct access): New field grp_assignment_write.
9922         (dump_access): Dump grp_assignment_write.
9923         (build_accesses_from_assign): Set grp_assignment_write.
9924         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
9925         (mark_read_status): Renamed to mark_rw_status, individual values
9926         renamed too.
9927         (analyze_access_subtree): Changed type of mark_write to
9928         mark_read_status.  Fixed propagating of mark_read and
9929         mark_write.  Changed benefit estimate.  Updated comment.
9930
9931 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
9932
9933         PR Tree-Vect/45847
9934         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
9935         check for vectype_out returned by get_vectype_for_scalar_type().
9936
9937 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
9938
9939         PR target/45805
9940         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
9941         constraint, add register specifier in instruction template.
9942         (neon_vec_pack_trunc_<mode>): Likewise.
9943         (neon_vec_<US>mult_<mode>): Add register specifier to
9944         instruction template.
9945
9946 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9947
9948         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
9949         cygwin2.o.
9950         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
9951         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
9952         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
9953         (cygwin2.o): Likewise.
9954         * config/i386/cygwin1.c: Delete file.
9955         * config/i386/cygwin2.c: Likewise.
9956         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
9957         make all {%!mno-cygwin} ones unconditional.
9958         (STARTFILE_SPEC): Likewise.
9959         (REAL_LIBGCC_SPEC): Likewise.
9960         (LIB_SPEC): Likewise.
9961         (CXX_WRAP_SPEC): Likewise.
9962         (LINK_SPEC): Likewise.
9963         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
9964         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
9965         (cygwin_gplusplus_include_dir): Delete now-unused array.
9966         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
9967         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
9968         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
9969         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
9970         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
9971         (cygwin_local_include_dir): Delete now-unused array.
9972         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
9973         (cygwin_cross_include_dir): Delete now-unused array.
9974         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
9975         (cygwin_tool_include_dir): Delete now-unused array.
9976         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
9977         (cygwin_standard_include_dir): Delete now-unused array.
9978         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
9979         (GEN_CVT_ARRAY): Delete now-unused macro definition.
9980         (cvt_to_mingw): Delete now-unused array.
9981         (mingw_scan): Remove prototype of deleted function.
9982         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
9983         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
9984         * doc/invoke.texi (-mcygwin): Don't document removed option.
9985         (-mno-cygwin): Likewise.
9986
9987 2010-10-07  Richard Guenther  <rguenther@suse.de>
9988
9989         * machmode.h (mode_for_vector): Declare.
9990         * stor-layout.c (mode_for_vector): New function, split out from ...
9991         (layout_type): ... here.
9992         * tree-vectorizer.h (current_vector_size): Declare.
9993         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
9994         mask vector type is available.
9995         (get_vectype_for_scalar_type): Rename to ...
9996         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
9997         size argument.
9998         (get_vectype_for_scalar_type): New wrapper around
9999         get_vectype_for_scalar_type_and_size using current_vector_size.
10000         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
10001         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
10002         of vect_analyze_loop here.
10003         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
10004         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
10005         to autodetect.
10006         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
10007         V8SF to V8SI conversion builtin.
10008
10009 2010-10-07  Richard Guenther  <rguenther@suse.de>
10010
10011         * target.def (autovectorize_vector_sizes): New target hook.
10012         * targhooks.c (default_autovectorize_vector_sizes): New function.
10013         * targhooks.h (default_autovectorize_vector_sizes): Declare.
10014         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
10015         Document.
10016         * doc/tm.texi: Update.
10017         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
10018         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
10019
10020 2010-10-07  Richard Guenther  <rguenther@suse.de>
10021
10022         * target.def (units_per_simd_word): Rename to ...
10023         (preferred_simd_mode): ... this.  Return mode instead of size.
10024         * targhooks.c (default_units_per_simd_word): Rename to ...
10025         (default_preferred_simd_mode): ... this.  Return word_mode.
10026         * targhooks.h (default_preferred_simd_mode): Declare.
10027         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
10028         (arm_preferred_simd_mode): ... this.  Re-implement.
10029         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
10030         (ix86_preferred_simd_mode): ... this.  Re-implement.
10031         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
10032         (sparc_preferred_simd_mode): ... this.  Re-implement.
10033         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
10034         (mips_preferred_simd_mode): ... this.  Re-implement.
10035         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
10036         (rs6000_preferred_simd_mode): ... this.  Re-implement.
10037         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
10038         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
10039         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
10040         * doc/tm.texi: Update.
10041
10042 2010-10-07  Richard Guenther  <rguenther@suse.de>
10043
10044         PR middle-end/45869
10045         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
10046         of pointers.
10047
10048 2010-10-07  Alan Modra  <amodra@gmail.com>
10049
10050         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
10051         rather than sign extension by hand.
10052
10053 2010-10-07  Jan Hubicka  <jh@suse.cz>
10054
10055         PR middle-end/45926
10056         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
10057
10058 2010-10-07  Richard Guenther  <rguenther@suse.de>
10059
10060         PR bootstrap/45914
10061         * configure.ac: Fix typo.
10062         * configure: Regenerated.
10063
10064 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10065
10066         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
10067         define_builtin_std where it's unnecessary.
10068         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
10069
10070 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
10071
10072         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
10073         * doc/tm.texi.in: Regenerate.
10074         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
10075         * targhooks.c (default_class_likely_spilled_p): Don't use the
10076         CLASS_LIKELY_SPILLED_P macro.
10077
10078         * config/arm/arm.md: Update comment.
10079
10080 2010-10-06  Jan Hubicka  <jh@suse.cz>
10081
10082         * ipa.c (cgraph_remove_unreachable_nodes): External references can
10083         always be removed.
10084         (cgraph_externally_visible_p): We can not bring local comdats that
10085         are known to linker; fix handling of internal visibility.
10086         (function_and_variable_visibility): Likewise.
10087
10088 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10089
10090         PR rtl-optimization/45394
10091         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
10092         (struct rtx_subst_pair): Remove AFTER field.
10093         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
10094         (propagate_for_debug): Remove MOVE parameter and adjust.
10095         (try_combine): In the special case where I2 is a PARALLEL, combine only
10096         destinations of SETs and set I2SRC to the I2 source.
10097         Adjust calls to propagate_for_debug throughout.
10098         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
10099         insns.
10100
10101 2010-10-06  Olivier Hainque  <hainque@adacore.com>
10102
10103         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
10104         switch on insn codes as sequence of ifs.
10105
10106 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
10107
10108         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
10109         be UI_NONE for picochip.
10110         (picochip_option_override): Do not disable exception flags.
10111         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
10112         Declare.
10113
10114 2010-10-06  Richard Guenther  <rguenther@suse.de>
10115
10116         * Makefile.in (regmove.o): Depend on $(TARGET_H).
10117
10118 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
10119
10120         Implemented fast enumeration for Objective-C.
10121         * c-parser.c (objc_could_be_foreach_context): New.
10122         (c_lex_one_token): Recognize RID_IN keyword in a potential
10123         Objective-C foreach context.
10124         (c_parser_declaration_or_fndef): Added parameter.  Accept
10125         Objective-C RID_IN keyword as terminating a declaration; in that
10126         case, return the declaration in the new parameter.
10127         (c_parser_extenral_declaration): Updated calls to
10128         c_parser_declaration_or_fndef.
10129         (c_parser_declaration_or_fndef): Same change.
10130         (c_parser_compound_statement_nostart): Same change.
10131         (c_parser_label): Same change.
10132         (c_parser_objc_methodprotolist): Same change.
10133         (c_parser_omp_for_loop): Same change.
10134         (c_parser_for_statement): Detect and parse Objective-C foreach
10135         statements.
10136         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
10137         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
10138         fast enumeration parsing code to turn off the c99 error but still
10139         perform checks on the loop declarations.
10140         * c-tree.h (check_for_loop_decls): Updated declaration.
10141         * doc/objc.texi: Document fast enumeration.
10142
10143 2010-10-06  Nick Clifton  <nickc@redhat.com>
10144
10145         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
10146         (MDR_REGNUM): Define.
10147         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
10148         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
10149         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
10150         (REGISTER_NAMES): Add MDR.
10151         (DWARF2_DEBUGGING_INFO): Define to 1.
10152         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10153         (F): New function.  Sets RTX_FRAME_RELATED_P.
10154         (mn10300_gen_multiple_store): Use F.
10155         (expand_prologue): Use F.  Use gen_movsf() to push floating
10156         point registers.
10157         (expand_epilogue): Use gen_movsf() to pop floating point registers.
10158         (mn10300_option_override): Disable combine stack adjust pass.
10159
10160 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
10161
10162         PR target/45901
10163         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
10164         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
10165
10166 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
10167
10168         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
10169         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
10170         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
10171         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
10172         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
10173         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
10174         BUILT_IN_TOUPPER): Mark as leaf.
10175
10176         PR middle-end/45838
10177         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
10178         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
10179         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
10180         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
10181         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
10182         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
10183         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
10184
10185 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
10186
10187         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
10188         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10189         (m68hc11_class_likely_spilled_p): New function.
10190
10191 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
10192
10193         * c-parser.c (c_parser_objc_method_definition): Updated comment.
10194
10195 2010-10-05  Jan Hubicka  <jh@suse.cz>
10196
10197         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
10198         Document.
10199         * opts.c (decode_options): Handle lto partitions.
10200         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
10201         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
10202
10203 2010-10-05  Jan Hubicka  <jh@suse.cz>
10204
10205         * cgraphunit.c (assemble_function): Output thunks and aliases before
10206         the function itself.
10207
10208 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10209
10210         * config/picochip/picochip.c (picochip_option_override): Disable
10211         exception flags for picochip.
10212
10213 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
10214
10215         * opts-common.c (handle_option, handle_generated_option,
10216         read_cmdline_option, set_option): Add diagnostic_context
10217         parameter.  Update calls among these functions.
10218         (set_option): Don't use global_dc.
10219         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
10220         (decode_options): Pass global_dc to enable_warning_as_error.
10221         (common_handle_option): Pass global_dc to enable_warning_as_error.
10222         (enable_warning_as_error): Add diagnostic_context parameter.
10223         Document parameters.  Don't use global_dc.  Pass
10224         diagnostic_context parameter to handle_generated_option.
10225         * opts.h (set_option, handle_option, handle_generated_option,
10226         read_cmdline_option, enable_warning_as_error): Add
10227         diagnostic_context parameter.
10228         * Makefile.in (lto-opts.o): Update dependencies.
10229         * coretypes.h (struct diagnostic_context, diagnostic_context):
10230         Declare here.
10231         * diagnostic.h (diagnostic_context): Don't declare typedef here.
10232         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
10233         * langhooks-def.h (struct diagnostic_context): Don't declare here.
10234         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
10235         using diagnostic_context typedef.
10236         * langhooks.c (lhd_initialize_diagnostics): Declare using
10237         diagnostic_context typedef.
10238         * langhooks.h (struct diagnostic_context): Don't declare here.
10239         (initialize_diagnostics, print_error_function): Declare using
10240         diagnostic_context typedef.
10241         * lto-opts.c: Include diagnostic.h.
10242         (lto_reissue_options): Pass global_dc to set_option.  Pass
10243         DK_UNSPECIFIED not 0.
10244         * plugin.c (plugins_internal_error_function): Declare using
10245         diagnostic_context typedef.
10246         * plugin.h (struct diagnostic_context): Don't declare here.
10247         (plugins_internal_error_function): Declare using
10248         diagnostic_context typedef.
10249
10250 2010-10-05  Olivier Hainque  <hainque@adacore.com>
10251             Nicolas Roche  <roche@adacore.com>
10252
10253         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
10254         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
10255
10256 2010-10-05  Ira Rosen  <irar@il.ibm.com>
10257
10258         PR tree-optimization/45752
10259         * tree-vect-slp.c (vect_get_mask_element): Remove static
10260         variables, make them function arguments.
10261         (vect_transform_slp_perm_load): Pass new arguments to
10262         vect_get_mask_element.
10263
10264 2010-10-05  Richard Guenther  <rguenther@suse.de>
10265
10266         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
10267         (gimple_mod_pow2): Likewise.
10268         (gimple_mod_subtract): Likewise.
10269         (gimple_ic): Likewise.
10270         (gimple_stringop_fixed_value): Likewise.
10271         * tree-profile.c (tree_init_edge_profiler): Mark profile
10272         functions nothrow and leaf.
10273         (add_abnormal_goto_call_edges): Remove.
10274         (tree_gen_edge_profiler): Work on SSA form.
10275         (tree_gen_ic_profiler): Likewise.  Simplify.
10276         (do_tree_profiling): Update SSA form.
10277         (pass_tree_profile): Remove.
10278         (do_tree_profiling): Likewise.
10279         (gate_tree_profile_ipa): New function.
10280         (pass_ipa_tree_profile): New.
10281         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
10282         state of instrumented functions.
10283         * passes.c (init_optimization_passes): Remove early non-SSA
10284         inlining.  Move profiling after early optimizations.
10285         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
10286         (pass_ipa_early_inline): Likewise.
10287         * tree-pass.h (pass_ipa_early_inline): Remove.
10288         (pass_tree_profile): Likewise.
10289         (pass_ipa_tree_profile): Declare.
10290
10291 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10292             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
10293
10294         * config/s390/s390.c (z196_cost): New.
10295         (s390_handle_arch_option): Add -march=z196.
10296         (s390_option_override): Use the new cost function and use the z10
10297         defaults also for z196.
10298         (legitimate_reload_constant_p): Adjust comment.
10299         (legitimate_reload_fp_constant_p): New function.
10300         (s390_preferred_reload_class): Distingiush between FP and Int constants.
10301         (preferred_la_operand_p): Avoid la with index on z196.
10302         (s390_adjust_priority): Trigger also for z196.
10303         (s390_issue_rate): Issue rate for z196 is 3.
10304         (s390_z10_fix_long_loop_prediction): Rename to ...
10305         (s390_fix_long_loop_prediction): ... this.
10306         (s390_reorg): Apply the z10 adjustments also for z196.
10307         (s390_loop_unroll_adjust): Do this also for z196.
10308         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
10309         (enum processor_flags): Add PF_Z196.
10310         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
10311         (TARGET_CPU_Z196, TARGET_Z196): New macros.
10312         * config.gcc: Enable z196 for --with-arch.
10313         * config/s390/2817.md: New file.
10314         * config/s390/2084.md: New type for multiply and add.
10315         * config/s390/2097.md: Likewise.
10316         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
10317         (UNSPECV_ATOMIC_OP): New constants.
10318         (fmadddf, fmaddsf): New values for type attribute.
10319         (z196prop): New insn attribute.
10320         (cpu, cpu_facility): Add z196.
10321         (ATOMIC_Z196): New code iterator.
10322         (noxa): New code attribute.
10323         (gk): New mode attribute.
10324         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
10325         Support load zero for fp constants.
10326         (fixuns_truncdddi2, fixuns_trunctddi2)
10327         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
10328         for z196.
10329         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
10330         (popcounthi2, popcountqi2): New expander.
10331         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
10332         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
10333         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
10334         insn definition.
10335         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
10336         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
10337         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
10338         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
10339         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
10340         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
10341         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
10342         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
10343         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
10344         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
10345         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
10346         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
10347         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
10348         Support new z196 instructions.
10349
10350 2010-10-05  Richard Guenther  <rguenther@suse.de>
10351
10352         PR middle-end/45877
10353         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
10354         case where gimplification optimizes away the stmt.
10355
10356 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
10357
10358         PR debug/45849
10359         * var-tracking.c (strip_pointer_flags): New function.
10360         (emit_note_insn_var_location): If rtx_equal_p check failed,
10361         retry on locations simplified with simplify_replace_fn_rtx
10362         and strip_pointer_flags as its callback.
10363
10364 2010-10-04  Jan Hubicka  <jh@suse.cz>
10365
10366         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
10367         (can_refer_decl_in_current_unit_p): ... this one; reverse return
10368         value; handle comdats too.
10369         (canonicalize_constructor_val): Use it; handle function_decls
10370         correctly.
10371         (gimple_fold_obj_type_ref_known_binfo): Likewise.
10372         * gimple.c (get_base_address): Accept all kinds of decls.
10373
10374 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
10375
10376         * flags.h (g_switch_value, g_switch_set): Remove.
10377         * opts.c (g_switch_value, g_switch_set): Remove.
10378         * config/g.opt (G): Add Var(g_switch_value).
10379         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
10380         (alpha_option_override): Check global_options_set.x_g_switch_value
10381         instead of g_switch_set.
10382         (alpha_in_small_data_p): Remove cast in comparison with
10383         g_switch_value.
10384         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
10385         g_switch_value to unsigned HOST_WIDE_INT.
10386         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
10387         with g_switch_value.
10388         (frv_handle_option): Don't handle -G here.
10389         (frv_option_override): Check global_options_set.x_g_switch_value
10390         instead of g_switch_set.  Don't modify g_switch_set.
10391         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
10392         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
10393         g_switch_value to unsigned HOST_WIDE_INT.
10394         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
10395         (ia64_option_override): Check global_options_set.x_g_switch_value
10396         instead of g_switch_set.
10397         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
10398         Remove.
10399         (lm32_in_small_data_p): Remove cast in comparison with
10400         g_switch_value.
10401         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
10402         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
10403         HOST_WIDE_INT.
10404         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
10405         (m32r_init): Check global_options_set.x_g_switch_value instead of
10406         g_switch_set.
10407         (m32r_in_small_data_p): Remove cast in comparison with
10408         g_switch_value.
10409         (m32r_file_start): Format g_switch_value with %d.
10410         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
10411         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
10412         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
10413         handle -G here.
10414         (microblaze_option_override): Check
10415         global_options_set.x_g_switch_value instead of g_switch_set.
10416         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
10417         (mips_option_override): Check global_options_set.x_g_switch_value
10418         instead of g_switch_set.
10419         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
10420         (rs6000_file_start): Format g_switch_value with %d.
10421         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
10422         comparisons with g_switch_value.
10423         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
10424         global_options_set.x_g_switch_value instead of g_switch_set.
10425         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10426         global_options_set.x_g_switch_value instead of g_switch_set.
10427         * config/score/score.c (score_handle_option): Don't handle -G here.
10428         * config/score/score3.c (score3_option_override): Check
10429         global_options_set.x_g_switch_value instead of g_switch_set.
10430         * config/score/score7.c (score7_option_override): Check
10431         global_options_set.x_g_switch_value instead of g_switch_set.
10432
10433 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
10434
10435         * common.opt (fira-coalesce): Remove.
10436
10437         * doc/invoke.texi (flag_ira_coalesce): Remove.
10438
10439         * ira-color.c (allocno_coalesced_p): Move before
10440         copy_freq_compare_func.
10441         processed_coalesced_allocno_bitmap): Ditto.
10442         (update_conflict_hard_regno_costs): Don't use
10443         ALLOCNO_FIRST_COALESCED_ALLOCNO.
10444         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
10445         (assign_hard_reg): Assume no coalesced allocnos.
10446         (get_coalesced_allocnos_attributes): Remove.
10447         (bucket_allocno_compare_func): Assume no coalesced allocnos.
10448         (push_allocno_to_stack): Ditto.
10449         (remove_allocno_from_bucket_and_push): Use
10450         ira_print_expanded_allocno instead of print_coalesced_allocno.
10451         (push_allocnos_to_stack): Assume uncoalesced allocnos.
10452         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
10453         all_conflicting_hard_regs.
10454         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
10455         (setup_allocno_left_conflicts_size): Ditto.
10456         (put_allocno_into_bucket): Ditto.
10457         (copy_freq_compare_func): Remove.
10458         (copy_freq_compare_func, merge_allocnos): Move before
10459         coalesced_pseudo_reg_freq_compare.
10460         coalesced_allocno_conflict_p): Ditto.
10461         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
10462         parameter.  Assume it true.
10463         (color_allocnos): Assume uncoalesced allocnos.  Use
10464         ira_print_expanded_allocno instead of print_coalesced_allocno.
10465         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
10466         parameter.
10467
10468         * ira.c: Remove comment about coalescing.
10469
10470 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
10471
10472         * config/mips/mips.h (target_flags_explicit): Declare for
10473         GENERATOR_FILE.
10474
10475 2010-10-04  Andi Kleen  <ak@linux.intel.com>
10476
10477         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
10478         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
10479
10480 2010-10-04  Matthias Klose  <doko@ubuntu.com>
10481
10482         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
10483         multilib osdirname if it exists.
10484         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
10485
10486 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
10487
10488         PR middle-end/45876
10489         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
10490         arg0's type or its unsigned counterpart as utype.  Convert
10491         arg1 to utype unconditionally.
10492
10493 2010-10-04  Julian Brown  <julian@codesourcery.com>
10494
10495         * expr.c (expand_assignment): Add assertion to prevent emitting
10496         null rtx for movmisalign pattern.
10497         (expand_expr_real_1): Likewise.
10498         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
10499         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
10500         (arm_vector_alignment_reachable): New.
10501         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
10502         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
10503         (arm_print_operand): Include alignment qualifier in %A.
10504         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
10505         (movmisalign<mode>): New expander.
10506         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
10507         insn patterns.
10508
10509 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
10510
10511         * optc-gen.awk: Define global_options_set.  Don't define
10512         target_flags_explicit.
10513         * opth-gen.awk: Declare global_options_set.  Define
10514         target_flags_explicit as macro.
10515         * opts-common.c (handle_option): Take opts_set and generated_p
10516         parameters.
10517         (handle_generated_option, read_cmdline_option, set_option): Take
10518         opts_set parameter.
10519         (set_option): Use opts_set instead of hardcoding target_flags and
10520         target_flags_explicit.
10521         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
10522         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
10523         flag_value_profile_transformations_set, flag_peel_loops_set,
10524         flag_branch_probabilities_set, flag_inline_functions_set,
10525         flag_ipa_cp_set, flag_ipa_cp_clone_set,
10526         flag_predictive_commoning_set, flag_unswitch_loops_set,
10527         flag_gcse_after_reload_set): Remove.
10528         (common_handle_option, lang_handle_option, target_handle_option):
10529         Take opts_set parameter.  Assert that it is &global_options_set.
10530         (common_handle_option): Don't set _set variables.  Check opts_set
10531         instead of such variables.
10532         (enable_warning_as_error): Pass &global_options_set to
10533         handle_generated_option.
10534         * opts.h (cl_option_handler_func.handler, set_option,
10535         handle_option, handle_generated_option, read_cmdline_option): Add
10536         opts_set parameters.
10537         (handle_option): Add generated_p parameter.
10538         * config/i386/i386.c (ix86_function_specific_save,
10539         ix86_function_specific_restore): Updat for renaming of
10540         target_flags_explicit field.
10541         * config/i386/i386.opt (target_flags_explicit): Rename to
10542         ix86_target_flags_explicit.
10543         * config/ia64/ia64.c (ia64_override_options_after_change): Check
10544         global_options_set.x_flag_selective_scheduling and
10545         global_options_set.x_flag_selective_scheduling2, not
10546         sel_sched_switch_set.
10547         * flags.h (sel_sched_switch_set,
10548         flag_speculative_prefetching_set): Remove.
10549         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
10550         that it is &global_options_set.
10551         (process_command): Pass &global_options_set to read_cmdline_option.
10552         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
10553         set_option.
10554         * toplev.c (target_flags_explicit): Remove.
10555
10556 2010-10-04  Jan Hubicka  <jh@suse.cz>
10557
10558         PR middle-end/45871
10559         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
10560         use get_ref_base_and_offset to handle references.
10561         (fold_const_aggregate_ref): Update.
10562
10563 2010-10-04  Martin Jambor  <mjambor@suse.cz>
10564
10565         PR tree-optimization/45572
10566         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
10567         ipa_check_create_node_params.
10568         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
10569
10570 2010-10-04  Yao Qi  <yao@codesourcery.com>
10571
10572         * doc/passes.texi: Clean up.
10573
10574 2010-10-03  Ian Lance Taylor  <iant@google.com>
10575
10576         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
10577         referring to a field using a typedef name.
10578         (find_anonymous_field_with_type): New static function.
10579         (convert_to_anonymous_field): New static function.
10580         (convert_for_assignment): If -fplan9-extensions, permit converting
10581         pointer to struct to pointer to anonymous field.
10582         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
10583         (is_duplicate_field): New static function.
10584         (detect_field_duplicates_hash): If -fplan9-extensions, check for
10585         typedef names duplicating field names.
10586         (detect_field_duplicates): Likewise.
10587         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
10588         (C Dialect Options): Document -fplan9-extensions.
10589         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
10590
10591 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
10592
10593         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
10594         revision 164914.
10595         (vect_create_data_ref_ptr): Likewise.
10596         * tree-vect-stmts.c (vectorizable_store): Likewise.
10597         (perm_mask_for_reverse): Likewise.
10598         (reverse_vec_elements): Likewise.
10599         (vectorizable_load): Likewise.
10600
10601 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10602
10603         * cppbuiltin.c: New file.
10604         * cppbuiltin.h: New file.
10605         * Makefile.in: Take into account cppbuiltin.{h,c}.
10606
10607 2010-10-03  Andi Kleen  <ak@linux.intel.com>
10608
10609         * lto-cgraph.c (input_cgraph): Check for missing sections.
10610
10611 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
10612
10613         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
10614         to nonimmediate_operand.  Force operand 2 to register when allowed.
10615         (*<shiftrt_insn><mode>3_mask): Ditto.
10616         (*<rotate_insn><mode>3_mask): Ditto.
10617
10618 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
10619
10620         PR tree-optimization/45720
10621         PR tree-optimization/45764
10622         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
10623         Don't accept backwards consecutive accesses.
10624         (vect_create_data_ref_ptr): Disallow negative steps.
10625
10626         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
10627         (perm_mask_for_reverse): Removed.
10628         (reverse_vec_elements): Likewise.
10629         (vectorizable_load): Don't handle negative steps.
10630
10631 2010-10-02  Jan Hubicka  <jh@suse.cz>
10632
10633         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
10634         call destination is known.
10635
10636 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10637
10638         PR target/45820
10639         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
10640         earlier.
10641
10642 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10643
10644         * doc/install.texi (Configuration): Document build_configargs,
10645         host_configargs, target_configargs.
10646
10647 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
10648
10649         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
10650         (*<shiftrt_insn><mode>3_mask): Ditto.
10651         (*<rotate_insn><mode>3_mask): Ditto.
10652
10653 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
10654
10655         PR tree-optimization/44716
10656         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
10657         (HOT_TEXT_SECTION_NAME): Define.
10658
10659 2010-10-01  Nick Clifton  <nickc@redhat.com>
10660
10661         * common.opt: Add -fcombine-stack-adjustments.
10662         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
10663         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
10664         flag_combine_stack_adjustments.
10665         * doc/invoke.texi: Document the new option.
10666
10667 2010-10-01  Richard Guenther  <rguenther@suse.de>
10668
10669         PR tree-optimization/45854
10670         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
10671
10672 2010-10-01  Anthony Green  <green@moxielogic.com>
10673
10674         * config.gcc: Fix moxie-*-rtems* configuration.
10675
10676 2010-10-01  Richard Guenther  <rguenther@suse.de>
10677
10678         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
10679         (gen_decl_die): Likewise.
10680
10681 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10682
10683         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
10684         to the function code for SPU MD builtins.
10685         (spu_expand_builtin): Update.
10686         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
10687
10688 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10689
10690         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
10691         sjlj_except_unwind_info.
10692
10693 2010-10-01  Tristan Gingold  <gingold@adacore.com>
10694
10695         * configure.ac: Define the nop insn for avr*-*-*
10696         * configure: Regenerate.
10697
10698 2010-10-01  Alan Modra  <amodra@gmail.com>
10699
10700         PR target/45807
10701         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
10702         extend toc_restore_insn.
10703
10704 2010-09-30  Richard Guenther  <rguenther@suse.de>
10705
10706         PR tree-optimization/43959
10707         * function.c (gimplify_parameters): Use create_tmp_reg instead of
10708         create_tmp_var.
10709
10710 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
10711
10712         * config/sh/sh.c (sh_expand_prologue): Set
10713         current_function_static_stack_size.
10714
10715 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10716
10717         * configure.ac: Check for Solaris 8 ld with .hidden support.
10718         * configure: Regenerate.
10719
10720 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10721
10722         PR middle-end/45758
10723         * graphite.c (graphite_initialize): Call scev_reset.
10724
10725 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10726
10727         * sese.h (scev_analyzable_p): Return false for real or floating
10728         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
10729
10730 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10731
10732         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
10733         and ps.
10734         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
10735         domain.
10736         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
10737         Do not allocate ub_expr, it is passed in initialized.
10738
10739 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10740
10741         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
10742         (build_cloog_prog): Dump CLooG input file when
10743         flag_graphite_dump_cloog is set.  This is disabled on trunk.
10744         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
10745
10746 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10747
10748         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
10749         verify_dominators for CDI_POST_DOMINATORS.
10750         * sese.h: Remove comment about CDI_POST_DOMINATORS.
10751         (recompute_all_dominators): Remove call to free_dominance_info
10752         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
10753         for CDI_POST_DOMINATORS.
10754
10755 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10756
10757         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
10758         over pbb_dim_iter_domain.
10759
10760 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10761
10762         * graphite-flattening.c: Fix comments.
10763
10764 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10765
10766         * Makefile.in (OBJS-common): Add graphite-flattening.o.
10767         (graphite-flattening.o): New rule.
10768         * common.opt (floop-flatten): New flag.
10769         * doc/invoke.texi (-floop-flatten): Documented.
10770         * graphite-flattening.c: New.
10771         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
10772         * graphite-poly.h (flatten_all_loops): Declared.
10773         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
10774         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
10775         is set, also set flag_graphite.
10776
10777 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10778
10779         * graphite-poly.c (cloog_checksum): New.
10780         * graphite-poly.h (cloog_checksum): Declared.
10781
10782 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10783
10784         * graphite-poly.c (pbb_number_of_iterations): Removed.
10785         (pbb_number_of_iterations_at_time): Correctly compute the number
10786         of iterations in the transformed loop.
10787         * graphite-poly.h (pbb_number_of_iterations): Removed.
10788
10789 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10790
10791         * graphite-poly.h (lst_update_scattering_seq): Removed.
10792         (lst_update_scattering): Correctly handle outermost loop dewey
10793         renumbering.
10794
10795 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10796
10797         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
10798         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
10799         * graphite-poly.h (lst_niter_for_loop): New.
10800
10801 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10802
10803         * graphite-poly.c (apply_poly_transforms): Do not abort when the
10804         transform read from disk is not legal.  Call fatal_error instead.
10805
10806 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10807
10808         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
10809         (print_scop_header): Removed.  Inlined in the only call place...
10810         (print_scop): ... here.
10811
10812 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10813
10814         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
10815
10816 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10817
10818         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
10819
10820 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10821
10822         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
10823         (dot_deps_stmt): Same.
10824         * graphite-poly.c (dot_lst): Same.
10825
10826 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10827
10828         * graphite-blocking.c (scop_do_strip_mine): Do not call
10829         graphite_legal_transform.
10830         (scop_do_block): Same.
10831
10832 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
10833
10834         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
10835         description.
10836
10837 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10838
10839         * tree-scalar-evolution.c (instantiate_array_ref): New.
10840         (instantiate_scev_r): Also handle ARRAY_REFs.
10841
10842 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10843
10844         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
10845         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
10846         RESULT_DECL, and FIELD_DECL.  Return false for an
10847         SSA_NAME_IS_DEFAULT_DEF.
10848         (compute_scalar_evolution_in_loop): Do not further analyze the
10849         scalar evolution when no_evolution_in_loop_p returns true.
10850
10851 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10852
10853         * tree-chrec.h (evolution_function_is_affine_p): Do not check
10854         whether CHREC_LEFT is invariant.  A function is affine when
10855         CHREC_RIGHT is invariant.
10856
10857 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10858
10859         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
10860         is_gimple_reg.
10861         (rewrite_degenerate_phi): Same.
10862         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
10863
10864 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
10865
10866         * graphite-scop-detection.c (graphite_can_represent_scev,
10867         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
10868         graphite_can_represent_loop): Remove outermost_loop.
10869
10870 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10871
10872         PR middle-end/45229
10873         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
10874         handle GIMPLE_CALLs with no LHS.
10875
10876 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10877
10878         * graphite-poly.c (init_graphite_out_file): New.
10879         (init_graphite_in_file): New.
10880         (apply_poly_transforms): Updated to enable reading and writing of
10881         multiple scop files.
10882
10883 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
10884
10885         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
10886         redundant checks.
10887
10888 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10889
10890         * graphite-clast-to-gimple.c (precision_for_value): Adjust
10891         computation of precision by 1.
10892
10893 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10894
10895         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
10896         (openscop_read_polyhedron_matrix): New.
10897         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
10898         (openscop_read_N_int): Same.
10899         * graphite-poly.c (openscop_read_N_int): New.
10900         (openscop_read_one_int): New.
10901         (openscop_read_N_string): New.
10902         (openscop_read_one_string): New.
10903         (openscop_read_powerset_matrix): New.
10904         (graphite_read_transforms): Remove.
10905         (graphite_read_scatt): New.
10906         (graphite_read_scop_file): New.
10907         (apply_poly_transforms): Updated to call graphite_read_scop_file.
10908
10909 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10910
10911         * graphite-poly.c: Change include order.
10912
10913 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10914
10915         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
10916         (cloog_matrix_nrows): New.
10917
10918 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10919
10920         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
10921         from matrix lines.
10922         * graphite-poly.c (openscop_print_scattering_function_1): Same.
10923         (print_scattering_function_1): Same.
10924         (openscop_print_pbb_domain): Same.
10925         (openscop_print_scop_context): Same.
10926         (print_scop_context): Same.
10927
10928 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
10929
10930         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
10931         (openscop_print_pdr_polyhedron): Print pph.
10932
10933 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10934
10935         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
10936         priority signed types.
10937
10938 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10939
10940         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
10941         the call to lang_hooks.types.type_for_size.  Call
10942         build_nonstandard_integer_type.
10943
10944 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10945
10946         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
10947         (openscop_print_polyhedron_matrix): New.
10948         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
10949         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
10950         (openscop_print_pdr_powerset): New.
10951         (openscop_print_powerset_matrix): New.
10952         (openscop_print_scattering_function_1): New.
10953         (print_scattering_function): Add support for scattering names and
10954         OpenScop format.
10955         (graphite_write_transforms): Remove.
10956         (print_pdr_access_layout): Updated to support OpenScop format.
10957         (print_pdr): Same.
10958         (openscop_print_pbb_domain): New.
10959         (print_pbb_body): Added a parameter to allow indicating that pbb_body
10960         is not provided.
10961         (print_pbb): Updated to call the new print_pbb_body.
10962         (openscop_print_scop_context): New.
10963         (print_scop_header): New.
10964         (print_scop): Updated to call print_scop_header.
10965         * graphite-poly.h: Document OpenScop format.
10966
10967 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
10968
10969         * config/cris/m32c.c (cris_memory_move_cost): New.
10970         (cris_register_move_cost): Make static. Change arguments type from
10971         enum reg_class to reg_class_t.
10972         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
10973         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10974         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
10975
10976 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
10977
10978         PR target/45843
10979         * config/i386/i386.c (ix86_gimplify_va_arg): Use
10980         INTVAL (XEXP (slot, 1)) as prev_size.
10981
10982 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
10983
10984         PR target/45837
10985         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
10986         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
10987         defined.
10988         * config/rs6000/option-defaults.h (toplevel): Change #if
10989         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
10990         global option changes.
10991
10992 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
10993
10994         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
10995
10996         PR tree-optimization/31261
10997         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
10998         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
10999
11000 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11001
11002         PR bootstrap/45796
11003         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
11004         special-casing for generators and turn into ...
11005         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
11006         rule, for better error messages in case of toplevel dependency errors.
11007         (genprog): Add hooks, rename to ...
11008         (genprogerr): ... this, and let genprog also contain check,
11009         checksum, condmd.
11010         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
11011         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
11012         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
11013
11014 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
11015             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11016
11017         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
11018         for GMP, MPFR and MPC.
11019
11020 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11021
11022         * config/sparc/sparc.opt (mimpure-text): Move ...
11023         * config/sol2.opt: ... here.  Correct description.
11024         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
11025         * doc/invoke.texi (Option Summary, SPARC Options): Move
11026         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
11027         (Option Summary, Solaris 2 Options): ... here.
11028         (Submodel Options, Solaris 2 Options): New menu entry.
11029         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
11030         (Solaris 2 Options): ... here.
11031
11032 2010-09-30  Michael Eager  <eager@eagercon.com>
11033
11034         * extend.texi (interrupt_handler): Add MicroBlaze to list.
11035         (save_volatiles): Describe option for MicroBlaze.
11036         * invoke.texi: Add MicroBlaze Options.
11037         * contrib.texi: Add acknowledgment.
11038         * md.texi: Add MicroBlaze d and z constraints.
11039         * install.texi: Add microblaze-*-elf.
11040         * configure.ac: Add microblaze-*-* to target list.
11041         * configure: Regenerate.
11042         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
11043         * config/microblaze/microblaze-protos.h: New.
11044         * config/microblaze/crti.s: New.
11045         * config/microblaze/predicates.md: New.
11046         * config/microblaze/linux.h: New.
11047         * config/microblaze/microblaze.md: New.
11048         * config/microblaze/constraints.md: New.
11049         * config/microblaze/crtn.s: New.
11050         * config/microblaze/microblaze.opt: New.
11051         * config/microblaze/microblaze-c.c: New.
11052         * config/microblaze/t-microblaze: New.
11053         * config/microblaze/microblaze.c: New.
11054         * config/microblaze/microblaze.h: New.
11055
11056 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
11057
11058         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
11059         parse @optional/@required and set the flags as appropriate.
11060
11061 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
11062
11063         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
11064
11065 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
11066
11067         * opt-functions.awk (static_var): Update comment.
11068         (var_ref): Return offsetof expression or -1, not variable address.
11069         * optc-gen.awk: Generate structure field initializers instead of
11070         static variables.  Expect -1 for missing variables instead of null
11071         pointer.  Add gcc_options parameters to generated functions.
11072         * opth-gen.awk: Generate structure fields for static variables.
11073         Add gcc_options parameters to generated functions.
11074         * common.opt (optimize, optimize_size): Add variables.
11075         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
11076         &global_options to cl_target_option_restore.
11077         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
11078         &global_options to cl_optimization_restore, cl_target_option_save
11079         and cl_target_option_restore.
11080         (ix86_set_current_function): Pass &global_options to
11081         cl_target_option_restore.
11082         * config/pdp11/pdp11.h (optimize): Remove.
11083         * config/rs6000/rs6000.h (optimize): Remove.
11084         * config/sh/sh.h (optimize): Remove.
11085         * config/xtensa/xtensa.h (optimize): Remove.
11086         * coretypes.h (struct gcc_options): Declare.
11087         * diagnostic.c (diagnostic_initialize): Initialize
11088         context->option_state.
11089         (diagnostic_report_diagnostic): Pass option_state to
11090         option_enabled hook.
11091         * diagnostic.h (diagnostic_context.option_enabled): Add void *
11092         parameter.
11093         (diagnostic_context.option_state): New field.
11094         * final.c (final_start_function, final, final_scan_insn): Rename
11095         optimize parameter to optimize_p.
11096         * flags.h (optimize, optimize_size): Remove.
11097         * function.c (invoke_set_current_function_hook): Pass
11098         &global_options to cl_optimization_restore.
11099         * gcc.c (driver_handle_option): Take gcc_options parameter.
11100         Assert that it is &global_options.
11101         (process_command): Pass &global_options to read_cmdline_option.
11102         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
11103         option_enabled.
11104         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
11105         &global_options to set_option.
11106         * opts-common.c (handle_option, handle_generated_option,
11107         read_cmdline_option, set_option): Take explicit gcc_options
11108         parameters.  Use option_flag_var.
11109         (option_flag_var): New.
11110         * opts.c (common_handle_option, lang_handle_option,
11111         target_handle_option): Take gcc_options parameter.  Assert that it
11112         is &global_options.
11113         (read_cmdline_options): Pass &global_options to read_cmdline_option.
11114         (print_filtered_help): Use option_flag_var.  Pass &global_options
11115         to option_enabled.
11116         (common_handle_option): Use option_flag_var.
11117         (option_enabled): Take opts parameter.  Use option_flag_var.
11118         (get_option_state): Take gcc_options parameter.  Use
11119         option_flag_var.  Pass gcc_options parameter to option_enabled.
11120         (enable_warning_as_error): Pass &global_options to
11121         handle_generated_option.
11122         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
11123         (cl_option_handler_func.handler): Take gcc_options parameter.
11124         (option_enabled, get_option_state, set_option, handle_option,
11125         handle_generated_option, read_cmdline_option): Take gcc_options
11126         parameters.
11127         * toplev.c (optimize, optimize_size): Remove.
11128         (print_switch_values): Pass &global_options to option_enabled.
11129         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
11130         to get_option_state.
11131         (general_init): Initialize global_dc->option_state.
11132         * tree.c (build_optimization_node): Pass &global_options to
11133         cl_optimization_save.
11134         (build_target_option_node): Pass &global_options to
11135         cl_target_option_save.
11136
11137 2010-09-30  Martin Jambor  <mjambor@suse.cz>
11138
11139         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
11140         zero sized bit-fields.
11141
11142 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
11143
11144         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
11145         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
11146         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
11147         (c_parser_objc_class_declaration): Same change.
11148         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
11149         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
11150         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
11151         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
11152         and RID_AT_PUBLIC instead of RID_PUBLIC.
11153         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
11154         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
11155
11156 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
11157
11158         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
11159         Add links to current providers of packages for Solaris and IRIX.
11160
11161 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11162
11163         Merge from 'apple/trunk' branch on FSF servers.
11164         * c-parser.c: Applied change originally in c-parse.in.
11165
11166         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
11167
11168         Radar 4281748
11169         * c-decl.c (start_decl): Check for redeclaration of class name.
11170         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
11171
11172 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
11173
11174         * config/ia64/ia64.c (ia64_builtin_decl): New.
11175         (TARGET_BUILTIN_DECL): Define.
11176         (ia64_builtins): New.
11177         (ia64_init_builtins): Save decls in ia64_builtins.
11178
11179 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
11180
11181         PR target/40457
11182         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
11183         (move2add_use_add3_insn): Likewise.
11184         (reload_cse_move2add): Likewise.
11185         * rtlanal.c (get_full_rtx_cost): New function.
11186         * rtl.h (struct full_rtx_costs): New.
11187         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
11188         costs_add_n_insns): New inline functions.
11189         (get_full_rtx_cost): Declare.
11190
11191         PR c/45054
11192         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
11193         invariants.  Check for reg_equiv_invariant.
11194         (reload): Assert that spilled_pseudos is empty when returning.
11195
11196 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
11197
11198         * config/i386/mingw32.h (TARGET_64BIT): replaced by
11199         TARGET_64BIT_DEFAULT in #if check.
11200
11201 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
11202
11203         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
11204
11205 2010-09-29  Mike Stump  <mikestump@comcast.net>
11206
11207         * config/darwin.h (flag_mkernel): Remove.
11208         (flag_apple_kext): Likewise.
11209
11210 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
11211             Jack Howarth  <howarth@bromo.med.uc.edu>
11212
11213         * config/darwin.opt (undefined): Add.
11214
11215 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
11216
11217         PR testsuite/45664
11218         * configure.ac: Add --enable-indirect-function option.
11219         * config.gcc: Add default_gnu_indirect_function.
11220         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
11221         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
11222         * varasm.c (do_assemble_alias): Adjust for macro name change.
11223         * configure: Rebuilt.
11224         * doc/install.texi: Document --enable-indirect-function.
11225
11226 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
11227
11228         * doc/options.texi (Variable, Var, Init): Update documentation
11229         without reference to VarExists.
11230         (VarExists): Remove.
11231         * common.opt, config/i386/i386.opt, config/linux.opt,
11232         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
11233         Don't use VarExists.
11234
11235 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
11236
11237         * optc-gen.awk: Generate global_options initializer instead of
11238         individual variables.  Add x_ prefix to names of structure members.
11239         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
11240         names of structure members.
11241         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
11242         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
11243         * doc/tm.texi: Regenerate.
11244         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
11245         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
11246         * c-parser.c (disable_extension_diagnostics,
11247         restore_extension_diagnostics): Update names of cpp_options members.
11248         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
11249         * common.opt (fcompare-debug-second): Don't use Var.
11250         * config/alpha/alpha.h (target_flags): Remove.
11251         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
11252         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
11253         * config/bfin/bfin.h (target_flags): Remove.
11254         * config/cris/cris.h (target_flags): Remove.
11255         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
11256         cl_target_option members.
11257         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
11258         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
11259         ix86_can_inline_p): Update names of cl_target_option members.
11260         * config/i386/i386.h (ix86_isa_flags): Remove.
11261         * config/lm32/lm32.h (target_flags): Remove.
11262         * config/mcore/mcore.h (mcore_stack_increment): Remove.
11263         * config/mcore/mcore.md (addsi3): Remove extern declaration of
11264         flag_omit_frame_pointer.
11265         * config/mep/mep.h (target_flags): Remove.
11266         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
11267         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
11268         * config/mmix/mmix.h (target_flags): Remove.
11269         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
11270         flag_expensive_optimizations): Remove.
11271         * config/s390/s390.h (flag_pic): Remove.
11272         * config/score/score-conv.h (target_flags): Remove.
11273         * config/sh/sh.h (sh_fixed_range_str): Remove.
11274         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
11275         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
11276         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11277         * diagnostic.c (diagnostic_initialize): Update names of
11278         diagnostic_context members.
11279         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
11280         warn_system_headers.
11281         (diagnostic_report_warnings_p): Update for new names.
11282         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
11283         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
11284         HARD_FRAME_POINTER_IS_ARG_POINTER.
11285         * flags.h (flag_compare_debug): Declare.
11286         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
11287         * opts.c (flag_compare_debug): Define.
11288         (common_handle_option): Update names of diagnostic_context
11289         members.  Handle -fcompare-debug-second.
11290         (fast_math_flags_struct_set_p): Update names of cl_optimization
11291         members.
11292         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11293         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11294         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11295         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11296         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11297         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
11298         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
11299         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
11300         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
11301
11302 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
11303
11304         * config/picochip/picochip.c (picochip_output_internal_label):
11305         This function can now be called for debug CFI labels, which can come
11306         in the middle of a vliw instruction.  Postpone until end of vliw.
11307
11308 2010-09-29  Richard Guenther  <rguenther@suse.de>
11309
11310         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
11311         (DECL_FILE_SCOPE_P): Use it.
11312         (TYPE_FILE_SCOPE_P): New macro.
11313
11314 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11315
11316         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
11317         a CPP_NAME which is a reserved word, clearly separate cases for
11318         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
11319
11320 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11321
11322         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
11323         token->value with the canonical spelling.  Do exactly like C and
11324         C++ and leave it as it is.
11325
11326 2010-09-28  Richard Henderson  <rth@redhat.com>
11327
11328         * config/alpha/alpha.c (alpha_builtins): New.
11329         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
11330         (alpha_builtin_function): New.
11331         (alpha_add_builtins, alpha_init_builtins): Use it.
11332
11333 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
11334
11335         * doc/standards.texi (Standards): Expanded the section on
11336         Objective-C and Objective-C++.
11337
11338 2010-09-28  DJ Delorie  <dj@redhat.com>
11339
11340         PR target/45800
11341         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
11342         volatile MEMs.
11343
11344 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
11345
11346         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
11347         attributes on methods.
11348          (c_parser_objc_method_definition): Handle attributes.
11349         (c_parser_objc_methodproto): Likewise.
11350         (c_parser_objc_maybe_method_attributes): New.
11351         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
11352         missing definition, similar to that in ObjC++.
11353
11354 2010-09-28  Richard Henderson  <rth@redhat.com>
11355
11356         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
11357         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
11358         (CONFIG_SJLJ_EXCEPTIONS): Remove.
11359         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
11360         (STACK_CHECK_PROTECT): Likewise.
11361         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
11362         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
11363         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
11364         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
11365         (dwarf2out_assembly_start): Likewise.
11366         * except.c (init_eh): Use targetm.except_unwind_info.
11367         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
11368         (output_one_function_exception_table): Likewise.
11369         * final.c: Unconditionally include dwarf2out.h.
11370         (final_start_function): Unconditionally call dwarf2out routines.
11371         (final_end_function, final_scan_insn): Likewise.
11372         * function.c (expand_function_end): Use targetm.except_unwind_info.
11373         * opts.c (decode_options): Use targetm.except_unwind_info.
11374         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
11375         * target.def (debug_unwind_info, except_unwind_info): New.
11376         * target.h (enum unwind_info_type): New.
11377         * targhooks.c (default_debug_unwind_info): New.
11378         (default_except_unwind_info): New.
11379         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
11380         * targhooks.h: Declare them.
11381         * tree-tailcall.c: Include "target.h"
11382         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
11383         * Makefile.in (tree-tailcall.o): Update.
11384         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
11385         (lhd_gcc_personality): Likewise.
11386
11387         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
11388         (TARGET_EXCEPT_UNWIND_INFO): New.
11389         (DWARF2_UNWIND_INFO): Update.
11390         (TARGET_DEBUG_UNWIND_INFO): New.
11391         * doc/tm.texi: Rebuild.
11392
11393         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
11394         targetm.except_unwind_info.
11395
11396         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
11397         (arm_except_unwind_info): New.
11398         (arm_compute_func_type): Use it.
11399         (arm_expand_prologue, thumb_pushpop): Likewise.
11400         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
11401         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
11402         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
11403         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
11404         (DWARF2_UNWIND_INFO): Remove.
11405         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
11406         (ARM_EABI_UNWIND_TABLES): Remove.
11407
11408         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
11409         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
11410         (ia64_except_unwind_info): New.
11411         (ia64_output_function_prologue): Use it.
11412         (ia64_add_bundle_selector_before): Likewise.
11413         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
11414         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
11415         (TARGET_UNWIND_INFO): Remove.
11416
11417         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
11418
11419 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
11420
11421         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
11422         (c_parser_objc_protocol_definition): Likewise.
11423         (c_parser_external_declaration): Provide dummy attribute arguments.
11424         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
11425         (c_parser_objc_class_definition): Handle attributes.
11426         (c_parser_objc_protocol_definition): Likewise.
11427
11428 2010-09-28  Tobias Burnus  <burnus@net-b.de>
11429
11430         PR fortran/40569
11431         PR fortran/40568
11432         * toplev.h (save_decoded_options, save_decoded_options_count):
11433         New global variables.
11434         * toplev.c (save_decoded_options, save_decoded_options_count):
11435         Export variables.
11436
11437 2010-09-28  Ian Lance Taylor  <iant@google.com>
11438
11439         * config/i386/i386.c (ix86_supports_split_stack): Test
11440         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
11441
11442 2010-09-28  Ian Lance Taylor  <iant@google.com>
11443
11444         PR target/45815
11445         * opts.c (decode_options): Don't test whether the target supports
11446         split stack if flag_split_stack == 0.
11447
11448 2010-09-28  Jan Hubicka  <jh@suse.cz>
11449
11450         * builtin-attrs.def (ATTR_LEAF): New attribute.
11451         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
11452         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
11453         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
11454         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
11455         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
11456         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
11457         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
11458         * sync-builtins.def: Annotate all builtins by leaf.
11459         * omp-builtins.def: Annotate all builtins by leaf.
11460         * builtins.def: Annotate relevant builtins with leaf attribute.
11461         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
11462         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
11463         leaf.
11464
11465 2010-09-28  Jan Hubicka  <jh@suse.cz>
11466
11467         * tree-ssa-ccp.c (fold_ctor_reference): New function.
11468         (fold_const_aggregate_ref): Use it.
11469         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
11470         into external static.
11471
11472 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11473
11474         PR target/44452
11475         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
11476         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
11477         (ix86_solaris_return_in_memory): Remove.
11478         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
11479         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
11480         (TARGET_SUBTARGET_DEFAULT): Redefine.
11481         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
11482         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
11483         (TARGET_SUBTARGET_DEFAULT): Redefine.
11484         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
11485         -mvect8-ret-in-mem.
11486         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
11487
11488 2010-09-29  Alan Modra  <amodra@gmail.com>
11489
11490         PR target/45807
11491         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
11492         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
11493         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
11494         Delete.
11495         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
11496         (rs6000_emit_prologue): Don't just create frame save info for r2,
11497         actually save r2.
11498
11499 2010-09-28  Richard Henderson  <rth@redhat.com>
11500
11501         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
11502         when 8 bytes are requested.
11503
11504 2010-09-28  Tristan Gingold  <gingold@adacore.com>
11505
11506         * config/avr/avr.c (expand_prologue): Set
11507         current_function_static_stack_size.
11508
11509 2010-09-28  Tristan Gingold  <gingold@adacore.com>
11510
11511         * config/alpha/alpha.md: Change the initial condition of the
11512         probing loop.
11513
11514 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
11515
11516         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
11517         Split from *avx_<maxmin:code><mode>3.
11518         (*avx_<smaxmin:code><mode>3): Ditto.
11519         * config/i386/i386.md (maxmin): Remove code iterator.
11520
11521 2010-09-27  Ian Lance Taylor  <iant@google.com>
11522
11523         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
11524         requires assembler support for CFI directives.
11525
11526 2010-09-27  Richard Henderson  <rth@redhat.com>
11527
11528         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
11529
11530 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
11531
11532         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
11533         that AFTER is not in the range FROM..TO, inclusive.
11534
11535 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
11536             Bernd Schmidt  <bernds@codesourcery.com>
11537
11538         PR rtl-optimization/45792
11539         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
11540         If not all insns are to be merged, for each edge, stash the
11541         next candidate after the to-be-merged insns before doing the
11542         merge, and use them for the retry at the new insertion point.
11543         Handle CC0 targets when retrying.
11544
11545 2010-09-27  Ian Lance Taylor  <iant@google.com>
11546
11547         * common.opt (fsplit-stack): New option.
11548         * opts.c (decode_options): Set flag_split_stack to final value.
11549         * target.def (supports_split_stack): New hook.
11550         * gcc.c (STACK_SPLIT_SPEC): Define.
11551         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
11552         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
11553         (Code Gen Options): Document -fsplit-stack.
11554         * doc/extend.texi (Function Attributes): Mention no_split_stack.
11555         (Function Attributes): Document no_split_stack.
11556         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
11557         TARGET_SUPPORTS_SPLIT_STACK.
11558         * doc/tm.texi: Rebuild.
11559         * function.c (thread_prologue_and_epilogue_insns): If
11560         flag_split_stack, add split stack prologue.
11561         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
11562         * varasm.c (saw_no_split_stack): New static variable.
11563         (assemble_start_function): Set saw_no_split_stack if the function
11564         has the no_split_stack attribute.
11565         (file_end_indicate_split_stack): New function.
11566         * output.h (file_end_indicate_split_stack): Declare.
11567         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
11568         and function.
11569         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
11570         routines.
11571         * config/i386/i386.c (ix86_option_override_internal): Don't set
11572         expand_builtin_va_start to NULL if -fsplit-stack.
11573         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
11574         -fsplit-stack.
11575         (ix86_va_start): If -fsplit-stack, get overflow pointer from
11576         scratch register set by prologue.
11577         (ix86_code_end): If -fsplit-stack, call
11578         file_end_indicate_split_stack.
11579         (ix86_supports_split_stack): New static function.
11580         (SPLIT_STACK_AVAILABLE): Define.
11581         (split_stack_prologue_scratch_regno): New static function.
11582         (split_stack_fn): New static variable.
11583         (ix86_expand_split_stack_prologue): New function.
11584         (ix86_live_on_entry): New static function.
11585         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
11586         (output_pic_addr_const): Likewise.
11587         (i386_asm_output_addr_const_extra): Likewise.
11588         (ix86_expand_call): Change return type to rtx.  Return the new
11589         call instruction.
11590         (TARGET_SUPPORTS_SPLIT_STACK): Define.
11591         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
11592         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
11593         (split_stack_prologue, split_stack_return): New insns.
11594         (split_stack_space_check): New insn.
11595         * config/i386/i386.h (struct machine_function): Add
11596         split_stack_varargs_pointer field.
11597         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
11598         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
11599         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
11600         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
11601         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
11602         Declare.
11603         (ix86_expand_call): Update declaration.
11604
11605 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
11606
11607         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
11608         code.  Added byref, which was missing in the list of codes.
11609         Explain that enumeration values are encoded as the integer type
11610         that the compiler uses to store them.  Explain and make examples
11611         of how 'const' interacts with pointers, and the complication of
11612         the encoding of 'const char *'.
11613         (Legacy type encoding): New subsection, explaining that GCC emits
11614         incorrect type encodings for the NeXT runtime for compatibility
11615         reasons.
11616         (@@encode): New subsection, explaining @encode and particularly
11617         that protocol qualifiers are not recognized inside an @encode()
11618         expression.
11619         (Method signatures): New subsection, explaining how method
11620         signatures are encoded.
11621
11622 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
11623
11624         Merge from 'apple/trunk' branch on FSF servers.  Removed small
11625         change in build_conditional_expr that had been added when fixing
11626         PR objc/27377 and which did the same check in a less complete way.
11627
11628         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
11629
11630         Radar 4229905
11631         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
11632         looking for objective-c common pointer types.
11633
11634         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
11635
11636         Radar 4154928
11637         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
11638         use their ObjC common type.
11639
11640 2010-09-27  Richard Guenther  <rguenther@suse.de>
11641
11642         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
11643
11644 2010-09-27  Jie Zhang  <jie@codesourcery.com>
11645
11646         * print-tree.c (print_node): Print in-constant-pool.
11647
11648 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
11649
11650         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
11651         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
11652         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
11653         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
11654
11655 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
11656
11657         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
11658         from pro_epilogue_adjust_stack_<mode>_{1,2}.
11659         (pro_epilogue_adjust_stack_<mode>_add): Rename from
11660         pro_epilogue_adjust_stack_<mode>_3.
11661         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
11662         renamed pro_epilogue_adjust_stack_{si,di}_add.
11663         (ix86_expand_prologue): Use indirect functions.  Update for renamed
11664         pro_epilogue_adjust_stack_{si,di}_sub.
11665
11666 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
11667
11668         * config/i386/i386.md (movmsk_df): New insn.
11669         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
11670         sequence for TARGET_SSE_MATH.
11671
11672 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
11673
11674         * config/mips/mips.c (mips_builtin_decls): Declare.
11675         (mips_init_builtins): Store function declarations in
11676         mips_builtin_decls.
11677         (mips_builtin_decl): New function.
11678         (TARGET_BUILTIN_DECL): Define.
11679
11680 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
11681             Richard Henderson  <rth@redhat.com>
11682
11683         * config/i386/cygwin.asm: Include auto-host.h.
11684         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
11685         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
11686         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
11687         alignment code from the 64-bit path.  Use gas local labels.
11688         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
11689         from _di_2.  Remove the useless constant integer argument.
11690         (pro_epilogue_adjust_stack_<mode>_3): New.
11691         (allocate_stack_worker_probe_<mode>): Macroize from
11692         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
11693         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
11694         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
11695         (__chkstk_ms): New function.
11696         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
11697         * config/i386/t-interix: Likewise.
11698         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
11699         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
11700         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
11701         * configure, config.in: Rebuild.
11702
11703 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
11704
11705         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
11706         statements because of the return slot optimization.
11707
11708 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
11709
11710         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
11711         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
11712         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11713         (class_likely_spilled_p): Rename to...
11714         (avr_class_likely_spilled_p): ...this. Make static. Change argument
11715         type to reg_class_t.
11716
11717 2010-09-24  Jan Hubicka  <jh@suse.cz>
11718
11719         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
11720         (lto_symtab_resolve_symbols): Set it.
11721         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
11722         store resolution field in cgraph/varpool.
11723         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
11724         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
11725         (cgraph_dump_node): Drop used_from_object_file.
11726         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
11727         (cgraph_function_body_availability): Use decl_replaceable_p.
11728         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
11729         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
11730         cgraph_used_from_object_file_p.
11731         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
11732         cgraph_used_from_object_file_p.
11733         (resolution_used_from_other_file_p): New functoin.
11734         (cgraph_used_from_object_file_p): New predicate.
11735         * cgraph.h: Include plugin-api.h
11736         (struct cgraph_local_info): Remove used_from_object_file.
11737         (struct cgraph_node): Add resolution field.
11738         (struct varpool_node): Likewise; remove used_from_object_file;
11739         reove const_value_known.
11740         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
11741         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
11742         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
11743         varpool_used_from_object_file_p): Declare.
11744         (varpool_get_node, varpool_extra_name_alias): Update prototype.
11745         * tree.h (DECL_REPLACEABLE_P): Remove.
11746         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
11747         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
11748         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
11749         input_overwrite_node, input_node, input_varpool_node): Stream
11750         resolution.
11751         * expr.c (expand_expr_real_1): Use const_value_known_p
11752         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
11753         const_value_known.
11754         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
11755         (function_and_variable_visibility): Set resolution for local vars
11756         and functions; use varpool_used_from_object_file_p.
11757         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
11758         static functions.
11759         (default_binds_local_p_1): Use resolutoin info.
11760         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
11761         * varpool.c (varpool_get_node): Constify.
11762         (const_value_known_p): Do not use vnode->const_value_known;
11763         use decl_replaceable_p.
11764         (varpool_finalize_decl): Do not set const_value_known.
11765         (cgraph_variable_initializer_availability): Use decl_replaceable_p
11766         (varpool_extra_name_alias): Return new node.
11767         (varpool_used_from_object_file_p): New function.
11768
11769 2010-09-24  Richard Henderson  <rth@redhat.com>
11770
11771         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
11772         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
11773         (do_spill): Use REG_CFA_OFFSET.
11774         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
11775         as appropriate.
11776         (ia64_expand_epilogue): Likewise.
11777         (process_set): Split into ...
11778         (process_cfa_adjust_cfa): this,
11779         (process_cfa_register): this,
11780         (process_cfa_offset): and this new function.
11781         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
11782         instead of REG_FRAME_RELATED_EXPR.
11783
11784 2010-09-24  Olivier Hainque  <hainque@adacore.com>
11785
11786         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
11787
11788 2010-09-24  Jan Hubicka  <jh@suse.cz>
11789
11790         * doc/extend.texi: (attribute leaf): Document.
11791         * tree.c (local_define_builtin): Handle ECF_LEAF.
11792         (build_common_builtin_nodes): Set ECF_LEAF where needed.
11793         * tree.h (ECF_LEAF): New.
11794         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
11795         overwrittable and unavailable functions.
11796         (ipa_init): Put all_module_statics into optimization_summary_obstack.
11797         (copy_global_bitmap): Do not copy all_module_statics.
11798         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
11799         (propagate): Handle overwritable and unavailable leaf functions;
11800         initialize global info for overwritable and unavailable leaf functions;
11801         do not free all module statics.
11802         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
11803         local statics.
11804         * calls.c (flags_from_decl_or_type): Handle leaf.
11805         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
11806         abnormal gotos.
11807
11808 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
11809
11810         * gengtype.c: Reindented.
11811         * gengtype.h: Reindented.
11812         * gengtype-parse.c: Reindented.
11813
11814 2010-09-24  Jan Hubicka  <jh@suse.cz>
11815
11816         PR tree-optimization/45738
11817         PR tree-optimization/45741
11818         * expr.c (string_constant): Allow CONST_DECL too;
11819         check that DECL_INITIAL is set.
11820         * varpool.c (const_value_known_p): Only look into VAR_DECL
11821         and CONST_DECL.
11822
11823 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
11824
11825         * common.opt (undef): New.
11826
11827 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
11828
11829         PR middle-end/45234
11830         * rtl.h (enum global_rtl_index): Add
11831         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
11832         (LAST_VIRTUAL_POINTER_REGISTER): Define.
11833         (virtual_preferred_stack_boundary_rtx,
11834         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
11835         (LAST_VIRTUAL_REGISTER): Increase by one.
11836         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
11837         instead of LAST_VIRTUAL_REGISTER.
11838         * function.c (instantiate_new_reg): Handle
11839         virtual_preferred_stack_boundary_rtx.
11840         * emit-rtl.c (init_virtual_regs): Handle
11841         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
11842         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
11843         * explow.c (round_push): If crtl->preferred_stack_boundary
11844         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
11845         virtual_preferred_stack_boundary_rtx alignment instead of
11846         crtl->preferred_stack_boundary alignment.
11847         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
11848         macros.  Never decrease crtl->preferred_stack_boundary,
11849         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
11850         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
11851         stack_pointer_delta in dynamic allocation, even when size
11852         is constant.
11853         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
11854         macro.
11855         * print-rtl.c (print_rtx): Handle
11856         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
11857         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
11858         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
11859         * config/frv/frv.c (frv_emit_movsi): Likewise.
11860         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
11861         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
11862         Likewise.
11863
11864         Revert:
11865         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11866
11867         PR middle-end/45234
11868         * calls.c (expand_call): Make sure that all variable sized
11869         adjustments are multiple of preferred stack boundary after
11870         stack alignment.
11871
11872 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
11873             Dominique Dhumieres  <dominiq@lps.ens.fr>
11874
11875         PR bootstrap/45751
11876         * config/darwin-driver.c (darwin_default_min_version):
11877         Adjust size passed to memcpy in two places.
11878
11879 2010-09-24  Richard Guenther  <rguenther@suse.de>
11880
11881         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
11882         Make sure to not call set_type_context with error_mark_node.
11883         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
11884
11885 2010-09-24  Richard Guenther  <rguenther@suse.de>
11886
11887         * Makefile.in (OBJS-onestep): Remove.
11888         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
11889         (libbackend.a): Remove onestep support.
11890         (libbackend.o): Remove.
11891         * configure.ac (--enable-intermodule): Remove.
11892         * configure: Regenerate.
11893
11894 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
11895
11896         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
11897         reaching the end of a block if it occurs at a DEBUG_INSN.
11898
11899 2010-09-09  Tristan Gingold  <gingold@adacore.com>
11900
11901         PR target/44242
11902         * config/vms/vms-crt0-64.c: Removed.
11903         * config/vms/vms-crt0.c: Removed.
11904         * config/vms/vms-psxcrt0-64.c: Removed.
11905         * config/vms/vms-psxcrt0.c: Removed.
11906         * config/vms/vms-ucrt0.c: New file.
11907         * config/vms/t-vms64: Removed.
11908         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
11909         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
11910         * config.gcc (alpha-dec-vms): Use t-vms.
11911
11912 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
11913
11914         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
11915         underfull hbox in DVI output.
11916         (-fobjc-class-cxx-cdtors): Same change.
11917         (-fobjc-exceptions): Tidied up documentation.  Explain what the
11918         option does, but moved the (lenghty) description of the exception
11919         syntax into objc.texi.
11920         (-fobjc-gc): Explain that the option is not useful with the GNU
11921         runtime.
11922         (-fzero-link): Explain that the GNU runtime always works in
11923         "zero-link" mode.
11924         * doc/objc.texi: All sections: simplified @node declarations
11925         removing specification of next, previous, up node.
11926         (Objective-C): Updated introduction.
11927         (Garbage Collection): Updated.  The bohem-gc library is now
11928         included in gcc itself.  Mention that this section only applies to
11929         the GNU Objective-C runtime.
11930         (compatibility_alias): Small tidy up.
11931         (Exceptions): New section mostly containing text previously in the
11932         description of the -fobjc-exception command-line option.
11933         (Synchronization): Same.
11934
11935 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
11936
11937         * config/i386/i386.md (ix86_code_end): Move the initialization of
11938         xops array near the consumer.  Use AX_REG and SP_REG instead of
11939         numerical constants.
11940
11941 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
11942
11943         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
11944         method [methodname]' for an Objective-C method instead of the less
11945         satisfactory 'too many arguments to function' (with no method name).
11946
11947 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
11948
11949         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
11950         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
11951         (execute_update_addresses_taken): Remove parameter.  Execute the
11952         optimization unconditionally.
11953         * passes.c (execute_function_todo): Call execute_update_addresses_taken
11954         unconditionally if TODO_rebuild_alias is set, else only when optimizing
11955         if TODO_update_address_taken is set.
11956
11957 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
11958
11959         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11960         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
11961         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11962         (arm_output_addr_const_extra): Make static.
11963
11964 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
11965
11966         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
11967         define as unspec_volatile.
11968         ("nops"): Define as unspec_volatile. Use fputs to write to
11969         asm_out_file directly.  Output NOPs on separate lines using while loop.
11970         * config/i386/i386.c (ix86_code_end): Use fputs to write to
11971         asm_out_file directly.  Output NOPs on separate lines using while loop.
11972
11973 2010-09-23  Richard Guenther  <rguenther@suse.de>
11974
11975         PR tree-optimization/45565
11976         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
11977         Make sure to adjust the fndecl before replacing the stmt.
11978
11979 2010-09-23  Richard Guenther  <rguenther@suse.de>
11980
11981         PR middle-end/45750
11982         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
11983         gimplifying MEM_REF.
11984
11985 2010-09-23  Alan Modra  <amodra@gmail.com>
11986
11987         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
11988         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
11989
11990 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
11991
11992         PR rtl-optimization/44374
11993         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
11994         * df-core.c (df_set_bb_dirty): Set it.
11995         * ifcvt.c (find_memory): Remove function.
11996         (dead_or_predicable): Use can_move_insns_across.
11997         * df.h (can_move_insns_across): Declare function.
11998         * cfgcleanup.c (block_was_dirty): New static variable.
11999         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
12000         than df_get_bb_dirty.
12001         (try_head_merge_bb): New static function.
12002         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
12003         is set.
12004         * df-problems.c: Include "target.h"
12005         (df_simulate_find_uses): New static function.
12006         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
12007         (find_memory, find_memory_store): New static functions.
12008         (can_move_insns_across): New function.
12009         * Makefile.in (df-problems.o): Update dependencies.
12010
12011 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
12012
12013         PR java/44095
12014         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
12015         is specified and the suffix of the file isn't ".c".
12016         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12017
12018 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12019
12020         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
12021         * doc/cppopts.texi: Fix markup of index entry.
12022         * doc/extend.texi (Constructing Calls): Fix markup of
12023         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
12024         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
12025         (Vague Linkage, C++ Attributes): Fix markup of index entries and
12026         keywords.
12027         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
12028         avoid long lines.
12029         (C Dialect Options, C++ Dialect Options, Warning Options)
12030         (Debugging Options, Spec Files, Darwin Options)
12031         (i386 and x86-64 Options, MIPS Options)
12032         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
12033         index entries, avoid abbreviations, allow URLs to wrap, avoid
12034         long lines, avoid overlong pages from long @itemx lists.
12035         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
12036         * doc/standards.texi (Standards): Likewise.
12037         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
12038
12039 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
12040
12041         * opts-common.c (prune_options): Make static.  Work with decoded
12042         options.
12043         (decode_cmdline_options_to_array): Call prune_options.  Don't
12044         resize option array here.
12045         * opts.h (prune_options): Remove prototype.
12046         * gcc.c (process_command): Take decoded options; don't call
12047         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
12048         (main): Call decode_cmdline_options_to_array here instead of
12049         prune_options.  Update call to process_command.
12050         * config/darwin-driver.c: Include opts.h.
12051         (darwin_default_min_version): Work with decoded options.  Don't
12052         handle -b or -V here.
12053         * config/darwin.h (darwin_default_min_version): Update prototype.
12054         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
12055         darwin_default_min_version.
12056         * config/i386/cygwin.h (mingw_scan): Update prototype.
12057         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
12058         * config/i386/cygwin1.c: Include opts.h.
12059         (mingw_scan): Work with decoded options.
12060         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
12061         * config/t-darwin (darwin-driver.o): Update dependencies.
12062
12063 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
12064
12065         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
12066         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
12067         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
12068         -force-link, -force-link=, -language, -language=,
12069         -library-directory, -library-directory=, -no-canonical-prefixes,
12070         -no-standard-libraries, -no-warnings, -optimize, -output,
12071         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
12072         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
12073         -print-file-name=, -print-libgcc-file-name,
12074         -print-multi-directory, -print-multi-lib,
12075         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
12076         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
12077         -profile, -save-temps, -shared, -specs, -specs=, -static,
12078         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
12079         symbolic): New.
12080         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
12081         * gcc.c (A Short Introduction to Adding a Command-Line Option):
12082         Remove comment.
12083         (cc1_options): Correct specs for passing down --help,
12084         --target-help and --help=*.  Add spec for passing down --version.
12085         (struct option_map, option_map, target_option_translations,
12086         translate_options): Remove.
12087         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
12088         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
12089         OPT_fhelp_ and OPT_ftarget_help.
12090         (process_command): Don't call translate_options.  Call
12091         decode_cmdline_options_to_array before checking for
12092         -no-canonical-prefixes using decoded options.
12093         * opts-common.c (tm.h): Update comment on #include.
12094         (find_opt): Allow abbreviations of long options.
12095         (struct option_map, option_map): New.
12096         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
12097         and -mno handling.
12098         (target_option_translations): New.
12099         (decode_cmdline_options_to_array): Handle
12100         TARGET_OPTION_TRANSLATE_TABLE in driver.
12101         * opts.c (common_handle_option): Don't handle OPT_fhelp,
12102         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
12103
12104 2010-09-22  Richard Guenther  <rguenther@suse.de>
12105
12106         * tree-inline.c (optimize_inline_calls): Schedule cleanups
12107         only if we inlined something.  Block compaction and conditional
12108         folding are done by cfg cleanup.  Schedule update-address-taken.
12109         (tree_function_versioning): Remove redundant call to number_blocks.
12110         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
12111         folding is done by cfg cleanup.
12112         * passes.c (init_optimization_passes): Remove update-address-taken
12113         pass after IPA inlining.
12114
12115 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
12116
12117         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
12118         to update conditions. Fix reg_mode[] check.
12119
12120 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
12121
12122         * config/picochip/picochip.md (movhicc): Use expand to check whether
12123         movhicc is available and split it after reload.
12124
12125 2010-09-22  Richard Guenther  <rguenther@suse.de>
12126
12127         * tree-ssanames.c (release_dead_ssa_names): Do not remove
12128         callee edges here.
12129         * passes.c (init_optimization_passes): Remove early CFG cleanup.
12130         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
12131         (pass_cleanup_cfg): Likewise.
12132         (execute_fixup_cfg): Cleanup.
12133         * tree-pass.h (pass_cleanup_cfg): Remove.
12134
12135 2010-09-22  Martin Jambor  <mjambor@suse.cz>
12136
12137         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
12138         builtins if it is true.
12139         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
12140         parameter.
12141
12142 2010-09-22  Martin Jambor  <mjambor@suse.cz>
12143
12144         * tree-sra.c (struct access): New field grp_no_warning.
12145         (create_access_replacement): Set TREE_NO_WARNING according to
12146          grp_no_warning.
12147         (create_artificial_child_access): Use build_ref_for_model and set
12148         grp_no_warning if build_user_friendly_ref_for_offset fails.
12149         (propagate_subaccesses_across_link): Likewise.
12150
12151 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
12152
12153         PR target/35664
12154         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
12155         ('f'): Likewise.
12156
12157 2010-09-22  Tristan Gingold  <gingold@adacore.com>
12158
12159         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
12160
12161 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
12162
12163         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
12164         * config/i386/i386.c (decide_alg): Update for rename.
12165
12166 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
12167
12168         PR rtl-optimization/45739
12169         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
12170         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
12171
12172 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
12173
12174         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
12175         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
12176         Remove.
12177         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
12178         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12179
12180 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12181
12182         PR objc/23710
12183         * c-parser.c (c_parser_objc_method_definition): Check the return
12184         value of objc_start_method_definition and if false is returned,
12185         parse the method definition but emit no code.
12186
12187 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12188
12189         PR objc/25965
12190         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
12191         call objc_get_interface_ivars ().
12192
12193 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
12194
12195         PR target/45694
12196         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
12197         static chain-register is used for 64-bit.
12198
12199 2010-09-21  Richard Guenther  <rguenther@suse.de>
12200
12201         * dwarf2out.c (is_cu_die): New function.
12202         (add_pubtype): Use it.
12203         (gen_subprogram_die): Likewise.
12204         (gen_struct_or_union_type_die): Likewise.
12205         (dwarf2out_finish): Likewise.
12206         (comp_unit_die): Rename to ...
12207         (single_comp_unit_die): ... this.
12208         (comp_unit_die): New function lazily constructing and
12209         returning single_comp_unit_die.
12210         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
12211         base_type_die, subrange_type_die, modified_type_die,
12212         lower_bound_default, add_bound_info, add_prototyped_attribute,
12213         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
12214         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
12215         force_decl_die, gen_namespace_die, dwarf2out_decl,
12216         dwarf2out_start_source_file, dwarf2out_end_source_file,
12217         prune_unused_types, dwarf2out_finish): Use it.
12218         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
12219         the global list of translation-unit decls.
12220         (dwarf2out_init): Do not create single_comp_unit_die here.
12221         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
12222
12223 2010-09-21  Richard Guenther  <rguenther@suse.de>
12224
12225         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
12226         for bool for C++.
12227
12228 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
12229
12230         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
12231         (qhs_extenddi_cstr): Likewise.
12232         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
12233         them for the source operand.
12234
12235 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
12236
12237         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
12238         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
12239         (ix86_split_ashr): Ditto.
12240         (ix86_split_lshr): Ditto.
12241
12242 2010-09-21  Richard Guenther  <rguenther@suse.de>
12243
12244         PR tree-optimization/45580
12245         * tree-ssa-propagate.c (substitute_and_fold): Always replace
12246         regular uses.
12247         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
12248         virtuals fold the call into a regular indirect one.
12249
12250 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
12251
12252         PR rtl-optimization/42775
12253         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
12254         scheduling is enabled.
12255
12256 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
12257
12258         PR rtl-optimization/45728
12259         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
12260         gen_lowpart_common first and if that fails, force_reg first
12261         before calling gen_lowpart.
12262
12263         PR middle-end/45678
12264         * cfgexpand.c (expand_one_stack_var_at): Use
12265         crtl->max_used_stack_slot_alignment as max_align, instead
12266         of maximum of that and PREFERRED_STACK_BOUNDARY.
12267         Don't call update_stack_alignment.
12268
12269 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
12270
12271         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
12272         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
12273         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
12274         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
12275         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
12276         (build_nonstandard_integer_type): Likewise.
12277         (build_range_type_1): New function, built from...
12278         (build_range_type): ...this.  Call build_range_type_1.
12279         (build_nonshared_range_type): New function.
12280         (build_array_type_1): New function, built from...
12281         (build_array_type: ...this.  Call build_array_type_1.
12282         (build_nonshared_array_type): New function.
12283         * tree.h (build_nonshared_range_type): Declare.
12284         (build_nonshared_array_type): Likewise.
12285
12286 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
12287
12288         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
12289         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12290         (arm_class_likely_spilled_p): New function.
12291
12292 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
12293
12294         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
12295         indirect functions.
12296         (ix86_split_ashl): Ditto.
12297         (ix86_split_ashr): Ditto.
12298         (ix86_split_lshr): Ditto.
12299         (ix86_adjust_counter): Ditto.
12300
12301 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
12302
12303         * c-family/c-common.h (constant_string_class): Documented with
12304         comment identical to the one already in c-common.c.
12305
12306 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
12307
12308         * dwarf2out.c (any_cfis_emitted): New static variable.
12309         (add_fde_cfi): Set it.
12310         (dwarf2out_frame_debug): Clear it before processing,
12311         if it is set afterwards, flush any queued reg saves.
12312
12313         PR debug/45124
12314         * dwarf2out.c (add_accessibility_attribute): Assume
12315         DW_ACCESS_private as the default for dwarf_version > 2
12316         and DW_TAG_class_type parent.
12317         (gen_inheritance_die): Assume DW_ACCESS_public as the default
12318         for dwarf_version > 2 and parent other than DW_TAG_class_type.
12319
12320 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
12321
12322         PR target/45726
12323         * arm.md (arm_movt): Only enable on machines with MOVT.
12324
12325 2010-09-20  Jie Zhang  <jie@codesourcery.com>
12326
12327         * config/arm/arm.c (arm_address_offset_is_imm): New.
12328         (arm_early_store_addr_dep): New.
12329         (arm_early_load_addr_dep): New.
12330         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
12331         (arm_early_load_addr_dep): Declare.
12332         (arm_address_offset_is_imm): Declare.
12333         * config/arm/cortex-m4.md: New file.
12334         * config/arm/cortex-m4-fpu.md: New file.
12335         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
12336         (attr generic_sched): Exclude cortexm4.
12337         (attr generic_vfp): Exclude cortexm4.
12338
12339 2010-09-20  Richard Guenther  <rguenther@suse.de>
12340
12341         PR middle-end/45704
12342         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
12343
12344 2010-09-20  Jan Hubicka  <jh@suse.cz>
12345
12346         PR tree-optimize/45605
12347         * cgraph.h (const_value_known_p): Declare.
12348         (varpool_decide_const_value_known): Remove.
12349         * tree-ssa-ccp.c (get_base_constructor): Use it.
12350         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
12351         * expr.c (string_constant): Likewise.
12352         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
12353         * ipa.c (ipa_discover_readonly_nonaddressable_var,
12354         function_and_variable_visibility): Likewise.
12355         * gimplify.c (gimplify_call_expr): Likewise.
12356         * gimple-fold.c (get_symbol_constant_value): Likewise.
12357         * varpool.c (varpool_decide_const_value_known): Replace by...
12358         (const_value_known_p): ... this one; handle other kinds of DECLs
12359         too and work for automatic vars.
12360         (varpool_finalize_decl): Use const_value_known_p.
12361
12362 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
12363
12364         PR target/45726
12365         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
12366
12367 2010-09-20  Richard Guenther  <rguenther@suse.de>
12368
12369         PR tree-optimization/45705
12370         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
12371
12372 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
12373
12374         PR rtl-optimization/45695
12375         * combine.c (try_combine): When splitting a two set pattern,
12376         make sure the pattern which will be put into i2 doesn't use REGs
12377         or MEMs set by insns in between i2 and i3.
12378
12379 2010-09-19  Jan Hubicka  <jh@suse.cz>
12380
12381         PR lto/44246
12382         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
12383         processing same node twice.
12384
12385 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
12386
12387         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
12388         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12389         (bfin_class_likely_spilled_p): New function
12390
12391 2010-09-19  Ira Rosen  <irar@il.ibm.com>
12392
12393         PR tree-optimization/45714
12394         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
12395         created in vectorizable_call instead of the original statement in
12396         def stmt updates.
12397
12398 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
12399
12400         * config/i386/i386-protos.h (split_double_mode): New prototype.
12401         (split_di, split_ti): Remove prototypes.
12402         * config/i386/i386.c (split_double_mode): New function.
12403         (split_di, split_ti): Remove.
12404         (ix86_expand_branch): Use split_double_mode.
12405         (ix86_split_to_parts): Ditto.
12406         (ix86_split_ashl): Ditto.
12407         (ix86_split_ashr): Ditto.
12408         (ix86_split_lshr): Ditto.
12409         (ix86_force_to_memory): Ditto.
12410         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
12411
12412 2010-09-18  Jan Hubicka  <jh@suse.cz>
12413
12414         PR tree-optimization/45453
12415         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
12416         virtual functions are reachable.
12417         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
12418         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
12419         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
12420         when modifying function.
12421
12422 2010-09-18  Jan Hubicka  <jh@suse.cz>
12423
12424         PR tree-optimization/45605
12425         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
12426         * gimple-fold.c (static_object_in_other_unit_p): New function.
12427         (canonicalize_constructor_val): Use it.
12428         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
12429         returning NULL.
12430         (gimple_fold_obj_type_ref_known_binfo): Use
12431         static_object_in_other_unit_p.
12432
12433 2010-09-18  Richard Guenther  <rguenther@suse.de>
12434
12435         PR tree-optimization/45709
12436         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
12437         insertions until after all PHI nodes of the block are processed.
12438
12439 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
12440
12441         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
12442
12443 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
12444
12445         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
12446
12447 2010-09-18  Richard Guenther  <rguenther@suse.de>
12448
12449         PR tree-optimization/45709
12450         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
12451
12452 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
12453
12454         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
12455         (dot_deps_stmt): Same.
12456         * graphite-poly.c (dot_lst): Same.
12457         * graphite-scop-detection.c (dot_all_scops): Same.
12458         (dot_scop): Same.
12459
12460 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
12461
12462         Revert:
12463         2009-12-16  Ben Elliston  <bje@au.ibm.com>
12464
12465         * tree-data-ref.c (dot_rdg_1): Added back.
12466         (dot_rdg): Same.  Added "#if 0" around system call.
12467
12468 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12469             Richard Henderson  <rth@redhat.com>
12470
12471         * config/i386/i386.c (initial_ix86_tune_features): Add
12472         X86_TUNE_PAD_SHORT_FUNCTION.
12473         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
12474         (ix86_count_insn): New.
12475         (ix86_pad_short_function): Likewise.
12476         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
12477
12478         * config/i386/i386.h (ix86_tune_indices): Add
12479         X86_TUNE_PAD_SHORT_FUNCTION.
12480         (TARGET_PAD_SHORT_FUNCTION): New.
12481
12482         * config/i386/i386.md (UNSPEC_NOPS): New.
12483         (nops): Likewise.
12484
12485 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12486
12487         PR middle-end/45234
12488         * calls.c (expand_call): Make sure that all variable sized
12489         adjustments are multiple of preferred stack boundary after
12490         stack alignment.
12491
12492 2010-09-17  DJ Delorie  <dj@redhat.com>
12493
12494         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
12495         passed an invalid value, print an error instead of ICEing.
12496         (valid_psw_flag): New.
12497         (rx_expand_builtin): Call it for setpsw/clrpsw.
12498         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
12499
12500         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
12501         (bitclr_in_memory): Likewise.
12502         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
12503
12504 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12505
12506         PR middle-end/45678
12507         * cfgexpand.c (update_stack_alignment): New.
12508         (get_decl_align_unit): Use it.
12509         (expand_one_stack_var_at): Call update_stack_alignment.
12510
12511 2010-09-17  Richard Guenther  <rguenther@suse.de>
12512
12513         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
12514         Properly copy the read string.
12515
12516 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
12517
12518         * doc/options.texi (Variable): Document.
12519         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
12520         generate target_flags declarations explicitly.  Don't define
12521         VarExists variables for the driver.
12522         * common.opt (target_flags): New Variable record.
12523         (flag_dump_unnumbered, flag_dump_unnumbered_links,
12524         flag_var_tracking, flag_var_tracking_assignments,
12525         flag_var_tracking_assignments_toggle): Don't mark variables with
12526         VarExists.
12527         * config/i386/i386.c (ix86_isa_flags): Don't define here.
12528         * config/i386/i386.opt (ix86_isa_flags): Define here.
12529         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
12530         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
12531         VarExists.
12532         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
12533         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
12534         Only define for generator programs.
12535         * rtlanal.c (target_flags): Remove.
12536         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
12537         flag_var_tracking_assignments_toggle): Remove.
12538
12539 2010-09-17  Michael Matz  <matz@suse.de>
12540
12541         PR tree-optimization/43432
12542         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
12543         Accept backwards consecutive accesses.
12544         (vect_create_data_ref_ptr): If step is negative generate
12545         decreasing IVs.
12546         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
12547         (perm_mask_for_reverse, reverse_vec_elements): New functions.
12548         (vectorizable_load): Handle loads with negative steps when easily
12549         possible.
12550
12551 2010-09-03  Jan Hubicka  <jh@suse.cz>
12552
12553         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
12554
12555 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
12556
12557         * config/v850/v850.c (v850_function_value_regno_p): Make static.
12558         Adjust comments. Declare.
12559         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
12560         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
12561
12562 2010-09-17  Richard Guenther  <rguenther@suse.de>
12563
12564         * common.opt (combine): Remove.
12565         * gcc.c (default_compilers): Remove specs testing combine.
12566         The C compilers no longer can combine.
12567         (option_map): Remove -combine.
12568         (display_help): Remove -combine.
12569         (driver_handle_option): Remove OPT_combine handling.
12570         (compile_input_file_p): Remove.
12571         (do_spec): Remove code concerning combine.
12572         (main): Likewise.
12573         * doc/invoke.texi: Remove traces of -combine.
12574         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
12575
12576 2010-09-17  Richard Guenther  <rguenther@suse.de>
12577
12578         PR middle-end/45678
12579         * builtins.c (fold_builtin_memory_op): Always properly adjust
12580         alignment of memory accesses.
12581
12582 2010-09-16  Jan Hubicka  <jh@suse.cz>
12583
12584         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
12585         processing clone.
12586
12587 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
12588
12589         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
12590
12591         * config/i386/i386.c (predict_jump): Add prototype.
12592         (flag_opts): Add -m8bit-idiv.
12593         (ix86_split_idivmod): New.
12594
12595         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
12596         Add 2 splitters for SI/DI mode divide.
12597         (divmod<mode>4_1): New pattern.
12598         (udivmod<mode>4_1): Likewise.
12599         (testdi_ccno_1): Likewise.
12600
12601         * config/i386/i386.opt (m8bit-idiv): New.
12602
12603         * doc/invoke.texi: Document -m8bit-idiv.
12604
12605 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
12606
12607         PR bootstrap/45680
12608         * config/i386/i386.c (min_insn_size): Moved out of the
12609         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
12610
12611 2010-09-16  Jan Hubicka  <jh@suse.cz>
12612
12613         * lto-cgraph.c (lto_output_node): Fix handling of clones.
12614         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
12615         unreachable clones with reachable clones.
12616         * tree-inline.c (copy_bb): Fix sanity checking when producing
12617         unreachable clone.
12618
12619 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
12620
12621         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
12622         (TARGET_MEMORY_MOVE_COST): Define.
12623         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
12624
12625 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
12626
12627         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
12628         maybe_tidy_empty_bb.
12629
12630         Revert:
12631         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12632         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12633
12634 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
12635
12636         * target.def (target_option.optimization): New hook.
12637         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
12638         TARGET_OPTION_OPTIMIZATION hook.
12639         * doc/tm.texi: Regenerate.
12640         * hooks.c (hook_void_int_int): New.
12641         * hooks.h (hook_void_int_int): Declare.
12642         * opts.c: Don't include tm_p.h.
12643         (decode_options): Use targetm.target_option.optimization instead
12644         of OPTIMIZATION_OPTIONS.
12645         * system.h (OPTIMIZATION_OPTIONS): Poison.
12646         * config/arm/arm-protos.h (arm_optimization_options): Remove.
12647         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
12648         (arm_optimization_options): Rename to arm_option_optimization.
12649         Make static.
12650         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
12651         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
12652         (cris_option_optimization): New.
12653         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
12654         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
12655         (crx_option_optimization): New.
12656         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
12657         * config/frv/frv-protos.h (frv_optimization_options): Remove.
12658         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
12659         (frv_optimization_options): Rename to frv_option_optimization.
12660         Make static.
12661         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
12662         * config/h8300/h8300.c (h8300_option_optimization): New.
12663         (TARGET_OPTION_OPTIMIZATION): Define.
12664         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
12665         * config/i386/i386-protos.h (optimization_options): Remove.
12666         * config/i386/i386.c (optimization_options): Rename to
12667         ix86_option_optimization.  Make static.
12668         (TARGET_OPTION_OPTIMIZATION): Define.
12669         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
12670         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
12671         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
12672         (ia64_optimization_options): Rename to ia64_option_optimization.
12673         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
12674         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
12675         commented-out definition.
12676         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
12677         instead of OPTIMIZATION_OPTIONS.
12678         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
12679         (m32r_option_optimization): New.
12680         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
12681         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
12682         Remove.
12683         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
12684         (mcore_option_optimization): New.
12685         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
12686         * config/mep/mep-protos.h (mep_optimization_options): Remove.
12687         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
12688         (mep_optimization_options): Rename to mep_option_optimization.
12689         Make static.  Take unused level and size parameters.
12690         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
12691         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
12692         (mmix_option_optimization): New.
12693         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
12694         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
12695         (pdp11_option_optimization): New.
12696         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
12697         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
12698         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
12699         (optimization_options): Rename to rs6000_option_optimization.
12700         Make static.
12701         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
12702         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
12703         * config/rx/rx.c (rx_set_optimization_options): Rename to
12704         rx_option_optimization.  Make static.  Take unused level and size
12705         parameters.
12706         (TARGET_OPTION_OPTIMIZATION): Define.
12707         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
12708         * config/s390/s390-protos.h (optimization_options): Remove.
12709         * config/s390/s390.c (optimization_options): Rename to
12710         s390_option_optimization.  Make static.  Don't mark size parameter
12711         unused.
12712         (TARGET_OPTION_OPTIMIZATION): Define.
12713         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
12714         * config/sh/sh-protos.h (sh_optimization_options): Remove.
12715         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
12716         (sh_optimization_options): Rename to sh_option_optimization.  Make
12717         static.  Don't mark parameters unused.
12718         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
12719         * config/spu/spu-protos.h (spu_optimization_options): Remove.
12720         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
12721         (spu_optimization_options): Rename to spu_option_optimization.
12722         Make static.
12723         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
12724         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
12725         (v850_option_optimization): New.
12726         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
12727         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
12728         (xtensa_option_optimization): New.
12729         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
12730
12731 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
12732
12733         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
12734         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
12735         * doc/tm.texi: Regenerate.
12736         * system.h (OVERRIDE_OPTIONS): Poison.
12737         * target.def (override): Default to hook_void_void.
12738         * targhooks.c (default_target_option_override): Remove.
12739         * genmodes.c, machmode.def: Update comments mentioning
12740         OVERRIDE_OPTIONS.
12741         * config/alpha/alpha-modes.def: Update comment mentioning
12742         alpha_override_options.
12743         * config/alpha/alpha-protos.h (override_options): Remove.
12744         * config/alpha/alpha.c (override_options): Rename to
12745         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
12746         (TARGET_OPTION_OVERRIDE): Define.
12747         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
12748         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
12749         of OVERRIDE_OPTIONS.
12750         * config/arc/arc-protos.h (arc_init): Remove.
12751         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
12752         (arc_init): Rename to arc_option_override.  Make static.
12753         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
12754         (OVERRIDE_OPTIONS): Remove.
12755         * config/arm/arm-protos.h (arm_override_options): Remove.
12756         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
12757         (arm_override_options): Rename to arm_option_override.  Make
12758         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
12759         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
12760         * config/arm/arm.md: Update comment referring to arm_override_options.
12761         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
12762         instead of OVERRIDE_OPTIONS.
12763         * config/avr/avr-protos.h (avr_override_options): Remove.
12764         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
12765         (avr_override_options): Rename to avr_option_override.  Make static.
12766         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
12767         * config/bfin/bfin-protos.h (override_options): Remove (twice).
12768         * config/bfin/bfin.c (override_options): Rename to
12769         bfin_option_override.  Make static.
12770         (TARGET_OPTION_OVERRIDE): Define.
12771         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
12772         * config/cris/cris-protos.h (cris_override_options): Remove.
12773         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
12774         (cris_override_options): Rename to cris_option_override.  Make static.
12775         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
12776         * config/frv/frv-protos.h (frv_override_options): Remove.
12777         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
12778         (frv_override_options): Rename to frv_option_override.  Make static.
12779         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
12780         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
12781         * config/h8300/h8300.c (h8300_init_once): Rename to
12782         h8300_option_override.  Make static.
12783         (TARGET_OPTION_OVERRIDE): Define.
12784         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
12785         * config/i386/i386-protos.h (override_options): Remove.
12786         * config/i386/i386.c (override_options): Rename to
12787         ix86_option_override_internal.  Make static.  Comments referring
12788         to this function and callers changed.
12789         (ix86_option_override): New.
12790         (TARGET_OPTION_OVERRIDE): Define.
12791         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
12792         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
12793         * config/ia64/ia64.c (ia64_file_start): Update comment referring
12794         to ia64_override_options.
12795         * config/iq2000/iq2000-protos.h (override_options): Remove.
12796         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
12797         (override_options): Rename to iq2000_option_override.  Make static.
12798         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
12799         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
12800         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
12801         (lm32_override_options): Rename to lm32_option_override.  Make static.
12802         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
12803         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
12804         (m32r_option_override): New.
12805         (m32r_init): Update comment.
12806         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
12807         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
12808         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
12809         (m68hc11_override_options): Rename to m68hc11_option_override.
12810         Make static.  Return void.
12811         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
12812         * config/m68k/m68k-protos.h (override_options): Remove.
12813         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
12814         (override_options): Rename to m68k_option_override.  Make static.
12815         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
12816         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
12817         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
12818         (mcore_override_options): Rename to mcore_option_override.  Make
12819         static.
12820         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
12821         * config/mep/mep-protos.h (mep_override_options): Remove.
12822         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
12823         (mep_override_options): Rename to mep_option_override.  Make static.
12824         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
12825         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
12826         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
12827         (mmix_override_options): Rename to mmix_option_override.  Make static.
12828         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
12829         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
12830         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
12831         (mn10300_override_options): Rename to mn10300_option_override.
12832         Make static.
12833         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
12834         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
12835         * config/moxie/moxie.c (moxie_override_options): Rename to
12836         moxie_option_override.  Make static.
12837         (TARGET_OPTION_OVERRIDE): Define.
12838         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
12839         * config/picochip/picochip-protos.h (picochip_override_options):
12840         Remove.  Update comment referring to picochip_override_options.
12841         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
12842         (picochip_override_options): Rename to picochip_option_override.
12843         Make static.  Update comment and definition of
12844         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
12845         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
12846         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12847         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12848         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12849         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12850         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12851         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
12852         instead of OVERRIDE_OPTIONS.
12853         * config/rs6000/rs6000-modes.def: Update comment referring to
12854         rs6000_override_options.
12855         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
12856         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
12857         (rs6000_override_options): Rename to
12858         rs6000_option_override_internal.  Make static.  Commented
12859         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
12860         (rs6000_option_override): New.
12861         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
12862         instead of OVERRIDE_OPTIONS.
12863         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12864         * config/s390/s390-protos.h (override_options): Remove.
12865         * config/s390/s390.c (override_options): Rename to
12866         s390_option_override.  Make static.
12867         (TARGET_OPTION_OVERRIDE): Define.
12868         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
12869         * config/score/score-protos.h (score_override_options): Remove.
12870         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
12871         (score_override_options): Rename to score_option_override.  Make
12872         static.
12873         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
12874         Update comment referring to override_options.
12875         * config/score/score3.c (score3_override_options): Rename to
12876         score3_option_override.
12877         * config/score/score3.h (score3_override_options): Rename to
12878         score3_option_override.
12879         * config/score/score7.c (score7_override_options): Rename to
12880         score7_option_override.
12881         * config/score/score7.h (score7_override_options): Rename to
12882         score7_option_override.
12883         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
12884         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
12885         (sparc_override_options): Rename to sparc_option_override.  Make
12886         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
12887         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
12888         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
12889         instead of OVERRIDE_OPTIONS.
12890         * config/spu/spu-protos.h (spu_override_options): Remove.
12891         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
12892         (spu_override_options): Rename to spu_option_override.  Make
12893         static.
12894         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
12895         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
12896         OVERRIDE_OPTIONS.
12897         * config/vax/vax-protos.h (override_options): Remove.
12898         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
12899         (override_options): Rename to vax_option_override.  Make static.
12900         Call SUBTARGET_OVERRIDE_OPTIONS.
12901         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
12902         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
12903         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
12904         * config/xtensa/xtensa-protos.h (override_options): Remove.
12905         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
12906         (override_options): Rename to xtensa_option_override.  Make static.
12907         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
12908
12909 2010-09-16  Richard Guenther  <rguenther@suse.de>
12910
12911         PR tree-optimization/45623
12912         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
12913         (get_constraint_for_component_ref): If computing a constraint
12914         for the rhs handle type punning through unions.
12915         (get_constraint_for_address_of): Adjust.
12916         (get_constraint_for_1): Likewise.
12917         (get_constraint_for): Likewise.
12918         (get_constraint_for_rhs): New function.
12919         (do_structure_copy): Adjust.
12920         (make_constraint_to): Likewise.
12921         (handle_const_call): Likewise.
12922         (find_func_aliases): Likewise.
12923         (process_ipa_clobber): Likewise.
12924         (create_variable_info_for): Likewise.
12925
12926 2010-09-16  Ira Rosen  <irar@il.ibm.com>
12927
12928         * tree-vectorizer.c: Fix documentation.
12929         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
12930         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
12931         is_pattern_stmt_p, is_loop_header_bb_p,
12932         stmt_vinfo_set_inside_of_loop_cost,
12933         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
12934         known_alignment_for_access_p): Likewise.
12935         * tree-vect-loop.c: Fix documentation.
12936         (vect_get_cost): Start function name from new line.
12937         * tree-vect-data-refs.c: Fix documentation.
12938         * tree-vect_stmts.c: Likewise.
12939         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
12940         (vectorizable_store): Free vec_oprnds if allocated.
12941         (vectorizable_condition): Initialize several variables to avoid
12942         warnings.
12943         * tree-vect-slp.c: Fix documentation.
12944
12945 2010-09-16  Richard Guenther  <rguenther@suse.de>
12946
12947         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
12948         is TS_TRANSLATION_UNIT_DECL.
12949         (initialize_tree_contains_struct): Adjust.
12950         (all_translation_units): New global vector.
12951         (build_translation_unit_decl): New function.
12952         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
12953         (struct tree_translation_unit_decl): New.
12954         (all_translation_units): Declare.
12955         (union tree_node): Add translation_unit_decl member.
12956         (build_translation_unit_decl): Declare.
12957         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
12958         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
12959         New function.
12960         (pack_value_fields): Call it.
12961         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
12962         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
12963         (lto_output_tree_pointers): Call it.
12964         * lto-streamer-in.c (lto_input_tree_ref): Handle references
12965         to TRANSLATION_UNIT_DECL.
12966         (unpack_ts_translation_unit_decl_value_fields): New function.
12967         (unpack_value_fields): Call it.
12968         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
12969         (lto_input_tree_pointers): Call it.
12970         * lto-streamer.c (check_handled_ts_structures): Adjust.
12971         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
12972         * c-decl.c (all_translation_units): Remove.
12973         (pop_scope): Use build_translation_unit_decl.
12974         (collect_all_refs): Adjust.
12975         (for_each_global_decl): Likewise.
12976         (c_write_global_declarations): Likewise.
12977
12978 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
12979
12980         PR bootstrap/45686
12981         * fold-const.c (fold_checksum_tree): Change slot from const void **
12982         to void **, use CONST_CAST_TREE to store into *slot.
12983
12984 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
12985
12986         * config/i386/i386.md: Remove unneeded empty conditions and
12987         preparation statements from expanders.
12988         * config/i386/mmx.md: Ditto.
12989         * config/i386/sse.md: Ditto.
12990
12991 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
12992
12993         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
12994
12995 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12996
12997         PR rtl-optimization/45593
12998         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
12999         insns that were in delay slots as stand-alone insns.
13000
13001 2010-09-15  Ian Lance Taylor  <iant@google.com>
13002
13003         * incpath.c (remove_duplicates): If name is not a directory, issue
13004         a warning rather than an error.
13005
13006 2010-09-15  Martin Jambor  <mjambor@suse.cz>
13007
13008         PR middle-end/45644
13009         * tree-sra.c (create_access): Check for bit-fields directly.
13010
13011 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
13012
13013         PR tree-optimization/45633
13014         * tree-cfg.c (verify_gimple_assign_binary): Allow
13015         MINUS_EXPR with lhs and rhs1 pointer vector and
13016         rhs2 sizetype vector.
13017         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
13018         or vector pointer use TER to optimize pointer subtraction.
13019
13020 2010-09-15  Jie Zhang  <jie@codesourcery.com>
13021
13022         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
13023         fcmpd to fcmps.
13024
13025 2010-09-15  Ian Lance Taylor  <iant@google.com>
13026
13027         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
13028
13029 2010-09-15  Ian Lance Taylor  <iant@google.com>
13030
13031         * function.c (get_arg_pointer_save_area): Set
13032         arg_pointer_save_area_init to true.
13033
13034 2010-09-15  Martin Jambor  <mjambor@suse.cz>
13035
13036         * tree-sra.c (generate_subtree_copies): Updated comment.
13037         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
13038         obtained from the statement iterator instead.
13039         (load_assign_lhs_subreplacements): Removed parameters lhs and
13040         right_offset, which is obtained from top_racc instead.  Parameter lacc
13041         is now expected to be the root of the processed tree rather than root's
13042         first child.  Updated all callers.
13043
13044 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
13045
13046         * config/pdp11/pdp11.c (register_move_cost): Rename to
13047         pdp11_register_move_cost.
13048         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
13049         pdp11_register_move_cost.
13050         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
13051         pdp11_register_move_cost instead of register_move_cost.
13052
13053 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
13054
13055         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
13056         pattern for vmovn. Expansion in case of non
13057         -mvectorize-with-neon-quad.
13058         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
13059         non- -mvectorize-with-neon-quad case.
13060         (move_lo_quad_<mode>): New expansion to vmov into low part.
13061         (move_hi_quad_<mode>): New expansion to vmov into high part.
13062         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
13063         (move_lo_quad_v4sf): Likewise.
13064         (move_lo_quad_v8hi): Likewise.
13065         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
13066         low part.
13067         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
13068         high part.
13069         * config/arm/iterators.md (ANY128): New mode iterator.
13070         (V_narrow_pack): New mode attribute.
13071         (V_HALF): Add attribute.
13072         (V_DOUBLE): Add attribute.
13073         (V_mode_nunits): Add attribute.
13074
13075 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13076
13077         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
13078         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
13079
13080 2010-09-15  Olivier Hainque  <hainque@adacore.com>
13081             Jose Ruiz  <ruiz@adacore.com>
13082
13083         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
13084         * config/alpha/osf5-unwind.h: New file.
13085
13086 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13087
13088         PR bootstrap/45672
13089         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
13090         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
13091         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
13092
13093 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13094
13095         * c-lang.h (struct lang_type): Add variable_size GTY option.
13096
13097 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13098
13099         PR bootstrap/45672
13100         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
13101
13102 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13103
13104         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
13105         result isn't used in memory address.
13106
13107 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13108
13109         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
13110         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
13111         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
13112         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
13113         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
13114         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
13115
13116         * target.def: Add units_per_simd_word to vectorize.
13117
13118         * targhooks.c (default_units_per_simd_word): New.
13119         * targhooks.h (default_units_per_simd_word): Likewise.
13120         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
13121         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13122         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
13123         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13124         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
13125         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13126         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
13127         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13128
13129         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
13130         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
13131
13132         * tree-vect-stmts.c: Don't include "tm_p.h".
13133         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
13134         with targetm.vectorize.units_per_simd_word.
13135
13136         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
13137
13138         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
13139
13140         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
13141         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
13142
13143         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
13144         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
13145
13146         * doc/tm.texi: Regenerated.
13147
13148 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13149
13150         * tree-vect-stmts.c: Include "tm_p.h".
13151
13152         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
13153         out of RTX_CODE.
13154
13155 2010-09-14  Martin Jambor  <mjambor@suse.cz>
13156
13157         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
13158         location of generated statement.  Changed all callers.
13159         (build_ref_for_model): New parameter loc which used to set location of
13160         all generated expressions.  Changed all callers.
13161         (generate_subtree_copies): Likewise.
13162         (init_subtree_with_zero): Likewise.
13163         (sra_modify_expr): Set locations of all generated statements and
13164         expressions to the location the original statement.
13165         (handle_unscalarized_data_in_subtree): Likewise.
13166         (load_assign_lhs_subreplacements): Likewise.
13167         (sra_modify_constructor_assign): Likewise.
13168         (sra_modify_assign): Likewise.
13169
13170 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
13171
13172         PR target/45277
13173         PR target/45363
13174         PR target/45407
13175         * doc/install.texi (sparc*-*-*): New section.
13176         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
13177
13178 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
13179
13180         PR middle-end/45567
13181         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
13182         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
13183         (expand_builtin): Adjust caller.
13184         (expand_builtin_unop): Only use subtarget if it has the right mode.
13185
13186 2010-09-14  Tristan Gingold  <gingold@adacore.com>
13187
13188         * configure.ac (plugins): Fix typos.
13189         * configure: Regenerate.
13190
13191 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
13192
13193         PR debug/45660
13194         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
13195         gen_type_die for function/method return type.
13196
13197 2010-09-14  Ira Rosen  <irar@il.ibm.com>
13198
13199         PR tree-optimization/45470
13200         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
13201         can throw an exception.
13202         * tree-vect-stmts.c (vectorizable_call): Likewise.
13203
13204 2010-09-14  DJ Delorie  <dj@redhat.com>
13205
13206         PR target/44749
13207         * config/mep/mep-protos.h (mep_save_register_info,
13208         mep_reinit_regs, mep_init_regs): Declare.
13209
13210         * config/mep/mep.c: Move all target definitions to the end of the
13211         file to avoid the need for duplicate declarations.
13212         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
13213         (mep_reorg_erepeat): Remove unused variables.
13214         (mep_expand_builtin): Likewise.
13215
13216         * config/mep/mep-pragma.c: Don't include rtl.h.
13217         (INVALID_REGNUM): New.
13218         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
13219         functions.
13220         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
13221         Avoid enum/integer math.
13222
13223 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
13224
13225         PR target/44749
13226         * config/mep/t-mep (GTM_H): Add insn-constants.h.
13227         * config/mep/mep.c (mep_conditional_register_usage): Take no
13228         parameters.
13229         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
13230         prototype.
13231         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
13232         call to mep_conditional_register_usage.
13233
13234 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
13235
13236         PR debug/43937
13237         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
13238         the DECL as well.
13239
13240 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
13241
13242         PR rtl-optimization/45617
13243         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
13244         even if low N bits of X aren't known to be zero.
13245
13246 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
13247
13248         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
13249
13250         * config/i386/i386.c (initial_ix86_tune_features): Add
13251         X86_TUNE_VECTORIZE_DOUBLE.
13252         (ix86_units_per_simd_word): New.
13253
13254         * config/i386/i386.h (ix86_tune_indices): Add
13255         X86_TUNE_VECTORIZE_DOUBLE.
13256         (TARGET_VECTORIZE_DOUBLE): New.
13257         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
13258
13259 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
13260
13261         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
13262         (new_temp_expr_table): Allocate call_cnt vector.
13263         (free_temp_expr_table): Free it.
13264         (process_replaceable): Add call_cnt parm and set in vector.
13265         (find_replaceable_in_bb): Skip replacement if def/use span a call.
13266         (debug_ter): Dump call_cnt value, remove stderr uses.
13267
13268 2010-09-13  Jan Hubicka  <jh@suse.cz>
13269
13270         * tree.c (build_zero_cst): New.
13271         * tree.h (build_zero_cst): Declare.
13272         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
13273         (get_base_constructor): Break out from ...
13274         (fold_const_aggregate_ref): Here; handle empty constructors.
13275
13276 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13277
13278         * config/arm/arm.md: (define_attr "conds"): Update comment.
13279         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
13280         conds attribute to clob.
13281         (arm_sync_compare_and_swapsi): Likewise.
13282         (arm_sync_compare_and_swap<mode>): Likewise.
13283         (arm_sync_lock_test_and_setsi): Likewise.
13284         (arm_sync_lock_test_and_set<mode>): Likewise.
13285         (arm_sync_new_<sync_optab>si): Likewise.
13286         (arm_sync_new_nandsi): Likewise.
13287         (arm_sync_new_<sync_optab><mode>): Likewise.
13288         (arm_sync_new_nand<mode>): Likewise.
13289         (arm_sync_old_<sync_optab>si): Likewise.
13290         (arm_sync_old_nandsi): Likewise.
13291         (arm_sync_old_<sync_optab><mode>): Likewise.
13292         (arm_sync_old_nand<mode>): Likewise.
13293
13294 2010-09-13  Olivier Hainque  <hainque@adacore.com>
13295
13296         * fwprop.c (forward_propagate_and_simplify): Only attach a
13297         REG_EQUAL note to an insn if the destination is a register.
13298         * gcse.c (try_replace_reg): Likewise.
13299
13300 2010-09-13  Richard Guenther  <rguenther@suse.de>
13301
13302         PR tree-optimization/45611
13303         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
13304         (copy_ref_info): Likewise.
13305
13306 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
13307
13308         PR debug/45604
13309         PR debug/45419
13310         PR debug/45408
13311         * tree-pretty-print.c (dump_generic_node): Disregard top-level
13312         types of MEM_REF pointer types to the same type.
13313
13314 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
13315
13316         PR rtl-optimization/41087
13317         * ifcvt.c (noce_get_condition): Don't allow conditions with
13318         side-effects.
13319
13320 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
13321
13322         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13323         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
13324         * config/frv/frv.c (frv_register_move_cost): Make static. Change
13325         arguments type to reg_class_t. Add mode argument.
13326         (frv_memory_move_cost): New.
13327         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
13328
13329 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
13330
13331         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
13332         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
13333
13334 2010-09-10  Jan Hubicka  <jh@suse.cz>
13335
13336         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
13337
13338 2010-09-10  Richard Guenther  <rguenther@suse.de>
13339
13340         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
13341         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
13342         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
13343         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
13344         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
13345
13346 2010-09-10  Richard Guenther  <rguenther@suse.de>
13347
13348         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
13349         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
13350         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
13351         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
13352
13353 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
13354
13355         PR middle-end/45634
13356         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
13357         of string folding is of integral type.
13358
13359 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
13360
13361         * doc/invoke.texi (-x): Fix typo.
13362
13363 2010-09-10  Richard Guenther  <rguenther@suse.de>
13364
13365         PR debug/44115
13366         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
13367         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
13368         Output DECL_DEBUG_EXPR.
13369         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
13370         Input DECL_DEBUG_EXPR.
13371
13372 2010-09-10  Richard Guenther  <rguenther@suse.de>
13373
13374         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
13375         (build_index_type): Implement in terms of build_range_type.
13376         (build_range_type): Do not allow NULL_TREE type, improve
13377         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
13378         if we didn't hash.
13379         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
13380         create a distinct copy of the type.
13381
13382 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
13383
13384         * configure: Regenerated.
13385         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
13386
13387 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13388
13389         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
13390         * config/arm/cortex-a9-neon.md: New and partially generated.
13391         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
13392
13393 2010-09-10  Richard Guenther  <rguenther@suse.de>
13394
13395         * tree.h (build_index_2_type): Remove.
13396         * tree.c (build_index_2_type): Remove.
13397
13398 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
13399
13400         PR bootstrap/45630
13401         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
13402         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
13403         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
13404
13405 2010-09-10  Martin Jambor  <mjambor@suse.cz>
13406
13407         PR tree-optimization/44972
13408         * tree-sra.c: Include toplev.h.
13409         (build_ref_for_offset): Entirely reimplemented.
13410         (build_ref_for_model): New function.
13411         (build_user_friendly_ref_for_offset): New function.
13412         (analyze_access_subtree): Removed build_ref_for_offset check.
13413         (propagate_subaccesses_across_link): Likewise.
13414         (create_artificial_child_access): Use
13415         build_user_friendly_ref_for_offset.
13416         (propagate_subaccesses_across_link): Likewise.
13417         (ref_expr_for_all_replacements_p): Removed.
13418         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
13419         (sra_modify_expr): Use build_ref_for_model.
13420         (load_assign_lhs_subreplacements): Likewise.
13421         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
13422         checks for return values of build_ref_for_offset.
13423         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
13424         build_ref_for_offset.
13425         * ipa-prop.h: Include gimple.h
13426         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
13427         (ipa_analyze_indirect_call_uses): Update comment.
13428         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
13429         (IPA_PROP_H): Likewise.
13430
13431 2010-09-10  Martin Jambor  <mjambor@suse.cz>
13432
13433         PR tree-optimization/44972
13434         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
13435         calling build_ref_for_offset.
13436
13437 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13438
13439         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
13440         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
13441         * config/arm/arm-tune.md: Regenerate.
13442         * doc/invoke.texi (ARM Options): Document it.
13443
13444 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
13445
13446         * config/i386/i386.c: Include sched-int.h.
13447         (TARGET_SCHED_DISPATCH): Defined.
13448         (TARGET_SCHED_DISPATCH_DO): Defined.
13449         (DISPATCH_WINDOW_SIZE): Defined.
13450         (MAX_DISPATCH_WINDOWS): Defined.
13451         (MAX_INSN): Defined.
13452         (MAX_IMM): Defined.
13453         (MAX_IMM_SIZE): Defined.
13454         (MAX_IMM_32): Defined.
13455         (MAX_IMM_64): Defined.
13456         (MAX_LOAD): Defined.
13457         (MAX_STORE): Defined.
13458         (BIG): Defined.
13459         (dispatch_group): New.
13460         (num_allowable_groups): New.
13461         (group_name): New.
13462         (sched_insn_info_s): New.
13463         (dispatch_windows_s): New.
13464         (imm_info_s): New.
13465         (dispatch_window_list): New.
13466         (dispatch_window_list1): New.
13467         (get_mem_group): New.
13468         (is_cmp): New.
13469         (dispatch_violation): New.
13470         (is_branch): New.
13471         (is_prefetch): New.
13472         (init_window): New.
13473         (allocate_window): New.
13474         (init_dispatch_sched): New.
13475         (is_end_basic_block): New.
13476         (process_end_window): New.
13477         (allocate_next_window): New.
13478         (find_constant_1): New.
13479         (find_constant): New.
13480         (get_num_immediates): New.
13481         (has_immediate): New.
13482         (get_insn_path): New.
13483         (get_insn_group): New.
13484         (count_num_restricted): New.
13485         (fits_dispatch_window): New.
13486         (add_insn_window): New.
13487         (add_to_dispatch_window): New.
13488         (debug_dispatch_window_file): New.
13489         (debug_dispatch_window): New.
13490         (debug_insn_dispatch_info_file): New.
13491         (debug_ready_dispatch): New.
13492         (do_dispatch): New.
13493         (has_dispatch): New.
13494         * config/i386/i386.h (debug_ready_dispatch): Declared.
13495         (debug_dispatch_window): Declared.
13496         * config/i386/i386.opt (mdispatch-scheduler): New flag.
13497         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
13498         (TARGET_SCHED_DISPATCH_DO): New.
13499         * doc/tm.texi: Regererated.
13500         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
13501         ready_remove_first_dispatch
13502         (schedule_block): Call targetm.sched.dispatch and
13503         targetm.sched.dispatch_do.
13504         (sched_init): Call targetm.sched.dispatch and
13505         targetm.sched.dispatch_do.
13506         (ready_remove_first_dispatch): New.
13507         (number_in_ready): New.
13508         (get_ready_element): New.
13509         * hooks.c (hook_bool_rtx_int_false): New.
13510         (hook_void_rtx_int): New.
13511         * hooks.h (hook_bool_rtx_int_false): Declared.
13512         (hook_void_rtx_int): Declared.
13513         * sched-int.h (IS_DISPATCH_ON): Defined.
13514         (IS_CMP): Defined.
13515         (DISPATCH_VIOLATION): Defined.
13516         (FITS_DISPATCH_WINDOW): Defined.
13517         (DISPATCH_INIT): Defined.
13518         (ADD_TO_DISPATCH_WINDOW): Defined.
13519         (get_ready_element): Declared.
13520         (number_in_ready): Declared.
13521         * target.def (dispatch): Defined.
13522         (dispatch_do): Defined.
13523
13524 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
13525
13526         PR middle-end/45312
13527         * reload1.c (merge_assigned_reloads): Remove.
13528         (reload_as_needed): Don't call it.
13529
13530 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
13531
13532         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
13533         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13534         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13535
13536 2010-09-09  Matthias Klose  <doko@ubuntu.com>
13537
13538         PR bootstrap/43847
13539         * configure.ac (--enable-plugin): Enhance for cross builds.
13540         * configure: Regenerate.
13541
13542 2010-09-09  Jan Hubicka  <jh@suse.cz>
13543
13544         PR tree-optimization/45598
13545         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
13546         string folding is of integral type.
13547
13548 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
13549
13550         * configure.ac (gnu_indirect_function): New test.
13551         * configure: Rebuilt.
13552         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
13553         * defaults.h (IFUNC_ASM_TYPE): Provide default.
13554
13555         * doc/extend.texi (Function Attributes): Document ifunc.
13556         * varasm.c (do_assemble_alias): Deal with ifuncs too.
13557
13558 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
13559
13560         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
13561         epilogue instruction move.
13562
13563 2010-09-09  Jan Hubicka  <jh@suse.cz>
13564
13565         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
13566         command line to allow more partitions than input files.
13567
13568 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
13569
13570         PR middle-end/44554
13571         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
13572
13573 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
13574
13575         PR middle-end/40386
13576         * ira.c (pseudo_for_reload_consideration_p): Don't use
13577         flag_ira_share_spill_slots.
13578
13579 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13580
13581         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
13582         point zero operands that fit into a single GPR.
13583         (s390_preferred_reload_class): Ensure we only return general-purpose
13584         register classes.
13585         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
13586         floating-point zero operands into GPRs.
13587         ("*mov<mode>_64"): Likewise.
13588         ("mov<mode>"): Likewise using lhi.
13589
13590 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13591
13592         * config/s390/s390.c (s390_symref_operand_p): Return false for
13593         literal pool references.
13594         (s390_check_qrst_address): Update caller.
13595
13596 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
13597
13598         * config/i386/predicates.md (ext_register_operand): Check that
13599         SUBREG_REG is really a register before looking for REGNO.
13600         (reg_not_xmm0_operand): Handle SUBREGs correctly.
13601         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
13602
13603 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
13604
13605         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
13606         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
13607         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
13608         * print-rtl.c (print_rtx): Likewise.
13609         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
13610         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
13611         for ADDR_EXPR with non-addressable object.
13612         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
13613         (struct dw_val_struct): Add v.val_decl_ref.
13614         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
13615         Handle DW_OP_GNU_implicit_pointer.
13616         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
13617         (get_ref_die_offset_label): New function.
13618         (implicit_ptr_descriptor): New function.
13619         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
13620         (loc_descriptor): Likewise.
13621         (gen_variable_die): Put even definitions into decl_die_table.
13622         (resolve_addr_in_expr): Resolve still unresolved
13623         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
13624         return false.
13625         (dwarf2out_finish): Call output_location_lists after outputting
13626         .debug_info and .debug_abbrev instead of before.
13627
13628 2010-09-09  Roland McGrath  <roland@redhat.com>
13629
13630         * dwarf2out.c (DWARF_REF_SIZE): Define.
13631         (size_of_loc_descr): Use it for DW_OP_call_ref.
13632
13633 2010-09-09  Alan Modra  <amodra@gmail.com>
13634
13635         * doc/invoke.text: Reinstate mcmodel=medium.
13636         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
13637         CMODEL_MEDIUM as default.
13638         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
13639         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
13640         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
13641         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
13642
13643 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13644
13645         PR target/45250
13646         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
13647         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
13648         (builtin_longjmp): Likewise.
13649         (allocate_stack): Use hard_frame_pointer_rtx instead of
13650         frame_pointer_rtx.
13651         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
13652         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
13653         (pa_can_eliminate): Likewise.
13654         (TARGET_INTERNAL_ARG_POINTER): Define.
13655         (TARGET_CAN_ELIMINATE): Define.
13656         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
13657         pointer.
13658         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
13659         (pa_internal_arg_pointer, pa_can_eliminate,
13660         pa_initial_elimination_offset): New.
13661         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
13662         (HARD_FRAME_POINTER_REGNUM): Set to register three.
13663         (INITIAL_FRAME_POINTER_OFFSET): Delete.
13664         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
13665         Define.
13666         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
13667         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
13668         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
13669         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
13670         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
13671         new soft frame pointer.
13672         * config/pa/pa64-regs.h: Likewise.
13673
13674 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
13675
13676         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
13677         numerical constant.
13678         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
13679
13680 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
13681
13682         PR debug/45531
13683         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
13684
13685 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
13686
13687         PR debug/45419
13688         PR debug/45408
13689         * tree-pretty-print.c (dump_generic_node): Disregard top-level
13690         qualifiers in otherwise equal MEM_REF pointer types.
13691         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
13692         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
13693
13694 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13695
13696         PR target/44392
13697         * config/arm/arm.md (bswapsi2): Handle condition correctly
13698         for armv6 and optimize_size.
13699
13700 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13701
13702         PR other/18555
13703         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
13704
13705 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
13706
13707         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
13708         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
13709         ix86_expand_strlen, legitimate_pic_address_disp_p,
13710         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
13711         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
13712         ix86_check_movabs, ix86_secondary_memory_needed): Change function
13713         prototype to bool.
13714         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
13715         return_in_memory_ms_64, ix86_check_movabs,
13716         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
13717         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
13718         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
13719         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
13720         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
13721         ix86_secondary_memory_needed): Change to bool.  Return
13722         "true" and "false" values.
13723         * config/i386/i386.md: Return "true" and "false" values.
13724
13725 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13726
13727         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13728         run_expensive_tests.
13729
13730 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13731
13732         * toplev.c (output_stack_usage): Use lbasename instead of basename.
13733
13734 2010-09-08  Martin Jambor  <mjambor@suse.cz>
13735
13736         PR other/45443
13737         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
13738         at -O3.
13739
13740 2010-09-08  Richard Guenther  <rguenther@suse.de>
13741
13742         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
13743         (visit): Adjust.
13744         (iterative_hash_gimple_type): Likewise.
13745         (gimple_type_hash): Likewise.
13746         (gimple_register_type): Likewise.
13747         (print_gimple_types_stats): Likewise.
13748         (free_gimple_type_tables): Likewise.
13749
13750 2010-09-08  Michael Matz  <matz@suse.de>
13751
13752         PR tree-optimization/43430
13753         * tree-vect-stmts.c (vectorizable_condition): Support multiple
13754         copies for conditional statements if it's not part of a reduction.
13755
13756 2010-09-08  Michael Matz  <matz@suse.de>
13757
13758         PR tree-optimization/33244
13759         * tree-ssa-sink.c (statement_sink_location): Don't sink into
13760         empty loop latches.
13761
13762 2010-09-08  Richard Guenther  <rguenther@suse.de>
13763
13764         PR tree-optimization/45578
13765         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
13766         Be more careful when transfering alignment information to
13767         the new induction variable.
13768         (copy_ref_info): Likewise.
13769
13770 2010-09-08  Richard Guenther  <rguenther@suse.de>
13771
13772         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
13773         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
13774
13775 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
13776
13777         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
13778         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
13779
13780 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
13781
13782         PR doc/45587
13783         * doc/md.texi: Fixed modes on several standard pattern names.
13784
13785 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
13786
13787         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
13788         (ashl<mode>3): ...this.
13789         (loongson_psra<V_suffix>): Rename to...
13790         (ashr<mode>3): ...this.
13791         (loongson_psrl<V_suffix>): Rename to...
13792         (lshr<mode>3): ...this.
13793         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
13794         (CODE_FOR_loongson_psllw): Define.
13795         (CODE_FOR_loongson_psrlh): Define.
13796         (CODE_FOR_loongson_psrlw): Define.
13797         (CODE_FOR_loongson_psrah): Define.
13798         (CODE_FOR_loongson_psraw): Define.
13799
13800 2010-09-07  Richard Henderson  <rth@redhat.com>
13801
13802         * tree-vect-data-refs.c: Include tm_p.h.
13803         * Makefile.in (tree-vect-data-refs.o): Update deps.
13804         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
13805         Move delarations outside #ifdef RTX_CODE.
13806
13807 2010-09-07  Richard Henderson  <rth@redhat.com>
13808
13809         * final.c (rest_of_handle_final): Unconditionally do
13810         output_function_exception_table before assemble_end_function.
13811
13812 2010-09-07  Jan Hubicka  <jh@suse.cz>
13813
13814         * tree-inline.c (tree_inlinable_function_p): Do not test
13815         DECL_REPLACEABLE_P.
13816         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
13817         update_callee_keys, cgraph_decide_inlining): Test function availability.
13818         * cif-code.def (OVERWRITABLE): New code.
13819
13820 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
13821             Jack Howarth  <howarth@bromo.med.uc.edu>
13822
13823         PR target/36502
13824         PR target/42313
13825         PR target/44651
13826         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
13827         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
13828         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
13829         MAX macro.
13830
13831 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13832
13833         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
13834         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
13835
13836 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13837
13838         * config.gcc: Don't append t-android for Android targets.
13839
13840         * config/t-android: Removed.
13841
13842 2010-09-07  Richard Henderson  <rth@redhat.com>
13843
13844         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
13845         * doc/tm.texi.in: Add doc marker.
13846         * doc/tm.texi: Rebuild.
13847         * except.c (switch_to_exception_section): Always build.
13848         (output_one_function_exception_table): Move section switch,
13849         personality output, and label output ...
13850         (output_function_exception_table): ... here.  Use the new
13851         personality hook.
13852
13853         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
13854         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
13855         TARGET_ASM_INIT_SECTIONS): New.
13856         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
13857         make static.
13858         (TARGET_ASM_UNWIND_EMIT): Update to match.
13859         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
13860
13861         * config/arm/arm.c (arm_asm_emit_except_personality): New.
13862         (arm_asm_init_sections): New.
13863         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
13864
13865 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13866
13867         * config/arm/arm.md: Remove unused variable.
13868
13869 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
13870
13871         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13872         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
13873         (m32r_memory_move_cost): New function.
13874
13875 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13876
13877         * config.gcc: Append t-android for Android targets.
13878
13879         * config/t-android: New.
13880
13881 2010-09-07  Richard Henderson  <rth@redhat.com>
13882
13883         * target.def (unwind_emit_before_insn): New hook.
13884         * doc/tm.texi.in: Add @hook marker for it.
13885         * doc/tm.texi: Rebuild.
13886         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
13887
13888 2010-09-07  Martin Jambor  <mjambor@suse.cz>
13889
13890         PR fortran/43665
13891         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
13892         are any type attributes.
13893
13894 2010-09-07  Jan Hubicka  <jh@suse.cz>
13895
13896         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
13897         array_ref_low_bound in string access folding.
13898
13899 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
13900
13901         PR target/45206
13902         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
13903         eh_return fixup sequence.
13904
13905 2010-09-07  Jan Hubicka  <jh@suse.cz>
13906
13907         * gimple-fold.c (maybe_fold_reference): Verify that operand is
13908         gimple_min_invariant.
13909
13910 2010-09-07  Richard Guenther  <rguenther@suse.de>
13911
13912         PR middle-end/45569
13913         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
13914         nor CONSTRUCTOR can trap.
13915         * tree-complex.c (update_complex_assignment): Update EH info.
13916
13917 2010-09-07  Richard Guenther  <rguenther@suse.de>
13918
13919         PR middle-end/45569
13920         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
13921         * passes.c (execute_function_todo): Do not verify anything if
13922         we saw errors.
13923
13924 2010-09-07  Richard Guenther  <rguenther@suse.de>
13925
13926         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
13927
13928 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
13929
13930         PR target/43137
13931         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
13932         New define_mode_attrs.
13933         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
13934         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
13935         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
13936         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
13937         Remove pool_range attribute.
13938         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
13939         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
13940         pool_range and neg_pool_range attributes.
13941         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
13942         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
13943         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
13944
13945 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13946
13947         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
13948         check glibc.
13949
13950 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
13951
13952         PR target/22152
13953         * config/i386/mmx.md (*mov<mode>_internal_rex64,
13954         *mov<mode>_internal_avx, *mov<mode>_internal,
13955         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
13956         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
13957
13958 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
13959
13960         * c-typeck.c (do_warn_double_promotion): Remove.
13961         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
13962         Objective-C++ too.
13963
13964 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
13965
13966         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
13967         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
13968         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
13969         argument type to reg_class_t. Change result type to bool.
13970         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13971
13972 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
13973
13974         PR libobjc/19850
13975         * gthr-posix.h (__gthread_objc_thread_detach): Use
13976         _objc_thread_attribs when detaching a thread.
13977         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
13978
13979 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13980
13981         PR target/45524
13982         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
13983         * configure: Regenerated.
13984
13985 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13986
13987         * combine.c (try_combine): Set subst_low_luid to i0.
13988
13989 2010-09-06  Richard Guenther  <rguenther@suse.de>
13990
13991         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
13992         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
13993         (build_aligned_type): Declare.
13994         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
13995         (check_aligned_type): New function.
13996         (build_aligned_type): Likewise.
13997         * expr.c (expand_assignment): Handle misaligned stores via
13998         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
13999         (expand_expr_real_1): Likewise.
14000         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
14001         * tree-vect-stmts.c (vectorizable_store): Do not build
14002         MISALIGNED_INDIRECT_REF but initialize alignment information.
14003         (vectorizable_load): Likewise.
14004         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
14005         handling.
14006         * cfgexpand.c (expand_debug_expr): Likewise.
14007         * dwarf2out.c (loc_list_from_tree): Likewise.
14008         * fold-const.c (maybe_lvalue_p): Likewise.
14009         (operand_equal_p): Likewise.
14010         (build_fold_addr_expr_with_type_loc): Likewise.
14011         * gimplify.c (gimplify_addr_expr): Likewise.
14012         (gimplify_expr): Likewise.
14013         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
14014         (verify_gimple_assign_single): Likewise.
14015         * tree-dump.c (dequeue_and_dump): Likewise.
14016         (tree_could_trap_p): Likewise.
14017         * tree-predcom.c (ref_at_iteration): Likewise.
14018         * tree-pretty-print.c (dump_generic_node): Likewise.
14019         (op_code_prio): Likewise.
14020         (op_symbol_code): Likewise.
14021         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
14022         * tree-ssa-loop-im.c (for_each_index): Likewise.
14023         (gen_lsm_tmp_name): Likewise.
14024         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
14025         (find_interesting_uses_address): Likewise.
14026         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
14027         * tree-ssa-operands.c (get_expr_operands): Likewise.
14028         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14029         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
14030         (ao_ref_init_from_vn_reference): Likewise.
14031         * tree.c (staticp): Likewise.
14032         (build1_stat): Likewise.
14033         (reference_alias_ptr_type): Likewise.
14034         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
14035         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
14036         MISALIGNED_INDIRECT_REF handling.
14037
14038 2010-09-06  Richard Guenther  <rguenther@suse.de>
14039
14040         PR tree-optimization/45534
14041         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
14042         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
14043         on the target.
14044         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
14045         valid on the target.
14046
14047 2010-09-06  Andreas Schwab  <schwab@redhat.com>
14048
14049         * configure.ac: Quote argument of AC_MSG_WARN.
14050         * configure: Regenerate.
14051
14052 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
14053
14054         * sel-sched.c (move_cond_jump): Correct arguments to
14055         maybe_tidy_empty_bb.
14056         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
14057
14058 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
14059
14060         PR rtl-optimization/44919
14061         * sel-sched.c (move_cond_jump): Remove assert, check that
14062         the several blocks case can only happen with mutually exclusive
14063         insns instead.  Rewrite the movement code to support moving through
14064         several basic blocks.
14065
14066 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
14067
14068         * config/i386/i386.md (iptrsize): New mode attribute.
14069         (tp_seg): Ditto.
14070         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
14071         mode iterator.
14072         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
14073         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
14074         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
14075         (stack_tls_protect_set_<mode>): Ditto from
14076         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
14077         of thread base pointer load.
14078         (stack_tls_protect_test_<mode>): Ditto from
14079         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
14080         of thread base pointer load.
14081         (stack_protect_set): Rewrite using indirect functions.
14082         (stack_protect_test): Ditto.
14083         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
14084         (ix86_print_operand): Handle '@'.
14085
14086 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
14087
14088         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
14089         MINUS_EXPR.
14090
14091 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
14092
14093         * doc/invoke.texi: Document -Wdouble-promotion.
14094         * c-typeck.c (convert_arguments): Check for implicit conversions
14095         from float to double.
14096         (do_warn_double_promotion): New function.
14097         (build_conditional_expr): Use it.
14098         (build_binary_op): Likewise.
14099
14100 2010-09-05  Richard Guenther  <rguenther@suse.de>
14101
14102         PR tree-optimization/45535
14103         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
14104         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
14105         dereferencing it.
14106         (indirect_refs_may_alias_p): Likewise.
14107
14108 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
14109
14110         * config/sh/sh.c (sh_option_override): Make static.
14111         Adjust comments.  Declare.
14112         (sh_function_value_regno_p): Likewise.
14113         (sh_register_move_cost): Modify the arguments, make static.
14114         Adjust comments.  Declare.
14115         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
14116         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14117         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
14118         REGISTER_MOVE_COST): Delete.
14119         * config/sh/sh-protos.h (sh_override_options): Delete.
14120         (sh_register_move_cost): Delete.
14121         (sh_function_value_regno_p): Delete.
14122
14123 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
14124
14125         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
14126         m32r_function_value_regno_p): New functions.
14127         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14128         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
14129         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
14130         FUNCTION_VALUE_REGNO_P): Remove.
14131
14132 2010-09-04  Jan Hubicka  <jh@suse.cz>
14133
14134         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
14135         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
14136         fold_read_from_constant_string.
14137
14138         * gimple.h (canonicalize_constructor_val): Declare.
14139         * gimple-fold.c (canonicalize_constructor_val): New function.
14140         (get_symbol_constant_value):Use it.
14141         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
14142
14143 2010-09-04  Jan Hubicka  <jh@suse.cz>
14144
14145         * tree-switch-conversion.c (build_one_array): Set constructor to be
14146         static.
14147         * varpool.c (varpool_finalize_decl): Compute const_value_known.
14148
14149 2010-09-04  Richard Guenther  <rguenther@suse.de>
14150
14151         PR bootstrap/45519
14152         * tree-flow.h (force_gimple_operand_1): Declare.
14153         (force_gimple_operand_gsi_1): Likewise.
14154         * gimplify.c (force_gimple_operand_1): New worker taking a
14155         gimple predicate for ...
14156         (force_gimple_operand): ... which now wraps it.
14157         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
14158         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
14159         last change.
14160         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
14161         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
14162         (create_mem_ref): Likewise.
14163
14164 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
14165
14166         * config/i386/predicates.md (sse_reg_operand): New predicate.
14167         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
14168         predicate for operand 1.
14169         (XFmode push splitter): Use fp_register_operand predicate
14170         for operand 1.
14171         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
14172         (SF-DF float_extend push splitter): Add reload_completed insn
14173         predicate.
14174         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
14175         MODEF mode macro.  Add reload_completed insn predicate.
14176
14177 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
14178
14179         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
14180         (struct df_extract_ref): Remove.
14181         (union df_ref_d): Remove extract_ref member.
14182         (df_ref_create): Remove last three arguments.
14183         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
14184         * df-scan.c (df_ref_record): Remove last three arguments, do not
14185         pass them to df_ref_create_structure.
14186         (df_uses_record): Remove first and last three arguments.  Replace
14187         first argument with DF_REF_REGULAR, adjust calls to remove the
14188         width, offset and mode.  Always call recursively on the second
14189         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
14190         (df_ref_create_structure): Remove first argument.
14191         (struct df_scan_problem_data): Remove ref_extract_pool.
14192         (df_scan_free_internal): Do not free it.
14193         (df_scan_alloc): Do not allocate it.
14194         (df_ref_create): Remove last three arguments, do not pass them to
14195         df_ref_create_structure.
14196         (df_free_ref): Remove DF_REF_EXTRACT case.
14197         (df_notes_rescan): Adjust call to df_uses_record.
14198         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
14199         Remove DF_REF_EXTRACT case.
14200         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
14201         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
14202         and SUBREG definitions.
14203         (df_get_conditional_uses): Remove references to width/offset/mode,
14204         adjust call to df_ref_create_structure.
14205         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
14206         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
14207         calls to df_uses_record and df_ref_record.
14208         * fwprop.c (update_df): Remove references to width/offset/mode,
14209         adjust call to df_ref_create.
14210
14211 2010-09-03  Jan Hubicka  <jh@suse.cz>
14212
14213         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
14214         (build_cdtor_fns): Update use of build_cdtor.
14215
14216 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
14217
14218         * doc/options.texi (SeparateAlias): Document.
14219         * opt-functions.awk (switch_flags): Handle SeparateAlias.
14220         * opth-gen.awk: Generate enumeration names for options marked
14221         SeparateAlias, but not for those marked Ignore.
14222         * opts-common.c (generate_canonical_option): Don't output separate
14223         argument for options marked CL_SEPARATE_ALIAS.
14224         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
14225         * opts.h (CL_SEPARATE_ALIAS): New.
14226         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
14227         CL_COMMON): Adjust definitions.
14228         * config/i386/darwin.opt, config/mips/sde.opt: New.
14229         * common.opt (fdump-final-insns): New.
14230         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14231         i386/darwin.opt.
14232         (mips*-sde-elf*): Add mips/sde.opt.
14233         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
14234         -mno-data-in-code and -mcode-xonly here.
14235         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
14236         * gcc.c (option_map): Add "j" to --dump entry.
14237         (translate_options): Don't translate -d to -foutput-class-dir= here.
14238
14239 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
14240
14241         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
14242         DR_IS_WRITE.
14243         (compute_all_dependences): Same.
14244         (create_rdg_edge_for_ddr): Same.
14245         * tree-data-ref.h (DR_IS_WRITE): New.
14246         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
14247         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
14248         (write_memrefs_written_at_least_once): Same.
14249         * tree-predcom.c (suitable_component_p): Same.
14250         (determine_roots_comp): Same.
14251         (execute_load_motion): Same.
14252         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
14253         (vect_enhance_data_refs_alignment): Same.
14254         (vect_analyze_group_access): Same.
14255
14256 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
14257
14258         PR testsuite/42843
14259         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
14260         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
14261
14262 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
14263
14264         * dwarf2out.c (file scope): Remove #if0'd code.
14265         (gen_subprogram_die): Same.
14266
14267 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
14268
14269         PR middle-end/45484
14270         * dwarf2out.c (flush_queued_reg_saves): Rename to...
14271         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
14272         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
14273         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
14274         * config/i386/i386.c (output_set_got): Call it.
14275
14276 2010-09-03  Michael Matz  <matz@suse.de>
14277
14278         PR middle-end/45415
14279         * tree-sra.c (sra_modify_assign): If we modify the statement,
14280         say so.
14281
14282         * tree-ssa.c (verify_ssa): Check number of operands and links
14283         per statement to agree.
14284
14285 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
14286             Iain Sandoe  <iains@gcc.gnu.org>
14287
14288         PR target/45476
14289         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
14290         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
14291         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
14292
14293 2010-09-03  Richard Guenther  <rguenther@suse.de>
14294
14295         * lto-streamer-out.c (output_function): Output function
14296         start and end loci.
14297         * lto-streamer-in.c (input_function): Input function start
14298         and end loci.
14299
14300 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14301
14302         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
14303         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
14304         * configure: Regenerate.
14305         * aclocal.m4: Regenerate.
14306
14307 2010-09-03  Jan Hubicka  <jh@suse.cz>
14308
14309         PR lto/44812
14310         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
14311         on functions/variables in other partition.
14312
14313 2010-09-03  Jan Hubicka  <jh@suse.cz>
14314
14315         * cgraph.h (struct varpool_node): Add const_value_known.
14316         (varpool_decide_const_value_known): Declare.
14317         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
14318         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
14319         (input_varpool_node): Restore const_value_known.
14320         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
14321         initializer folding.
14322         * ipa.c (ipa_discover_readonly_nonaddressable_var,
14323         function_and_variable_visibility): Compute const_value_known.
14324         * gimple-fold.c (get_symbol_constant_value): Use varpool for
14325         initializer folding.
14326         * varpool.c (varpool_decide_const_value_known): New function.
14327
14328 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
14329
14330         * config/i386/i386.md: Remove empty preparation statements
14331         from splitters.
14332
14333 2010-09-03  Jan Hubicka  <jh@suse.cz>
14334
14335         * passes.c (rest_of_decl_compilation): Do not add local vars into
14336         varpool.
14337         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
14338         static or extern vars are in varpool.
14339         (varpool_finalize_decl): Sanity check that only static vars are
14340         finalized.
14341
14342 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
14343
14344         PR debug/45500
14345         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
14346         not just generic vectors with BLKmode.
14347
14348 2010-09-03  Richard Guenther  <rguenther@suse.de>
14349
14350         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
14351         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
14352         * tree.h (TMR_SYMBOL): Remove.
14353         (TMR_BASE, TMR_OFFSET): Adjust.
14354         (TMR_INDEX2): New.
14355         * alias.c (ao_ref_from_mem): Use TMR_BASE.
14356         * builtins.c (get_object_alignment): Merge TMR_BASE and
14357         TMR_SYMBOL handling.
14358         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
14359         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
14360         handling.  Also allow TARGET_MEM_REF as base address.
14361         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
14362         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
14363         base.  Gimplify TMR_INDEX2.
14364         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
14365         * tree-dfa.c (get_ref_base_and_extent): Likewise.
14366         (get_addr_base_and_unit_offset): Likewise.
14367         * tree-eh.c (tree_could_trap_p): Likewise.
14368         * tree-pretty-print.c (dump_generic_node): Likewise.
14369         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
14370         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
14371         base to index2.
14372         (get_address_description): Reconstruct addres description
14373         from merged TMR_BASE and TMR_INDEX2.
14374         (maybe_fold_tmr): Fold propagated addresses.
14375         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
14376         MEM_REF and TARGET_MEM_REF paths.
14377         (indirect_refs_may_alias_p): Likewise.
14378         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
14379         instead of TMR_SYMBOL.
14380         * tree-ssa-operands.c (get_tmr_operands): Simplify.
14381         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
14382         according to changes ...
14383         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
14384         Split TARGET_MEM_REF into two fields plus the base.
14385         * tree.c (mem_ref_offset): Simplify.
14386         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
14387         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
14388         Strip NOPs when folding MEM_REF addresses.
14389         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
14390         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
14391         (fold_gimple_assign): ... not here.
14392
14393 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
14394
14395         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
14396         * config/mips/mips.c (mips_shift_truncation_mask): New function.
14397         (TARGET_SHIFT_TRUNCATION_MASK): Define.
14398
14399 2010-09-02  Richard Henderson  <rth@redhat.com>
14400
14401         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
14402         instead of readelf in the test.
14403         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
14404         in the .debug_frame section for coff targets.
14405         * configure: Rebuild.
14406
14407 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
14408
14409         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
14410         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
14411         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14412         (m32c_class_likely_spilled_p): Make static. Change argument type to
14413         reg_class_t. Change result type to bool.
14414
14415 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
14416
14417         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
14418         to convert (double)(long) into a single FRIZ instruction or not
14419         when -ffast-math is used.
14420
14421         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
14422         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
14423         or FRIZ instruction if -ffast-math.
14424         * config/rs6000/rs6000.md (friz): Ditto.
14425
14426         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
14427
14428 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14429
14430         * opth-gen.awk (quote, comma): Remove unused variables.
14431
14432 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
14433
14434         * arm.c (arm_override_options): Correct fall-back code to use
14435         SUBTARGET_CPU_DEFAULT.
14436
14437 2010-09-02  Julian Brown  <julian@codesourcery.com>
14438
14439         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
14440         unspecs.
14441         (vcond<mode>, vcondu<mode>): New expanders.
14442         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
14443         comparisons with zero.
14444         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
14445         * config/arm/constraints.md (Dz): New constraint.
14446
14447 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
14448
14449         * target.def (class_likely_spilled_p): New hook.
14450         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
14451         * doc/tm.texi: Regenerate.
14452         * targhooks.c (default_class_likely_spilled_p): New function.
14453         * targhooks.h (default_class_likely_spilled_p): Declare.
14454         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
14455         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
14456         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
14457         Use fixed_reg_set instead of fixed_regs.
14458         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
14459         * calls.c (avoid_likely_spilled_reg): Ditto.
14460         * ira-conflicts.c (ira_build_conflicts): Ditto.
14461         * ira.c (update_equiv_regs): Ditto.
14462         * mode-switching.c (create_pre_exit): Ditto.
14463         * regmove.c (find_matches): Ditto.
14464         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
14465         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
14466         (small_register_class_p): New inline function.
14467         (push_secondary_reload, find_reusable_reload, find_reloads): Use
14468         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
14469
14470         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
14471         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
14472         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14473
14474 2010-09-02  Richard Guenther  <rguenther@suse.de>
14475
14476         PR tree-optimization/44937
14477         PR tree-optimization/45412
14478         * ipa-split.c (split_function): Properly remove PHI nodes.
14479
14480 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14481
14482         * opts.h (struct cl_option): Add warn_message field.
14483         (struct cl_decoded_option): Add warn_message field.
14484         * doc/options.texi (Ignore, Warn): Document.
14485         * opt-functions.awk (needs_state_p): Don't consider aliases or
14486         ignored options to need state saved.
14487         * optc-gen.awk: Handle Warn and Ignore.
14488         * opth-gen.awk: Output OPT_SPECIAL_ignore.
14489         * opts-common.c (decode_cmdline_option): Set warn_message field.
14490         Handle ignored options.
14491         (decode_cmdline_options_to_array, generate_option,
14492         generate_option_input_file): Set warn_message field.
14493         (read_cmdline_option): Generate warnings from warn_message field.
14494         Handle ignored options.
14495         * common.opt (Wunreachable-code, fargument-alias,
14496         fargument-noalias, fargument-noalias-global,
14497         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
14498         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
14499         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
14500         ftree-salias): Mark Ignore.
14501         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
14502         -mintel-syntax and -mno-intel-syntax here.
14503         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
14504         using Warn.
14505         * opts.c (common_handle_option): Don't handle options marked as
14506         ignored.
14507         (enable_warning_as_error): Handle ignored options.
14508
14509 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14510
14511         PR driver/44076
14512         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
14513         alias_target fields.
14514         * opt-functions.awk (opt_sanitized_name): Don't handle
14515         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
14516         * optc-gen.awk: Generate alias fields.
14517         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
14518         Don't generate such constants for aliases.
14519         * opts-common.c (generate_canonical_option): New.
14520         (decode_cmdline_option): Handle aliases.  Use
14521         generate_canonical_option for known options instead of copying the
14522         input option text.
14523         * doc/options.texi (Alias): Document.
14524         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
14525         fstack-check, specs): Mark as aliases.
14526         * gcc.c (driver_handle_option): Canonicalize -L options to joined
14527         arguments.
14528         (driver_handle_option): Don't handle OPT_specs.
14529         * opts.c (common_handle_option): Don't handle options marked as
14530         aliases.
14531         (enable_warning_as_error): Handle aliases.
14532         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
14533         OPT_Wlarger_than_eq.
14534         * tree-optimize.c (tree_rest_of_compilation): Use
14535         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
14536
14537 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
14538
14539         * config/i386/i386.md (nonmemory_operand): New mode attribute.
14540         (push memory peephole2): Macroize peepholes using SWI mode iterator.
14541         (move immediate to memory peephole2): Macroize peepholes using
14542         SWI124 mode iterator.
14543         (non-pairable NOT peephole2): Macroize peepholes using SWI124
14544         mode iterator.
14545         (simple lea add peephole2): Macroize peepholes using SWI48
14546         mode iterator.
14547         (simple lea mult peephole2): Ditto.
14548         (imul by 3,5,9 to lea peephole2): Ditto.
14549         (mov $-1, reg peephole2): Macroize peepholes using SWI248
14550         mode iterator.
14551         (imul $32bit_imm,mem,reg peephole2): Ditto.
14552         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
14553
14554 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
14555
14556         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
14557
14558 2010-09-02  Olivier Hainque  <hainque@adacore.com>
14559
14560         PR middle-end/44763
14561         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
14562         (allocno_priority_compare_func): Use it instead of a straight
14563         difference computation over priorities.
14564
14565 2010-09-02  Andi Kleen  <ak@linux.intel.com>
14566
14567         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
14568
14569 2010-09-02  Ira Rosen  <irar@il.ibm.com>
14570
14571         * tree-vectorizer.h (get_later_stmt): New function.
14572         (vect_analyze_data_ref_dependences): Add argument.
14573         * tree-vect-loop.c (vect_analyze_loop): Update call to
14574         vect_analyze_data_ref_dependences.
14575         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
14576         New function.
14577         (vect_analyze_data_ref_dependence): Add argument for basic block
14578         dependencies. Check dependencies in basic block vectorization.
14579         (vect_analyze_data_ref_dependences): Add argument and update call to
14580         vect_analyze_data_ref_dependences.
14581         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
14582         (vect_bb_vectorizable_with_dependencies): New.
14583         (vect_slp_analyze_bb): Check dependencies in basic block.
14584         (vect_schedule_slp_instance): Insert stores before the last store in
14585         SLP instance.
14586
14587 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
14588
14589         PR target/45476
14590         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
14591         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
14592
14593 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
14594
14595         PR middle-end/45458
14596         * bb-reorder.c (add_labels_and_missing_jumps): Treat
14597         bbs ending with throwing insns like blocks ending with a call.
14598         (fix_up_fall_thru_edges): Likewise.
14599
14600 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
14601
14602         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
14603         (m32c_function_arg_advance): Delete.
14604         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14605         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
14606         comments.  Take a const_tree and a bool.  Declare.
14607         (m32c_function_arg_advance): Likewise.
14608         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14609
14610 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
14611
14612         PR target/45476
14613         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
14614         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
14615         * config/i386/mingw32.h: ... here.
14616
14617 2010-09-01  Andi Kleen  <ak@linux.intel.com>
14618
14619         PR lto/45475
14620         * lto-streamer-in.c (lto_input_ts_target_option): Add.
14621         (lto_input_tree_pointers): Call lto_input_ts_target_option.
14622         * lto-streamer-out (lto_output_ts_target_option): Add.
14623         (lto_output_tree_pointers): Call lto_output_ts_target_option.
14624
14625 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
14626
14627         PR/target 45452
14628         * config/i386/cygwin.h: Change order of specified import libraries.
14629         * config/i386/mingw32.h: Likewise.
14630         * config/i386/t-cygwin: Likewise.
14631         * config/i386/t-mingw32: Likewise.
14632         * config/i386/t-mingw-w32: Likewise.
14633         * config/i386/t-mingw-w64: Likewise.
14634
14635 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14636
14637         * config/arm/neon-schedgen.ml (core): New type.
14638         (allCores): List of supported cores.
14639         (availability_table): Add supported cores.
14640         (collate_bypasses): Accept core as a parameter.
14641         (worst_case_latencies_and_bypasses): Accept core as a parameter.
14642         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
14643         and coreStr to get tune attribute and prefix for functional units.
14644         (emit_bypasses): Accept core name and use it.
14645         (calculate_per_core_availability_table): New.
14646         (filter_core): New.
14647         (calculate_core_availability_table): New.
14648         (main): Use calculate_core_availablity_table.
14649         * config/arm/cortex-a8-neon.md: Update copyright year.
14650         Regenerated from ml file and merged in.
14651         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
14652         cortex_a8_neon_mrc.
14653
14654 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
14655
14656         * Makefile.in (tree-switch-conversion.o): Update dependencies.
14657
14658 2010-09-01  Richard Guenther  <rguenther@suse.de>
14659
14660         * alias.c (ao_ref_from_mem): Adjust.
14661         * builtins.c (get_object_alignment): Likewise.
14662         * cfgexpand.c (expand_debug_expr): Likewise.
14663         * gimple.c (get_base_address): Likewise.
14664         * tree-dfa.c (get_ref_base_and_extent): Likewise.
14665         (get_addr_base_and_unit_offset): Likewise.  Fix for
14666         both TMR_SYMBOL and TMR_BASE being set.
14667         * tree-eh.c (tree_could_trap_p): Likewise.
14668         * gimplify.c (gimplify_expr): Do not attempt to gimplify
14669         TMR_SYMBOL.  Always gimplify TMR_BASE.
14670         * tree-cfg.c (verify_types_in_gimple_reference): Verify
14671         TMR_BASE if there is a TMR_SYMBOL.
14672         * tree-pretty-print.c (dump_generic_node): Adjust.
14673         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
14674         (tree_mem_ref_addr): Likewise.
14675         (create_mem_ref_raw): Likewise.
14676         (move_fixed_address_to_symbol): Likewise.
14677         (create_mem_ref): Likewise.
14678         (dump_mem_address): Likewise.
14679         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
14680         Fix for both TMR_SYMBOL and TMR_BASE being set.
14681         (indirect_refs_may_alias_p): Likewise.
14682         * tree-ssa-operands.c (get_tmr_operands): Adjust.
14683         * tree.def (TARGET_MEM_REF): Adjust documentation.
14684
14685 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
14686
14687         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
14688         Rename from X86_TUNE_ADD_ESP_4.
14689         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
14690         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
14691         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
14692         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
14693         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
14694         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
14695         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
14696         * config/i386/i386.c (initial_ix86_tune_features)
14697         <X86_TUNE_SINGLE_POP>: Invert members.
14698         <X86_TUNE_DOUBLE_POP>: Ditto.
14699         <X86_TUNE_SINGLE_PUSH>: Ditto.
14700         <X86_TUNE_DOUBLE_PUSH>: Ditto.
14701         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
14702         No longer exported.
14703         (push peephole2 patterns): Macroize peepholes using P mode iterator.
14704         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
14705         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
14706         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
14707
14708 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
14709
14710         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
14711         a volatile LHS if the constructor has only one element.
14712
14713 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
14714
14715         PR bootstrap/45321
14716         * tree.c (stdarg_p): Make fntype parameter const.
14717         * tree.h (stdarg_p): Likewise.
14718         (function_args_iterator): Remove unused fntype field.
14719         (function_args_iter_init): Do not initialize fntype
14720         field.  Make fntype parameter const.
14721
14722 2010-09-01  Richard Guenther  <rguenther@suse.de>
14723
14724         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
14725         estimate.
14726         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
14727         (execute_vrp): Compute number of iteration estimates.
14728         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
14729         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
14730         * tree-data-ref.c (estimated_loop_iterations): Adjust.
14731         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
14732         Infer loop bounds from undefined behavior based on a new parameter.
14733         (estimate_numbers_of_iterations): Likewise.
14734         (scev_probably_wraps_p): Adjust.
14735         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
14736
14737 2010-09-01  Nick Clifton  <nickc@redhat.com>
14738
14739         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
14740         where appropriate.
14741         (xstormy16_legitimate_address_p): Use true and false instead of 1
14742         and 0.
14743         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
14744         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
14745         magic constant 2.
14746         (xstormy16_expand_call): Fix comment at start of function.
14747
14748 2010-09-01  Nick Clifton  <nickc@redhat.com>
14749
14750         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
14751         when pushing accumulator register.
14752         (rx_get_stack_layout): Always save call clobbered registers inside
14753         interrupt handlers.
14754         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
14755
14756 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
14757
14758         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
14759         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
14760
14761         * libgcc-std.ver (GCC_4.6.0): Define version.
14762
14763 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
14764
14765         * tree-nested.c (convert_all_function_calls): Iterate until after the
14766         sum of static chains in the nest doesn't change.
14767
14768 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
14769
14770         * config/m32c/m32c.c (classes_intersect): Remove.
14771         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
14772         reg_classes_intersect_p instead of classes_intersect.
14773         (class_can_hold_mode): Change arguments type from enum reg_class to
14774         reg_class_t.  Use reg_class_contents instead of class_contents.
14775         (m32c_register_move_cost): Make static. Change arguments type from
14776         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
14777         classes_intersect. Use reg_class_contents instead of class_contents.
14778         (m32c_memory_move_cost): Make static. Change arguments type from
14779         enum reg_class to reg_class_t.
14780         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14781         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14782         * config/m32c/m32c-protos.h (m32c_register_move_cost,
14783         m32c_memory_move_cost): Remove.
14784
14785 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14786
14787         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
14788         (arm_function_arg): Delete.
14789         (arm_needs_doubleword_align): Take a const_tree.
14790         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14791         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
14792         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
14793         (arm_function_arg): Make static.  Take a const_tree and a bool.
14794         (arm_function_arg_advance): Likewise.
14795         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14796
14797 2010-08-31  Andi Kleen  <ak@linux.intel.com>
14798
14799         * common.opt (fwhopr=): Update for -fwhopr=jobserver
14800         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
14801         * lto-wrapper.c (run_gcc): Add jobserver mode.
14802         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
14803         argument.
14804
14805 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
14806
14807         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
14808         (popsi1): Ditto.
14809         (*popdi1_epilogue): Ditto.
14810         (*popsi1_epilogue): Ditto.
14811         (popsi, popdi peephole2 patterns): Update peepholes for changed
14812         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
14813
14814         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
14815         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
14816
14817         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
14818         (override_options): Do not initialize removed ix86_gen_pop1.
14819         (gen_pop): New static function.
14820         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
14821         (release_scratch_register_on_entry): Ditto.
14822         (ix86_restore_reg_using_pop): Ditto.
14823         (ix86_expand_epilogue): Ditto.
14824
14825 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
14826
14827         PR middle-end/45461
14828         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
14829
14830 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14831
14832         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
14833         semicolons.
14834
14835 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14836
14837         * doc/extend.texi: Fix documentation of the return value of
14838         __builtin_choose_expr.
14839
14840 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14841
14842         * config/v850/v850-protos.h (function_arg): Delete.
14843         * config/v850/v850.h (FUNCTION_ARG): Delete.
14844         (FUNCTION_ARG_ADVANCE): Move code to...
14845         * config/v850/v850.c (v850_function_arg_advance): ...here.
14846         (v850_function_arg): Make static.  Take a const_tree and a bool.
14847         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14848
14849 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14850
14851         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
14852         these...
14853         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
14854         ...and these...
14855         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
14856         ..to here..
14857         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
14858         ...and here.
14859         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14860
14861 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14862
14863         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
14864         Delete.
14865         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14866         * config/rx/rx.c (rx_function_arg_size): Make static.
14867         (rx_function_arg): Likewise.
14868         (rx_function_arg_advance): New function.
14869         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14870
14871 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
14872
14873         * config/arm/arm.c (arm_override_options): Remove superfluous test.
14874         Fix indentation.
14875
14876 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
14877
14878         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
14879         (dwarf2out_decl) <CONST_DECL>: Likewise.
14880
14881 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
14882
14883         Stack usage support
14884         * common.opt (-fstack-usage): New option.
14885         * doc/invoke.texi (Debugging options): Document it.
14886         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
14887         allocate_dynamic_stack_space.
14888         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
14889         and propagate it to allocate_dynamic_stack_space.
14890         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
14891         * calls.c (initialize_argument_information): Pass TRUE as 4th
14892         argument to allocate_dynamic_stack_space.
14893         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
14894         to 1 when pushing a variable-sized argument onto the stack.  Pass
14895         TRUE as 4th argument to allocate_dynamic_stack_space.
14896         Update current_function_pushed_stack_size.
14897         (emit_library_call_value_1): Likewise.
14898         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
14899         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
14900         attempt to find an upper bound.  Remove redundant code for the
14901         SETJMP_VIA_SAVE_AREA case.
14902         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
14903         * function.h (struct stack_usage): New structure.
14904         (current_function_static_stack_size): New macro.
14905         (current_function_dynamic_stack_size): Likewise.
14906         (current_function_pushed_stack_size): Likewise.
14907         (current_function_dynamic_alloc_count): Likewise.
14908         (current_function_has_unbounded_dynamic_stack_size): Likewise.
14909         (current_function_allocates_dynamic_stack_space): Likewise.
14910         (struct function): Add new field 'su'.
14911         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
14912         add the value of the dynamic offset to the dynamic stack usage.
14913         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
14914         for variable-sized objects.
14915         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
14916         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
14917         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
14918         BUILT_IN_ALLOCA for variable-sized objects.
14919         * output.h (output_stack_usage): Declare.
14920         * toplev.c (stack_usage_file): New file pointer.
14921         (output_stack_usage): New function.
14922         (open_auxiliary_file): Likewise.
14923         (lang_dependent_init): Open file if flag_stack_usage is set.
14924         (finalize): Close file if stack_usage_file is not null.
14925         * tree.h (ALLOCA_FOR_VAR_P): New macro.
14926         * config/alpha/alpha.c (compute_frame_size): New function.
14927         (alpha_expand_prologue): Use it.
14928         (alpha_start_function): Likewise.
14929         (alpha_expand_epilogue): Likewise.  Set stack usage info.
14930         * config/i386/i386.c (ix86_expand_prologue): Likewise.
14931         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
14932         * config/mips/mips.c (mips_expand_prologue): Likewise.
14933         * config/pa/pa.c (hppa_expand_prologue): Likewise.
14934         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
14935         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
14936
14937 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
14938
14939         PR tree-optimization/45427
14940         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
14941         Handle the case that the exit is never taken correctly.
14942         (number_of_iterations_ne): Pass exit_must_be_taken to
14943         number_of_iterations_ne_max.
14944
14945 2010-08-30  Catherine Moore  <clm@codesourcery.com>
14946
14947         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
14948         Infer -mdspr2 for the the 74K.
14949
14950 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
14951
14952         PR debug/45419
14953         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
14954
14955         PR middle-end/45423
14956         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
14957         and TRUTH_{AND,OR,XOR}_EXPR.
14958         * c-parser.c (c_parser_omp_atomic): Handle boolean
14959         {PRE,POST}_{INC,DEC}REMENT.
14960
14961 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
14962
14963         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
14964         (function_arg): Delete.
14965         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14966         (FUNCTION_INCOMING_ARG): Delete.
14967         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
14968         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
14969         and a bool.
14970         (function_arg): Rename to...
14971         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
14972         a bool.
14973         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
14974         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14975         (TARGET_FUNCTION_INCOMING_ARG): Define.
14976
14977 2010-08-30  Richard Guenther  <rguenther@suse.de>
14978
14979         PR tree-optimization/21602
14980         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
14981         using points-to information.
14982
14983 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
14984
14985         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
14986
14987 2010-08-30  Richard Guenther  <rguenther@suse.de>
14988
14989         PR tree-optimization/45449
14990         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
14991         variables.
14992
14993 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
14994
14995         * opts.h (CL_ERR_NEGATIVE): Define.
14996         * opts.c (unknown_option_callback): Don't postpone warnings for
14997         options marked with CL_ERR_NEGATIVE.
14998         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
14999         for negative versions of CL_REJECT_NEGATIVE options.
15000
15001 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
15002
15003         * config/i386/i386.md (zero_extendsidi2_1): Rename from
15004         zero_extendsidi2_32.
15005         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
15006         using SWI12 mode iterator.
15007         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
15008         to define_insn_and_split pattern.
15009         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
15010         using SWI24 mode iterator.
15011         (*zero_extendqi<mode>2_and): Macroize insn from
15012         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
15013         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
15014         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
15015         SWI24 mode iterator.
15016         (*zero_extendqi<mode>2_movzbl): Ditto from
15017         *zero_extendqi{hi,si}2_movzbl.
15018         (extendsidi2_1): Rename from extendsidi2_32.
15019         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
15020         SWI12 mode iterator.
15021
15022 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
15023
15024         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
15025         general purpose registers.
15026         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
15027         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
15028         with general purpose registers and memory operands.  Add associated
15029         CCImode post-reload splitter.
15030         * config/ia64/div.md: Change BImode to CCImode throughout.
15031
15032 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
15033
15034         * config/ia64/ia64.md (cstorebi4): Fix thinko.
15035
15036 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
15037
15038         * config/picochip/picochip.c (reorder_var_tracking_notes): This
15039         function was dropping debug insns which caused PR45299.
15040
15041 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
15042
15043         * config/i386/sse.md (extsuffix): New code attribute.
15044         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
15045         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
15046         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
15047         and sse4_1_zero_extendv4qiv4si2.
15048         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
15049         and sse4_1_zero_extendv2qiv2di2.
15050         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
15051         and sse4_1_zero_extendv4hiv4si2.
15052         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
15053         and sse4_1_zero_extendv2hiv2di2.
15054         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
15055         and sse4_1_zero_extendv2siv2di2
15056
15057         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
15058         using any_extend code iterator.
15059         (*avx_<s>mulv8hi3_highpart): Macroize insn from
15060         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
15061         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
15062
15063         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
15064         gen_sse4_1_sign_extend* functions.
15065         (struct builtin_description bdesc_args): Ditto.
15066
15067 2010-08-27  Xinliang David Li  <davidxl@google.com>
15068
15069         PR/45422
15070         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
15071         (iv_ca_set_no_cp): Update used inv expr count.
15072         (iv_ca_set_cp): Ditto.
15073         (iv_ca_new): Initialize new member.
15074         (iv_ca_free): Free memory.
15075
15076 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
15077
15078         * config/sh/sh-protos.h (sh_function_arg): Delete.
15079         (sh_function_arg_advance): Delete.
15080         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15081         (PASS_IN_REG_P): Eliminate cast.
15082         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
15083         const_tree and a bool.
15084         (sh_function_arg): Likewise.
15085         (sh_output_mi_thunk): Call sh_function_arg_advance) and
15086         sh_function_arg.
15087         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15088
15089 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
15090             Kaz Kojima  <kkojima@gcc.gnu.org>
15091
15092         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
15093         when possible.
15094         (sh_expand_epilogue): Likewise.
15095         * config/sh/sh.md (movml_push_banked): New insn.
15096         (movml_pop_banked): Likewise.
15097
15098 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
15099
15100         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
15101         gen_regexp_oneof, gen_regexp_sequence): Use the string found
15102         in vector element 0 rather than the original string when there's
15103         only one element.
15104         (gen_regexp): Remove extra semicolon.
15105
15106         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
15107         thumb2_movsf_vfp): Set attribute "insn".
15108         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
15109         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
15110         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
15111         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
15112         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
15113         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
15114         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
15115         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
15116         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
15117         if_not_arith, if_arith_not, cond_move_not): Likewise.
15118
15119 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
15120
15121         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
15122         New declaration.
15123         (rs6000_allocate_stack_temp): Ditto.
15124         (rs6000_expand_convert_si_to_sfdf): Ditto.
15125
15126         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
15127         line.  Update the options set if power6 or power7 server/embedded
15128         type options are used.  If we give a warning for no vsx under
15129         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
15130         (rs6000_allocate_stack_temp): New function to allocate a stack
15131         tempoary and adjust the address so it meets either REG+OFFSET or
15132         REG+REG addressing requirements.
15133         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
15134         that they can be used with the LFIWAX/LFIWZX instrucitons.
15135         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
15136         converting signed/unsigned SImode to either SFmode/DFmode.
15137
15138         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
15139         whether certain instructions can be generated.
15140         (TARGET_FCTIDZ): Ditto.
15141         (TARGET_STFIWX): Ditto.
15142         (TARGET_LFIWAX): Ditto.
15143         (TARGET_LFIWZX): Ditto.
15144         (TARGET_FCFIDS): Ditto.
15145         (TARGET_FCFIDU): Ditto.
15146         (TARGET_FCFIDUS): Ditto.
15147         (TARGET_FCTIDUZ): Ditto.
15148         (TARGET_FCTIWUZ): Ditto.
15149
15150         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
15151         (UNSPEC_FCTID): Ditto.
15152         (UNSPEC_LFIWAX): Ditto.
15153         (UNSPEC_LFIWZX): Ditto.
15154         (UNSPEC_FCTIWUZ): Ditto.
15155         (rreg): Use correct constraints.
15156         (SI_CONVERT_FP): New mode attribute for floating point conversion
15157         tests.
15158         (E500_CONVERT): Ditto.
15159         (lfiwax): New insns for converting from integer to floating point
15160         utilizing newer instructions.  Attempt to optimize conversions
15161         that come from memory so that we don't load the value into a GPR,
15162         spill it to the stack and reload it into a FPR.
15163         (floatsi<mode>2_lfiwax): Ditto.
15164         (floatsi<mode>2_lfiwax_mem): Ditto.
15165         (floatsi<mode>2_lfiwax_mem2): Ditto.
15166         (lfiwzx): Ditto.
15167         (floatunssi<mode>2_lfiwzx): Ditto.
15168         (floatunssi<mode>2_lfiwzx_mem): Ditto.
15169         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
15170         (floatdidf2_mem): Ditto.
15171         (floatunsdidf2_fcfidu): Ditto.
15172         (floatunsdidf2_mem): Ditto.
15173         (floatunsdisf2): Ditto.
15174         (floatunsdisf2_fcfidus): Ditto.
15175         (floatunsdisf2_mem): Ditto.
15176         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
15177         Use FCFID on 32-bit hosts that support it.
15178         (floatsidf2_internal): Ditto.
15179         (floatunssisf2): Ditto.
15180         (floatunssidf2): Ditto.
15181         (floatunssidf2_internal): Ditto.
15182         (floatsisf2): Ditto.
15183         (floatdidf2): Ditto.
15184         (floatdidf2_fpr): Ditto.
15185         (floatunsdidf2): Ditto.
15186         (floatdisf2): Ditto.
15187         (floatdisf2_fcfids): Ditto.
15188         (floatdisf2_internal1): Ditto.
15189         (fixuns_truncsfsi2): Delete, merge into common pattern for both
15190         SF/DF.  Add power7 support.
15191         (fix_truncsfsi2): Ditto.
15192         (fixuns_truncdfsi2): Ditto.
15193         (fixuns_truncdfdi2): Ditto.
15194         (fix_truncdfsi2): Ditto.
15195         (fix_truncdfsi2_internal): Ditto.
15196         (fix_truncdfsi2_internal_gfxopt): Ditto.
15197         (fix_truncdfsi2_mfpgpr): Ditto.
15198         (fctiwz): Ditto.
15199         (btruncdf2): Ditto.
15200         (btruncdf2_fpr): Ditto.
15201         (btructsf2): Ditto.
15202         (ceildf2): Ditto.
15203         (ceildf2_fpr): Ditto.
15204         (ceilsf2): Ditto.
15205         (floordf2): Ditto.
15206         (floordf2_fpr): Ditto.
15207         (floorsf2): Ditto.
15208         (rounddf2): Ditto.
15209         (rounddf2_fpr): Ditto.
15210         (roundsf2): Ditto.
15211         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
15212         (fix_trunc<mode>di2): Ditto.
15213         (fixuns_trunc<mode>si2): Ditto.
15214         (fixuns_trunc<mode>di2): Ditto.
15215         (fctiwz_<mode>): Ditto.
15216         (btrunc<mode>2): Ditto.
15217         (btrunc<mode>2_fpr): Ditto.
15218         (ceil<mode>2): Ditto.
15219         (ceil<mode>2_fpr): Ditto.
15220         (floor<mode>2): Ditto.
15221         (float<mode>2_fpr): Ditto.
15222         (round<mode>2): Ditto.
15223         (round<mode>2_fpr): Ditto.
15224         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
15225         (fixuns_trunc<mode>si2_stfiwx): Ditto.
15226         (fix_truncdfsi2_internal): Ditto.
15227         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
15228         converted value on stack, loaded into GPR, and then stored into
15229         the final destination.
15230         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
15231         FCTIDZ.
15232         (lrint<mode>di2): New insn, provide the lrint builtin functions.
15233         (ftruncdf2): Delete, unused.
15234         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
15235
15236         * config/rs6000/vsx.md (toplevel): Update copyright year.
15237         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
15238         (VSr3): Ditto.
15239
15240 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
15241             Jeremie Salvucci  <jeremie.salvucci@free.fr>
15242
15243         * gengtype.c (output_type_enum): Test the right union member.
15244
15245 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
15246
15247         PR target/41484
15248         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
15249         operands for operand 1.
15250         (sse4_1_extendv4qiv4si2): Ditto.
15251         (sse4_1_extendv2qiv2di2): Ditto.
15252         (sse4_1_extendv4hiv4si2): Ditto.
15253         (sse4_1_extendv2hiv2di2): Ditto.
15254         (sse4_1_extendv2siv2di2): Ditto.
15255         (sse4_1_zero_extendv8qiv8hi2): Ditto.
15256         (sse4_1_zero_extendv4qiv4si2): Ditto.
15257         (sse4_1_zero_extendv2qiv2di2): Ditto.
15258         (sse4_1_zero_extendv4hiv4si2): Ditto.
15259         (sse4_1_zero_extendv2hiv2di2): Ditto.
15260         (sse4_1_zero_extendv2siv2di2): Ditto.
15261         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
15262         (*sse4_1_extendv4qiv4si2): Ditto.
15263         (*sse4_1_extendv2qiv2di2): Ditto.
15264         (*sse4_1_extendv4hiv4si2): Ditto.
15265         (*sse4_1_extendv2hiv2di2): Ditto.
15266         (*sse4_1_extendv2siv2di2): Ditto.
15267         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
15268         (*sse4_1_zero_extendv4qiv4si2): Ditto.
15269         (*sse4_1_zero_extendv2qiv2di2): Ditto.
15270         (*sse4_1_zero_extendv4hiv4si2): Ditto.
15271         (*sse4_1_zero_extendv2hiv2di2): Ditto.
15272         (*sse4_1_zero_extendv2siv2di2): Ditto.
15273
15274 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
15275
15276         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
15277         (mips_function_arg): Delete.
15278         (mips_function_arg_boundary): Take a const_tree.
15279         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
15280         (mips_arg_info): Likewise.
15281         (mips_setup_incoming_varargs): Call mips_function_arg_advance
15282         instead of FUNCTION_ARG_ADVANCE.
15283         (mips_function_arg_advance): Adjust prototype.  Make static.
15284         (mips_function_arg): Likewise.
15285         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15286         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
15287
15288 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
15289
15290         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15291         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
15292         (function_arg): Delete.
15293         (function_arg_boundary): Take a const_tree.
15294         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
15295         (rs6000_spe_function_arg): Likewise.
15296         (rs6000_parm_start): Likewise.
15297         (rs6000_arg_size): Likewise.
15298         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
15299         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
15300         (rs6000_mixed_function_arg): Likewise.
15301         (function_arg): Rename to...
15302         (rs6000_function_arg): ...this.
15303         (function_arg_advance): Rename to...
15304         (rs6000_function_arg_advance_1): ...this
15305         (rs6000_function_arg_advance): New function.  Call it.
15306         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
15307         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
15308         (rs6000_function_value): Likewise.
15309         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15310
15311 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15312
15313         * config/arm/arm.md (enabled): Test the value of arch_enabled
15314         rather than just using it.
15315
15316 2010-08-27  Olivier Hainque  <hainque@adacore.com>
15317             Eric Botcazou  <ebotcazou@adacore.com>
15318
15319         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
15320         cover all the possible offsets from this base.
15321         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
15322
15323 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
15324
15325         PR tree-optimization/44485
15326         * calls.c (flags_from_decl_or_type): For const or pure
15327         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
15328         together with ECF_CONST resp. ECF_PURE.
15329         * builtins.c (expand_builtin): Use flags_from_decl_or_type
15330         instead of querying flags directly.
15331         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
15332         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
15333
15334 2010-08-26  Richard Guenther  <rguenther@suse.de>
15335
15336         PR tree-optimization/45255
15337         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
15338         and externals are also invariant.
15339
15340 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
15341
15342         PR rtl-optimization/44858
15343         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
15344         newi2pat, make sure they don't affect newpat.
15345
15346         PR rtl-optimization/45400
15347         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
15348         SUBREG_REG if both modes are of MODE_INT class.
15349
15350 2010-08-25  Julian Brown  <julian@codesourcery.com>
15351
15352         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
15353         * config/arm/arm.md (generic_sched): No for Cortex-A5.
15354         (generic_vfp): Likewise.
15355         (cortex-a5.md): Include.
15356         * config/arm/cortex-a5.md: New.
15357
15358 2010-08-25  Richard Guenther  <rguenther@suse.de>
15359
15360         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
15361         * gimple.c (gimple_get_alias_set): Remove special handling
15362         for pointers.
15363
15364 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
15365
15366         PR middle-end/45355
15367         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
15368         dead_or_set_p when computing i0_feeds_i2_n.
15369
15370         * combine.c (find_split_point): Undo canonicalization of multiply-add
15371         to (minus x (mult)) when it seems likely that this will increase the
15372         chances of a split.
15373
15374 2010-08-25  Richard Guenther  <rguenther@suse.de>
15375
15376         PR lto/44562
15377         * lto-streamer.c (lto_record_common_node): Do not mess with
15378         TYPE_CANONICAL when not in lto.
15379         * gimple.c (gimple_register_type): Likewise.
15380
15381 2010-08-25  Richard Guenther  <rguenther@suse.de>
15382
15383         PR tree-optimization/45316
15384         * tree-ssa-pre.c (eliminate): Properly clean EH info.
15385
15386 2010-08-25  Richard Guenther  <rguenther@suse.de>
15387
15388         PR tree-optimization/45393
15389         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
15390         and clean EH info.  Avoid SSA update.
15391         (execute_cse_sincos): Cleanup the CFG if it has changed.
15392
15393 2010-08-25  Richard Guenther  <rguenther@suse.de>
15394
15395         PR middle-end/45379
15396         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
15397         TARGET_MEM_REF in alignment computation.
15398
15399 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
15400
15401         PR tree-optimization/45059
15402         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
15403         type conversions from newop{1,2}.  Assert t is a comparison and
15404         newop{1,2} after the stripping are gimple vals.
15405
15406 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
15407
15408         * config/arm/iterators.md (VU, SE, V_widen_l): New.
15409         (V_unpack, US): New.
15410         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
15411         (vec_unpack<US>_lo_<mode>): Likewise.
15412         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
15413         (neon_vec_unpack<US>_lo_<mode>): Likewise.
15414         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
15415         (vec_widen_<US>mult_hi_<mode>): Likewise.
15416         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
15417         (neon_vec_<US>mult_hi_<mode>"): Likewise.
15418         (neon_unpack<US>_<mode>): Widening move intermediate step for
15419         vectorizing without -mvectorize-with-neon-quad.
15420         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
15421         for vectorizing without -mvectorize-with-neon-quad.
15422         * config/arm/predicates.md (vect_par_constant_high): Check for
15423         high-half lanes of a vector.
15424         (vect_par_constant_low): Check for low-half lanes of a vector.
15425
15426 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
15427
15428         * tree-if-conv.c (struct ifc_dr): New.
15429         (IFC_DR): New.
15430         (DR_WRITTEN_AT_LEAST_ONCE): New.
15431         (DR_RW_UNCONDITIONALLY): New.
15432         (memref_read_or_written_unconditionally): Use the cached values
15433         when possible.
15434         (write_memref_written_at_least_once): Same.
15435         (if_convertible_loop_p): Initialize and free DR->aux fields.
15436
15437 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
15438
15439         * gimple.c (gimple_could_trap_p_1): Not static anymore.
15440         Pass an extra bool parameter include_mem.
15441         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
15442         (gimple_assign_rhs_could_trap_p): Same.
15443         * gimple.h (gimple_could_trap_p_1): Declared.
15444         * tree-data-ref.h (same_data_refs_base_objects): New.
15445         (same_data_refs): New.
15446         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
15447         (write_memrefs_written_at_least_once): New.
15448         (ifcvt_memrefs_wont_trap): New.
15449         (operations_could_trap): New.
15450         (ifcvt_could_trap_p): New.
15451         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
15452         Gets a vector of data refs.
15453         (if_convertible_stmt_p): Same.
15454         (if_convertible_loop_p_1): New.
15455         (if_convertible_loop_p): Call if_convertible_loop_p_1.
15456
15457 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
15458
15459         * common.opt (ftree-loop-if-convert-stores): New flag.
15460         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
15461         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
15462         the created statement before GSI.
15463         (if_convertible_phi_p): Allow virtual phi nodes when
15464         flag_loop_if_convert_stores is set.
15465         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
15466         Do not handle types that do not match is_gimple_reg_type.
15467         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
15468         when flag_loop_if_convert_stores is set, as LHS can contain
15469         memory refs.
15470         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
15471         to if_convertible_gimple_assign_stmt_p.
15472         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
15473         (replace_phi_with_cond_gimple_assign_stmt): Renamed
15474         predicate_scalar_phi.  Do not handle virtual phi nodes.
15475         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
15476         Call predicate_scalar_phi.
15477         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
15478         just after the labels for flag_loop_if_convert_stores, otherwise
15479         insert the predicate in the end of the BB.
15480         (predicate_mem_writes): New.
15481         (combine_blocks): Call predicate_all_scalar_phis.  When
15482         flag_loop_if_convert_stores is set, call predicate_mem_writes.
15483         (tree_if_conversion): Call mark_sym_for_renaming when
15484         flag_loop_if_convert_stores is set.
15485         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
15486         flag_loop_if_convert_stores is set.
15487
15488 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
15489
15490         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
15491         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
15492         (pa_function_value): Make static.
15493         (override_options): Rename to...
15494         (pa_option_override): ...this. Make static.
15495         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
15496         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
15497         TARGET_OPTION_OVERRIDE): Define.
15498         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
15499         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
15500         Remove.
15501         * config/pa/pa-protos.h (override_options): Remove.
15502
15503 2010-08-24  Richard Guenther  <rguenther@suse.de>
15504
15505         PR middle-end/45379
15506         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
15507         if addr->index is NULL or zero.
15508         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
15509         TARGET_MEM_REF more properly.
15510         (indirect_ref_may_alias_decl_p): Likewise.
15511         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
15512         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
15513
15514 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
15515
15516         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
15517         (m32c_override_options): Rename to...
15518         (m32c_option_override): ...this. Make static.
15519         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
15520         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
15521         Remove.
15522         * config/m32c/m32c-protos.h (m32c_override_options,
15523         m32c_function_value_regno_p): Remove.
15524
15525 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
15526
15527         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
15528         Fix a typo in a previous commit.
15529
15530 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
15531
15532         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
15533         Pre-initialize innerloop_iters to one.
15534
15535 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
15536
15537         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
15538         existing static function global.
15539
15540         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
15541         is changed to global.
15542
15543         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
15544         may_be_nonaddressable_p on base, and don't collect this reference
15545         if the address of the base could not be taken.
15546
15547 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
15548
15549         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
15550         enable the compiler to autovectorize mathmetical functions for
15551         power7 using the Mathematical Acceleration Subsystem library.
15552
15553         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
15554         handle which vector math library we have.
15555         (rs6000_override_options): Add -mveclibabi=mass support.
15556         (rs6000_builtin_vectorized_libmass): New function to handle auto
15557         vectorizing math functions that are in the MASS library.
15558         (rs6000_builtin_vectorized_function): Call it.
15559
15560         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
15561         -mveclibabi=mass.
15562
15563 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15564
15565         PR boehm-gc/34544
15566         * gthr-posix.h (__gthread_active_init): Delete.
15567         (__gthread_active_p): Do activity check here.
15568         Don't include errno.h on hppa-hpux.  Update comment.
15569         * gthr-posix95.h (__gthread_active_init): Delete.
15570         (__gthread_active_p): Do activity check here.
15571         Don't include errno.h on hppa-hpux.  Update comment.
15572         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
15573         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
15574         add -lpthread when -mt or -pthread is specified.
15575         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
15576         (LINK_GCC_C_SEQUENCE_SPEC): Define.
15577         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
15578         (stublib.c, pthread_default_stacksize_np-stub.o,
15579         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
15580         $(T)libgcc_stub.a): Add methods.
15581         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
15582         (stublib.c, pthread_default_stacksize_np-stub.o,
15583         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
15584         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
15585         pthread_mutex_unlock): New stubs.
15586
15587 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
15588
15589         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
15590         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
15591         options.
15592         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
15593         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
15594         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
15595         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
15596         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
15597         "-l".
15598         * cppspec.c: Include opts.h.
15599         (lang_specific_driver): Use cl_decoded_option structures.
15600         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
15601         * doc/tm.texi: Regenerate.
15602         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
15603         (driver_handle_option): Allow driver options needing no special
15604         processing.
15605         (process_command): Decode options before call to
15606         lang_specific_driver.  Pass decoded options to
15607         lang_specific_driver.
15608         * gcc.h (lang_specific_driver): Update prototype.
15609         * gccspec.c: Include opts.h.
15610         (lang_specific_driver): Use cl_decoded_option structures.
15611         * opts-common.c (option_ok_for_language, generate_option,
15612         generate_option_input_file): New.
15613         (decode_cmdline_option): Use option_ok_for_language.
15614         (decode_cmdline_options_to_array): Use generate_option_input_file.
15615         (handle_generated_option): Use generate_option.
15616         * opts.h (generate_option, generate_option_input_file): Declare.
15617
15618 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
15619
15620         * config/mips/mips.c (mips_override_options): Rename to...
15621         (mips_option_override): ...this. Make static.
15622         (TARGET_OPTION_OVERRIDE): Define.
15623         (mips_in_small_data_p): Update comment.
15624         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
15625         (FIXED_REGISTERS): Update comment.
15626         * config/mips/mips-protos.h (mips_override_options): Remove.
15627
15628 2010-08-21  Olivier Hainque  <hainque@adacore.com>
15629
15630         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
15631
15632 2010-08-21  Olivier Hainque  <hainque@adacore.com>
15633
15634         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
15635         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
15636
15637 2010-08-20  Jan Hubicka  <jh@suse.cz>
15638
15639         * tree-pass.h (pass_ipa_cdtor_merge): New function.
15640         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
15641         heap allocated.
15642         (record_cdtor_fn): Move to ipa.c; do not test for
15643         have_ctors_dtors.
15644         (build_cdtor): Move to ipa.c; add code avoiding construction
15645         when target have ctors/dtors and there is only one ctor/dtor at given
15646         priority.
15647         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
15648         sort; reverse order of constructors.
15649         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
15650         (cgraph_finalize_function): Do not call record_cdtor_fn.
15651         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
15652         (cgraph_build_static_cdtor): Move to ipa.c.
15653         * ipa.c: Include target.h and tree-iterator.h.
15654         (cgraph_build_static_cdtor, static_ctors, static_dtors,
15655         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
15656         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
15657         pass_ipa_cdtor_merge): New.
15658         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
15659         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
15660         bounds access.
15661
15662 2010-08-20  Jan Hubicka  <jh@suse.cz>
15663
15664         PR c++/45307
15665         PR c++/17736
15666         * cgraph.h (cgraph_only_called_directly_p,
15667         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
15668         static cdtors.
15669         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
15670         are not needed.
15671         (cgraph_finalize_function): Static cdtors are reachable.
15672         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
15673
15674 2010-08-20  Jan Hubicka  <jh@suse.cz>
15675
15676         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
15677         flag_wpa.
15678         * lto-streamer-out.c (lto_output): Likewise.
15679         * passes.c (ipa_write_optimization_summaries): Initialize statement
15680         uids.
15681
15682 2010-08-20  Olivier Hainque  <hainque@adacore.com>
15683
15684         * tree.h (alias_diag_flags): New enum.
15685         (alias_pair): Add an 'emitted_diags' field.
15686         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
15687         (assemble_alias): Initialize emitted_diags of new pairs.
15688
15689 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
15690
15691         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
15692         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15693         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15694         (STACK_CHECK_PROTECT): Define.
15695         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
15696         (output_probe_stack_range): Likewise.
15697         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
15698         builtin stack checking is enabled.
15699         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
15700         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
15701         (probe_stack_range): New insn.
15702
15703 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
15704
15705         PR target/45336
15706         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
15707         short first.
15708
15709         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
15710         char first.
15711
15712 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15713
15714         PR target/45336
15715         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
15716         to cover zero extension into 64-bit register.
15717         (*sse2_pextrw): Likewise.
15718         (*sse4_1_pextrd_zext): New insn.
15719
15720 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
15721
15722         revert r163410, partially revert r163267.
15723         * config/rs6000/darwin.h (LIB_SPEC): Remove.
15724         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
15725         Darwin versions.
15726
15727 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15728
15729         PR middle-end/44974
15730         * builtins.c (expand_builtin): Don't optimize away
15731         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
15732
15733 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
15734
15735         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
15736         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
15737         alternative 1 of operand 2.
15738
15739 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15740             Paolo Bonzini  <bonzini@gnu.org>
15741
15742         * simplify-rtx.c (simplify_unary_operation_1): Optimize
15743         (sign_extend (zero_extend (...)) and
15744         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
15745
15746 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15747
15748         PR rtl-optimization/45353
15749         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
15750         after bb_note is a BARRIER.
15751
15752 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
15753
15754         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
15755         linking libgcc.a.
15756
15757 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15758             Michael Matz  <matz@suse.de>
15759
15760         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
15761
15762 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
15763
15764         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
15765         (ggc_mark_roots): ...here.
15766
15767 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
15768
15769         * vec.h (FOR_EACH_VEC_ELT): Define.
15770         * c-decl.c: Use it.
15771         * cfgloop.c: Likewise.
15772         * cfgloopmanip.c: Likewise.
15773         * cgraph.c: Likewise.
15774         * cgraphunit.c: Likewise.
15775         * combine.c: Likewise.
15776         * config/bfin/bfin.c: Likewise.
15777         * config/mips/mips.c: Likewise.
15778         * config/rs6000/rs6000.c: Likewise.
15779         * dbxout.c: Likewise.
15780         * df-scan.c: Likewise.
15781         * dominance.c: Likewise.
15782         * dse.c: Likewise.
15783         * dwarf2out.c: Likewise.
15784         * except.c: Likewise.
15785         * expr.c: Likewise.
15786         * function.c: Likewise.
15787         * gcse.c: Likewise.
15788         * genattr.c: Likewise.
15789         * ggc-common.c: Likewise.
15790         * gimplify.c: Likewise.
15791         * graphite-blocking.c: Likewise.
15792         * graphite-clast-to-gimple.c: Likewise.
15793         * graphite-dependences.c: Likewise.
15794         * graphite-interchange.c: Likewise.
15795         * graphite-poly.c: Likewise.
15796         * graphite-scop-detection.c: Likewise.
15797         * graphite-sese-to-poly.c: Likewise.
15798         * graphite.c: Likewise.
15799         * haifa-sched.c: Likewise.
15800         * ifcvt.c: Likewise.
15801         * implicit-zee.c: Likewise.
15802         * ipa-prop.c: Likewise.
15803         * ipa-struct-reorg.c: Likewise.
15804         * ipa.c: Likewise.
15805         * ira-build.c: Likewise.
15806         * ira-color.c: Likewise.
15807         * ira-emit.c: Likewise.
15808         * lambda-code.c: Likewise.
15809         * loop-invariant.c: Likewise.
15810         * loop-unroll.c: Likewise.
15811         * lower-subreg.c: Likewise.
15812         * lto-cgraph.c: Likewise.
15813         * lto-opts.c: Likewise.
15814         * lto-streamer-in.c: Likewise.
15815         * lto-streamer-out.c: Likewise.
15816         * lto-streamer.c: Likewise.
15817         * lto-symtab.c: Likewise.
15818         * matrix-reorg.c: Likewise.
15819         * opts.c: Likewise.
15820         * predict.c: Likewise.
15821         * print-tree.c: Likewise.
15822         * sdbout.c: Likewise.
15823         * sel-sched-dump.c: Likewise.
15824         * sel-sched-ir.c: Likewise.
15825         * sel-sched.c: Likewise.
15826         * sese.c: Likewise.
15827         * stor-layout.c: Likewise.
15828         * tree-cfg.c: Likewise.
15829         * tree-cfgcleanup.c: Likewise.
15830         * tree-chrec.c: Likewise.
15831         * tree-data-ref.c: Likewise.
15832         * tree-emutls.c: Likewise.
15833         * tree-inline.c: Likewise.
15834         * tree-into-ssa.c: Likewise.
15835         * tree-loop-distribution.c: Likewise.
15836         * tree-loop-linear.c: Likewise.
15837         * tree-mudflap.c: Likewise.
15838         * tree-outof-ssa.c: Likewise.
15839         * tree-parloops.c: Likewise.
15840         * tree-predcom.c: Likewise.
15841         * tree-pretty-print.c: Likewise.
15842         * tree-scalar-evolution.c: Likewise.
15843         * tree-ssa-live.c: Likewise.
15844         * tree-ssa-loop-im.c: Likewise.
15845         * tree-ssa-loop-ivcanon.c: Likewise.
15846         * tree-ssa-loop-ivopts.c: Likewise.
15847         * tree-ssa-loop-manip.c: Likewise.
15848         * tree-ssa-loop-niter.c: Likewise.
15849         * tree-ssa-loop-prefetch.c: Likewise.
15850         * tree-ssa-phiprop.c: Likewise.
15851         * tree-ssa-pre.c: Likewise.
15852         * tree-ssa-reassoc.c: Likewise.
15853         * tree-ssa-sccvn.c: Likewise.
15854         * tree-ssa-structalias.c: Likewise.
15855         * tree-ssa.c: Likewise.
15856         * tree-vect-data-refs.c: Likewise.
15857         * tree-vect-loop-manip.c: Likewise.
15858         * tree-vect-loop.c: Likewise.
15859         * tree-vect-patterns.c: Likewise.
15860         * tree-vect-slp.c: Likewise.
15861         * tree-vect-stmts.c: Likewise.
15862         * tree-vrp.c: Likewise.
15863         * tree.c: Likewise.
15864         * value-prof.c: Likewise.
15865         * var-tracking.c: Likewise.
15866         * varasm.c: Likewise.
15867         * vmsdbgout.c: Likewise.
15868
15869 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
15870             Richard Guenther  <richard.guenther@gmail.com>
15871
15872         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
15873         copy the src value and return a copy.
15874         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
15875         (C++ Volatiles): Adjust to describe C++ semantics only.
15876
15877 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
15878
15879         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
15880         be zero or nonzero.
15881         * doc/tm.texi: Regenerate.
15882         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
15883         * df-scan.c (df_get_exit_block_use_set), reginfo.c
15884         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
15885         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
15886         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
15887         to 1.
15888
15889 2010-08-20  Olivier Hainque  <hainque@adacore.com>
15890
15891         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
15892         an extra nop past a sibling call at the very end.
15893
15894 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
15895
15896         PR bootstrap/45350
15897         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
15898         a comment.
15899
15900 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
15901
15902         * target.def (function_arg, function_incoming_arg): Remove const
15903         qualifier on CUMULATIVE_ARGS parameter.
15904         * targhooks.h (default_function_arg, default_function_incoming_arg):
15905         Likewise.
15906         * targhooks.c (default_function_arg, default_function_incoming_arg):
15907         Likewise.
15908         * config/i386/i386.c (ix86_function_arg): Likewise.
15909
15910 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
15911
15912         PR target/45336
15913         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
15914         SIGN_EXTENDs or ZERO_EXTENDs.
15915
15916 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
15917
15918         PR target/42172
15919         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
15920         Take its cost into account if nonnull.
15921         (insn_a_feeds_b): New static function.
15922         (combine_instructions): Look for four-insn combinations.
15923         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
15924         them into account when computing all_adjacent and looking for other
15925         uses.
15926         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
15927         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
15928         (try_combine): New arg I0.  Handle four-insn combinations.
15929         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
15930         like ELIM_I1.
15931
15932 2010-08-19  Jason Merrill  <jason@redhat.com>
15933
15934         PR c++/45307
15935         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
15936         if ctor is empty.
15937         (gimplify_modify_expr_rhs): Adjust.
15938
15939 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
15940
15941         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
15942         bitmap_bit_p.
15943         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
15944         * dominance.c (iterate_fix_dominators): Likewise.
15945         * dse.c (set_usage_bits): Likewise.
15946         (set_position_unneeded, record_store): Likewise.
15947         * gimple-fold.c (get_maxval_strlen): Likewise.
15948         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
15949         * ipa-inline.c (update_caller_keys): Likewise.
15950         * ipa-split.c (verify_non_ssa_vars): Likewise.
15951         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
15952         (close_type_exposed_parameter, close_type_full_escape): Likewise.
15953         (close_addressof_down): Likewise.
15954         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
15955         (setup_allocno_left_conflicts_size): Likewise.
15956         (ira_reassign_conflict_allocnos): Likewise.
15957         (ira_reassign_pseudos): Likewise.
15958         * ira-emit.c (change_loop): Likewise.
15959         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
15960         * lto-streamer-out.c (write_symbol): Likewise.
15961         * predict.c (expr_expected_value_1): Likewise.
15962         * regstat.c (regstat_bb_compute_ri): Likewise.
15963         * sel-sched.c (create_block_for_bookkeeping): Likewise.
15964         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
15965         * stmt.c (expand_case): Likewise.
15966         * tree-eh.c (emit_eh_dispatch): Likewise.
15967         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
15968         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
15969         Likewise.
15970         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
15971         (rdg_build_components): Likewise.
15972         * tree-object-size.c (collect_object_sizes_for): Likewise.
15973         * tree-sra.c (convert_callers): Likewise.
15974         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
15975         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
15976         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
15977
15978 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
15979
15980         * config/i386/i386.md (*lea_1): Use P mode iterator.
15981         (lea add splitter): Also handle DImode operands.
15982         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
15983         predicate.  Do not use ix86_lea_for_add_ok.
15984         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
15985         (lea ashift splitter): Also handle DImode operands.
15986         (DImode lea ashift splitter): Remove splitter.
15987
15988 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
15989
15990         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
15991         ix86_binary_operator_ok.
15992
15993 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
15994
15995         PR rtl-optimization/44691
15996         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
15997         is not a register.
15998
15999 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
16000
16001         PR target/45070
16002         * config/arm/arm.c (arm_output_epilogue): Ensure that return
16003          value of size 1-3 is handled correctly.
16004
16005 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
16006
16007         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
16008         type for the conditional has wide enough range.
16009
16010 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
16011
16012         PR target/45327
16013         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
16014         ix86_binary_operator_ok.
16015
16016 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
16017
16018         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
16019         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
16020         code to output insn mnemonic.  Fix comment.
16021         (*addsi_1_zext): Add r-r-0 alternative 1.
16022         <TYPE_LEA>: Split insn to lea.
16023         <default>: Handle alternative 1.
16024         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
16025         multi-level if_then_else RTX to set "type" attribute.
16026         <default>: Handle alternative 2.
16027         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
16028         Use cond RTX instead of multi-level if_then_else RTX to set
16029         "type" attribute.
16030         <default>: Handle alternatives 2 and 4.
16031         (lea splitters): Update calls to ix86_lea_for_add_ok.
16032
16033         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
16034         argument.
16035         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
16036
16037 2010-08-18  Richard Guenther  <rguenther@suse.de>
16038
16039         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
16040         use operand helpers.
16041
16042 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
16043
16044         PR middle-end/45292
16045         * optabs.c (expand_bool_compare_and_swap): Expand pending
16046         pops before trying the optab.
16047
16048 2010-08-18  Yao Qi  <yao@codesourcery.com>
16049
16050         PR target/45094
16051         * config/arm/arm.c (output_move_double): Fix typo generating
16052         instructions ('ldr'->'str').
16053
16054 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
16055
16056         PR rtl-optimization/42575
16057         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
16058         live ranges.
16059
16060 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16061
16062         * config/arm/arm-protos.h (arm_expand_sync): New.
16063         (arm_output_memory_barrier, arm_output_sync_insn): New.
16064         (arm_sync_loop_insns): New.
16065         * config/arm/arm.c (FL_ARCH7): New.
16066         (FL_FOR_ARCH7): Include FL_ARCH7.
16067         (arm_arch7): New.
16068         (arm_print_operand): Support %C markup.
16069         (arm_legitimize_sync_memory): New.
16070         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
16071         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
16072         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
16073         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
16074         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
16075         (arm_process_output_sync_insn, arm_output_sync_insn): New.
16076         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
16077         * config/arm/arm.h (struct arm_sync_generator): New.
16078         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
16079         (TARGET_HAVE_MEMORY_BARRIER): New.
16080         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
16081         * config/arm/arm.md: Include sync.md.
16082         (UNSPEC_MEMORY_BARRIER): New.
16083         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
16084         (VUNSPEC_SYNC_OP):New.
16085         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
16086         (sync_result, sync_memory, sync_required_value): New attributes.
16087         (sync_new_value, sync_t1, sync_t2): Likewise.
16088         (sync_release_barrier, sync_op): Likewise.
16089         (length): Add logic to length attribute defintion to call
16090         arm_sync_loop_insns when appropriate.
16091         * config/arm/sync.md: New file.
16092
16093 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
16094
16095         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
16096         ENABLE_TREE_CHECKING.
16097         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
16098         and GCC >= 4.3.
16099
16100 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
16101
16102         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
16103         or optimizing for size, always avoid lea if possible.
16104
16105         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
16106
16107 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
16108
16109         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
16110         Dunmmy function with NULL return unless the target is
16111         OSX >= 10.6 (Darwin10).
16112
16113 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
16114
16115         * gcc.c (spec_function): Add remove-outfile.
16116         (remove_outfile_spec_function): New function.
16117         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
16118         * invoke.texi (replace-outfile): Document.
16119
16120 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
16121
16122         PR target/45296
16123         * reginfo.c (globalize_reg): Reject stack registers.
16124
16125 2010-08-17  Richard Guenther  <rguenther@suse.de>
16126
16127         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
16128         list of conditional equivalences.
16129         (free_all_edge_infos): Adjust.
16130         (record_equivalences_from_incoming_edge): Likewise.
16131         (record_cond): Likewise.
16132         (build_and_record_new_cond): Likewise.
16133         (record_conditions): Likewise.
16134         (dom_opt_leave_block): Likewise.
16135
16136 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
16137
16138         * doc/invoke.texi (ms-extension): Add documentation.
16139
16140 2010-08-17  Richard Guenther  <rguenther@suse.de>
16141
16142         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
16143
16144 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
16145
16146         PR c/40563
16147         * c-decl.c (diagnose_uninitialized_cst_member): New function.
16148         (finish_decl): Use it to issue a -Wc++-compat warning about
16149         uninitialized const field in struct or union.
16150
16151         (finish_struct): Use strip_array_types.
16152
16153 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
16154
16155         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
16156         functions.
16157         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
16158         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
16159         call block_nreverse here.
16160         (blocks_nreverse): Rename decl temporary to block.
16161
16162 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
16163
16164         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
16165         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
16166         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
16167         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
16168         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
16169         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
16170         thumb2_iorsi3): Delete.
16171         (orsi_notsi_si): No longer a named pattern.
16172         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
16173         * config/arm/predicates.md (shift_amount_operand): New.
16174         (mult_operator): New.
16175         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
16176         attr enabled): New.
16177         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
16178         arch matches t2.
16179         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
16180         (not_shiftsi_compare0): Likewise, renamed from
16181         arm_notsi_shiftsi_compare0.
16182         (not_shiftsi_compare0_scratch): Likweise, renamed from
16183         arm_notsi_shiftsi_compare0_scratch.
16184         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
16185         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
16186         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
16187         so that the register alternative is disabled when the shift_operator
16188         is MULT.  Use "M" as the constraint for constants.
16189         (arith_shiftsi splitter): Enable for TARGET_32BIT.
16190         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
16191         constraint for constants.
16192         (arith_shiftsi_compare0_scratch): Likewise.
16193         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
16194         Handle Thumb2 alternative.
16195
16196 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
16197
16198         * doc/options.texi (NoDriverArg): Document.
16199         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
16200         -MDX and -MMDX.
16201         * opt-functions.awk (switch_flags): Handle NoDriverArg.
16202         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
16203         marking for CL_NO_DRIVER_ARG options when in the driver.
16204         * opts.h (CL_NO_DRIVER_ARG): Define.
16205         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
16206         CL_COMMON): Update values.
16207
16208 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
16209
16210         * common.opt: Add driver options.
16211         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
16212         * doc/options.texi (Driver, RejectDriver): Document.
16213         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
16214         print_prog_name, print_multi_directory, print_sysroot,
16215         print_multi_os_directory, print_multi_lib,
16216         print_sysroot_headers_suffix, report_times, combine_flag,
16217         use_pipes, wrapper_string): Remove.
16218         (save_switch, driver_unknown_option_callback,
16219         driver_wrong_lang_callback, driver_post_handling_callback,
16220         driver_handle_option): New.
16221         (spec_lang, last_language_n_infiles): Make file-scope static
16222         instead of local to process_command.
16223         (process_command): Use decode_cmdline_options_to_array and
16224         read_cmdline_option for option processing.  Compute have_c in
16225         prescan of decoded options.
16226         * opt-functions.awk (switch_flags): Handle Driver and
16227         RejectDriver.
16228         (var_type, var_type_struct): Handle Separate options as generating
16229         const char * variables.
16230         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
16231         CL_TARGET to be passed by caller if required.
16232         (decode_cmdline_options_to_array): Update comment.
16233         * opts.c (complain_wrong_lang): Handle options only valid for the
16234         driver.
16235         (decode_options): Update call to decode_cmdline_options_to_array.
16236         (print_filtered_help): Ignore driver-only options.
16237         (print_specific_help): Ignore CL_DRIVER.
16238         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
16239         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
16240         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
16241         Update values.
16242
16243 2010-08-16  Richard Guenther  <rguenther@suse.de>
16244
16245         * tree-cfg.c (verify_types_in_gimple_reference): Verify
16246         TARGET_MEM_REF a bit.
16247         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
16248         (create_mem_ref_raw): Always create TMR_OFFSET, store the
16249         alias pointer type via it.
16250         (copy_mem_ref_info): Adjust.
16251         (maybe_fold_tmr): Likewise.
16252         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
16253         (reference_alias_ptr_type): Likewise.
16254         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
16255         adjust documentation of TMR_OFFSET operand.
16256         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
16257         use the alias pointer type.
16258         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
16259         initialize mem attrs but the TMR itself.
16260         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
16261         similar to MEM_REF.
16262         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
16263         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
16264         (unshare_and_remove_ssa_names): Likewise.
16265         (copy_ref_info): Adjust.
16266         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
16267         TARGET_MEM_REF case.
16268         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
16269         at TMR_ORIGINAL.
16270         * tree.h (TMR_ORIGINAL): Remove.
16271         * gimple.c (get_base_address): For TARGET_MEM_REF with a
16272         symbol return that.
16273         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
16274         with a symbol.
16275         (get_addr_base_and_unit_offset): Likewise.
16276         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
16277         TARGET_MEM_REFs.
16278         (indirect_ref_may_alias_decl_p): Likewise.
16279         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
16280
16281 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
16282
16283         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
16284         with GCC version 4.6, the default setting (when not optimizing
16285         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
16286         been changed to -fomit-frame-pointer.
16287
16288 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
16289
16290         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
16291         Darwin10.  Do not link libgcc.a for Darwin >= 9.
16292
16293 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
16294
16295         * doc/invoke.texi (Warning Options): Fix terminology and markup
16296         in the description of how unknown warning options are handled.
16297
16298 2010-08-15  Ira Rosen  <irar@il.ibm.com>
16299
16300         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
16301         in basic blocks.
16302         (vect_supportable_dr_alignment): Check alignment for basic blocks.
16303         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
16304         data references.
16305         (vect_bb_vectorization_profitable_p): New function.
16306         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
16307         check if it's worthwhile to vectorize the basic block.
16308
16309 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
16310
16311         * reload.h (register_move_cost, memory_move_secondary_cost,
16312         secondary_reload_class): Adjust prototype.
16313         * rtl.h (reg_class_subset_p): Adjust prototype.
16314         * reload.c (secondary_reload_class): Change arguments type from
16315         enum reg_class to reg_class_t. Change result type to reg_class_t.
16316         * reginfo.c (register_move_cost, reg_class_subset_p): Change
16317         arguments type from enum reg_class to reg_class_t.
16318         (memory_move_secondary_cost): Change arguments type from
16319         enum reg_class to reg_class_t. Change type of saved_flags to
16320         reg_class_t.
16321
16322         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
16323         Remove macros.
16324         (mips_cost): Remove.
16325         (struct mips_rtx_cost_data): Moved to mips.c.
16326         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
16327         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
16328         (mips_cost): Make static.
16329         (mips_canonicalize_move_class): Change argument type to reg_class_t.
16330         Change result type to reg_class_t.
16331         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
16332         type from enum reg_class to reg_class_t.
16333         (mips_register_move_cost): Make static. Change arguments
16334         type from enum reg_class to reg_class_t.
16335         (mips_memory_move_cost): New function.
16336         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
16337
16338 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
16339
16340         PR rtl-optimization/43358
16341         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
16342         of a single hard register, using simplify_subreg_regno to decide
16343         what that register should be.
16344
16345 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
16346
16347         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
16348         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
16349         (loongson_pmull<V_suffix>): Rename to...
16350         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
16351
16352 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
16353
16354         * configure.ac: Enable -fomit-frame-pointer on darwin
16355         which support dwarf2.
16356         * config/i386/i386.c (override_options): Same.
16357
16358 2010-08-13  Jie Zhang  <jie@codesourcery.com>
16359
16360         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
16361
16362 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
16363
16364         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
16365         -MMD.
16366
16367 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
16368
16369         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
16370         up dot_prod pattern searching if a stmt is outside the loop.
16371
16372 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
16373             Uros Bizjak  <ubizjak@gmail.com>
16374
16375         * config.gcc: Handle --enable-frame-pointer.
16376
16377         * configure.ac: Add --enable-frame-pointer.
16378         * configure: Regenerated.
16379
16380         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
16381         (override_options): If not configured with --enable-frame-pointer,
16382         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
16383         optimizing for size), -fasynchronous-unwind-tables and
16384         -maccumulate-outgoing-args by default.
16385
16386 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
16387
16388         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
16389
16390         PR middle-end/45262
16391         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
16392         -a overflows.  Normalize the range.
16393
16394 2010-08-12  Richard Guenther  <rguenther@suse.de>
16395
16396         PR tree-optimization/45232
16397         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
16398         for types with undefined overflow.
16399         (reassociate_bb): Allow re-associating of bit and min/max
16400         operations for types with undefined overflow.
16401         * tree-ssa-forwprop.c (associate_plusminus): New function.
16402         (tree_ssa_forward_propagate_single_use_vars): Call it.
16403
16404 2010-08-12  Richard Guenther  <rguenther@suse.de>
16405
16406         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
16407         * tree-ssa-alias.c (get_ptr_info): Move ...
16408         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
16409         align and misalign fields conservatively.
16410         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
16411         derive alignment information.
16412         (evaluate_stmt): Derive alignment information from memory
16413         allocation functions.
16414         * tree.h (get_pointer_alignment): Make unsigned.
16415         * builtins.c (get_object_alignment): Use alignment information we
16416         have computed for pointers.
16417         (get_pointer_alignment): Likewise.  Make conservative, return
16418         and unsigned value.
16419         (expand_builtin_strlen): Adjust.
16420         (expand_builtin_memcmp): Likewise.
16421         (expand_builtin_strcmp): Likewise.
16422         (expand_builtin_strncmp): Likewise.
16423         (get_builtin_sync_mem): Use at least mode alignment.
16424         (fold_builtin_memset): Adjust.
16425         (fold_builtin_memory_op): Likewise.
16426         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
16427         information also dump pointer alignment knowledge.
16428         (dump_gimple_stmt): Likewise.
16429
16430 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
16431
16432         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
16433         (EMPTY_FIELD_BOUNDARY): Remove.
16434         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
16435
16436 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
16437
16438         PR debug/45259
16439         * caller-save.c (save_call_clobbered_regs): Only swap notes with
16440         DEBUG_INSNs if n_regs_saved.
16441
16442 2010-08-12  Wei Guozhi  <carrot@google.com>
16443
16444         PR target/44999
16445         * config/arm/arm.md (andsi3): Change to zero extension if possible.
16446         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
16447
16448 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
16449
16450         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
16451
16452         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
16453
16454 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16455
16456         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
16457         the case removed in the previous patch, when the only phi argument
16458         is defined in the same loop as the phi node itself.  Handle it
16459         separately from the invariant case by both propagating it outside
16460         the region and replacing the phi node with an assign.
16461
16462 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16463
16464         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
16465         constant phi nodes with one argument are is_gimple_min_invariant
16466         and SSA_NAME_IS_DEFAULT_DEF.
16467
16468 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16469
16470         * graphite-cloog-util.c (oppose_constraint):
16471         Extend loop counter's value range (CLOOG_ORG).
16472         (cloog_matrix_to_ppl_constraint): Same.
16473         (new_Constraint_System_from_Cloog_matrix): Same.
16474         * graphite-cloog-compat.h (matrix_num_type): New.
16475
16476 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16477
16478         * graphite.c (graphite_initialize): Do not initialize
16479         CLooG and initialize the Parma Polyhedra Library
16480         manually when using CLOOG_ORG.
16481         (graphite_finalize): Do not finalize CLooG and finalize
16482         the Parma Polyhedra Library manually when using CLOOG_ORG.
16483         * graphite-cloog-compat.h (cloog_initialize): Hide function
16484         when using CLOOG_ORG.
16485         (cloog_finalize): Same.
16486
16487 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16488
16489         * graphite-clast-to-gimple.c (free_scattering): Change
16490         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
16491         (CLOOG_ORG).
16492         (build_cloog_prog): Same.
16493         * graphite-cloog-compat.h (cloog_domain): Removed.
16494         (cloog_scattering): New.
16495         (cloog_set_domain): Removed.
16496         (cloog_set_scattering): New.
16497         (cloog_next_domain): Removed.
16498         (cloog_next_scattering): New.
16499         (cloog_set_next_domain): Removed.
16500         (cloog_set_next_scattering): New.
16501         (CloogScatteringList): New.
16502         (CloogScattering): New.
16503         (cloog_scattering_free): New.
16504         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
16505         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
16506         New.
16507
16508 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16509
16510         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
16511         CloogState.
16512         (set_cloog_options): Same.
16513         (print_clast_stmt): Same.
16514         (scop_to_clast): Same.
16515         (print_generated_program): Same.
16516         (gloog): Same.
16517         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
16518         (scop_to_clast): Extend with CloogState.
16519         * graphite-cloog-util.c: Include graphite-cloog-compat.h
16520         (new_Cloog_Domain_from_ppl_Polyhedron):
16521         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
16522         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
16523         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16524         * graphite-cloog-util.h (build_cloog_prog): Same.
16525         * graphite-cloog-copat.h (build_cloog_prog): New.
16526         (CloogState): New.
16527         (cloog_state_malloc): New.
16528         (cloog_state_free): New.
16529         (cloog_loop_malloc): New.
16530         (cloog_options_malloc): New.
16531         (cloog_statement_alloc): New.
16532         (cloog_domain_from_cloog_matrix): New.
16533         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
16534         (new_Cloog_Domain_from_ppl_Polyhedron): New.
16535
16536 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16537
16538         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
16539         type of NAME now depends on used CLooG version.
16540         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
16541         (gcc_type_for_clast_expr): Same.
16542         (print_clast_stmt): Replace pprint with clast_pprint.
16543         * graphite-cloog-compat.h: Provide compatibility macros for
16544         CLooG Legacy.
16545         (clast_name_p): New.
16546         (clast_expr_term): New.
16547         (clast_expr_red): New.
16548         (clast_expr_bin): New.
16549         (clast_pprint): New.
16550
16551 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16552
16553         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
16554         compatible to newer CLooG releases (CLOOG_ORG).
16555         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
16556         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
16557         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
16558         (build_cloog_prog) : New.
16559         (cloog_program_extract_scalars): New.
16560         (cloog_program_scatter): New.
16561
16562 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16563
16564         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
16565         conditionally (CLOOG_ORG).
16566         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
16567         (cloog_statement_usr): New.
16568         (cloog_domain): Same.
16569         (cloog_set_domain): Same.
16570         (cloog_next_domain): Same.
16571         (cloog_set_next_domain): Same.
16572         (cloog_program_nb_scattdims): Same.
16573         (cloog_program_set_nb_scattdims): Same.
16574         (cloog_program_names): Same.
16575         (cloog_program_set_names): Same.
16576         (cloog_program_set_context): Same.
16577         (cloog_program_set_loop): Same.
16578         (cloog_program_blocklist): Same.
16579         (cloog_program_set_blocklist): Same.
16580         (cloog_program_scaldims): Same.
16581         (cloog_program_set_scaldims): Same.
16582         (cloog_names_nb_parameters): Same.
16583         (cloog_names_set_nb_parameters): Same.
16584         (cloog_names_parameters): Same.
16585         (cloog_names_set_parameters): Same.
16586         (cloog_names_set_nb_iterators): Same.
16587         (cloog_names_set_iterators): Same.
16588         (cloog_names_set_nb_scattering): Same.
16589         (cloog_names_set_scattering): Same.
16590         (cloog_statement_set_usr): Same.
16591         (cloog_loop_set_next): Same.
16592         (cloog_loop_set_domain): Same.
16593         (cloog_loop_set_block): Same.
16594         (cloog_block_list_next): Same.
16595         (cloog_block_list_set_next):
16596         (cloog_block_list_set_block): Same.
16597
16598 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16599
16600         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
16601         a bool.
16602         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
16603         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
16604         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
16605         when something has been changed.
16606         (rewrite_commutative_reductions_out_of_ssa): Same.
16607
16608 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16609
16610         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
16611         handle the case when def is in the sese region.
16612         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
16613         for invariant expressions.
16614         (rewrite_cross_bb_phi_deps): Removed.
16615         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
16616         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
16617         rewrite_cross_bb_phi_deps.
16618
16619 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16620
16621         * graphite-sese-to-poly.c
16622         (rewrite_commutative_reductions_out_of_ssa_loop): Call
16623         scev_analyzable_p only on is_gimple_reg
16624
16625 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16626
16627         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
16628         (rewrite_close_phi_out_of_ssa): Propagate constant values or
16629         parametric expressions outside the scop region.
16630         (rewrite_cross_bb_scalar_deps): Same.
16631         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
16632
16633 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16634
16635         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
16636         SSA_NAME_DEF_STMT only on SSA_NAMEs.
16637
16638 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16639
16640         * tree-scalar-evolution.c (instantiate_scev_name): Do not
16641         instantiate default definitions.
16642
16643 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
16644             Sebastian Pop  <sebastian.pop@amd.com>
16645
16646         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
16647         (loop_exits_from_bb_p): New.
16648         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
16649         (loop_exits_from_bb_p): Declared.
16650         * graphite-scop-detection.c (scopdet_basic_block_info): Call
16651         loop_exits_to_bb_p.
16652
16653 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16654
16655         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
16656         extra parameter for the region.  Call scev_analyzable_p.
16657         (rewrite_reductions_out_of_ssa): Update call to
16658         rewrite_close_phi_out_of_ssa.
16659         (rewrite_cross_bb_phi_deps): Same.
16660         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
16661         parameter for the region.  Call scev_analyzable_p.
16662         (rewrite_commutative_reductions_out_of_ssa): Update call to
16663         rewrite_commutative_reductions_out_of_ssa_loop.
16664
16665 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16666
16667         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
16668
16669 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16670
16671         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
16672         SSA scalar phi nodes that can be scev_analyzable_p.
16673
16674 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16675
16676         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
16677         handle SSA_NAME_IS_DEFAULT_DEF.
16678
16679 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16680
16681         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
16682
16683 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16684
16685         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
16686         case non close-phi nodes with one argument.
16687
16688 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16689
16690         * sese.h (scev_analyzable_p): Scevs could be expressions without
16691         chrecs and still be scev_analyzable_p.
16692
16693 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16694
16695         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
16696
16697 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16698
16699         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
16700         * cfgloop.h (struct loop): Remove single_iv field.
16701         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
16702         (scop_canonicalize_loops): Removed.
16703         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
16704         over all the loop phi nodes in loop->header.
16705         (build_poly_scop): Remove use of scop_canonicalize_loops.
16706
16707 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16708
16709         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
16710         handle GIMPLE_CALL.
16711
16712 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16713
16714         * tree-chrec.c (chrec_apply): Should only apply to the specified
16715         variable.  Also handle multivariate chains of recurrences that
16716         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
16717
16718 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16719
16720         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
16721         (debug_clast_name_indexes_1): Removed.
16722         (debug_clast_name_indexes): Removed.
16723         (pbb_to_depth_to_oldiv): Removed.
16724         (build_iv_mapping): Replace the use of rename_map with iv_map.
16725         (translate_clast_user): Remove uses of rename_map.  Allocate and
16726         free iv_map.
16727         (translate_clast_for_loop): Remove uses of rename_map.
16728         (translate_clast_for): Same.
16729         (translate_clast_guard): Same.
16730         (translate_clast): Same.
16731         (gloog): Same.
16732         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
16733         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
16734         * sese.c (set_rename): Now static.
16735         (rename_variables_in_stmt): Removed.
16736         (rename_uses): New.
16737         (is_parameter): Removed.
16738         (is_iv): Removed.
16739         (expand_scalar_variables_call): Removed.
16740         (expand_scalar_variables_ssa_name): Removed.
16741         (expand_scalar_variables_expr): Removed.
16742         (expand_scalar_variables_stmt): Removed.
16743         (expand_scalar_variables): Removed.
16744         (rename_variables): Removed.
16745         (remove_condition): Removed.
16746         (get_true_edge_from_guard_bb): Removed.
16747         (get_false_edge_from_guard_bb): Removed.
16748         (struct igp): Removed.
16749         (default_before_guard): Removed.
16750         (convert_for_phi_arg): Removed.
16751         (add_guard_exit_phis): Removed.
16752         (insert_guard_phis): Removed.
16753         (graphite_copy_stmts_from_block): Now also uses iv_map and a
16754         region.  Do not copy conditions.  Do not copy induction variables.
16755         Call rename_uses.
16756         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
16757         the translated statement.  Use the iv_map for the induction
16758         variable renaming.
16759         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
16760         (set_rename): Removed declaration.
16761         (scev_analyzable_p): ...here.
16762         * tree-chrec.c (chrec_apply_map): New.
16763         * tree-chrec.h (chrec_apply_map): Declared.
16764
16765 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16766
16767         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
16768         insert_loop_close_phis.
16769         * sese.c (name_defined_in_loop_p): Removed.
16770         (expr_defined_in_loop_p): Removed.
16771         (alive_after_loop): Removed.
16772         (close_phi_not_yet_inserted_p): Removed.
16773         (struct alep): Removed.
16774         (add_loop_exit_phis): Removed.
16775         (insert_loop_close_phis): Removed.
16776
16777 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16778
16779         * graphite-cloog-util.c
16780         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
16781         * graphite-poly.c
16782         (psct_scattering_dim_for_loop_depth): Same.
16783
16784 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16785
16786         * graphite-cloog-util.h: Added cloog.h.
16787         * graphite-blocking.c: Removed cloog.h.
16788         * graphite-dependences.c: Same.
16789         * graphite-interchange.c: Same.
16790         * graphite-poly.c: Same.
16791         * graphite-ppl.c: Same.
16792         * graphite-scop-detection.c: Same.
16793         * graphite-sese-to-poly.c:
16794         Removed cloog.h.
16795         Removed graphite-clast-to-gimple.h.
16796         (check_poly_representation): Removed (unused).
16797         * graphite-sese-to-poly.h
16798         (check_poly_representation): Removed (unused).
16799
16800 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16801
16802         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
16803         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
16804         (graphite-cloog-util.o): New.
16805         (graphite-ppl.o): Added graphite-cloog-util.h.
16806         * graphite-clast-to-gimple.c:
16807         Added graphite-cloog-util.h to include statements.
16808         * graphite-cloog-util.c: New.
16809         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
16810         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16811         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16812         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16813         (insert_constraint_into_matrix): Same.
16814         (ppl_Constrain_System_number_of_constraints): Same.
16815         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
16816         (oppose_constraint): Same.
16817         (cloog_matrix_to_ppl_constraint): Same.
16818         (new_Constraint_System_from_Cloog_Matrix): Same.
16819         * graphite-cloog-util.h: New.
16820         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
16821         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16822         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16823         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16824         (insert_constraint_into_matrix): Same.
16825         * graphite-ppl.c:
16826         Added graphite-cloog-util.h to include statements.
16827         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
16828         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16829         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16830         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16831         (insert_constraint_into_matrix): Same.
16832         (ppl_Constrain_System_number_of_constraints): Same.
16833         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
16834         (oppose_constraint): Same.
16835         (cloog_matrix_to_ppl_constraint): Same.
16836         (new_Constraint_System_from_Cloog_Matrix): Same.
16837         * graphite-ppl.h:
16838         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
16839         graphite-cloog-util.h.
16840         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16841         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16842         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16843         (insert_constraint_into_matrix): Same.
16844
16845 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16846
16847         * graphite-clast-to-gimple.c
16848         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
16849         (precision_for_interval): Same.
16850         (gcc_type_for_interval): Same.
16851         (compute_type_for_level): Same.
16852         * graphite-interchange.c
16853         (lst_interchange_profitable_p): Same.
16854         * graphite-poly.c
16855         (psct_scattering_dim_for_loop_depth): Same.
16856         * graphite-ppl.c
16857         (ppl_max_for_le_pointset): Same.
16858         (ppl_min_for_le_pointset): Same.
16859
16860 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16861
16862         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
16863         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
16864
16865 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16866
16867         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
16868         rewrite_close_phi_out_of_ssa.
16869
16870 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16871
16872         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
16873
16874 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16875
16876         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
16877         rename_map.
16878         * sese.c (debug_rename_map): Same.
16879         (get_rename): Same.
16880         (set_rename): Same.
16881         (rename_variables_in_stmt): Same.
16882         (expand_scalar_variables_call): Same.
16883         (expand_scalar_variables_ssa_name): Same.
16884         (expand_scalar_variables_expr): Same.
16885         (expand_scalar_variables_stmt): Same.
16886         (expand_scalar_variables): Same.
16887         (rename_variables): Same.
16888         (graphite_copy_stmts_from_block): Same.
16889         (copy_bb_and_scalar_dependences): Same.
16890
16891 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16892
16893         * graphite-clast-to-gimple.c (copy_renames): Removed.
16894         (translate_clast_for): Do not call copy_renames.
16895         (translate_clast_guard): Same.
16896
16897 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16898
16899         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
16900         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
16901         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
16902         before rewrite_cross_bb_scalar_deps.
16903
16904 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16905
16906         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
16907         Early return in when flag_associative_math is not set.
16908
16909 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16910
16911         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
16912         of SSA copies on edges except for loop->latch.
16913
16914 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16915
16916         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
16917         Split out of rewrite_reductions_out_of_ssa.
16918         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
16919         Declared.
16920         * graphite.c (graphite_transform_loops): Call it.
16921
16922 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16923
16924         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
16925
16926 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
16927
16928         * dbgcnt.def (graphite_scop): New counter.
16929         * graphite.c: Include dbgcnt.h.
16930         (graphite_transform_loops): Use new counter to limit transformations.
16931         * Makefile.in (graphite.o): Depend on DBGCNT_H.
16932
16933 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16934
16935         * passes.c (init_optimization_passes): Add pass_graphite.
16936         Schedule a pass_copy_prop before pass_graphite_transforms.
16937         * timevar.def (TV_GRAPHITE): Declared.
16938         * tree-pass.h (pass_graphite): Declared.
16939         * tree-ssa-loop.c (pass_graphite): New.
16940
16941 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16942
16943         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
16944         Remove calls to rename_nb_iterations and rename_sese_parameters.
16945         * graphite-clast-to-gimple.h (gloog): Update declaration.
16946         * graphite.c (graphite_transform_loops): Update call to gloog.
16947         * sese.c (rename_variables_in_expr): Removed.
16948         (rename_nb_iterations): Removed.
16949         (rename_sese_parameters): Removed.
16950         * sese.h (rename_nb_iterations): Removed.
16951         (rename_sese_parameters): Removed.
16952
16953 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16954
16955         * graphite-clast-to-gimple.c (gloog): Remove call to
16956         sese_adjust_liveout_phis.
16957         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
16958         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
16959         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
16960         rewrite_phi_out_of_ssa.
16961         * sese.c (get_vdef_before_sese): Removed.
16962         (sese_adjust_vphi): Removed.
16963         (sese_adjust_liveout_phis): Removed.
16964         * sese.h (sese_adjust_liveout_phis): Removed.
16965
16966 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16967
16968         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
16969         argument for the place after which to insert the out of SSA copy.
16970         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
16971         (rewrite_phi_out_of_ssa): Same.
16972         (rewrite_cross_bb_scalar_deps): Same.
16973         (insert_copyout): Removed.
16974         (insert_copyin): Removed.
16975         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
16976         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
16977         insert_copyin.
16978
16979 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16980
16981         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
16982         (rewrite_reductions_out_of_ssa): Same.
16983         (rewrite_commutative_reductions_out_of_ssa): Same.
16984         (build_poly_scop): Do not call these functions.
16985         * graphite-sese-to-poly.h (build_poly_scop): Declared.
16986         (rewrite_reductions_out_of_ssa): Declared.
16987         (rewrite_commutative_reductions_out_of_ssa): Declared.
16988         * graphite.c (graphite_transform_loops): Call on every scop
16989         rewrite_commutative_reductions_out_of_ssa before calling
16990         rewrite_reductions_out_of_ssa and build_scop_bbs.
16991
16992 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16993
16994         * graphite-dependences.c (dot_deps): Make system call to dotty run
16995         in background.
16996         (dot_deps_stmt): Same.
16997         * graphite-poly.c (dot_lst): Same.
16998
16999 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17000
17001         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
17002         phi_arg_in_outermost_loop.
17003         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
17004         (remove_invariant_phi): Same.
17005
17006 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
17007
17008         * target.def (output_addr_const_extra): New hook.
17009         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
17010         * doc/tm.texi: Regenerate.
17011         * targhooks.c (default_asm_output_addr_const_extra): New function.
17012         * targhooks.h (default_asm_output_addr_const_extra): Declare.
17013         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
17014         target hook.
17015
17016         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
17017         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
17018         * config/i386/i386.h (output_addr_const_extra): Rename to...
17019         (i386_asm_output_addr_const_extra): ...this. Make static.
17020         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
17021
17022 2010-08-11  Richard Henderson  <rth@redhat.com>
17023
17024         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
17025
17026 2010-08-11  Nick Clifton  <nickc@redhat.com>
17027
17028         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
17029         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
17030         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
17031         stormy16-lib2-cmpsi.c.
17032
17033         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
17034         -O2.
17035
17036 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
17037
17038         * opts.h (struct cl_option_handler_func): Make handler take
17039         cl_decoded_option structure as parameter, not individual elements.
17040         (struct cl_option_handlers): Make callbacks take cl_decoded_option
17041         structure as parameter, not individual elements.
17042         (handle_option): Take cl_decoded_option structure as parameter,
17043         not individual elements.
17044         (handle_generated_option): Declare.
17045         * opts-common.c (handle_option): Take cl_decoded_option structure
17046         as parameter, not individual elements.  Update calls to callback
17047         and handler functions.
17048         (handle_generated_option): New.
17049         (read_cmdline_option): Update calls to callback functions and
17050         handle_option.
17051         * opts.c (common_handle_option, complain_wrong_lang,
17052         unknown_option_callback, post_handling_callback,
17053         lang_handle_option, target_handle_option): Take cl_decoded_option
17054         structure as parameter, not individual elements.
17055         (lang_handle_option, target_handle_option, common_handle_option):
17056         Assert option has at most one argument.
17057         (enable_warning_as_error): Call handle_generated_option instead of
17058         handle_option.  Do not pass -Werror argument as argument of
17059         generated option.
17060
17061 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17062
17063         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
17064         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
17065         (SUBWORD_BOOL_CAS): Likewise.
17066         (SUBWORD_SYNC_OP): Likewise.
17067         (SUBWORD_TEST_AND_SET): Likewise.
17068         (FETCH_AND_OP_WORD): Parenthesise INF_OP
17069         (SUBWORD_SYNC_OP): Likewise.
17070         (OP_AND_FETCH_WORD): Likewise.
17071
17072 2010-08-10  Xinliang David Li  <davidxl@google.com>
17073
17074         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
17075         compute max/min offset in address.
17076
17077 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
17078
17079         * ira-live.c: Include sbitmap.h.
17080         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
17081         Compress live ranges even more.
17082
17083 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17084
17085         * coverage.c (ctr_labels): Delete.
17086
17087 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
17088
17089         PR bootstrap/45177
17090         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
17091         test here from arm_gen_load_multiple_1.
17092         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
17093         multiple_operation_profitable_p.
17094
17095 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17096
17097         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
17098         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
17099
17100 2010-08-10  Richard Henderson  <rth@redhat.com>
17101
17102         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
17103         after saving registers.  Assert that SSE registers are only saved
17104         with a sufficiently aligned frame.
17105         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
17106         remove stack_realign_fp handling.
17107         (ix86_expand_prologue): Save int registers before stack_realign_fp,
17108         and do not mark the stack alignment as frame related.
17109         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
17110
17111         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
17112         saves when re-aligning the stack.
17113
17114 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17115
17116         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
17117         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
17118         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
17119
17120 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17121
17122         * dwarf2out.c (struct die_struct): Move die_tag to the end.
17123
17124 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
17125
17126         * config/arm/iterators.md: New file.
17127         * config/arm/arm.md: Include iterators.md.
17128         (QHSI): Move to new file.
17129         (LTUGEU, cnb, optab, ior_xor): Likewise.
17130         * config/arm/iwmmxt.md (VMMX): Move to new file.
17131         (VSHFT, MMX_char): Likewise.
17132         * config/arm/neon.md (VD): Move to new file.
17133         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
17134         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
17135         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
17136         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
17137         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
17138         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
17139         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
17140         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
17141         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
17142         (Is_d_reg, V_mode_nunits): Likewise.
17143         * config/arm/vec-common.md (VALL): Move to new file.
17144         (VALLW, VINT, VINTW): Likewise.
17145
17146 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
17147
17148         PR middle-end/45182
17149         * combine.c (make_compound_operation): Don't try to convert
17150         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
17151
17152 2010-08-10  Richard Guenther  <rguenther@suse.de>
17153
17154         * tree.h (get_object_alignment): Adjust prototype.
17155         * builtins.c (get_object_alignment): Return unsigned int,
17156         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
17157         and TARGET_MEM_REF properly.
17158         (get_pointer_alignment): Adjust.
17159         * emit-rtl.c (get_mem_align_offset): Adjust comment.
17160         (set_mem_attributes_minus_bitpos): Adjust.
17161         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
17162
17163 2010-08-10  Richard Guenther  <rguenther@suse.de>
17164
17165         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
17166         (copy_prop_visit_assignment): Simplify.
17167         (copy_prop_visit_stmt): Also visit assignments from
17168         constants.
17169         (copy_prop_visit_phi_node): Use operand_equal_p.
17170
17171 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
17172
17173         * ipa-split.c (find_split_points): Free stack.
17174
17175 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
17176
17177         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
17178         * tree.c (tree_node_kind): Delete corresponding entries.
17179
17180 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
17181
17182         * alias.c (may_alias_p): Remove unused ret.
17183
17184 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
17185
17186         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
17187         alias_sets_conflict_p.
17188         (walk_mems_1): Moved from alias.c.
17189         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
17190         in alias.c.
17191         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
17192         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
17193         * alias.c (walk_mems_2): Moved to ddg.c.
17194         (walk_mems_1): Ditto.
17195         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
17196         to ddg.c.
17197         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
17198         disambiguation.
17199         *(may_alias_p): New function to check whether two memory expression
17200         may alias or not. Currently used in buidling inter-iteration memory
17201         dependence.
17202         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
17203         (insn_alias_sets_conflict_p): Removed
17204         *rtl.h (may_alias_p): New function prototype.
17205
17206 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
17207
17208         * tree.c (nreverse): Assert that we don't have a BLOCK.
17209
17210 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
17211
17212         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
17213         * config/arm/arm.c (arm_get_pcs_model): Likewise.
17214         * config/avr/avr.c (init_cumulative_args): Likewise.
17215         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
17216         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
17217         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
17218         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
17219         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
17220         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17221         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
17222         * dwarf2out.c (gen_subprogram_die): Likewise.
17223         * function.c (allocate_struct_function): Likewise.
17224         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
17225         (deserves_ellipsis): Delete.
17226
17227 2010-08-09  Richard Guenther  <rguenther@suse.de>
17228
17229         * tree-ssa-copy.c (cached_last_copy_of): Remove.
17230         (valueize_val): New function.
17231         (get_last_copy_of): Remove.
17232         (set_copy_of_val): Simplify.
17233         (dump_copy_of): Likewise.
17234         (copy_prop_visit_cond_stmt): Use valueize_val.
17235         (copy_prop_visit_phi_node): Properly handle unvisited names.
17236         Drop code managing copy-of chains.
17237         (init_copy_prop): Adjust.
17238         (fini_copy_prop): Likewise.
17239         (execute_copy_prop): Remove obsolete comment.
17240
17241 2010-08-09  Richard Guenther  <rguenther@suse.de>
17242
17243         PR middle-end/44632
17244         * function.c (gimplify_parameters): Do not clear addressable
17245         bit of the original parameter.
17246
17247 2010-08-09  Richard Guenther  <rguenther@suse.de>
17248
17249         PR middle-end/45212
17250         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
17251         alignment from MEM_REF offset only if we took it from the
17252         base object.
17253
17254 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
17255
17256         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
17257
17258 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
17259
17260         * c-tree.h (build_arg_info): Declare.
17261         * c-decl.c (build_arg_info): Define.
17262         (get_parm_info): Call it.  Delete initialization code.
17263         * c-parser.c (c_parser_parms_declarator): Likewise.
17264         (c_parser_parms_list_declaractor): Likewise.
17265
17266 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
17267
17268         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
17269         (struct c_arg_info): Change type of tags field.
17270         * c-decl.c (grokdeclarator): Update for changed type of tags field.
17271         (get_parm_info): Likewise.
17272         (store_parm_decls_newstyle): Likewise.
17273
17274 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
17275
17276         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
17277         (branch_island_list): Delete.
17278         (branch_islands): Declare.
17279         (add_compiler_branch_island): Adjust for branch_islands instead of
17280         branch_island_list.
17281         (macho_branch_islands): Likewise.
17282         (no_previous_def): Likewise.
17283         (get_prev_label): Likewise.
17284
17285 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17286
17287         PR boehm-gc/34544
17288         * gthr-posix.h (__gthread_start): Delete.
17289         (__gthread_active_init): Use pthread_default_stacksize_np instead of
17290         pthread_create to determine if hpux pthreads are active.
17291         * gthr-posix95.h (__gthread_start): Delete.
17292         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
17293
17294 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
17295
17296         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
17297         _WIN64 not expanded.
17298
17299 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
17300             H.J. Lu  <hongjiu.lu@intel.com>
17301
17302         PR target/45213
17303         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
17304         to output 32bit SFmode immediate as 8 byte sign extended value.
17305
17306 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17307
17308         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
17309         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
17310         (SUBWORD_BOOL_CAS): Likewise.
17311         (SUBWORD_SYNC_OP): Likewise.
17312         (SUBWORD_TEST_AND_SET): Likewise.
17313         (FETCH_AND_OP_WORD): Parenthesise INF_OP
17314         (SUBWORD_SYNC_OP): Likewise.
17315         (OP_AND_FETCH_WORD): Likewise.
17316
17317 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17318
17319         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
17320         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
17321         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
17322         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
17323         generic part.
17324         (cortex_a9_sched_adjust_cost): New function.
17325         (xscale_sched_adjust_cost): New function.
17326         * config/arm/arm-protos.h (struct tune_params): New field
17327         sched_adjust_cost.
17328         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
17329
17330 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
17331
17332         PR target/44942
17333         * config/sparc/sparc.c (function_arg_advance): Always take into account
17334         the padding, if any.
17335
17336 2010-08-06  Richard Guenther  <rguenther@suse.de>
17337
17338         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
17339         (dump_lattice_value): Dump it.
17340         (get_default_value): Adjust.
17341         (get_constant_value): Likewise.
17342         (set_value_varying): Likewise.
17343         (set_lattice_value): Make sure to not go up the lattice
17344         with bitwise constant values.
17345         (get_value_for_expr): Handle ADDR_EXPRs.
17346         (value_to_double_int): New function.
17347         (get_value_from_alignment): Likewise.
17348         (do_dbg_cnt): Adjust.
17349         (ccp_lattice_meet): Handle partially constant values.
17350         (bit_value_unop_1): New function.
17351         (bit_value_binop_1): Likewise.
17352         (bit_value_unop): Likewise.
17353         (bit_value_binop): Likewise.
17354         (evaluate_stmt): Track partially constant values if
17355         flag_tree_bit_ccp is set.
17356         (ccp_fold_stmt): Dump if we folded a predicate.
17357         (ccp_visit_stmt): Adjust.
17358         * common.opt (ftree-bit-ccp): New flag.
17359         * doc/invoke.texi (ftree-bit-ccp): Document.
17360         * opts.c (decode_options): Enable bit-CCP at -O1.
17361
17362 2010-08-06  Alan Modra  <amodra@gmail.com>
17363
17364         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
17365         and -mrelocatable-lib description.
17366
17367 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
17368
17369         From Martin Thuresson  <martint@google.com>
17370         * postreload.c (reload_cse_simplify_operands): Use
17371         SET_REGNO_RAW instead of SET_REGNO.
17372         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
17373         SET_REGNO.
17374         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
17375         instead of SET_REGNO.
17376         * rtl.h (SET_REGNO_RAW): New macro.
17377
17378 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
17379
17380         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
17381         computations.  Fix formatting issues.
17382         (num_sign_bit_copies1): Likewise.
17383         (canonicalize_condition): Likewise.
17384
17385 2010-08-05  Richard Henderson  <rth@redhat.com>
17386
17387         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
17388         (floor_log2): Use clz_hwi.
17389         (exact_log2): Use ctz_hwi.
17390         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
17391         * builtins.c (fold_builtin_bitop): Use them.
17392         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
17393         * combine.c (get_pos_from_mask): Use ctz_hwi.
17394         * double-int.c (double_int_ctz): Likewise.
17395         * explow.c (force_reg): Likewise.
17396         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
17397
17398 2010-08-05  Richard Henderson  <rth@redhat.com>
17399
17400         PR target/45189
17401         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
17402         the alignment constant is properly sign-extended.
17403
17404 2010-08-05  Richard Guenther  <rguenther@suse.de>
17405
17406         * expr.c (store_expr): Use emit_block_move only if both
17407         source and target are MEMs.  Use store_bit_field if only
17408         the target is a MEM.
17409
17410 2010-08-05  Richard Henderson  <rth@redhat.com>
17411
17412         PR debug/45188
17413         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
17414         (INCOMING_RETURN_ADDR_RTX): Likewise.
17415         (dwarf2out_do_frame): Remove conditional compilation.
17416         (dwarf2out_frame_init): Likewise.
17417
17418 2010-08-05  Nicolas Setton  <setton@adacore.com>
17419
17420         * gcov.c (flag_display_progress): New static variable.
17421         (main): Display progress info on standard output if requested.
17422         (options): Add -d/--display-progress.
17423         (print_usage): Print them.
17424         (process_args): Handle them.
17425         * doc/gcov.texi: Document them.
17426
17427 2010-08-05  Martin Jambor  <mjambor@suse.cz>
17428
17429         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
17430         (ipcp_insert_stage): Redirect only edges not flagged with
17431         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
17432         discovered constants.
17433
17434 2010-08-05  Martin Jambor  <mjambor@suse.cz>
17435
17436         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
17437         (struct ipa_param_descriptor): New fields types and
17438         cannot_devirtualize.
17439         (ipa_param_cannot_devirtualize_p): New function.
17440         (ipa_param_types_vec_empty): Likewise.
17441         (ipa_make_edge_direct_to_target): Declare.
17442         * ipa-cp.c: Fixed first stage driver name in initial comment,
17443         described devirtualization there too.
17444         (ipcp_analyze_node): Call ipa_analyze_params_uses.
17445         (ipcp_print_all_lattices): Print devirtualization info.
17446         (ipa_set_param_cannot_devirtualize): New function.
17447         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
17448         lattice to BOTTOM.
17449         (ipcp_init_stage): Merged into...
17450         (ipcp_generate_summary): ...its caller.
17451         (ipcp_change_tops_to_bottom): Also process type lists.
17452         (ipcp_add_param_type): New function.
17453         (ipcp_copy_types): Likewise.
17454         (ipcp_propagate_types): Likewise.
17455         (ipcp_propagate_stage): Also propagate types.
17456         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
17457         Also return true if propagated types require it.
17458         (ipcp_update_callgraph): Dump redirection info.
17459         (ipcp_process_devirtualization_opportunities): New function.
17460         (ipcp_const_param_count): Include known type information.
17461         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
17462         on new node.  Fixed formatting.
17463         * ipa-prop.c (make_edge_direct_to_target): Renamed to
17464         ipa_make_edge_direct_to_target and changed all callers.  Made
17465         externally visible.
17466         (ipa_node_duplication_hook): Duplicate types vector.
17467         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
17468         redirect outgoing calls for which we can't get a decl from the
17469         statement.  Check that we can get a decl from the call statement.
17470         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
17471         ipa_analyze_params_uses only when ipa-cp is disabled.
17472         * tree-inline.c (get_indirect_callee_fndecl): Removed.
17473         (expand_call_inline): Do not call get_indirect_callee_fndecl.
17474         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
17475         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
17476
17477 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
17478
17479         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
17480         temporary. Emit move from temporary to accum, so REG_EQUAL note will
17481         be attached to this insn in correct mode.
17482
17483 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
17484
17485         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
17486         using REGNO of base_reg directly.
17487
17488 2010-08-05  Jie Zhang  <jie@codesourcery.com>
17489
17490         PR tree-optimization/45144
17491         * tree-sra.c (type_consists_of_records_p): Return false
17492         if the record contains bit-field.
17493
17494 2010-08-04  Richard Henderson  <rth@redhat.com>
17495
17496         * config/i386/i386.c (struct ix86_frame): Remove padding and
17497         to_allocate members.
17498         (ix86_compute_frame_layout): Don't store them.
17499         (ix86_can_use_return_insn_p): Use a more direct and more obviously
17500         correct condition for the position of the stack pointer.
17501         (ix86_expand_prologue): Compute remaining stack allocation based
17502         on the ultimate stack pointer offset.
17503         (ix86_expand_epilogue): Use more obvious expressions testing for
17504         the stack pointer already pointing to the saved registers.
17505
17506         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
17507         duplication deconstructing the frame pointer.  Simplify
17508         deallocation of the local stack frame.
17509
17510         * reg-notes.def (CFA_EXPRESSION): New.
17511         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
17512         (dwarf2out_frame_debug_cfa_expression): New.
17513         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
17514
17515         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
17516         * config/i386/i386.c (ix86_expand_prologue): Set it.
17517         (ix86_expand_epilogue): Clear it.
17518         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
17519         context, add REG_CFA_EXPRESSION notes.
17520
17521         * config/i386/i386.h (struct machine_frame_state): Rename from
17522         machine_cfa_state.  Add members tracking SP and FP regardless
17523         of the current CFA register.
17524         (ix86_cfa_state): Remove.
17525         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
17526         and sse_reg_save_offset members.
17527         (ix86_compute_frame_layout): Set them.
17528         (gen_push): Increment sp_offset too.
17529         (choose_baseaddr_len, choose_baseaddr): New.
17530         (ix86_emit_save_reg_using_mov): New.
17531         (ix86_emit_save_regs_using_mov): Use it.
17532         (ix86_emit_save_sse_regs_using_mov): Likewise.
17533         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
17534         compare vs the saved red_zone_offset.
17535         (pro_epilogue_adjust_stack): Adjust sp_offset.
17536         (ix86_adjust_stack_and_probe): Likewise.
17537         (ix86_expand_prologue): Set up, use, and validate the new
17538         frame_state_info members.  Use gen_frame_mem.
17539         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
17540         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
17541         new frame_state_info members.
17542         (ix86_emit_leave): Likewise.
17543         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
17544         out-of-range stack pointer offsets here.
17545         (ix86_emit_restore_sse_regs_using_mov): Likewise.
17546         (ix86_expand_epilogue): Use and validate the new frame_state_info
17547         members.  Break up and simplify the logic selecting the
17548         restore_regs_via_mov code path.  Ensure that there will be no
17549         out-of-range stack pointer offsets.
17550
17551         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
17552
17553         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
17554         argument name to reflect the expected tree; fix indentation.
17555         (ix86_asm_output_function_label): Output the entire 32-bit
17556         ms_hook here as bytes ...
17557         (ix86_expand_prologue): ... not here as insns.  Attach the
17558         unwind info for the ms_hook to a blockage insn.
17559         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
17560         (ix86_ms_bitfield_layout_p): Fix indentation.
17561         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
17562
17563         * config/i386/i386.c (ix86_using_red_zone): New.
17564         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
17565         ix86_expand_prologue, ix86_force_to_memory): Use it.
17566
17567         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
17568         saving the int registers.
17569
17570         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
17571         and DWARF2_UNWIND_INFO conditional compilation.
17572
17573 2010-08-04  Richard Henderson  <rth@redhat.com>
17574
17575         PR debug/45171
17576         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
17577         an is_naming_typedef_decl.
17578
17579 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
17580
17581         PR rtl-optimization/45162
17582         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
17583         * dce.c (word_dce_process_block): Likewise.
17584
17585 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
17586
17587         PR target/44583
17588         * config/ia64/constraints.md (Z): New.
17589         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
17590         (xfreg_or_signed_fp01_operand): New.
17591         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
17592         with fr_reg_or_signed_fp01_operand and constraint G with Z.
17593         (subsf3): Ditto.
17594         (*maddsf4): Ditto.
17595         (*msubsf4): Ditto.
17596         (adddf3): Ditto.
17597         (adddf3_trunc): Ditto.
17598         (subdf3): Ditto.
17599         (*subdf3_trunc): Ditto.
17600         (*madddf4): Ditto.
17601         (*madddf4_trunc): Ditto.
17602         (*msubdf4): Ditto.
17603         (*msubdf4_trunc): Ditto.
17604         (addxf3): Replace xfreg_or_fp01_operand with
17605         xfreg_or_signed_fp01_operand and constraint G with Z.
17606         (*addxf3_truncsf): Ditto.
17607         (*addxf3_truncdf): Ditto.
17608         (subxf3): Ditto.
17609         (*subxf3_truncsf): Ditto.
17610         (*subxf3_truncdf): Ditto.
17611         (*maddxf4): Ditto.
17612         (*maddxf4_truncsf): Ditto.
17613         (*maddxf4_truncdf): Ditto.
17614         (*msubxf4): Ditto.
17615         (*msubxf4_truncsf): Ditto.
17616         (*msubxf4_truncdf): Ditto.
17617
17618 2010-08-04  Richard Guenther  <rguenther@suse.de>
17619
17620         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
17621         if either alias-set is zero.
17622
17623 2010-08-04  Richard Guenther  <rguenther@suse.de>
17624
17625         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
17626         * tree-ssa-ccp.c: ... here.
17627         * tree-ssa-copy.c: ... and here.
17628         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
17629         value_range_t): Move ...
17630         * tree-vrp.c: ... here.
17631         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
17632         (substitute_and_fold): Adjust prototype.
17633         * tree-ssa-propagate.c (replace_uses_in): Adjust.
17634         (replace_phi_args_in): Likewise.
17635         (substitute_and_fold): Take callback to query lattice instead
17636         of pointer to lattice.  Replace SSA name defs with lattice
17637         values first.
17638         * tree-ssa-ccp.c (ccp_finalize): Adjust.
17639         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
17640         (get_value): New function.
17641         (fini_copy_prop): Adjust.
17642         * tree-vrp.c (vrp_finalize): Adjust.
17643
17644 2010-08-04  Richard Guenther  <rguenther@suse.de>
17645
17646         PR middle-end/45176
17647         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
17648         points-to set for original MEM_REF.
17649
17650 2010-08-04  Richard Guenther  <rguenther@suse.de>
17651
17652         * tree-ssa-ccp.c (get_constant_value): New function.
17653         (get_rhs_assign_op_for_ccp): Remove.
17654         (valueize_op): New function.
17655         (ccp_fold): Use get_constant_value and valueize_op.
17656         (fold_const_aggregate_ref): Likewise.
17657         (ccp_fold_stmt): Likewise.
17658         (visit_assignment): Simplify.
17659
17660 2010-08-04  Richard Guenther  <rguenther@suse.de>
17661
17662         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
17663         * double-int.h (double_int_ctz): Declare.
17664         * double-int.c (double_int_ctz): New function.
17665
17666 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
17667
17668         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
17669         Define.
17670         picochip_expand_movmemhi : Expand movmem pattern.
17671         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
17672         Declare.
17673         * config/picochip/picochip.md (movmemhi) : New pattern.
17674
17675 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
17676
17677         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
17678
17679 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
17680
17681         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
17682         NEG as operand of a MULT by merging it with the other operand.
17683         * combine.c (make_compound_operation): Use trunc_int_for_mode when
17684         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
17685         MULT.
17686         * config/arm/constraints.md (M): Examine only 32 bits of a
17687         HOST_WIDE_INT.
17688         * config/arm/predicates.md (power_of_two_operand): Likewise.
17689
17690 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17691
17692         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
17693         non-NOTE insns.
17694
17695 2010-08-03  Jan Hubicka  <jh@suse.cz>
17696
17697         * ipa-split.c (struct split_point): Add split_part_set_retval.
17698         (find_retval): Forward declare.
17699         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
17700         (consider_split): Compute current->split_part_set_retval.
17701         (visit_bb): Do not look into return value.
17702         (split_function): Handle !split_part_set_retval
17703
17704 2010-08-03  Martin Jambor  <mjambor@suse.cz>
17705
17706         * tree-sra.c (completely_scalarize_record): New parameter REF, create
17707         its own access->expr intead of using build_ref_for_offset.
17708
17709 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
17710
17711         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
17712         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
17713         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
17714         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
17715         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
17716         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
17717         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
17718         DEFAULT_SWITCH_TAKES_ARG.
17719         * config/rx/rx.opt (-patch=): Remove option.
17720         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
17721         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
17722         * doc/invoke.texi (RX Options): Remove -patch=.
17723         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
17724         (option_map): Remove --profile-blocks, --quiet and --silent.
17725
17726 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
17727
17728         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
17729         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
17730         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
17731         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
17732         Update calls to ix86_expand_compare and ix86_expand_branch.
17733         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
17734         ix86_expand_compare.
17735         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
17736         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
17737         Make static.
17738         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
17739         and ix86_compare_op1.  Update calls to ix86_expand_compare.
17740         (ix86_expand_int_movcc): Ditto.
17741         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
17742         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
17743         (ix86_expand_setcc): Ditto.
17744         (ix86_expand_compare): Remove prototype.
17745         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
17746         ix86_compare_op0 and ix86_compare_op1.  Update calls
17747         to ix86_expand_branch to directly pass operands[1] and operands[2].
17748         (cbranchxf4): Ditto.
17749         (cbranch<MODEF:mode>4): Ditto.
17750         (cbranchcc4): Ditto.
17751         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
17752         Update calls to ix86_expand_setcc to directly pass operands[2] and
17753         operands[3].
17754         (cstorexf4): Ditto.
17755         (cstore<MODEF:mode>4): Ditto.
17756         (cstorecc4): Ditto.
17757
17758 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
17759
17760         PR target/45063
17761         * caller-save.c (save_call_clobbered_regs): Remove regs from
17762         hard_regs_saved when they are set.
17763
17764 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
17765
17766         PR target/41089
17767         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
17768         as volatile.
17769
17770 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
17771
17772         * common.opt (ftree-loop-distribute-patterns): New.
17773         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
17774         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
17775         at -O3.
17776         * tree-data-ref.c (stores_zero_from_loop): New.
17777         * tree-data-ref.h (stores_zero_from_loop): Declared.
17778         * tree-loop-distribution.c (tree_loop_distribution): Call
17779         stores_zero_from_loop.
17780         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
17781
17782 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
17783
17784         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
17785         into account.
17786
17787         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
17788         * config/arm/arm.c (thumb1_code): New variable.
17789         (arm_override_options): Set it.
17790         (thumb1_final_prescan_insn): Keep track of condition code status.
17791         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
17792         jumps that depend on them.
17793         * config/arm/arm.h (thumb1_code): Declare variable.
17794         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
17795         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
17796         thumb1_cc_mode.
17797         (CC_STATUS_INIT): New macro.
17798         * config/arm/constraints.md (Pd): New constraint.
17799         * config/arm/predicates.md (noov_comparison_operator): New predicate.
17800         * config/arm/arm.md (is_thumb1): New define_attr.
17801         (conds): Set default to "clob" when generating Thumb1 code.
17802         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
17803         code are set.  Use two-operand assembly syntax.
17804         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
17805         pattern.
17806         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
17807         codes are set.  Use two-operand assembly syntax.
17808         (zero_extendhisi splitter): Remove constraints.
17809         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
17810         thumb1_movsf_insn): Set conds attribute as appropriate.
17811         (cbranchsi4_insn): Use condition code status from struct
17812         machine_function to determine whether the comparison can be eliminated.
17813         Discourage the alternative using high registers.
17814         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
17815         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
17816         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
17817         subsi3_cbranch): Delete.
17818         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
17819         one subtract and one cbranch insn.
17820
17821         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
17822         thumb2_movdf_soft_insn): Delete patterns.
17823         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
17824         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
17825         (pool_range, neg_pool_range): Use them to define defaults.
17826         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
17827         and allow for TARGET_32BIT.
17828
17829         PR target/40457
17830         * config/arm/arm.h (arm_regs_in_sequence): Declare.
17831         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
17832         load_multiple_sequence, store_multiple_sequence): Delete
17833         declarations.
17834         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
17835         declarations.
17836         * config/arm/ldmstm.md: New file.
17837         * config/arm/arm.c (arm_regs_in_sequence): New array.
17838         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
17839         CHECK_REGS.  All callers changed.
17840         If SAVED_ORDER is nonnull, copy the computed order into it.
17841         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
17842         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
17843         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
17844         If SAVED_ORDER is nonnull, copy the computed order into it.
17845         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
17846         like REGS.  Handle Thumb mode.
17847         (arm_gen_load_multiple_1): New function, broken out of
17848         arm_gen_load_multiple.
17849         (arm_gen_store_multiple_1): New function, broken out of
17850         arm_gen_store_multiple.
17851         (arm_gen_multiple_op): New function, with code from
17852         arm_gen_load_multiple and arm_gen_store_multiple moved here.
17853         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
17854         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
17855         changed.
17856         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
17857         * config/arm/predicates.md (commutative_binary_operator): New.
17858         (load_multiple_operation, store_multiple_operation): Handle more
17859         variants of these patterns with different starting offsets.  Handle
17860         Thumb-1.
17861         * config/arm/arm.md: Include "ldmstm.md".
17862         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
17863         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
17864         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
17865         peepholes): Delete.
17866         * config/arm/ldmstm.md: New file.
17867         * config/arm/arm-ldmstm.ml: New file.
17868
17869         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
17870         if statement which adds extra costs to frame-related expressions.
17871
17872 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17873
17874         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
17875
17876 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
17877
17878         PR target/45142
17879         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
17880         alternative 2.
17881         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
17882         split V4SI operands.
17883
17884 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
17885
17886         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17887         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
17888         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
17889         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17890
17891 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
17892
17893         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
17894         LOCAL_INCLUDE_DIR.
17895
17896 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
17897
17898         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
17899         used in the call to optab_for_tree_code.  Fix the second
17900         is_widening_mult_p call.  Check that both unwidened operands
17901         have the same sign.
17902
17903 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
17904
17905         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
17906
17907 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
17908
17909         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17910
17911 2010-07-30  DJ Delorie  <dj@redhat.com>
17912
17913         * config/rx/predicates.md (rx_constshift_operand): New.
17914         * config/rx/rx.md (zs_cond): New.
17915         (cbranchsi4): Remove mode.
17916         (*cbranchsi4_<code>): Likewise.
17917         (*tstbranchsi4_<code>): New.
17918         (*tstbranchsi4r_<code>): New.
17919         (*tstbranchsi4m_eq): New.
17920         (*tstbranchsi4m_ne): New.
17921         (cbranchsf4): Remove mode.
17922         (*cbranchsf4_<code>): Likewise.
17923
17924 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
17925
17926         * rtlanal.c (simplify_subreg_regno): Don't treat
17927         HARD_FRAME_POINTER_REGNUM specially.
17928
17929 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
17930
17931         * common.opt (-G): Don't define option here.
17932         * config/g.opt: New.
17933         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
17934         rs6000/powerpc and score targets.
17935         * opts.c (common_handle_option): Don't handle -G here.
17936         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
17937         * config/frv/frv.c (frv_handle_option): Handle -G.
17938         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
17939         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
17940         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
17941         * config/mips/mips.c (mips_handle_option): Handle -G.
17942         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
17943         * config/score/score.c (score_handle_option): Handle -G.
17944
17945 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
17946
17947         * config/mmix/mmix.c: Include basic-block.h.
17948
17949 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
17950
17951         PR debug/45055
17952         PR rtl-optimization/45137
17953         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
17954         prototypes.
17955         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
17956         New functions.
17957         * combine.c (next_nonnote_nondebug_insn): Removed.
17958         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
17959         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
17960         * sched-deps.c (sched_analyze_insn): Likewise.
17961         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
17962         * rtlanal.c (canonicalize_condition): Likewise.
17963         * postreload.c (reload_combine_recognize_pattern): Likewise.
17964         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
17965
17966 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
17967
17968         * config/i386/i386.md (int_cond): Remove code iterator.
17969         (fp_cond): Ditto.
17970         (cbranch<mode>4): Use ordered_comparison_operator predicate
17971         for operator0.
17972         (cstore<mode>4): Ditto for operator1.
17973         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
17974         (add<mode>cc): ditto.
17975
17976 2010-07-30  Richard Guenther  <rguenther@suse.de>
17977
17978         PR middle-end/45141
17979         * expr.c (expand_expr_real_1): Check for not handled base address.
17980
17981 2010-07-30  Richard Guenther  <rguenther@suse.de>
17982
17983         * ipa-prop.c (ipa_modify_formal_parameters): Use
17984         build_distinct_type_copy.
17985
17986 2010-07-30  Anthony Green  <green@moxielogic.com>
17987
17988         * config/moxie/rtems.h: New file.
17989         * config.gcc: Add moxie-rtems support.
17990
17991 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
17992
17993         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
17994         df flags as in run_fast_df_dce.
17995
17996 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
17997
17998         Revert:
17999         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18000
18001         * rtl.def (NOTE): Swap operands 4 and 5.
18002         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
18003         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
18004         Adjust accordingly.
18005         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
18006
18007 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
18008
18009         PR debug/45110
18010         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
18011         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
18012         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
18013         formal parameters.
18014         (gen_decl_die): Change return type to dw_die_ref, return what
18015         gen_formal_parameter_die returned.
18016
18017 2010-07-29  Martin Jambor  <mjambor@suse.cz>
18018
18019         * dbgcnt.def (eipa_sra): New counter.
18020         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
18021
18022 2010-07-29  Xinliang David Li  <davidxl@google.com>
18023
18024         PR bootstrap/45119
18025         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
18026         in revision 162652.
18027
18028 2010-07-29  Richard Guenther  <rguenther@suse.de>
18029
18030         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
18031         (TV_TREE_STORE_CCP): Likewise.
18032         (TV_TREE_REDPHI): Likewise.
18033
18034 2010-07-29  Richard Guenther  <rguenther@suse.de>
18035
18036         * double-int.h (double_int_and_not): New function.
18037         * combine.c (try_combine): Use it.
18038         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
18039
18040 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
18041
18042         PR rtl-optimization/42575
18043         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
18044         Argument AU removed.  All callers changed.  Ignore artificial refs.
18045         Use return value of df_word_lr_simulate_defs to decide whether an insn
18046         is necessary.
18047         (fast_dce): Rename arg to WORD_LEVEL.
18048         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
18049         static.
18050         (pass_fast_rtl_byte_dce): Delete.
18051         * dce.h (run_word_dce): Declare.
18052         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
18053         All callers changed.  Simplify code to only deal with two-word regs.
18054         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
18055         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
18056         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
18057         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
18058         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
18059         (df_word_lr_mark_ref): Declare.
18060         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
18061         df_word_lr_simulate_uses): Declare or rename from byte variants.
18062         (df_byte_lr_simulate_artificial_refs_at_top,
18063         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
18064         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
18065         declarations.
18066         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
18067         (enum df_mm): Delete.
18068         * df-byte-scan.c: Delete file.
18069         * df-problems.c (df_word_lr_problem_data): Renamed from
18070         df_byte_lr_problem_data, all members deleted except for
18071         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
18072         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
18073         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
18074         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
18075         df_byte_lr_confluence_0): Delete functions.
18076         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
18077         callers changed.
18078         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
18079         Don't initialize members that were deleted, don't try to discover data
18080         about registers.  Ignore hard regs.
18081         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
18082         (df_word_lr_mark_ref): New function.
18083         (df_word_lr_bb_local_compute): Renamed from
18084         df_byte_bb_lr_local_compute; all callers changed.  Use
18085         df_word_lr_mark_ref.  Assert that artificial refs don't include
18086         pseudos.  Ignore hard registers.
18087         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
18088         Assert that exit block uses don't contain pseudos.
18089         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
18090         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
18091         callers changed.  Ignore hard regs.
18092         (df_word_lr_transfer_function): Renamed from
18093         df_byte_lr_transfer_function; all callers changed.
18094         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
18095         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
18096         changed.
18097         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
18098         callers changed.
18099         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
18100         confluence operator 0 set to NULL.
18101         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
18102         callers changed.
18103         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
18104         Return bool, true if bitmap changed or insn otherwise necessary.
18105         All callers changed.  Simplify using df_word_lr_mark_ref.
18106         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
18107         all callers changed.  Simplify using df_word_lr_mark_ref.
18108         * lower-subreg.c: Include "dce.h"
18109         (decompose_multiword_subregs): Call run_word_dce if df available.
18110         * Makefile.in (lower-subreg.o): Adjust dependencies.
18111         (df-byte-scan.o): Delete.
18112         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
18113
18114 2010-07-29  Richard Guenther  <rguenther@suse.de>
18115
18116         * tree.c (build_vector): Assert that the vector constant
18117         has enough elements.
18118         (build_vector_from_ctor): Pad with trailing zeros.
18119
18120 2010-07-29  Richard Guenther  <rguenther@suse.de>
18121
18122         PR tree-optimization/45120
18123         * tree-ssa-structalias.c (get_constraint_for_component_ref):
18124         Handle offset in DEREFs properly.
18125         (get_constraint_for_1): Handle MEM_REF offset properly.
18126
18127 2010-07-29  Richard Guenther  <rguenther@suse.de>
18128
18129         PR middle-end/45034
18130         * convert.c (convert_to_integer): Always use an unsigned
18131         type for narrowed negate and bitwise not.
18132
18133 2010-07-29  Ira Rosen  <irar@il.ibm.com>
18134
18135         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
18136         to outer loop when creating reduction epilogue for double reduction,
18137         and switch back to the inner loop when updating the phi nodes.
18138         Update uses of outer loop exit phi nodes in double reduction (instead
18139         of uses of reduction).
18140
18141 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
18142
18143         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
18144         popcount on power7 and parity on power6 systems.
18145         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
18146         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
18147         instructions.
18148
18149         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
18150         (UNSPEC_PARITY): Ditto.
18151         (SFDF): New iterator for SF/DF.
18152         (rreg2): New mode attribute for floating register constraint.
18153         (TARGET_FLOAT): New mode attribute for whether single/double float
18154         is supported.
18155         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
18156         pattern.
18157         (parity<mode>2_cmpb): New insn for parity on power6 and newer
18158         machines.
18159         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
18160         pattern.  Add support for fcpsgn instruction added in power6.
18161         (copysignsf3): Delete.
18162         (copysigndf3): Delete.
18163         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
18164         instead of if_then_else in RTL to avoid problems with -0.
18165
18166         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
18167         of if_then_else to mirror scalar code.
18168         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
18169         rs6000.md.
18170
18171         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
18172         instead of if_then_else.
18173
18174 2010-07-28  Xinliang David Li  <davidxl@google.com>
18175
18176         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
18177         (dump_cand): Dump var_before/after.
18178         (htab_inv_expr_eq): New function.
18179         (htab_inv_expr_hash): New function.
18180         (tree_ssa_iv_optimize_init): Support pseudo invariants.
18181         (add_candidate_1): consider base type precision.
18182         (set_use_iv_cost): New parameter.
18183         (adjust_setup_cost): Use profile information.
18184         (get_address_cost): Do not hard code width in computing address
18185         offset limits.
18186         (compare_aff_trees): New function.
18187         (get_loop_invariant_expr_id): New function.
18188         (get_computation_cost_at): New parameter and use profile information.
18189         (get_computation_cost): New parameter.
18190         (determine_use_iv_cost_generic): Pass new parameter.
18191         (determine_use_iv_cost_address): Ditto.
18192         (determine_use_iv_cost_condition): Ditto.
18193         (autoinc_possible_for_pair): Ditto.
18194         (determine_use_iv_costs): More dumps.
18195         (iv_ca_get_num_inv_exprs): New function.
18196         (iv_ca_recount_cost): Consider loop invariants in register pressure
18197         cost.
18198         (iv_ca_add_use): New parameter.
18199         (iv_ca_dump): Better dumping.
18200         (iv_ca_extend): New parameter.
18201         (try_add_cand_for): Attempt to get better partial solution.
18202         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
18203         (create_new-ivs): More dumps.
18204         (rewrite_use_compare): Ditto.
18205         (free_loop_data): More cleanup.
18206         (treee_ssa_iv_optimize_finalize): Ditto.
18207
18208 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
18209
18210         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
18211         * config/i386/i386.c (ix86_profile_before_prologue): New.
18212         (override_options): Add special handling for -mfentry.
18213         (ix86_function_regparm): Likewise.
18214         (ix86_function_sseregparm): Likewise.
18215         (ix86_frame_pointer_required): Likewise.
18216         (ix86_expand_prologue): Check for ms_hook_prologue.
18217         (x86_function_profiler): Adjust mcount output.
18218         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
18219         * config/i386/i386.opt (mfentry): New.
18220         * doc/invoke.texi (mfentry): Add documentation.
18221         * doc/tm.texi: Regenerated..
18222         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
18223         * final.c (final_start_function): Replace macro
18224         PROFILE_BEFORE_PROLOGUE by target hook.
18225         * function.c (thread_prologue_and_epilogue_insns): Likewise.
18226         * target.def (profile_before_prologue): New hook.
18227         * targhooks.c (default_profile_before_prologue): New.
18228         * targhooks.h (default_profile_before_prologue): New.
18229
18230 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
18231
18232         PR debug/45105
18233         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
18234
18235         PR debug/45103
18236         * dwarf2out.c (dwarf2out_var_location): Always consider
18237         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
18238
18239 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
18240
18241         PR rtl-optimization/45107
18242         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
18243
18244 2010-07-28  Richard Guenther  <rguenther@suse.de>
18245
18246         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
18247         (set_lattice_value): Do not query an old default value.
18248         (get_value_for_expr): New function.  Properly canonicalize
18249         float values.
18250         (ccp_visit_phi_node): Use it.
18251
18252 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
18253
18254         * config/arm/arm.c (arm_pcs_default): Remove static.
18255         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
18256         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
18257         (arm_pcs_default): Declare.
18258
18259 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
18260
18261         * config/rs6000/rs6000.c (rs6000_override_options):
18262         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
18263         ... to darwin_rs6000_override_options.
18264         (rs6000_return_in_memory): Update preceding comment for darwin
18265         64 bit ABI.  Use TARGET_MACHO inline.
18266         (rs6000_darwin64_struct_check_p): New.
18267         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
18268         (function_arg): Likewise.
18269         (rs6000_arg_partial_bytes): Likewise.
18270         (rs6000_function_value): Likewise.
18271
18272 2010-07-28  Andi Kleen  <ak@linux.intel.com>
18273
18274         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
18275
18276 2010-07-28  Richard Guenther  <rguenther@suse.de>
18277
18278         PR middle-end/44903
18279         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
18280         targets try harder to not generate unaligned accesses.
18281
18282 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
18283
18284         PR rtl-optimization/45101
18285         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
18286         for gcse-las.
18287
18288 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
18289
18290         PR tree-optimization/44885
18291         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
18292         with non-aliased component.
18293
18294 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
18295
18296         * config/darwin-driver.c (SWITCH_TAKES_ARG,
18297         WORD_SWITCH_TAKES_ARG): Remove.
18298         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
18299         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
18300         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
18301         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
18302         definitions from gcc.c.
18303         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
18304         defaults.h.
18305         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
18306         Move to defaults.h.
18307         * opts-common.c: Include tm.h.
18308         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
18309         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
18310         Handle more than one argument.  Set canonical_option_num_elements.
18311         (decode_cmdline_options_to_array): Set
18312         canonical_option_num_elements and trailing elements of
18313         canonical_option.
18314         * opts.h (struct cl_decoded_option): Allow four elements in
18315         canonical_option.  Add field canonical_option_num_elements.
18316         * Makefile.in (opts-common.o): Update dependencies.
18317
18318 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
18319
18320         PR middle-end/44790
18321         PR middle-end/44993
18322         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
18323         sure the base has address_mode before adding the offset.
18324
18325 2010-07-27  Xinliang David Li  <davidxl@google.com>
18326
18327         * tree-flow.h (create_mem_ref): Add one new parameter.
18328         * tree-ssa-address.c (create_mem_ref): New parameter.
18329         (addr_to_parts): Ditto.
18330         (move_variant_to_index): New function.
18331         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
18332
18333 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18334
18335         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
18336         4 and 5.
18337         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
18338         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
18339         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
18340         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
18341         CODE_LABELs and NOTEs.
18342         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
18343         * combine.c (try_combine): Likewise.
18344         * ira.c (setup_prohibited_mode_move_regs): Likewise.
18345         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
18346
18347 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
18348
18349         * coretypes.h (struct cl_option_handlers): Declare.
18350         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
18351         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
18352         * langhooks-def.h (lhd_handle_option): Declare.
18353         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
18354         * langhooks.c (lhd_handle_option): New.
18355         * langhooks.h (struct lang_hooks): Update prototype and return
18356         value type of handle_option hook.
18357         * optc-gen.awk: Generate target_flags_explicit definition for the
18358         driver.
18359         * opts-common.c: Include diagnostic.h.
18360         (handle_option): Move from opts.c.  Update prototype and return
18361         value type.  Use handlers structure.
18362         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
18363         handlers structure.
18364         (set_option): Move from opts.c.
18365         * opts.c (common_handle_option): Update prototype and return value
18366         type.  Update calls to handle_option and enable_warning_as_error.
18367         (unknown_option_callback, post_handling_callback,
18368         lang_handle_option, target_handle_option): New.
18369         (handle_option, read_cmdline_option): Move to opts-common.c.
18370         (read_cmdline_options): Update prototype.  Update call to
18371         read_cmdline_option.
18372         (decode_options): Initialize and use handlers structure.
18373         (set_option): Move to opts-common.c.
18374         (enable_warning_as_error): Update prototype.  Update call to
18375         handle_option.
18376         * opts.h (struct cl_option_handler_func, struct
18377         cl_option_handlers): New.
18378         (handle_option, enable_warning_as_error): Update prototypes.
18379         (read_cmdline_option): Declare.
18380         * Makefile.in (opts-common.o): Update dependencies.
18381
18382 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18383
18384         * config/arm/arm.c (params.h): Include.
18385         (arm_override_options): Tune gcse-unrestricted-cost.
18386         * config/arm/t-arm (arm.o): Define dependencies.
18387
18388 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18389
18390         PR target/42495
18391         PR middle-end/42574
18392         * basic-block.h (get_dominated_to_depth): Declare.
18393         * dominance.c (get_dominated_to_depth): New function, use
18394         get_all_dominated_blocks as a base.
18395         (get_all_dominated_blocks): Use get_dominated_to_depth.
18396
18397         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
18398         (hoist_exprs): Remove.
18399         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
18400         (compute_code_hoist_vbeinout): Add debug print outs.
18401         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
18402
18403         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
18404         quadratic behavior.
18405         * params.h (MAX_HOIST_DEPTH): New macro.
18406         * doc/invoke.texi (max-hoist-depth): Document.
18407
18408 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18409
18410         PR rtl-optimization/40956
18411         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
18412         constants.
18413
18414 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18415
18416         PR target/42495
18417         PR middle-end/42574
18418         * config/arm/arm.c (legitimize_pic_address): Use
18419         gen_calculate_pic_address pattern to emit calculation of PIC address.
18420         (will_be_in_index_register): New function.
18421         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
18422         (thumb1_legitimate_address_p): Use it provided !strict_p.
18423         * config/arm/arm.md (calculate_pic_address): New expand and split.
18424
18425 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18426
18427         PR target/42495
18428         PR middle-end/42574
18429         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
18430         * config/arm/arm.md (define_split "J", define_split "K"): Make
18431         IRA/reload friendly.
18432
18433 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18434
18435         * gcse.c (insert_insn_end_basic_block): Update signature, remove
18436         unused checks.
18437         (pre_edge_insert, hoist_code): Update.
18438
18439 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18440
18441         PR target/42495
18442         PR middle-end/42574
18443         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
18444
18445 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18446
18447         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
18448
18449 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18450
18451         PR rtl-optimization/40956
18452         PR target/42495
18453         PR middle-end/42574
18454         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
18455         for hoisting.
18456         (hoist_code): Count occurences in current block too.
18457
18458 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18459
18460         * gcse.c (struct expr:max_distance): New field.
18461         (doing_code_hoisting_p): New static variable.
18462         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
18463         simple expressions, don't change behavior for PRE.  Set max_distance.
18464         (insert_expr_in_table): Set new max_distance field.
18465         (hash_scan_set): Update.
18466         (hoist_expr_reaches_here_p): Stop search after max_distance
18467         instructions.
18468         (find_occr_in_bb): New static function.  Use it in ...
18469         (hoist_code): Calculate sizes of basic block before any changes are
18470         done.  Pass max_distance to hoist_expr_reaches_here_p.
18471         (one_code_hoisting_pass): Set doing_code_hoisting_p.
18472
18473         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
18474         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
18475         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
18476         macros.
18477         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
18478         Document.
18479
18480 2010-07-27  Jeff Law  <law@redhat.com>
18481             Maxim Kuvyrkov  <maxim@codesourcery.com>
18482
18483         * gcse.c (compute_transpout, transpout): Remove, move logic
18484         to prune_expressions.
18485         (compute_pre_data): Move pruning of trapping expressions ...
18486         (prune_expressions): ... here.  New static function.
18487         (compute_code_hoist_data): Use it.
18488         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
18489
18490 2010-07-27  Xinliang David Li  <davidxl@google.com>
18491
18492         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
18493         (rewrite_use_address): Adjust iv update position when needed.
18494
18495 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18496
18497         * dbgcnt.def (hoist_insn): New debug counter.
18498         * gcse.c (hoist_code): Use it.
18499
18500 2010-07-27  Xinliang David Li  <davidxl@google.com>
18501
18502         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
18503         (niter_for_single_dom_exit): Passes additional parameter.
18504         (iv_period): Fix comments.
18505         (may_eliminate_iv): Handles multiple exit loops properly.
18506         (free_tree_niter_desc): New function.
18507         (free_loop_data): Frees up loop iteration descriptors.
18508
18509 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
18510
18511         PR target/44542
18512         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
18513         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
18514         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
18515         (expand_one_var): Don't consider DECL_ALIGN for variables for
18516         which expand_one_stack_var_at has been already called.
18517
18518         PR testsuite/44701
18519         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
18520         constraints on IA-64.
18521
18522 2010-07-27  Jie Zhang  <jie@codesourcery.com>
18523
18524         PR target/44290
18525         Revert:
18526         2010-07-23  Jie Zhang  <jie@codesourcery.com>
18527
18528         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
18529         false if ! tree_versionable_function_p.
18530
18531 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
18532
18533         * dwarf2out.c (add_data_member_location_attribute): Use
18534         add_AT_unsigned instead of add_AT_int if offset is non-negative.
18535
18536 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18537
18538         * postreload.c (try_replace_in_use): New static function.
18539         (reload_combine_recognize_const_pattern): Use it here.  Allow
18540         substituting into a final add insn, and substituting into a memory
18541         reference in an insn that sets the reg.
18542
18543 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
18544
18545         * common.opt (o): Add MissingArgError.
18546         * doc/options.texi (MissingArgError): Document.
18547         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
18548         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
18549         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
18550         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
18551         * langhooks.h (struct lang_hooks): Remove missing_argument.
18552         * optc-gen.awk: Handle MissingArgError and output new structure
18553         field initializers.
18554         * opts.c (read_cmdline_option): Use missing_argument_error field
18555         instead of missing_argument langhook.
18556         * opts.h (struct cl_option): Add missing_argument_error field.
18557         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
18558
18559 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
18560
18561         PR target/29090
18562         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
18563         Darwin64 ABI, for zero-sized objects.
18564
18565 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
18566
18567         PR target/35491
18568         PR target/29090
18569
18570         Merge from Apple local 4.2.1.
18571         2005-05-11  Stan Shebs  <shebs@apple.com>
18572         Fix 64-bit varargs for Darwin (Radar 4028089).
18573         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
18574         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
18575         Add argument, add case for 8-byte register half-filled with a float.
18576         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
18577         single-precision floats specially.
18578
18579 2010-07-27  Ira Rosen  <irar@il.ibm.com>
18580
18581         PR tree-optimization/44152
18582         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
18583         complex numbers for further check.
18584         (vect_supported_load_permutation_p): Check nodes with
18585         complex numbers.
18586
18587 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
18588
18589         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
18590         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
18591         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
18592         (LANG_HOOKS_INITIALIZER): Add new hooks.
18593         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
18594         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
18595         and complain_wrong_lang_p.  Update init_options prototype.
18596         * c-objc-common.c (c_initialize_diagnostics): First call
18597         c_common_initialize_diagnostics.
18598         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
18599         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
18600         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
18601         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
18602         (hook_uint_void_0): New.
18603         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
18604         (hook_uint_void_0): New.
18605         * opts-common.c (decode_cmdline_option,
18606         decode_cmdline_options_to_array): Also fill in canonical_option field.
18607         * opts.c (complain_wrong_lang): Use langhook to determine whether
18608         to complain instead of special-casing LTO.
18609         (decode_options): Separate lang_mask determination with
18610         option_lang_mask hook from call of init_options hook.
18611         * opts.h (struct cl_decoded_option): Add canonical_option.
18612
18613 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
18614
18615         PR tree-optimization/45083
18616         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
18617
18618 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18619
18620         * postreload.c (reload_combine_recognize_const_pattern): Move test
18621         for limiting the insn movement to the right scope.
18622
18623         PR rtl-optimization/45051
18624         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
18625         than reg_mentioned_p.
18626
18627 2010-07-26  Richard Henderson  <rth@redhat.com>
18628
18629         PR target/44132
18630         * tree-emutls.c: New file.
18631         * Makefile.in (OBJS-common): Add it.
18632         * tree-pass.h (pass_ipa_lower_emutls): Declare.
18633         * passes.c (init_optimization_passes): Add it.
18634
18635         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
18636         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
18637         * expr.c (emutls_var_address): Delete.
18638         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
18639         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
18640         (emutls_finish): Delete.
18641         * toplev.c (compile_file): Don't call it.
18642         * tree.h (emutls_decl): Delete.
18643         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
18644         (emutls_finish, emutls_finalize_control_var): Delete.
18645         (emutls_object_type): Move to tree-emutls.c.
18646         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
18647         default_emutls_var_fields, get_emutls_object_type,
18648         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
18649         default_emutls_var_init): Likewise.
18650         (get_variable_section): Don't special case emutls.
18651         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
18652         default_elf_select_section, default_unique_section,
18653         default_encode_section_info): Likewise.
18654         * varpool.c (decide_is_variable_needed): Likewise.
18655         * gimple-iterator.c (update_call_edge_frequencies): New
18656         (gsi_insert_on_edge_immediate): Use it.
18657         (gsi_insert_seq_on_edge_immediate): Likewise.
18658         (gsi_commit_one_edge_insert): Likewise.
18659
18660         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
18661         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
18662         (x86_64_elf_unique_section): Likewise.
18663
18664 2010-07-26  Jan Hubicka  <jh@suse.cz>
18665
18666         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
18667         GTY((skip)).
18668
18669 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
18670
18671         * target.def (output_source_filename): New hook.
18672         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
18673         * doc/tm.texi: Regenerate.
18674         * toplev.c (output_file_directive) Remove function.
18675         * toplev.h (output_file_directive) Remove.
18676         * output.h (default_asm_output_source_filename,
18677         output_file_directive): Declare.
18678         * varasm.h (default_asm_output_source_filename,
18679         output_file_directive): New functions.
18680
18681         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18682         * config/mips/mips-protos.h (mips_output_filename): Remove.
18683         * config/mips/mips.c (mips_output_filename): Make Static.
18684         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
18685
18686 2010-07-26  Richard Guenther  <rguenther@suse.de>
18687
18688         PR tree-optimization/43784
18689         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
18690         if the destination is used by the call.
18691
18692 2010-07-26  Richard Guenther  <rguenther@suse.de>
18693
18694         PR middle-end/45073
18695         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
18696         SSA updating on being in SSA form.
18697
18698 2010-07-26  Richard Guenther  <rguenther@suse.de>
18699
18700         PR middle-end/45056
18701         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
18702
18703 2010-07-26  Richard Guenther  <rguenther@suse.de>
18704
18705         PR tree-optimization/45071
18706         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
18707         adjust op->opcode.
18708
18709 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
18710
18711         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
18712         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
18713         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
18714         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
18715         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
18716         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
18717         save_r31, return_r31, save_interrupt, return_interrupt,
18718         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
18719         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
18720         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
18721         new ABI requirements.
18722         (save_r6_r9, L_callt_save_r6_r9): Remove.
18723         * config/v850/predicates.md (even_reg_operand, disp23_operand,
18724         const_float_1_operand const_float_0_operand): New Predicates.
18725         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
18726         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
18727         * config/v850/t-v850: Update multilibs for new target variants.
18728         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
18729         * config/v850/t-v850e: Likewise.
18730         * config/v850/v850.c (v850_issue_rate): New.
18731         (v850_strict_argument_naming): New.
18732         (function_arg): Modify to generate a different ABI.
18733         (print_operand): Update case 'z' to support float modes.
18734         (output_move_single): Modify to generate appropriate and better
18735         assembly.
18736         (v850_float_z_comparison_operator, v850_select_cc_mode,
18737         v850_float_nz_comparison_operator,  v850_gen_float_compare,
18738         v850_gen_compare): New functions to support comparison of float values.
18739         (ep_memory_offset): Add support for V850E2 targets.
18740         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
18741         (INTERRUPT_REGPARM_NUM): Remove.
18742         (compute_register_save_size): Add extra case to save/restore long call.
18743         (use_prolog_function): New function to support prologue.
18744         (expand_prologue): Add support for V850E2 targets and modified
18745         as per the current ABI requirements.
18746         (expand_epilogue): Likewise.
18747         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
18748         (construct_save_jarl): Likewise.
18749         (construct_dispose_instruction): Update as per the current ABI
18750         requirements.
18751         (construct_prepare_instruction): Likewise.
18752         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
18753         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
18754         (CPP_SPEC): Updated to support v850e2 targets.
18755         (STRICT_ALIGNMENT): Modified.
18756         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
18757         (FIXED_REGISTERS): Likewise.
18758         (CALL_USED_REGISTERS): Likewise.
18759         (CONDITIONAL_REGISTER_USAGE): Updated.
18760         (HARD_REGNO_MODE_OK): Updated.
18761         (reg_class): Updated to add even registers.
18762         (REG_CLASS_NAMES): Likewise.
18763         (REG_CLASS_CONTENTS): Likewise.
18764         (REGNO_REG_CLASS): Updated for CC registers.
18765         (REG_CLASS_FROM_LETTER): Added support for even registers.
18766         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
18767         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
18768         ARG_POINTER_REGNUM): Updated.
18769         (FUNCTION_ARG_ADVANCE): Define.
18770         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
18771         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
18772         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
18773         (GO_IF_LEGITIMATE_ADDRESS): Updated.
18774         (SELECT_CC_MODE): Define.
18775         (REGISTER_NAMES): Updated to add psw and fcc registers.
18776         (ADDITIONAL_REGISTER_NAMES): Updated.
18777         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
18778         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
18779         * config/v850/v850.md (define_constants): Define new constants.
18780         (type): Update store,bit1,macc,div,fpu and single attributes.
18781         (cpu): New attribute.
18782         (cc): Add set_z attribute.
18783         (unsign23byte_load, sign23byte_load, unsign23hword_load,
18784         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
18785         23word_store): New instructions for 23-bit displacement load and store.
18786         (movqi_internal, movhi_internal): Update the attributes.
18787         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
18788         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
18789         the attributes.
18790         (v850_tst1): Modified using CC_REGNUM.
18791         (tstsi): Remove.
18792         (cmpsi): Modified as define_expand from define_insn.
18793         (cmpsi_insn, cmpsf, cmpdf): New instructions.
18794         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
18795         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
18796         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
18797         one_cmplsi2): Clobber the CC_REGNUM register.
18798         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
18799         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
18800         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
18801         (setf_insn, set_z_insn, set_nz_insn): New instructions for
18802         v850e2v3 target.
18803         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
18804         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
18805         targets.
18806         (sasf_1, sasf_2): Remove.
18807         (sasf): New instruction.
18808         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
18809         targets. CC_REGNUM register is clobbered and attributes are
18810         updated.
18811         (branch_z_normal, branch_z_invert, branch_nz_normal,
18812         branch_nz_invert): New branch related instructions.
18813         (jump): Updated the attributes.
18814         (switch): Update to support new targets. CC_REGNUM register is
18815         clobbered and attributes are updated.
18816         (call_internal_short, call_internal_long, call_value_internal_short,
18817         call_value_internal_long): Updated the attributes.
18818         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
18819         clobbered and attributes are updated.
18820         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
18821         Update to support new targets. CC_REGNUM register is clobbered.
18822         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
18823         instructions.
18824         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
18825         are updated.
18826         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
18827         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
18828         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
18829         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
18830         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
18831         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
18832         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
18833         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
18834         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
18835         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
18836         point instructions defined for V850e2v3 target.
18837         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
18838         Add support for V850E2 targets and CC_REGNUM register is clobbered.
18839         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
18840         support for new targets.
18841         * config/v850/v850-modes.def: New file.
18842         * config/v850/v850.opt(mstrict-align): Remove.
18843         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
18844         mv850e2v3): New command line options for V850.
18845         * config.gcc: Update the newly added files.
18846         * doc/invoke.texi: Update the newly added command line options for
18847         V850 target.
18848
18849 2010-07-26  Richard Guenther  <rguenther@suse.de>
18850
18851         PR tree-optimization/45052
18852         * ipa-pure-const.c (check_stmt): Check volatileness.
18853
18854 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
18855
18856         PR target/44707
18857         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
18858         * config/sparc/sparc.c: Include reload.h.
18859         (legitimize_tls_address): Rename into...
18860         (sparc_legitimize_tls_address): ...this.
18861         (legitimize_pic_address): Rename into...
18862         (sparc_legitimize_pic_address): ...this.
18863         (sparc_expand_move): Adjust to above renaming.
18864         (sparc_tls_referenced_p): Likewise.
18865         (sparc_legitimize_tls_address): Likewise.
18866         (sparc_legitimize_pic_address): Likewise.
18867         (sparc_legitimize_address): Likewise.
18868         (sparc_output_mi_thunk): Likewise.
18869         (sparc_legitimize_reload_address): New global function.  Recognize
18870         (lo_sum (high ...) ...) patterns generated by earlier passes.
18871         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
18872
18873 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
18874
18875         PR target/44484
18876         * config/sparc/predicates.md (memory_reg_operand): Delete.
18877         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
18878         (*sync_compare_and_swap): Encode the address form in the pattern.
18879         (*sync_compare_and_swapdi_v8plus): Likewise.
18880
18881 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
18882
18883         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
18884         Streamline paragraph on compatibility with the system compiler.
18885
18886 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
18887
18888         PR middle-end/45035
18889         * alias.c (true_dependence_1): Fix thinko in merge of old
18890         true_dependence and canon_true_dependence.
18891
18892 2010-07-23  Jan Hubicka  <jh@suse.cz>
18893
18894         * lto-streamer-out.c (write_symbol): Fix visibilities of external
18895         references.
18896
18897 2010-07-23  Le-Chun Wu  <lcwu@google.com>
18898
18899         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
18900         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
18901         and an unnecessary assignment.
18902         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
18903         self-assign warning.
18904         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
18905         unnecessary self-init.
18906
18907 2010-07-23  Richard Guenther  <rguenther@suse.de>
18908
18909         PR lto/43071
18910         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
18911         for -flto and -fwhopr.
18912
18913 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
18914
18915         PR target/41943
18916         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
18917         (stmp-int-hdrs): Prefix/postfix headers by include_next.
18918         * config.gcc (user_headers_inc_next_pre): New.
18919         (user_headers_inc_next_post): Likewise.
18920         (*-w64-mingw*): Use for float.h post-fixing, and for
18921         stddef.h/stdarg.h pre-fixing by include_next.
18922         * configure.ac (user_headers_inc_next_post): New.
18923         (user_headers_inc_next_pre): New.
18924         * configure: Regenerated.
18925
18926 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18927
18928         * configure.ac: Don't disable TLS on Solaris 8/9 by default
18929         Set tga_func for Solaris 2/x86 resp. SPARC.
18930         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
18931         (LIB_THREAD_LDFLAGS_SPEC): Define.
18932         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
18933         * configure: Regenerate.
18934         * config.in: Regenerate.
18935         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
18936         -pthread, -threads, LIB_TLS_SPEC with -pthread.
18937         * doc/install.texi (Specific, *-*-solaris2*): Document use of
18938         alternate thread libraries on Solaris 8.
18939         Document TLS patch requirements.
18940         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
18941         Document tls.
18942
18943         PR target/18788
18944         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
18945         -shared.
18946
18947 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
18948
18949         * tree.h (struct tree_base): Add nameless_flag bitfield.
18950         (TYPE_NAMELESS, DECL_NAMELESS): Define.
18951         * omp-low.c (create_omp_child_function, scan_omp_parallel,
18952         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
18953         DECL_ARTIFICIAL where needed.
18954         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
18955         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
18956         has DECL_NAMELESS set.
18957
18958 2010-07-23  Martin Jambor  <mjambor@suse.cz>
18959
18960         PR tree-optimization/44915
18961         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
18962         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
18963         (analyze_function): Likewise.
18964
18965 2010-07-23  Martin Jambor  <mjambor@suse.cz>
18966
18967         PR tree-optimization/44914
18968         * tree-sra.c (sra_modify_function_body): Return true if CFG was
18969         changed, add purging dead eh edges.
18970         (ipa_sra_modify_function_body): Return true if CFG was changed,
18971         simplify purging dead eh edges.
18972         (modify_function): Return true if CFG was changed.
18973         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
18974         was changed.
18975         (ipa_early_sra): Likewise.
18976
18977 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18978
18979         PR target/44290
18980         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
18981         if "naked".
18982         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
18983         false if ! tree_versionable_function_p.
18984
18985 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
18986
18987         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
18988         * ipa-pure-const.c (special_builtlin_state): Remove
18989         BUILT_IN_ARGS_INFO case.
18990         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
18991         * builtins.c (expand_builtin): Likewise.
18992         (expand_builtin_args_info): Remove.
18993         * doc/tm.texi (__builtin_args_info): Remove.
18994         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
18995         * doc/tm.text.in: Likewise.
18996
18997 2010-07-23  Richard Guenther  <rguenther@suse.de>
18998
18999         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
19000         (lto_symtab_merge_decls_2): Likewise.
19001         * tree-ssa.c (useless_type_conversion_p): Likewise.
19002         * lto-streamer-in.c (input_gimple_stmt): Likewise.
19003         * gimple.c (gtc_visited2, gtc_ob2): Remove.
19004         (struct type_pair_d): Make same_p an array indexed by mode.
19005         Update comment.
19006         (lookup_type_pair): Update initialization.
19007         (struct sccs): Adjust same_p type.
19008         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
19009         Adjust.
19010         (print_gimple_types_stats): Likewise.
19011         * gimple.h (enum gtc_mode): New.
19012         (gimple_types_compatible_p): Adjust prototype.
19013
19014 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
19015
19016         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
19017         again after processing insn.
19018
19019 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19020
19021         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
19022         proper words when !tree_versionable_function_p.
19023
19024 2010-07-23  Richard Guenther  <rguenther@suse.de>
19025
19026         PR tree-optimization/45037
19027         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
19028
19029 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19030
19031         * doc/extend.texi: Remove IP2K from the description of naked attribute.
19032         Add MCORE instead.
19033
19034 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19035
19036         PR lto/44992
19037         * lto-opts.c (lto_write_options): Add NULL file_data argument to
19038         lto_get_section_name.
19039         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
19040         * lto-streamer-out.c (produce_asm): Likewise.
19041         (copy_function): Likewise.
19042         (produce_symtab): Likewise.
19043         (produce_asm_for_decls): Likewise.
19044         * lto-streamer.c (lto_get_section_name): Add file_data argument.
19045         Rewrite to add random postfix to LTO sections.
19046         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
19047         (lto_get_section_name): Add file_data argument to prototype.
19048
19049 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19050
19051         * lto-section-in.c (lto_section_name): Synchronize names
19052         with lto_get_section_name.
19053
19054 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19055
19056         * lto-opts.c (lto_read_file_options): Check for missing section.
19057
19058 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19059
19060         * ira.c (check_allocation): Correctly handle the case where an allocno
19061         with two objects was allocated to a single reg.
19062
19063 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
19064
19065         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
19066         (is_widening_mult_p): Likewise.
19067         (convert_to_widen): Use them.
19068         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
19069         well as integer ones.
19070
19071 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
19072
19073         * alias.c (true_dependence_1): New function, merged version of
19074         true_dependence and canon_true_dependence.
19075         (true_dependence): Simplify.
19076         (canon_true_dependence): Simplify.
19077
19078 2010-07-22  Richard Henderson  <rth@redhat.com>
19079
19080         PR target/45027
19081         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
19082         of V4SFmode for the SSE saves; increase stack alignment if needed.
19083         (ix86_gimplify_va_arg): Don't increase stack alignment here.
19084
19085 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
19086
19087         PR bootstrap/45028
19088         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
19089         call cprop_find_used_regs again via note_uses.
19090
19091 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
19092
19093         * alias.c (get_alias_set): Fix formatting issues.
19094
19095 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
19096
19097         PR middle-end/44878
19098         * stmt.c (expand_value_return):  Call promote_function_mode with
19099         a for_return argument of 2 when returning by reference.
19100
19101 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
19102
19103         PR debug/45024
19104         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
19105         unit DIE if we can find the scope DIE.
19106
19107 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19108
19109         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
19110         changed.  Initialize OBJECT_SUBWORD.
19111         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
19112         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
19113         all callers changed.
19114         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
19115         (finish_allocno): Likewise.
19116         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
19117         (remove_low_level_allocnos): Likewise.
19118         (update_bad_spill_attribute): Likewise.
19119         (setup_min_max_allocno_live_range_point): Likewise.
19120         (sort_conflict_id_map): Likewise.
19121         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
19122         (ior_hard_reg_conflicts): New function.
19123         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
19124         (compress_conflict_vecs): Iterate over objects, not allocnos.
19125         (ira_add_live_range_to_object): New function.
19126         (object_range_compare_func): Renamed from allocno_range_compare_func.
19127         All callers changed.
19128         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
19129         subobjects, widen the min/max range of the lowest-order object to
19130         potentially include all other such low-order objects.
19131         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
19132         (check_allocation): Likewise.  Use more fine-grained tests for register
19133         conflicts.
19134         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
19135         allocno subobjects.
19136         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
19137         choices about which bits to set in each set.  Don't use
19138         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
19139         using the multiple sets we computed.
19140         (push_allocno_to_stack): Iterate over allocno subobjects.
19141         (all_conflicting_hard_regs_coalesced): New static function.
19142         (setup_allocno_available_regs_num): Use it.
19143         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
19144         subobjects.
19145         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
19146         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
19147         by ALLOCNO_NUM_OBJECTS.
19148         (calculate_spill_cost): Likewise.
19149         (color_pass): Express if statement in a more normal way.
19150         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
19151         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
19152         (setup_slot_coalesced_allocno_live_ranges): Likewise.
19153         (allocno_reload_assign): Likewise.
19154         (ira_reassign_pseudos): Likewise.
19155         (fast_allocation): Likewise.
19156         * ira-conflicts.c (build_conflict_bit_table): Likewise.
19157         (print_allocno_conflicts): Likewise.
19158         (ira_build_conflicts): Likewise.
19159         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
19160         callers changed.  Test subword 0 of each allocno for conflicts.
19161         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
19162         callers changed.  Iterate over allocno subobjects.
19163         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
19164         * ira-int.h (struct ira_allocno): New member: num_objects.
19165         Rename object to objects and change it into an array.
19166         (ALLOCNO_OBJECT): Add new argument N.
19167         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
19168         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
19169         (ior_hard_reg_conflicts): Declare.
19170         (ira_add_live_range_to_object): Declare.
19171         (ira_allocno_object_iterator): New.
19172         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
19173         (FOR_EACH_ALLOCNO_OBJECT): New macro.
19174         * ira-lives.c (objects_live): Renamed from allocnos_live; all
19175         uses changed.
19176         (allocnos_processed): New sparseset.
19177         (make_object_born): Renamed from make_allocno_born; take an
19178         ira_object_t argument.  All callers changed.
19179         (make_object_dead): Renamed from make_allocno_dead; take an
19180         ira_object_t argument.  All callers changed.
19181         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
19182         All callers changed.
19183         (mark_pseudo_regno_live): Iterate over allocno subobjects.
19184         (mark_pseudo_regno_dead): Likewise.
19185         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
19186         functions.
19187         (mark_ref_live): Detect subword accesses and call
19188         mark_pseudo_regno_subword_live as appropriate.
19189         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
19190         (process_bb_nodes_live): Deal with object-related updates first; set
19191         and test bits in allocnos_processed to avoid computing allocno
19192         statistics more than once.
19193         (create_start_finish_chains): Iterate over objects, not allocnos.
19194         (print_object_live_ranges): New function.
19195         (print_allocno_live_ranges): Use it.
19196         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
19197         and objects_live.
19198
19199 2010-07-22  Richard Guenther  <rguenther@suse.de>
19200
19201         PR lto/42451
19202         * gimple.c (gtc_next_dfs_num): New global.
19203         (struct sccs): Make value a union, add integer same_p member.
19204         (gtc_visit): New function.
19205         (gimple_types_compatible_p_1): New function, split out from ...
19206         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
19207         (iterative_hash_gimple_type): Adjust for sccs change.
19208
19209 2010-07-22  Martin Jambor  <mjambor@suse.cz>
19210
19211         PR tree-optimization/44891
19212         * tree-sra.c: Include gimple-pretty-print.h.
19213         (replace_uses_with_default_def_ssa_name): Renamed to
19214         get_repl_default_def_ssa_name, return the new SSA name instead of
19215         replacing the old one.
19216         (sra_modify_assign): Dump a message when removing a load, if the LHS
19217         is an SSA_NAME, do not do any propagation, just set the RHS to a
19218         default definition SSA NAME, type convert if necessary.
19219         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
19220
19221 2010-07-22  Richard Guenther  <rguenther@suse.de>
19222
19223         PR tree-optimization/45017
19224         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
19225         TYPE_PRECISION of integral types in addition to size.
19226
19227 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
19228
19229         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
19230         when no C library is specified.
19231
19232 2010-07-22  Martin Jambor  <mjambor@suse.cz>
19233
19234         * ipa-prop.h (struct ipa_node_params): Updated comment.
19235         (struct ipa_edge_args): Likewise.
19236         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
19237
19238 2010-07-22  Martin Jambor  <mjambor@suse.cz>
19239
19240         * cgraphunit.c (verify_edge_count_and_frequency): New function.
19241         (verify_cgraph_node): Verify frequencies of indirect edges.
19242         * tree-inline.c (tree_function_versioning): Update frequencies of
19243         indirect edges.
19244
19245 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19246
19247         PR target/43698
19248         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
19249         Set *arm_rev to be predicable.
19250
19251 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
19252
19253         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
19254         (LINK_COMMAND_SPEC_A): New.
19255         (DSYMUTIL): New.
19256         (DSYMUTIL_SPEC): New.
19257         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
19258         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
19259
19260 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
19261
19262         * calls.c (load_register_parameters): Move check for zero
19263         sized items so that only the call to
19264         mem_overlaps_already_clobbered_arg_p () is protected.
19265
19266 2010-07-22  Jan Hubicka  <jh@suse.cz>
19267
19268         * ipa-pure-const.c (varying_state): Break out from ...
19269         (get_function_state): ... here; always return varying_state
19270         when state would be NULL otherwise.
19271         (remove_node_data): Do not free varying state.
19272
19273 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19274
19275         PR bootstrap/44970
19276         PR middle-end/45009
19277         * postreload.c: Include "target.h".
19278         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
19279         into account.
19280         (fixup_debug_insns): Don't copy the rtx.
19281         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
19282         Don't copy when replacing.  Call fixup_debug_insns in the case where
19283         we merged one add with another.
19284         (reload_combine_recognize_pattern): Fail if there aren't any uses.
19285         Try harder to determine whether we're picking a valid index register.
19286         Don't set store_ruid for an insn we're going to scan in the
19287         next iteration.
19288         (reload_combine): Remove unused code.
19289         (reload_combine_note_use): When updating use information for
19290         an old insn, ignore a use that occurs after store_ruid.
19291         * Makefile.in (postreload.o): Update dependencies.
19292
19293         * function.c (record_hard_reg_sets): Restrict the previous change
19294         to cases where the incoming nominal mode is the same as the
19295         incoming promoted mode and everything happens in MODE_INT.
19296
19297 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
19298
19299         PR debug/45015
19300         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
19301         ASM_OPERANDS_OUTPUT_IDX.
19302         (adjust_insn): For inline asm with multiple sets ensure first
19303         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
19304         the insn.
19305
19306 2010-07-21  Richard Henderson  <rth@redhat.com>
19307
19308         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
19309         comparison for avoiding xmm register saves.  Emit the xmm register
19310         saves explicitly.
19311         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
19312         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
19313         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
19314         Remove patterns and the associated splitters.
19315
19316 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
19317
19318         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
19319         and imagine parts of a complex, so that they can have the same
19320         base and fall into the same group.
19321
19322 2010-07-21  Richard Guenther  <rguenther@suse.de>
19323
19324         PR lto/45018
19325         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
19326         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
19327         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
19328
19329 2010-07-21  Martin Jambor  <mjambor@suse.cz>
19330
19331         PR tree-optimization/44900
19332         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
19333         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
19334
19335 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
19336
19337         PR middle-end/44738
19338         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
19339
19340 2010-07-21  Richard Guenther  <rguenther@suse.de>
19341
19342         PR middle-end/45013
19343         * tree-ssa.c (useless_type_conversion_p): Dispatch to
19344         gimple_types_compatible_p only when in lto.
19345         * gimple.c (gimple_types_compatible_p): Use canonical types
19346         to speed up comparison.
19347
19348 2010-07-21  Richard Guenther  <rguenther@suse.de>
19349
19350         * tree-flow.h (referenced_var): Move define ...
19351         * tree-flow-inline.h (referenced_var): ... here as an inline
19352         function.  Assert here ...
19353         * tree-dfa.c (referenced_var_lookup): ... instead of here.
19354         * tree-ssa.c (maybe_optimize_var): Check if the variable
19355         is in referenced vars.
19356         (execute_update_addresses_taken): Remove old broken check.
19357         * gimple-pretty-print.c (pp_points_to_solution): Use
19358         referenced_var_lookup.
19359         * tree-into-ssa.c (dump_decl_set): Likewise.
19360
19361 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
19362
19363         PR debug/45003
19364         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
19365         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
19366         ZERO_EXTEND here.
19367
19368 2010-07-20  Richard Henderson  <rth@redhat.com>
19369
19370         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
19371
19372 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
19373
19374         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
19375         computing the sum of the stack pointer and a large constant.
19376         * config/arm/constraints.md (M): Remove superfluous parentheses.
19377         (Pc): New constraint.
19378
19379 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
19380
19381         PR debug/45006
19382         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
19383         operand's type if exp is tcc_unary class tree.
19384
19385 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
19386
19387         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
19388         Reverse sense of if_then_else condition.
19389
19390 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
19391
19392         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
19393         * config/rs6000/rs6000.c (rs6000_override_options): Set
19394         rs6000_block_move_inline_limit appropriately.
19395         (expand_block_move): Use rs6000_block_move_inline_limit.
19396         * doc/invoke.texi (mblock-move-inline-limit): Document.
19397
19398 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
19399
19400         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
19401         FROM and TO.  All callers changed.  Don't look for tracked uses,
19402         just scan the RTL for DEBUG_INSNs and substitute.
19403         (reload_combine_recognize_pattern): Call fixup_debug_insns.
19404         (reload_combine): Ignore DEBUG_INSNs.
19405
19406 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
19407
19408         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
19409         depth to 8 from 5.
19410
19411         PR debug/45003
19412         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
19413         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
19414         instead of the result's type.
19415
19416 2010-07-20  Richard Guenther  <rguenther@suse.de>
19417
19418         PR tree-optimization/44977
19419         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
19420         SSA form.
19421
19422 2010-07-20  Richard Guenther  <rguenther@suse.de>
19423
19424         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
19425         (lto_symtab_merge_decls_2): Likewise.
19426         * gimple.h (gimple_types_compatible_p): Declare.
19427         * gimple.c (gimple_queue_type_fixup): Remove.
19428         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
19429         (gimple_compatible_complete_and_incomplete_type_p): New function.
19430         (gimple_types_compatible_p): Adjust.
19431         (gimple_register_type): Remove type fixup code.
19432         (print_gimple_types_stats): Adjust.
19433         (free_gimple_type_tables): Likewise.
19434         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
19435         * tree-ssa.c (useless_type_conversion_p): Likewise.
19436
19437 2010-07-20  Richard Guenther  <rguenther@suse.de>
19438
19439         PR middle-end/44971
19440         PR middle-end/44988
19441         * tree-ssa.c (maybe_optimize_var): New function split out from ...
19442         (execute_update_addresses_taken): ... here.
19443         (non_rewritable_mem_ref_base): Likewise.
19444         (execute_update_addresses_taken): Do not iterate over all referenced
19445         vars but just all local decls and parms.
19446         Properly check call and asm arguments and rewrite call arguments.
19447
19448 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
19449
19450         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
19451         to top level.
19452         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
19453         definitions ...
19454         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
19455         New macro.
19456         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
19457
19458 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
19459
19460         * gengtype.c (start_root_entry): New function, split out from
19461         write_root.  Check whether V is null and raise an error if so.
19462         (write_field_root): Check for V being null.  Don't raise an error here;
19463         set V to null instead.
19464         (write_root): Update comment above function.  Use start_root_entry.
19465
19466 2010-07-19  Xinliang David Li  <davidxl@google.com>
19467
19468         PR testsuite/44932
19469         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
19470         def edges.
19471         (find_uninit_use): Add dump.
19472         (is_use_properly_guarded): Ditto.
19473         (warn_uninitialized_phi): Ditto.
19474         (execute_late_warn_uninitialized): Ditto.
19475
19476 2010-07-19  Richard Guenther  <rguenther@suse.de>
19477
19478         PR middle-end/44941
19479         * expr.c (emit_block_move_hints): Move zero size check first.
19480         Move asserts to more useful places.
19481         * calls.c (load_register_parameters): Check for zero size.
19482
19483 2010-07-19  Richard Henderson  <rth@redhat.com>
19484
19485         * tree-optimize.c (execute_all_early_local_passes): New.  Change
19486         cgraph_state here ...
19487         (execute_early_local_optimizations): ... not here.  Remove.
19488         (pass_early_local_passes, pass_all_early_optimizations): Update.
19489
19490 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
19491
19492         * postreload.c (reload_combine_closest_single_use): Ignore the
19493         number of uses for DEBUG_INSNs.
19494         (fixup_debug_insns): New static function.
19495         (reload_combine_recognize_const_pattern): Use it.  Don't let the
19496         main loop be affected by DEBUG_INSNs.
19497         Really disallow moving adds past a jump insn.
19498         (reload_combine_recognize_pattern): Don't update use_ruid here.
19499         (reload_combine_note_use): Do it here.
19500         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
19501
19502 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
19503
19504         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
19505         of a loop.
19506         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
19507
19508 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
19509
19510         * config/i386/darwin.h: Define darwin_emit_branch_islands.
19511         (TARGET_MACHO_BRANCH_ISLANDS): New.
19512         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
19513         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
19514         default value.
19515         * config/i386/i386.c (output_pic_addr_const): Do not emit
19516         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
19517         (x86_output_mi_thunk): Adjust symbol creation.
19518         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
19519         Remove out of date comment.
19520         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
19521         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
19522         (DARWIN_GENERATE_ISLANDS): Ditto.
19523         (output_call):  Do not emit branch islands unless
19524         darwin_emit_branch_islands is set.
19525         * config/darwin.c: Declare darwin_emit_branch_islands.
19526         (machopic_indirect_data_reference): Do not emit unless
19527         darwin_emit_branch_islands is set.
19528         (darwin_override_options): Set darwin_emit_branch_islands
19529         where it is needed.
19530         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
19531
19532 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19533
19534         * doc/sourcebuild.texi (Effective-Target Keywords): Document
19535         sse_runtime, sse2_runtime.
19536
19537 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
19538
19539         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
19540         low half of a single-register SCmode return value before ORing
19541         it with the high half.
19542         * config/mips/mips16.S (MERGE_GPRf): Likewise.
19543
19544 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19545
19546         PR target/44805
19547         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
19548         on all targets.
19549
19550 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
19551
19552         PR target/42235
19553         * postreload.c (reload_cse_move2add): Return bool, true if anything.
19554         changed.  All callers changed.
19555         (move2add_use_add2_insn): Likewise.
19556         (move2add_use_add3_insn): Likewise.
19557         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
19558         reload_combine.
19559         (RELOAD_COMBINE_MAX_USES): Bump to 16.
19560         (last_jump_ruid): New static variable.
19561         (struct reg_use): New members CONTAINING_MEM and RUID.
19562         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
19563         (reload_combine_split_one_ruid, reload_combine_split_ruids,
19564         reload_combine_purge_insn_uses, reload_combine_closest_single_use
19565         reload_combine_purge_reg_uses_after_ruid,
19566         reload_combine_recognize_const_pattern): New static functions.
19567         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
19568         is true for our reg and that we have available index regs.
19569         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
19570         callers changed.  Use them to initialize fields in struct reg_use.
19571         (reload_combine): Initialize last_jump_ruid.  Be careful when to
19572         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
19573         Call reload_combine_recognize_const_pattern.
19574         (reload_combine_note_store): Update REAL_STORE_RUID field.
19575
19576 2010-07-16  Jason Merrill  <jason@redhat.com>
19577
19578         * Makefile.in (opts-common.o): Depend on options.h.
19579
19580 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
19581
19582         * tree.c (build_common_builtin_nodes): Use build_function_type_list
19583         instead of build_function_type.
19584         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
19585         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
19586
19587 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
19588
19589         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
19590         do all the work.
19591         (rs6000_emit_int_cmove): Use function pointers for insn generation.
19592         Don't force values into registers unnecessarily.
19593         (output_isel): Assert that we're not given conditions we can't handle.
19594         Delete corresponding code.
19595         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
19596         scc_comparison_operator constraint.  Permit 0 for the consequent
19597         operand.  Permit any GPR for the alternative operand.
19598         (isel_unsigned_<mode>): Likewise.
19599
19600 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
19601
19602         PR target/44942
19603         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
19604         argument to const_tree.
19605         * config/i386/i386.c (function_arg_advance): If padding needs to be
19606         inserted before argument, increment cum->words by number of padding
19607         words as well.
19608         (contains_aligned_value_p): Change argument to const_tree.
19609         (ix86_function_arg_boundary): Change second argument to const_tree.
19610
19611 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
19612
19613         PR target/42235
19614         * function.c (record_hard_reg_sets): New static function.
19615         (assign_parm_setup_reg): If an optab for extending exists and the
19616         generated code clobbbers no hard regs, emit the insn directly and
19617         create a REG_EQUIV note.
19618
19619 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
19620
19621         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
19622         TREE_CHAIN.
19623         * c-typeck.c (push_init_level): Likewise.
19624         (process_init_element): Likewise.
19625
19626 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
19627
19628         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
19629         (integer_three_node): Add.
19630         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
19631         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
19632         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
19633         of call build_int_cst.
19634         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
19635         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
19636         (find_interesting_uses_address): Ditto.
19637         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
19638         * tree-eh.c (lower_eh_constructs_2): Ditto.
19639         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
19640         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
19641         * expmed.c (expand_divmod): Ditto.
19642         * tree-mudflap.c (mx_register_decls): Ditto.
19643         * varasm.c (array_size_for_constructor): Ditto.
19644         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
19645         * c-parser.c (c_parser_postfix_expression): Ditto.
19646
19647 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
19648
19649         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
19650         New static variables.
19651         (reload_combine_recognize_pattern): New static function, broken out
19652         of reload_combine.
19653         (reload_combine): Use it.  Only initialize first_index_reg and
19654         last_index_reg once.
19655
19656 2010-07-15  Richard Henderson  <rth@redhat.com>
19657
19658         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
19659         when done.
19660
19661 2010-07-15  Jan Hubicka  <jh@suse.cz>
19662
19663         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
19664         comdats for broken gold.
19665         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
19666
19667 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
19668
19669         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
19670
19671 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
19672
19673         * tree.h (DECL_CHAIN): Define.
19674         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
19675         * c-decl.c: Likewise.
19676         * c-parser.c: Likewise.
19677         * c-typeck.c: Likewise.
19678         * cfgexpand.c: Likewise.
19679         * cgraph.c: Likewise.
19680         * cgraphunit.c: Likewise.
19681         * combine.c: Likewise.
19682         * config/alpha/alpha.c: Likewise.
19683         * config/arm/arm.c: Likewise.
19684         * config/frv/frv.c: Likewise.
19685         * config/i386/i386.c: Likewise.
19686         * config/i386/winnt-cxx.c: Likewise.
19687         * config/ia64/ia64.c: Likewise.
19688         * config/iq2000/iq2000.c: Likewise.
19689         * config/mep/mep.c: Likewise.
19690         * config/mips/mips.c: Likewise.
19691         * config/pa/som.h: Likewise.
19692         * config/rs6000/rs6000.c: Likewise.
19693         * config/s390/s390.c: Likewise.
19694         * config/sh/sh.c: Likewise.
19695         * config/sh/symbian-cxx.c: Likewise.
19696         * config/sparc/sparc.c: Likewise.
19697         * config/spu/spu.c: Likewise.
19698         * config/stormy16/stormy16.c: Likewise.
19699         * config/vxworks.c: Likewise.
19700         * config/xtensa/xtensa.c: Likewise.
19701         * coverage.c: Likewise.
19702         * dbxout.c: Likewise.
19703         * dwarf2out.c: Likewise.
19704         * emit-rtl.c: Likewise.
19705         * expr.c: Likewise.
19706         * function.c: Likewise.
19707         * gimple-low.c: Likewise.
19708         * gimple-pretty-print.c: Likewise.
19709         * gimplify.c: Likewise.
19710         * integrate.c: Likewise.
19711         * ipa-inline.c: Likewise.
19712         * ipa-prop.c: Likewise.
19713         * ipa-split.c: Likewise.
19714         * ipa-struct-reorg.c: Likewise.
19715         * ipa-type-escape.c: Likewise.
19716         * langhooks.c: Likewise.
19717         * lto-cgraph.c: Likewise.
19718         * omp-low.c: Likewise.
19719         * stor-layout.c: Likewise.
19720         * tree-cfg.c: Likewise.
19721         * tree-complex.c: Likewise.
19722         * tree-dfa.c: Likewise.
19723         * tree-dump.c: Likewise.
19724         * tree-inline.c: Likewise.
19725         * tree-mudflap.c: Likewise.
19726         * tree-nested.c: Likewise.
19727         * tree-object-size.c: Likewise.
19728         * tree-pretty-print.c: Likewise.
19729         * tree-sra.c: Likewise.
19730         * tree-ssa-live.c: Likewise.
19731         * tree-ssa-loop-niter.c: Likewise.
19732         * tree-ssa-math-opts.c: Likewise.
19733         * tree-ssa-reassoc.c: Likewise.
19734         * tree-ssa-sccvn.c: Likewise.
19735         * tree-ssa-structalias.c: Likewise.
19736         * tree-tailcall.c: Likewise.
19737         * tree-vrp.c: Likewise.
19738         * tree.c: Likewise.
19739         * var-tracking.c: Likewise.
19740         * varasm.c: Likewise.
19741
19742 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19743
19744         PR target/44877
19745         * config/spu/spu.c (spu_expand_builtin_1): Allow references
19746         (as well as pointers) as argument to mask_for_load builtins.
19747
19748 2010-07-15  Richard Guenther  <rguenther@suse.de>
19749
19750         PR tree-optimization/44946
19751         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
19752         with accessing only padding properly.
19753
19754 2010-07-15  Jan Hubicka  <jh@suse.cz>
19755
19756         * ipa.c (function_and_variable_visibility): Variables marked as used
19757         should not be localized.
19758
19759 2010-07-15  Jan Hubicka  <jh@suse.cz>
19760
19761         * cgraph.c: Include lto-streamer.h
19762         (change_decl_assembler_name): Work when assembler name hash is at place.
19763         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
19764         be sure to rename it to avoid name clash.
19765         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
19766         Localize hidden symbols only when locally defined.
19767
19768 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
19769
19770         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
19771
19772 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
19773             Kevin F. Quinn  <kevquinn@gentoo.org>
19774
19775         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
19776         * common.opt: Add -Wtrampolines.
19777         * doc/invoke.texi: Add -Wtrampolines.
19778
19779 2010-07-15  Jie Zhang  <jie@codesourcery.com>
19780
19781         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
19782         cortex_a8_issue_ls.
19783
19784 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
19785
19786         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
19787         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
19788
19789 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19790
19791         * config/spu/spu.c (reg_names): Remove prototype.
19792         (call_used_regs): Likewise.
19793
19794 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
19795
19796         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
19797         "unused" with attribute "used".
19798         (__JCR_END__): Likewise.
19799         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
19800         "used" attribute.
19801         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
19802
19803 2010-07-14  Richard Guenther  <rguenther@suse.de>
19804
19805         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
19806         (maybe_fixup_decls): Likewise.
19807         (input_gimple_stmt): Do not fixup anything.
19808         * lto-streamer-out.c (output_gimple_stmt): Make sure all
19809         non-automatic variable uses are wrapped inside a MEM_REF.
19810
19811 2010-07-14  Richard Henderson  <rth@redhat.com>
19812
19813         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
19814         for functions.
19815         * varasm.c (assemble_variable): Remove early exit for functions;
19816         assert that we're given a variable.
19817
19818 2010-07-14  Jie Zhang  <jie@codesourcery.com>
19819
19820         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
19821         cortex_a8_default when neon_type is not none.
19822
19823 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19824
19825         * lower-subreg.c (subreg_context): New static bitmap.
19826         (decompose_multiword_subregs): Allocate and free it.
19827         (find_decomposable_subregs): Set a bit in it for a register that
19828         occurs in a subreg that changes mode but not size.
19829         (can_decompose_p): Test it instead of non_decomposable_context.
19830
19831 2010-07-14  Richard Guenther  <rguenther@suse.de>
19832
19833         PR tree-optimization/44824
19834         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
19835         is_gimple_mem_ref_addr.
19836         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
19837         non-decl_address_invariant_p addresses.
19838
19839 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19840
19841         * reload.c (find_reloads): Revert code to penalize small register
19842         classes that was brought in with the IRA merge.
19843
19844 2010-07-14  Richard Guenther  <rguenther@suse.de>
19845
19846         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
19847         as base of ARRAY_REFs.
19848
19849 2010-07-14  Richard Guenther  <rguenther@suse.de>
19850
19851         PR middle-end/44930
19852         * tree-pretty-print.c (do_niy): Do not print a newline.
19853
19854 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19855
19856         * ira-int.h (struct ira_object): New.
19857         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
19858         (struct ira_allocno): Remove members min, max,
19859         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
19860         conflict_allocnos_num and conflict_vec_p.  Add new member object.
19861         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
19862         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
19863         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
19864         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
19865         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
19866         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
19867         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
19868         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
19869         an ira_object_t rather than ira_allocno_t.  All uses changed.
19870         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
19871         contains a vector of ira_object_t; all uses changed.
19872         (ira_objects_num): Declare variable.
19873         (ira_create_allocno_object): Declare function.
19874         (ira_conflict_vector_profitable_p): Adjust prototype.
19875         (ira_allocate_conflict_vec): Renamed from
19876         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
19877         (ira_allocate_object_conflicts): Renamed from
19878         ira_allocate_allocno_conflicts; first arg now ira_object_t.
19879         (struct ira_object_iterator): New.
19880         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
19881         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
19882         to conflict_vec_p.  All uses changed.
19883         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
19884         Changed to take into account that conflicts are now tracked for
19885         objects.
19886         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
19887         Args changed to accept ira_object_t.  All uses changed.
19888         (allocnos_conflict_p): New static function.
19889         (collected_conflict_objects): Renamed from collected_allocno_objects;
19890         now a vector of ira_object_t.  All uses changed.
19891         (build_conflict_bit_table): Changed to take into account that
19892         conflicts are now tracked for objects.
19893         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
19894         (print_allocno_conflicts, ira_build_conflicts): Likewise.
19895         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
19896         setup_allocno_left_conflicts_size, allocno_reload_assign,
19897         fast_allocation): Likewise.
19898         * ira-lives.c (make_hard_regno_born, make_allocno_born)
19899         process_single_reg_class_operands, process_bb_node_lives): Likewise.
19900         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
19901         Likewise.
19902         * ira-build.c (ira_objects_num): New variable.
19903         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
19904         contains a vector of ira_object_t; all uses changed.
19905         (ira_object_id_map_vec): Corresponding change.
19906         (object_pool): New static variable.
19907         (initiate_allocnos): Initialize it.
19908         (finish_allocnos): Free it.
19909         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
19910         New functions.
19911         (ira_create_allocno): Don't set members that were removed.
19912         (ira_set_allocno_cover_class): Don't change conflict hard regs.
19913         (merge_hard_reg_conflicts): Changed to take into account that
19914         conflicts are now tracked for objects.
19915         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
19916         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
19917         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
19918         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
19919         setup_min_max_conflict_allocno_ids, ):  Likewise.
19920         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
19921         to ira_object_t; all callers changed.
19922         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
19923         to ira_object_t, all callers changed.
19924         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
19925         to ira_object_t, all callers changed.
19926         (conflict_check, curr_conflict_check_tick): Renamed from
19927         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
19928         changed.
19929         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
19930         arg changed to ira_object_t, all callers changed.
19931         (create_cap_allocno): Call ira_create_allocno_object.
19932         (finish_allocno): Free the corresponding object.
19933         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
19934         callers changed.  Adjusted for dealing with objects.
19935         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
19936         dealing with objects.
19937         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
19938
19939         * ira-int.h (struct live_range): Rename allocno member to object
19940         and change type to ira_object_t.
19941         (struct ira_object): New member live_ranges.
19942         (struct ira_allocno): Remove member live_ranges.
19943         (ALLOCNO_LIVE_RANGES): Remove.
19944         (OBJECT_LIVE_RANGES): New macro.
19945         (ira_create_live_range, ira_copy_live_range_list,
19946         ira_merge_live_range_list, ira_live_ranges_intersect_p,
19947         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
19948         * ira-build.c (ira_create_object): Initialize live ranges here.
19949         (ira_create_allocno): Not here.
19950         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
19951         changed to ira_object_t, all callers changed.
19952         (copy_live_range): Rename from copy_allocno_live_range, all callers
19953         changed.
19954         (ira_copy_live_range_list): Rename from
19955         ira_copy_allocno_live_range_list, all callers changed.
19956         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
19957         all callers changed.
19958         (ira_live_ranges_intersect_p): Rename from
19959         ira_allocno_live_ranges_intersect_p, all callers changed.
19960         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
19961         callers changed.
19962         (ira_finish_live_range_list): Rename from
19963         ira_finish_allocno_live_range_list, all callers changed.
19964         (change_object_in_range_list): Rename from change_allocno_in_range_list,
19965         last arg changed to ira_object_t, all callers changed.
19966         (finish_allocno): Changed to expect live ranges in the allocno's object.
19967         (move_allocno_live_ranges, copy_allocno_live_ranges,
19968         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
19969         ira_flattening, ira_build): Likewise.
19970         * ira-color.c (allocnos_have_intersected_live_ranges_p,
19971         slot_coalesced_allocno_live_ranges_intersect,
19972         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
19973         * ira-conflicts.c (build_conflict_bit_table): Likewise.
19974         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
19975         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
19976         make_allocno_dead, create_start_finish_chains,
19977         remove_some_program_points_and_update_live_ranges,
19978         ira_debug_live_range_list): Likewise.
19979
19980         * ira-int.h (ira_object_conflict_iterator): Rename from
19981         ira_allocno_conflict_iterator.
19982         (ira_object_conflict_iter_init): Rename from
19983         ira_allocno_conflict_iter_init, second arg changed to
19984         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
19985         FOR_EACH_ALLOCNO_CONFLICT.
19986         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
19987         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
19988         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
19989         * ira-conflicts.c (print_allocno_conflicts): Likewise.
19990
19991 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
19992
19993         PR other/44874
19994         * tree-dump.c (dump_options): Add enumerate_locals entry.
19995         Add TDF_NOID exclusion to all entry.
19996         * tree-dump.h (dump_enumerated_decls): Declare.
19997         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
19998         Don't display type uid.
19999         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
20000         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
20001         * tree-ssa-live.c: Include gimple.h.
20002         (numbered_tree_d): New struct.
20003         (numbered_tree): New typedef.
20004         (DEF_VEC_O (numbered_tree): New.
20005         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
20006         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
20007         (dump_enumerated_decls): Likewise.
20008         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
20009         debug info and flag_dump_final_insns, call dump_enumerated_decls.
20010         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
20011         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
20012
20013 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
20014
20015         * expmed.h (MAX_BITS_PER_WORD): Move to...
20016         * defaults.h (MAX_BITS_PER_WORD): ...here.
20017
20018 2010-07-13  DJ Delorie  <dj@redhat.com>
20019
20020         * config/h8300/h8300.c (h8300_init_once): Default to
20021         -fstrict_volatile_bitfields.
20022
20023         * config/sh/sh.c (sh_override_options): Default to
20024         -fstrict_volatile_bitfields.
20025
20026         * config/rx/rx.c (rx_option_override): New.
20027
20028         * config/m32c/m32c.c (m32c_override_options): Default to
20029         -fstrict_volatile_bitfields.
20030
20031 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
20032
20033         * tree.h (build_function_call_expr): Delete.
20034         (build_call_expr_loc_array): New function.
20035         (build_call_expr_loc_vec): New function.
20036         * tree-flow.h (struct omp_region): Change type of ws_args field
20037         to a VEC.
20038         * builtins.c (build_function_call_expr): Delete.
20039         (build_call_expr_loc_array): New function.
20040         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
20041         (build_call_expr): Likewise.
20042         (build_call_expr_loc_vec): New function.
20043         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
20044         build_function_call_expr.
20045         * expr.c (emutls_var_address): Likewise.
20046         * varasm.c (emutls_common_1): Likewise.
20047         * omp-low.c (expand_omp_atomic_mutex): Likewise.
20048         (expand_omp_taskreg): Adjust for new type of region->ws_args.
20049         (get_ws_args_for): Return a VEC instead of a tree.
20050         (expand_parallel_call): Call build_call_expr_loc_vec instead of
20051         build_function_call_expr.
20052         * stor-layout.c (self_referential_size): Likewise.
20053
20054 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
20055
20056         PR testsuite/44701
20057         * recog.c (constrain_operands): Allow side-effects in memory
20058         operands if either < or > constraint is used, rather than if
20059         both < and > is used.
20060
20061 2010-07-13  Richard Guenther  <rguenther@suse.de>
20062
20063         PR middle-end/44911
20064         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
20065         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
20066         without name.
20067
20068 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
20069
20070         PR target/44761
20071         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
20072         to variable emited.
20073         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
20074         * config/sh/sh.md (symGOT_load): Likewise.
20075         (symDTPOFF2reg): Likewise.
20076         (symTPOFF2reg): Likewise.
20077
20078 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20079
20080         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
20081         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
20082
20083 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20084
20085         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
20086         explanation.
20087         Find ucontext_t * on Solaris 11.
20088         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
20089         Handle new Solaris 11 __sighndlr patterns.
20090
20091 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
20092
20093         PR debug/44901
20094         * vec.h (VEC_block_remove): Fix comment.
20095         * tree-ssa-live.c (remove_unused_locals): Don't use
20096         VEC_unordered_remove on local_decls, instead replace a single
20097         vector element in each iteration if at least one element had
20098         to be removed and VEC_truncate at the end.
20099         * omp-low.c (expand_omp_taskreg): Likewise.
20100
20101 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20102
20103         * c-decl.c (finish_function): Fix typo in comment.
20104
20105 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
20106
20107         PR bootstrap/44921
20108         * postreload.c (move2add_use_add3_insn): Silence gcc warning
20109         on min_regno.
20110
20111 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
20112
20113         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
20114         (simplify_stmt_using_ranges): Use it.
20115
20116 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20117
20118         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
20119         member.  Do not mark as GTY(()).
20120         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
20121         (spu_builtin_decls): New static variable.
20122         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
20123         (spu_init_builtins): Likewise.
20124         (spu_builtin_mul_widen_even): Likewise.
20125         (spu_builtin_mul_widen_odd): Likewise.
20126         (spu_builtin_mask_for_load): Likewise.
20127         (spu_builtin_vec_perm): Likewise.
20128         * config/spu/spu-c.c: Include "target.h".
20129         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
20130         of using spu_builtins[].fndecl.
20131
20132 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20133
20134         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
20135         imply -minterlink-mips16.
20136
20137 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20138
20139         * config/mips/mips.h (mips16_globals): Declare.
20140         (SWITCHABLE_TARGET): Define.
20141         * config/mips/mips.c: Include target-globals.h.
20142         (mips16_globals): New variable.
20143         (mips_set_mips16_mode): Use save_target_globals and
20144         restore_target_globals instead of target_reinit.
20145
20146 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20147
20148         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
20149         to say that the function can be called more than once.
20150         * target-globals.c (save_target_globals): Call init_reg_sets.
20151
20152 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20153
20154         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
20155         * bb-reorder.h: New file.
20156         * bb-reorder.c (default_target_bb_reorder): New variable.
20157         (this_target_bb_reorder): New conditional variable.
20158         (uncond_jump_length): Redefine as a macro.
20159         * target-globals.h (this_target_bb_reorder): Declare.
20160         (target_globals): Add a bb_reorder field.
20161         (restore_target_globals): Copy the bb_reorder field to
20162         this_target_bb-reorder.
20163         * target-globals.c: Include bb-reorder.h.
20164         (default_target_globals): Initialize the bb_reorder field.
20165         (save_target_globals): Likewise.
20166
20167 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20168
20169         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
20170         * gcse.h: New file.
20171         * gcse.c: Include gcse.h.
20172         (default_target_gcse): New variable.
20173         (this_target_gcse): New conditional variable.
20174         (can_copy): Redefine as a macro.
20175         (can_copy_init_p): New macro.
20176         (can_copy_p): Remove can_copy_init_p.
20177         * target-globals.h (this_target_gcse): Declare.
20178         (target_globals): Add a gcse field.
20179         (restore_target_globals): Copy the gcse field to this_target_gcse.
20180         * target-globals.c: Include gcse.h.
20181         (default_target_globals): Initialize the gcse field.
20182         (save_target_globals): Likewise.
20183
20184 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20185
20186         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
20187         and x_ira_prohibited_mode_move_regs_initialized_p.
20188         (ira_prohibited_mode_move_regs): Redefine as a macro.
20189         * ira.c (ira_prohibited_mode_move_regs): Delete.
20190         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
20191
20192 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20193
20194         * reload.h (target_reload): Add x_cached_reg_save_code and
20195         x_cached_reg_restore_code.
20196         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
20197         Redefine as macros.
20198
20199 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20200
20201         * Makefile.in (target-globals.o): Depend on builtins.h.
20202         * builtins.h: New file.
20203         * builtins.c: Include builtins.h.
20204         (default_target_builtins): New variable.
20205         (this_target_builtins): New conditional variable.
20206         (apply_args_mode, apply_result_mode): Redefine as macros.
20207         * target-globals.h (this_target_builtins): Declare.
20208         (target_globals): Add a builtins field.
20209         (restore_target_globals): Copy the builtins field to
20210         this_target_builtins.
20211         * target-globals.c: Include builtins.h.
20212         (default_target_globals): Initialize the builtins field.
20213         (save_target_globals): Likewise.
20214
20215 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20216
20217         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
20218         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
20219         from expmed.c.
20220         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
20221         (alg_hash, alg_hash_used_p): New macros.
20222         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
20223         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
20224         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
20225
20226 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20227
20228         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
20229         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
20230         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
20231         (this_op_costs, costs_classes): Redefine as macros.
20232         (record_reg_classes): Don't take op_costs as a parameter.
20233         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
20234         (scan_one_insn): Update call to record_operand_costs.
20235
20236 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20237
20238         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
20239         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
20240         (target_ira_int): New structure.
20241         (default_target_ira_int): Declare.
20242         (this_target_ira_int): Declare as a variable or define as a macro.
20243         (ira_reg_mode_hard_regset, ira_register_move_cost)
20244         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
20245         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
20246         (prohibited_class_mode_regs, ira_important_classes_num)
20247         (ira_important_classes, ira_reg_class_intersect)
20248         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
20249         (ira_reg_class_union): Redefine as macros.
20250         * ira.h (target_ira): New structure.
20251         (default_target_ira): Declare.
20252         (this_target_ira): Declare as a variable or define as a macro.
20253         (ira_available_class_regs, ira_hard_regno_cover_class)
20254         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
20255         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
20256         (ira_class_hard_regs_num): Redefine as macros.
20257         * ira.c (default_target_ira, default_target_ira_int): New variables.
20258         (this_target_ira, this_target_ira_int): New conditional variables.
20259         (ira_reg_mode_hard_regset, ira_memory_move_cost)
20260         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
20261         (ira_class_subset_p): Delete.
20262         (no_unit_alloc_regs): Redefine as a macro.
20263         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
20264         (ira_class_hard_regs_num, ira_class_hard_reg_index)
20265         (ira_available_class_regs): Delete.
20266         (alloc_reg_class_subclasses): Redefine as a macro.
20267         (ira_reg_class_cover_size, ira_reg_class_cover)
20268         (ira_important_classes_num, ira_important_classes)
20269         (ira_important_class_nums, ira_class_translate): Delete.
20270         (cover_class_order): Document the variable's lifetime.
20271         (reorder_important_classes): Don't set ira_important_class_nums.
20272         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
20273         (ira_reg_class_super_classes, ira_reg_class_union)
20274         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
20275         Delete.
20276         (setup_reg_class_nregs): Don't set ira_max_regs.
20277         (prohibited_class_mode_regs): Delete.
20278         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
20279         (target_globals): Add ira and ira_int fields.
20280         (restore_target_globals): Copy the ira field to this_target_ira
20281         and the ira_int field to this_target_ira_int.
20282         * target-globals.c: Include ira-int.h.
20283         (default_target_globals): Initialize the ira and ira_int fields.
20284         (save_target_globals): Likewise.
20285
20286 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20287
20288         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
20289         * cfgloop.h (target_cfgloop): New structure.
20290         (default_target_cfgloop): Declare.
20291         (this_target_cfgloop): Declare as a variable or define as a macro.
20292         (target_avail_regs, target_clobbered_regs, target_res_regs)
20293         (target_reg_cost, target_spill_cost): Redefine as macros.
20294         * cfgloopanal.c (default_target_cfgloop): New variable.
20295         (this_target_cfgloop): New conditional variable.
20296         (target_avail_regs, target_clobbered_regs, target_res_regs)
20297         (target_reg_cost, target_spill_cost): Delete.
20298         * target-globals.h (this_target_cfgloop): Declare.
20299         (target_globals): Add a cfgloop field.
20300         (restore_target_globals): Copy the cfgloop field to
20301         this_target_cfgloop.
20302         * target-globals.c: Include cfgloop.h.
20303         (default_target_globals): Initialize the cfgloop field.
20304         (save_target_globals): Likewise.
20305
20306 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20307
20308         * regs.h (target_regs): Add x_direct_load, x_direct_store and
20309         x_float_extend_from_mem.
20310         (direct_load, direct_store, float_extend_from_mem): New macros.
20311         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
20312
20313 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20314
20315         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
20316         (target-globals.o): Depend on $(LIBFUNCS_H).
20317         * libfuncs.h: Include hashtab.h.
20318         (libfunc_entry): Moved from optabs.c.
20319         (target_libfuncs): New structure.
20320         (default_target_libfuncs): Declare.
20321         (this_target_libfuncs): Declare as a variable or define as a macro.
20322         (libfunc_table): Redefine as a macro.
20323         * optabs.c (default_target_libfuncs): New variable.
20324         (this_target_libfuncs): New conditional variable.
20325         (libfunc_table): Delete.
20326         (libfunc_entry): Moved to optabs.h.
20327         (libfunc_hash): Redefine as a macro.
20328         (hash_libfunc, eq_libfunc): Fix comments.
20329         (init_optabs): Use libfunc_hash to detect cases where the function
20330         has already been called.  Clear the hash table instead of
20331         recreating it.
20332         * target-globals.h (this_target_libfuncs): Declare.
20333         (target_globals): Add a libfuncs field.
20334         (restore_target_globals): Copy the libfuncs field to
20335         this_target_libfuncs.
20336         * target-globals.c: Include libfuncs.h.
20337         (default_target_globals): Initialize the libfuncs field.
20338         (save_target_globals): Likewise.
20339
20340 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20341
20342         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
20343         in all dependency lists.
20344
20345 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20346
20347         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
20348         * optabs.h (target_optabs): New structure.
20349         (default_target_optabs): Declare.
20350         (this_target_optabs): Declare as a variable or define as a macro.
20351         (optab_table, convert_optab_table, direct_optab_table): Redefine
20352         as macros.
20353         * optabs.c (default_target_optabs): New variable.
20354         (this_target_optabs): New conditional variable.
20355         (optab_table, convert_optab_table, direct_optab_table): Delete.
20356         * target-globals.h (this_target_optabs): Declare.
20357         (target_globals): Add a optabs field.
20358         (restore_target_globals): Copy the optabs field to
20359         this_target_optabs.
20360         * target-globals.c: Include expr.h and optabs.h.
20361         (default_target_globals): Initialize the optabs field.
20362         (save_target_globals): Likewise.
20363
20364 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20365
20366         * flags.h (target_flagstate): Add x_flag_excess_precision.
20367         (flag_excess_precision): Redefine as a macro.
20368         * toplev.c (flag_excess_precision): Delete.
20369
20370 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20371
20372         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
20373         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
20374         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
20375         (no_caller_save_reg_set): Redefine as a macro.
20376         * reload.h (target_reload): Add x_caller_save_initialized_p and
20377         x_regno_save_mode.
20378         (caller_save_initialized_p): Redefine as a macro.
20379         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
20380         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
20381         (regno_save_mode): Redefine as a macro.
20382
20383 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20384
20385         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
20386         * expmed.h: New file.
20387         * expmed.c (default_target_costs): New variable.
20388         (this_target_costs): New conditional variable.
20389         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
20390         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
20391         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
20392         * target-globals.h (this_target_expmed): Declare.
20393         (target_globals): Add a expmed field.
20394         (restore_target_globals): Copy the expmed field to
20395         this_target_expmed.
20396         * target-globals.c: Include expmed.h.
20397         (default_target_globals): Initialize the expmed field.
20398         (save_target_globals): Likewise.
20399
20400 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20401
20402         * Makefile.in (target-globals.o): Depend on reload.h.
20403         * reload.h (target_reload): New structure.
20404         (default_target_reload): Declare.
20405         (this_target_reload): Declare as a variable or define as a macro.
20406         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
20407         * reload1.c (default_target_reload): New variable
20408         (this_target_reload): New conditional variable.
20409         (indirect_symref_ok, double_reg_address_ok): Delete.
20410         (spill_indirect_levels): Redefine as a macro.
20411         * target-globals.h (this_target_reload): Declare.
20412         (target_globals): Add a reload field.
20413         (restore_target_globals): Copy the reload field to
20414         this_target_reload.
20415         * target-globals.c: Include hard-reg-set.h.
20416         (default_target_globals): Initialize the reload field.
20417         (save_target_globals): Likewise.
20418
20419 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20420
20421         * rtl.h (target_rtl): Add x_static_reg_base_value.
20422         * alias.c (static_reg_base_value): Redefine as a macro.
20423
20424 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20425
20426         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
20427         (GTFILES): Remove reginfo.c.
20428         * rtl.h (target_rtl): Add x_top_of_stack.
20429         (top_of_stack): New macro.
20430         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
20431         (top_of_stack): Delete.
20432
20433 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20434
20435         * regs.h (target_regs): Add x_hard_regs_of_mode,
20436         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
20437         x_may_move_out_cost and x_last_mode_for_init_move_cost.
20438         (have_regs_of_mode, contains_reg_of_mode, move_cost)
20439         (may_move_in_cost, may_move_out_cost): Redefine as macros.
20440         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
20441         (may_move_in_cost, may_move_out_cost): Delete.
20442         (last_mode_for_init_move_cost): Redefine as a macro.
20443
20444 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20445
20446         * hard-reg-set.h (target_hard_regs): New structure.
20447         (default_target_hard_regs): Declare.
20448         (this_target_hard_regs): Declare as a variable or define as a macro.
20449         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
20450         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
20451         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
20452         (reg_class_size, reg_class_subclasses, reg_class_subunion)
20453         (reg_class_superunion, reg_names): Redefine as macros.
20454         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
20455         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
20456         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
20457         (reg_class_contents, reg_class_size, reg_class_subclasses)
20458         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
20459         (default_target_hard_regs): New variable
20460         (this_target_hard_regs, initial_call_really_used_regs)
20461         (initial_reg_alloc_order): New conditional variables.
20462         (initial_reg_names): New variable.
20463         (init_reg_sets): Assert that initial_call_really_used_regs,
20464         initial_reg_alloc_order and initial_reg_names
20465         are all the same size as their variable counterparts.  Use them to
20466         initialize those counterparts.
20467         * target-globals.h (this_target_hard_regs): Declare.
20468         (target_globals): Add a hard_regs field.
20469         (restore_target_globals): Copy the hard_regs field to
20470         this_target_hard_regs.
20471         * target-globals.c: Include hard-reg-set.h.
20472         (default_target_globals): Initialize the hard_regs field.
20473         (save_target_globals): Likewise.
20474
20475 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20476
20477         * Makefile.in (target-globals.o): Depend on $(RTL_H).
20478         * rtl.h (target_rtl): New structure.
20479         (default_target_rtl): Declare.
20480         (this_target_rtl): Declare as a variable or define as a macro.
20481         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
20482         Redefine as macros.
20483         * emit-rtl.c (default_target_rtl): New variable.
20484         (this_target_rtl): New conditional variable.
20485         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
20486         (return_address_pointer_rtx): Delete.
20487         (initial_regno_reg_rtx): New macro.
20488         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
20489         (init_emit_regs): Likewise.
20490         * target-globals.h (this_target_rtl): Declare.
20491         (target_globals): Add a rtl field.
20492         (restore_target_globals): Copy the rtl field to this_target_rtl.
20493         * target-globals.c: Include rtl.h.
20494         (default_target_globals): Initialize the rtl field.
20495         (save_target_globals): Likewise.
20496
20497 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20498
20499         * Makefile.in (target-globals.o): Depend on $(REGS_H).
20500         * regs.h (target_reg_modes): New structure.
20501         (default_target_reg_modes): Declare.
20502         (this_target_reg_modes): Declare as a variable or define as a macro.
20503         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
20504         * reginfo.c (default_target_reg_modes): New variable.
20505         (this_target_reg_modes): New conditional variable.
20506         (hard_regno_nregs, reg_raw_mode): Delete.
20507         * target-globals.h (this_target_regs): Declare.
20508         (target_globals): Add a regs field.
20509         (restore_target_globals): Copy the regs field to this_target_regs.
20510         * target-globals.c: Include regs.h.
20511         (default_target_globals): Initialize the regs field.
20512         (save_target_globals): Likewise.
20513
20514 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20515
20516         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
20517         * doc/tm.texi: Regenerate.
20518         * Makefile.in (OBJS-common): Add target-globals.o.
20519         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
20520         and target-globals.h.
20521         (target-globals.o): New rule.
20522         (GTFILES): Include $(srcdir)/target-globals.h.
20523         * defaults.h (SWITCHABLE_TARGET): Define.
20524         * gengtype.c (open_base_files): Add target-globals.h to the
20525         list of includes.
20526         * target-globals.h: New file.
20527         * target-globals.c: Likewise.
20528
20529         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
20530         * flags.h (target_flag_state): New structure.
20531         (default_target_flag_state): Declare.
20532         (this_target_flag_state): Declare as a variable or define as a macro.
20533         (align_loops_log): Redefine as a macro.
20534         (align_loops_max_skip, align_jumps_log): Likewise.
20535         (align_jumps_max_skip, align_labels_log): Likewise.
20536         (align_labels_max_skip, align_functions_log): Likewise.
20537         * toplev.c (default_target_flag_state): New variable.
20538         (this_target_flag_state): New conditional variable.
20539         (align_loops_log): Delete.
20540         (align_loops_max_skip, align_jumps_log): Likewise.
20541         (align_jumps_max_skip, align_labels_log): Likewise.
20542         (align_labels_max_skip, align_functions_log): Likewise.
20543         * target-globals.h (this_target_flag_state): Declare.
20544         (target_globals): Add a flag_state field.
20545         (restore_target_globals): Copy the flag_state field to
20546         this_target_flag_state.
20547         * target-globals.c: Include flags.h.
20548         (default_target_globals): Initialize the flag_state field.
20549         (save_target_globals): Likewise.
20550
20551 2010-07-12  Jie Zhang  <jie@codesourcery.com>
20552
20553         * postreload.c (reg_symbol_ref[]): New.
20554         (move2add_use_add2_insn): New.
20555         (move2add_use_add3_insn): New.
20556         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
20557         (move2add_note_store): Likewise.
20558
20559 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
20560
20561         PR rtl-optimization/44752
20562         * genautomata.c (main): Don't emit an empty file even if there
20563         is no automaton.
20564
20565 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20566
20567         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
20568         ix86_solaris_return_in_memory.
20569         * config/i386-protos.h: Reflect this.
20570         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
20571         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
20572         Move ...
20573         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
20574
20575 2010-07-12  Jie Zhang  <jie@codesourcery.com>
20576
20577         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
20578         align the stack when it's going to be saved.
20579
20580 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20581
20582         PR pch/14940
20583         * config/host-solaris.c (mmap_fixed): New function.
20584         (sol_gt_pch_get_address): Use it.
20585         (sol_gt_pch_use_address): Likewise.
20586
20587 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20588
20589         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
20590         pentiumpro on Solaris 8 and 9/x86.
20591         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
20592         Document SSE/SSE2 support.
20593         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
20594
20595 2010-07-12  Andi Kleen  <ak@linux.intel.com>
20596
20597         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
20598         instead of gcc_assert to print better error message for multiple
20599         prevailing defs.
20600
20601 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
20602
20603         * config/i386/i386.c (ix86_asm_output_function_label): Change format
20604         string placeholder from 0x%x to %#x.
20605         (ix86_code_end): Use putc to output '\n'.
20606         (ix86_print_operand) <case ';'>: Use putc to output ';'.
20607
20608 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
20609
20610         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
20611         in directive -export.
20612
20613 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
20614
20615         * reginfo.h (reg_classes_intersect_p): Change arguments type to
20616         reg_class_t.
20617         * rtl.h (reg_classes_intersect_p): Adjust prototype.
20618
20619         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20620         Remove macros.
20621         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
20622         rs6000_memory_move_cost): Remove
20623         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
20624         TARGET_MEMORY_MOVE_COST): Define.
20625         (rs6000_register_move_cost): Make static. Change arguments type from
20626         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
20627         (rs6000_memory_move_cost): Make static. Change arguments type from
20628         'enum reg_class' to reg_class_t.
20629
20630 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
20631
20632         PR middle-end/42505
20633         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
20634         lookup code into....
20635         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
20636         new functions.
20637         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
20638         * cfgloopanal.c (target_clobbered_regs): Define.
20639         (init_set_costs): Initialize target_clobbered_regs.
20640         (estimate_reg_pressure_cost): Add call_p argument.  When true,
20641         adjust the number of available registers to exclude the
20642         call-clobbered registers.
20643         * cfgloop.h (target_clobbered_regs): Declare.
20644         (estimate_reg_pressure_cost): Adjust declaration.
20645         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
20646         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
20647         (determine_set_costs): Dump target_clobbered_regs.
20648         (loop_body_includes_call): New function.
20649         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
20650         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
20651         call_p flag through.
20652         (best_gain_for_invariant): Likewise.
20653         (find_invariants_to_move): Likewise.
20654         (move_single_loop_invariants): Likewise, using already-computed
20655         has_call field.
20656
20657 2010-07-10  Richard Guenther  <rguenther@suse.de>
20658             Joern Rennecke  <joern.rennecke@embecosm.com>
20659
20660         PR debug/44832
20661         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
20662         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
20663         unless they have DECL_IGNORED_P set.
20664
20665 2010-07-10  Richard Guenther  <rguenther@suse.de>
20666
20667         PR lto/44889
20668         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
20669         helper function.
20670         (gimple_types_compatible_p): Similar to pointed-to
20671         types allow and merge a mix of complete and incomplete aggregate.
20672         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
20673         (iterative_hash_gimple_type): Adjust for that.
20674
20675 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
20676
20677         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
20678
20679 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
20680
20681         PR objc/44140
20682         * config/darwin.c (output_objc_section_asm_op): Save and restore
20683         section when outputting ObjC section list.
20684
20685 2010-07-09  Jan Hubicka  <jh@suse.cz>
20686
20687         * lto-streamer-out.c (produce_symtab): Do not write alias
20688         cgraph/varpool nodes.
20689
20690 2010-07-09  Jan Hubicka  <jh@suse.cz>
20691
20692         * tree-inline.c (declare_return_variable): Fix ICE while
20693         inlining DECL_BY_VALUE function not in SSA form
20694
20695 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
20696
20697         PR tree-optimization/44576
20698         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
20699         New.  Pull out from is_loop_prefetching_profitable to implement
20700         the trip count to ahead ratio heuristic.
20701         (mem_ref_count_reasonable_p): New.  Pull out from
20702         is_loop_prefetching_profitable to implement the instruction to
20703         memory reference ratio heuristic.  Also consider not reasonable if
20704         the memory reference count is above a threshold (to avoid
20705         explosive compilation time.
20706         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
20707         is_loop_prefetching_profitable to implement the instruction to
20708         prefetch ratio heuristic.
20709         (is_loop_prefetching_profitable): Removed.
20710         (loop_prefetch_arrays): Distribute the cost analysis across the
20711         function to allow early exit of the prefetch analysis.
20712         is_loop_prefetching_profitable is splitted into three functions,
20713         with each one called as early as possible.
20714         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
20715         number of memory references in a loop is considered too many.
20716
20717 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
20718
20719         * reload.c (find_reloads): Don't clear badop if we have a winreg
20720         alternative, but not win, and the class only has fixed regs.
20721         * hard-reg-set.h (class_only_fixed_regs): Declare.
20722         * reginfo.c (class_only_fixed_regs): New array.
20723         (init_reg_sets_1): Initialize it.
20724         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
20725         discourage alternatives using the stack pointer.
20726
20727         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
20728
20729         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
20730
20731         * config/arm/arm.md (cbranchqi4): Fix array size.
20732         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
20733         calculating length.
20734
20735 2010-07-09  Richard Guenther  <rguenther@suse.de>
20736
20737         * gimple.c (struct type_fixup_s): New struct and VEC type.
20738         (gimple_register_type_fixups): New static global.
20739         (gimple_queue_type_fixup): New function.
20740         (gimple_types_compatible_p): Queue type fixups instead of
20741         applying them here.
20742         (gimple_register_type): Apply queued fixups for the
20743         canonical type.  Empty the type fixup queue.
20744
20745 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
20746
20747         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
20748         * configure: Regenerate.
20749         * config.in: Ditto.
20750
20751 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
20752             Denys Vlasenko  <dvlasenk@redhat.com>
20753             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
20754
20755         PR tree-optimization/28632
20756         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
20757         (extract_range_from_binary_expr): Further optimize
20758         BIT_AND_EXPR and BIT_IOR_EXPR.
20759
20760 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
20761
20762         * tree-if-conv.c (fold_or_predicates): New.
20763         (add_to_predicate_list): Call it.
20764
20765 2010-07-09  Richard Guenther  <rguenther@suse.de>
20766
20767         PR middle-end/44890
20768         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
20769         if base is a pointer.
20770         * tree-cfg.c (verify_expr): Update MEM_REF checking.
20771
20772 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
20773
20774         PR target/44877
20775         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
20776         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
20777         builtin mask for load/store builtins.
20778
20779 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
20780
20781         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
20782         for "lock addl".
20783         * configure: Regenerate.
20784         * config/i386/i386.c (ix86_print_operand) <case ';'>:
20785         Remove TARGET_MACHO.
20786
20787 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
20788
20789         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
20790         default ISA flags.
20791         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
20792
20793 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
20794
20795         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
20796
20797 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
20798
20799         * config/picochip/picochip.md (commsTestPort): Emit more
20800         efficient sequence for tstport instruction.
20801
20802 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
20803
20804         * config/i386/i386.c (ix86_veclib_handler): Make static.
20805
20806 2010-07-09  Richard Guenther  <rguenther@suse.de>
20807
20808         PR tree-optimization/44852
20809         * tree-ssa-alias.c: Include toplev.h for exact_log2.
20810         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
20811         in MEM_REF.
20812         (indirect_refs_may_alias_p): Likewise.
20813         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
20814
20815 2010-07-09  Richard Guenther  <rguenther@suse.de>
20816
20817         PR tree-optimization/44882
20818         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
20819         sets do conflict.
20820         (vectorizable_load): Likewise.
20821
20822 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
20823
20824         PR target/40657
20825         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
20826         All callers changed.
20827         Handle the case when we're called for the epilogue.
20828         (thumb_unexpanded_epilogue): Use it.
20829         (thumb1_expand_epilogue): Likewise.
20830
20831 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
20832
20833         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
20834         both ranges are range_int_cst_p with non-negative minimum,
20835         try harder to derive smaller range.
20836
20837 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20838
20839         * genrecog.c: Include diagnostic-core.h before toplev.h.
20840         * genoutput.c: Likewise.
20841         * genextract.c: Likewise.
20842         * genautomata.c: Likewise.
20843         * genemit.c: Likewise.
20844         * genpeep.c: Likewise.
20845         * genattrtab.c: Likewise.
20846         * genconditions.c: Likewise.
20847         * genpreds.c: Likewise.
20848
20849 2010-07-08  Andi Kleen  <ak@linux.intel.com>
20850
20851         * lto-section-in.c (lto_section_name): Add missing comma.
20852
20853 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
20854
20855         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
20856         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
20857         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
20858         (ia64_override_options): Rename to...
20859         (ia64_option_override): ... this one. Make static.
20860
20861 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20862
20863         PR middle-end/44843
20864         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
20865         pointed-to type of the offset in a MEM_REF to compute the alignment.
20866
20867 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
20868
20869         * final.c (final_scan_insn): Replace
20870         TARGET_UNWIND_INFO macro check by unwind_emit
20871         hook NULL check.
20872         * targhooks.c (default_unwind_emit): Removed.
20873         * targhooks.h (default_unwind_emit): Likewise.
20874         * target.def (unwind_emit): Set default value to NULL.
20875
20876         * config/i386/i386-protos.h (ix86_asm_output_function_label):
20877         New prototype.
20878         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
20879         for NULL fntype argument and allow 64-bit targets.
20880         (ix86_asm_output_function_label): New function.
20881         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
20882         (ix86_handle_fndecl_attribute): Likewise.
20883         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
20884         * doc/doc/tm.texi: Regenerated.
20885         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
20886         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
20887         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
20888         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
20889         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
20890         * config/elfos.h: Likewise.
20891         * config/i386/cygming.h: Likewise.
20892         * config/netbsd-aout.h: Likewise.
20893         * config/openbsd.h: Likewise.
20894         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
20895         by ix86_asm_output_function_label function call.
20896         * varasm.c (assemble_start_function): Use
20897         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
20898
20899 2010-07-08  Jan Hubicka  <jh@suse.cz>
20900
20901         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
20902         New function.
20903         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
20904         Declare.
20905         * ipa-cp.c (ipcp_estimate_growth): Use it.
20906         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
20907         Likewise.
20908
20909 2010-07-08  Jan Hubicka  <jh@suse.cz>
20910
20911         * tree-inline.c (declare_return_variable): Allocate annotation for new
20912         temporary.
20913
20914 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
20915
20916         PR tree-optimization/44710
20917         * tree-if-conv.c (parse_predicate): New.
20918         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
20919         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
20920
20921 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
20922
20923         * common.opt (ftree-loop-if-convert): New flag.
20924         * doc/invoke.texi (ftree-loop-if-convert): Documented.
20925         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
20926         when flag_tree_loop_if_convert is set.
20927
20928 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
20929
20930         * config/i386/i386.c: Use short syntax for function calls
20931         through function pointers.
20932         * config/i386/i386.md: Ditto.
20933
20934 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20935
20936         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
20937
20938 2010-07-08  Richard Guenther  <rguenther@suse.de>
20939
20940         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
20941         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
20942
20943 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
20944
20945         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
20946         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
20947         (loc_list_from_tree): Likewise.
20948         (output_loc_operands): Handle outputting DW_OP_const[48]u
20949         with loc->dtprel set.
20950         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
20951
20952 2010-07-08  Jan Hubicka  <jh@suse.cz>
20953
20954         * ipa.c: Include pointer-set.h
20955         (cgraph_externally_visible_p): New attribute ALIASED;
20956         when in LTO, hidden symbols are local unless they are aliased.
20957         (function_and_variable_visibility): Compute aliased nodes;
20958         handle LTO and hidden symbol on functions and vars.
20959         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
20960         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
20961
20962 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20963
20964         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20965         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20966         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20967         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20968         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20969         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
20970         (ix86_gen_probe_stack_range): Likewise.
20971         (override_options): Set them.
20972         (ix86_target_stack_probe): New function.
20973         (ix86_compute_frame_layout): Force use of push instructions to
20974         save registers if stack checking with probes is enabled.
20975         (get_scratch_register_on_entry): New function.
20976         (release_scratch_register_on_entry): Likewise.
20977         (ix86_adjust_stack_and_probe): Likewise.
20978         (output_adjust_stack_and_probe): Likewise.
20979         (ix86_emit_probe_stack_range): Likewise.
20980         (output_probe_stack_range): Likewise.
20981         (ix86_expand_prologue): Emit stack checking code if static built-in
20982         stack checking is enabled.
20983         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
20984         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
20985         (output_adjust_stack_and_probe): Likewise.
20986         (output_probe_stack_range): Likewise.
20987         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20988         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
20989         TARGET_STACK_PROBE.
20990         (allocate_stack_worker_64): Likewise.
20991         (allocate_stack): Likewise.
20992         (adjust_stack_and_probe): New insn.
20993         (probe_stack_range): Likewise.
20994
20995 2010-07-08  Richard Guenther  <rguenther@suse.de>
20996
20997         PR tree-optimization/44831
20998         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
20999         a MEM_REF preserving TBAA info of the original dereference.
21000         Dereference the original pointer if the address is not invariant.
21001         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
21002         at least one invariant address that we are going to dereference.
21003
21004 2010-07-08  Richard Guenther  <rguenther@suse.de>
21005
21006         PR tree-optimization/44861
21007         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
21008         information when building MEM_REFs.
21009         (vectorizable_load): Likewise.
21010         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
21011
21012 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21013
21014         * config/sol2-c.c: Do not include diagnostic-core.h.
21015
21016 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21017
21018         PR bootstrap/44768
21019         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
21020         with respect to current_function_decl. Pass decl of the function.
21021         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
21022         * ipa-inline.c (compute_inline_parameters): Pass decl to
21023         estimated_stack_frame_size.
21024
21025 2010-07-08  Richard Guenther  <rguenther@suse.de>
21026
21027         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
21028         New function.
21029         (valueize_refs): Call it.
21030
21031 2010-07-08  Richard Guenther  <rguenther@suse.de>
21032
21033         PR rtl-optimization/44838
21034         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
21035         SSA form do not use pointer equivalence.
21036
21037 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21038
21039         * dwarf2out.c (AT_linkage_name): Delete.
21040         (add_linkage_attr): New function.
21041         (add_linkage_name): Call it to emit the linkage attribute.
21042         (dwarf2out_finish): Likewise.
21043         (move_linkage_attr): Explicitly accept both attribute variants.
21044
21045 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21046
21047         * toplev.h: Do not include diagnostic-core.h.
21048         Include diagnostic-core.h in every file that includes toplev.h.
21049         * c-tree.h: Do not include toplev.h.
21050         * pretty-print.h: Update comment.
21051         * Makefile.in: Update dependencies.
21052         * alias.c: Include diagnostic-core.h in every file that includes
21053         toplev.h.
21054         * attribs.c: Likewise.
21055         * auto-inc-dec.c: Likewise.
21056         * bb-reorder.c: Likewise.
21057         * bt-load.c: Likewise.
21058         * caller-save.c: Likewise.
21059         * calls.c: Likewise.
21060         * cfg.c: Likewise.
21061         * cfganal.c: Likewise.
21062         * cfgbuild.c: Likewise.
21063         * cfgcleanup.c: Likewise.
21064         * cfghooks.c: Likewise.
21065         * cfgloop.c: Likewise.
21066         * combine.c: Likewise.
21067         * config/alpha/alpha.c: Likewise.
21068         * config/arc/arc.c: Likewise.
21069         * config/arm/arm.c: Likewise.
21070         * config/arm/pe.c: Likewise.
21071         * config/avr/avr.c: Likewise.
21072         * config/bfin/bfin.c: Likewise.
21073         * config/cris/cris.c: Likewise.
21074         * config/crx/crx.c: Likewise.
21075         * config/darwin-c.c: Likewise.
21076         * config/darwin.c: Likewise.
21077         * config/fr30/fr30.c: Likewise.
21078         * config/frv/frv.c: Likewise.
21079         * config/h8300/h8300.c: Likewise.
21080         * config/host-darwin.c: Likewise.
21081         * config/i386/i386.c: Likewise.
21082         * config/i386/netware.c: Likewise.
21083         * config/i386/nwld.c: Likewise.
21084         * config/i386/winnt-cxx.c: Likewise.
21085         * config/i386/winnt-stubs.c: Likewise.
21086         * config/i386/winnt.c: Likewise.
21087         * config/ia64/ia64-c.c: Likewise.
21088         * config/ia64/ia64.c: Likewise.
21089         * config/iq2000/iq2000.c: Likewise.
21090         * config/lm32/lm32.c: Likewise.
21091         * config/m32c/m32c-pragma.c: Likewise.
21092         * config/m32c/m32c.c: Likewise.
21093         * config/m32r/m32r.c: Likewise.
21094         * config/m68hc11/m68hc11.c: Likewise.
21095         * config/m68k/m68k.c: Likewise.
21096         * config/mcore/mcore.c: Likewise.
21097         * config/mep/mep-pragma.c: Likewise.
21098         * config/mep/mep.c: Likewise.
21099         * config/mmix/mmix.c: Likewise.
21100         * config/mn10300/mn10300.c: Likewise.
21101         * config/moxie/moxie.c: Likewise.
21102         * config/pa/pa.c: Likewise.
21103         * config/pdp11/pdp11.c: Likewise.
21104         * config/picochip/picochip.c: Likewise.
21105         * config/rs6000/rs6000-c.c: Likewise.
21106         * config/rs6000/rs6000.c: Likewise.
21107         * config/rx/rx.c: Likewise.
21108         * config/s390/s390.c: Likewise.
21109         * config/score/score.c: Likewise.
21110         * config/score/score3.c: Likewise.
21111         * config/score/score7.c: Likewise.
21112         * config/sh/sh.c: Likewise.
21113         * config/sh/symbian-base.c: Likewise.
21114         * config/sh/symbian-c.c: Likewise.
21115         * config/sh/symbian-cxx.c: Likewise.
21116         * config/sol2-c.c: Likewise.
21117         * config/sol2.c: Likewise.
21118         * config/sparc/sparc.c: Likewise.
21119         * config/spu/spu.c: Likewise.
21120         * config/stormy16/stormy16.c: Likewise.
21121         * config/v850/v850-c.c: Likewise.
21122         * config/v850/v850.c: Likewise.
21123         * config/vax/vax.c: Likewise.
21124         * config/vxworks.c: Likewise.
21125         * config/xtensa/xtensa.c: Likewise.
21126         * convert.c: Likewise.
21127         * cse.c: Likewise.
21128         * cselib.c: Likewise.
21129         * dbgcnt.c: Likewise.
21130         * dbxout.c: Likewise.
21131         * ddg.c: Likewise.
21132         * dominance.c: Likewise.
21133         * emit-rtl.c: Likewise.
21134         * explow.c: Likewise.
21135         * expmed.c: Likewise.
21136         * fixed-value.c: Likewise.
21137         * fold-const.c: Likewise.
21138         * fwprop.c: Likewise.
21139         * gcse.c: Likewise.
21140         * ggc-common.c: Likewise.
21141         * ggc-page.c: Likewise.
21142         * ggc-zone.c: Likewise.
21143         * gimple-low.c: Likewise.
21144         * gimplify.c: Likewise.
21145         * graph.c: Likewise.
21146         * haifa-sched.c: Likewise.
21147         * ifcvt.c: Likewise.
21148         * implicit-zee.c: Likewise.
21149         * integrate.c: Likewise.
21150         * ira-build.c: Likewise.
21151         * ira-color.c: Likewise.
21152         * ira-conflicts.c: Likewise.
21153         * ira-costs.c: Likewise.
21154         * ira-lives.c: Likewise.
21155         * ira.c: Likewise.
21156         * lists.c: Likewise.
21157         * loop-doloop.c: Likewise.
21158         * loop-iv.c: Likewise.
21159         * lto-opts.c: Likewise.
21160         * lto-symtab.c: Likewise.
21161         * main.c: Likewise.
21162         * modulo-sched.c: Likewise.
21163         * optabs.c: Likewise.
21164         * params.c: Likewise.
21165         * plugin.c: Likewise.
21166         * postreload-gcse.c: Likewise.
21167         * postreload.c: Likewise.
21168         * predict.c: Likewise.
21169         * profile.c: Likewise.
21170         * real.c: Likewise.
21171         * regcprop.c: Likewise.
21172         * reginfo.c: Likewise.
21173         * regmove.c: Likewise.
21174         * reorg.c: Likewise.
21175         * resource.c: Likewise.
21176         * rtl.c: Likewise.
21177         * rtlanal.c: Likewise.
21178         * sched-deps.c: Likewise.
21179         * sched-ebb.c: Likewise.
21180         * sched-rgn.c: Likewise.
21181         * sdbout.c: Likewise.
21182         * sel-sched-dump.c: Likewise.
21183         * sel-sched-ir.c: Likewise.
21184         * simplify-rtx.c: Likewise.
21185         * stmt.c: Likewise.
21186         * stor-layout.c: Likewise.
21187         * store-motion.c: Likewise.
21188         * targhooks.c: Likewise.
21189         * tree-cfg.c: Likewise.
21190         * tree-cfgcleanup.c: Likewise.
21191         * tree-dump.c: Likewise.
21192         * tree-eh.c: Likewise.
21193         * tree-inline.c: Likewise.
21194         * tree-nomudflap.c: Likewise.
21195         * tree-object-size.c: Likewise.
21196         * tree-optimize.c: Likewise.
21197         * tree-outof-ssa.c: Likewise.
21198         * tree-phinodes.c: Likewise.
21199         * tree-profile.c: Likewise.
21200         * tree-ssa-ccp.c: Likewise.
21201         * tree-ssa-coalesce.c: Likewise.
21202         * tree-ssa-live.c: Likewise.
21203         * tree-ssa-loop-niter.c: Likewise.
21204         * tree-ssa-loop-prefetch.c: Likewise.
21205         * tree-ssa-loop.c: Likewise.
21206         * tree-ssa-structalias.c: Likewise.
21207         * tree-ssa-uninit.c: Likewise.
21208         * tree-ssa.c: Likewise.
21209         * tree-vect-data-refs.c: Likewise.
21210         * tree-vect-loop-manip.c: Likewise.
21211         * tree-vect-loop.c: Likewise.
21212         * tree-vect-patterns.c: Likewise.
21213         * tree-vect-stmts.c: Likewise.
21214         * tree-vrp.c: Likewise.
21215         * varasm.c: Likewise.
21216         * vec.c: Likewise.
21217         * web.c: Likewise.
21218         * xcoffout.c: Likewise.
21219
21220 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
21221
21222         * gengtype.c (write_field_root): New function.
21223         (write_root): Use it.
21224
21225 2010-07-07  Wei Guozhi  <carrot@google.com>
21226
21227         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
21228         of lowest bits to lshift/compare): Add a missing line.
21229
21230 2010-07-07  Wei Guozhi  <carrot@google.com>
21231
21232         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
21233         of lowest bits to lshift/compare): New.
21234
21235 2010-07-07  Tom Tromey  <tromey@redhat.com>
21236
21237         * doc/tm.texi: Update.
21238         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
21239         Add @hook.
21240         * target.def (want_debug_pub_sections): New hook.
21241         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
21242         * dwarf2out.c (add_pubname_string): Check
21243         targetm.want_debug_pub_sections.
21244         (add_pubname): Likewise.
21245         (add_pubtype): Likewise.
21246
21247 2010-07-07  Jie Zhang  <jie@codesourcery.com>
21248
21249         * genautomata.c (output_automata_list_min_issue_delay_code):
21250         Correctly decompress min_issue_delay.
21251
21252 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
21253
21254         PR rtl-optimization/44404
21255         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
21256         possible, use reg_overlap_mentioned_p instead.
21257
21258 2010-07-07  Duncan Sands  <baldrick@free.fr>
21259
21260         PR middle-end/41355
21261         * tree.c (build_function_type_skip_args): Copy the original type using
21262         build_distinct_type_copy rather than copy_node.
21263
21264 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
21265
21266         PR target/44850
21267         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
21268         revision 161876.
21269         (ix86_expand_prologue): Likewise.
21270         (ix86_handle_fndecl_attribute): Likewise.
21271         (ix86_asm_declare_function_name): Likewise.
21272         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
21273         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
21274         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
21275         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
21276         * doc/extend.texi: Likewise.
21277
21278 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
21279
21280         PR target/44844
21281         * config/i386/i386.md (rdrand<mode>): Changed to expand to
21282         retry if the carry flag isn't valid.
21283         (rdrand<mode>_1): New.
21284
21285 2010-07-07  Richard Guenther  <rguenther@suse.de>
21286
21287         PR middle-end/44790
21288         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
21289         for expanding the constant offset for MEM_REFs.
21290
21291 2010-07-07  Richard Guenther  <rguenther@suse.de>
21292
21293         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
21294         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
21295         * gimple.h (is_gimple_operand): Remove.
21296         * gimple.c (is_gimple_operand): Likewise.
21297         (walk_gimple_op): Fix wi->val_only setting for calls.
21298         * tree-cfg.c (verify_gimple_call): Fix argument validation.
21299         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
21300         invalid gimple calls.
21301
21302 2010-07-06  Jan Hubicka  <jh@suse.cz>
21303
21304         * lto-cgraph.c (output_cgraph): Add missing declaration.
21305
21306 2010-07-06  Jan Hubicka  <jh@suse.cz>
21307
21308         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
21309         partition.
21310
21311 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
21312
21313         * doc/gimple.texi (GIMPLE_DEBUG): Document.
21314         * doc/rtl.texi (Debug Information): New node.
21315         (NOTE_INSN_VAR_LOCATION): Document.
21316         (debug_insn): Likewise.
21317         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
21318
21319 2010-07-07  Jan Hubicka  <jh@suse.cz>
21320
21321         With parts by Richard Guenther.
21322
21323         PR middle-end/44813
21324         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
21325         for functions passed by reference.
21326         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
21327         in memory when passed by reference.
21328         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
21329         beggining.
21330         * ipa-split.c (split_function): Cleanup way return value is passed;
21331         handle SSA DECL_BY_REFERENCE retvals.
21332         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
21333         DECL_BY_REFERENCE is set.
21334         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
21335         find_what_p_points_to): Handle RESULT_DECL.
21336         * tree-inline.c (declare_return_variable): Get new entry_block argument;
21337         when passing by reference ensure that RESULT_DECL is gimple_val.
21338         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
21339         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
21340
21341 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
21342
21343         PR rtl-optimization/44787
21344         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
21345         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
21346
21347 2010-07-06  Jan Hubicka  <jh@suse.cz>
21348
21349         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
21350         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
21351         with body can prevail.
21352         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
21353         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
21354         * cgraph.c (cgraph_get_node_or_alias): New function.
21355         * cgraph.h (cgraph_get_node_or_alias): Declare.
21356
21357 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
21358
21359         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
21360         support.
21361         (ix86_expand_prologue): Likewise.
21362         (ix86_handle_fndecl_attribute): Likewise.
21363         (ix86_asm_declare_function_name): New function for
21364         ASM_DECLARE_FUNCTION_NAME.
21365         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
21366         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
21367         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
21368         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
21369         * doc/extend.texi: Adjust documentation about ms_hook_prologue
21370         attribute.
21371
21372 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
21373
21374         * config/i386/i386.md (immediate_operand): New mode attribute.
21375
21376         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
21377         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
21378         using P mode iterator.
21379         (pro_epilogue_adjust_stack_di_2): Rename from
21380         pro_epilogue_adjust_stack_rex64_2.
21381
21382         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
21383
21384 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
21385
21386         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
21387         through gen_mov_insv_1 function pointer.
21388         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
21389         gen_truncxf<mode>2 through gen_truncxf function pointer.
21390         (remainder<mode>3): Ditto.
21391         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
21392         (allocate_stack): Call gen_allocate_stack_worker_64 or
21393         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
21394         function pointer.
21395         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
21396         function pointer.
21397
21398 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
21399
21400         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
21401         operand constraint instead of <r><i>m.
21402
21403 2010-07-06  Richard Guenther  <rguenther@suse.de>
21404
21405         PR middle-end/44828
21406         * convert.c (convert_to_integer): Watch out for overflowing
21407         MULT_EXPR as well.
21408
21409 2010-07-05  Jan Hubicka  <jh@suse.cz>
21410
21411         * lto-streamer.c (write_symbol_vec): Rename to ...
21412         (write_symbol) ... this one; write only symbol given and when
21413         present in cache. Sanity check that what is defined is present
21414         in cgraph/varpool with body/finalized decl.
21415         (write_symbols_of_kind): Remove.
21416         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
21417         pairs to produce symtab.
21418         (produce_asm_for_decls): Update call of produce_symtab; don't do so
21419         when doing WPA streaming.
21420
21421 2010-07-05  Jan Hubicka  <jh@suse.cz>
21422
21423         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
21424         function is still available to fold into.
21425
21426 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
21427
21428         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
21429         * function.h (struct_function): Change type of local_decls field
21430         to a VEC.
21431         (add_local_decl): New function.
21432         (FOR_EACH_LOCAL_DECL): New macro.
21433         * cfgexpand.c (init_vars_expansion): Adjust for new type of
21434         cfun->local_decls.
21435         (estimated_stack_frame_size): Likewise.
21436         (expand_used_vars): Likewise.
21437         * cgraphbuild.c (build_cgraph_edges): Likewise.
21438         * function.c (instantiate_decls_1): Likewise.
21439         * ipa-struct-reorg.c (build_data_structure): Likewise.
21440         * ipa-type-escape.c (analyze_function): Likewise.
21441         * lto-streamer-in.c (input_function): Likewise.
21442         * lto-streamer-out.c (output_function): Likewise.
21443         * tree-ssa-live.c (remove_unused_locals): Likewise.
21444         * tree.c (free_lang_data_in_decl): Likewise.
21445         (find_decls_types_in_node): Likewise.
21446         * omp-low.c (remove_exit_barrier): Likewise.
21447         (expand_omp_taskreg): Likewise.
21448         (list2chain): Rename to...
21449         (vec2chain): ...this.  Adjust.
21450         * cgraphunit.c (assemble_thunk): Call add_local_decl.
21451         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
21452         * gimple-low.c (record_vars_into): Likewise.
21453         * tree-inline.c (remap_decls): Likewise.
21454         (declare_return_variable): Likewise.
21455         (declare_inline_vars): Likewise.
21456         (copy_forbidden): Adjust for new type of cfun->local_decls.
21457         (add_local_variables): New function.
21458         (expand_call_inline): Call it.
21459         (tree_function_versioning): Likewise.
21460
21461 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
21462
21463         AVX Programming Reference (June, 2010)
21464         * config/i386/cpuid.h (bit_F16C): New.
21465         (bit_RDRND): Likewise.
21466         (bit_FSGSBASE): Likewise.
21467
21468         * config/i386/i386-builtin-types.def: Add
21469         "DEF_FUNCTION_TYPE (UINT16)", function types for
21470         float16 <-> float conversions and
21471         "DEF_FUNCTION_TYPE (VOID, UINT64)".
21472
21473         * config/i386/i386-c.c (ix86_target_macros_internal): Support
21474         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
21475         OPTION_MASK_ISA_F16C.
21476
21477         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
21478         (OPTION_MASK_ISA_RDRND_SET): Likewise.
21479         (OPTION_MASK_ISA_F16C_SET): Likewise.
21480         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
21481         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
21482         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
21483         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
21484         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
21485         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
21486         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
21487         (override_options): Handle them.
21488         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
21489         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
21490         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
21491         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
21492         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
21493         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
21494         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
21495         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
21496         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
21497         (bdesc_args): Likewise.
21498         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
21499         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
21500         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
21501         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
21502         Handle non-memory store.
21503
21504         * config/i386/i386.h (TARGET_FSGSBASE): New.
21505         (TARGET_RDRND): Likewise.
21506         (TARGET_F12C): Likewise.
21507
21508         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
21509         (UNSPEC_VCVTPS2PH): Likewise.
21510         (UNSPECV_RDFSBASE): Likewise.
21511         (UNSPECV_RDGSBASE): Likewise.
21512         (UNSPECV_WRFSBASE): Likewise.
21513         (UNSPECV_WRGSBASE): Likewise.
21514         (UNSPECV_RDRAND): Likewise.
21515         (rdfsbase<mode>): Likewise.
21516         (rdgsbase<mode>): Likewise.
21517         (wrfsbase<mode>): Likewise.
21518         (wrgsbase<mode>): Likewise.
21519         (rdrand<mode>): Likewise.
21520
21521         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
21522
21523         * config/i386/immintrin.h (_rdrand_u16): New.
21524         (_rdrand_u32): Likewise.
21525         (_readfsbase_u32): Likewise.
21526         (_readfsbase_u64): Likewise.
21527         (_readgsbase_u32): Likewise.
21528         (_readgsbase_u64): Likewise.
21529         (_writefsbase_u32): Likewise.
21530         (_writefsbase_u64): Likewise.
21531         (_writegsbase_u32): Likewise.
21532         (_writegsbase_u64): Likewise.
21533         (_rdrand_u64): Likewise.
21534         (_cvtsh_ss): Likewise.
21535         (_mm_cvtph_ps): Likewise.
21536         (_mm256_cvtph_ps): Likewise.
21537         (_cvtss_sh): Likewise.
21538         (_mm_cvtps_ph): Likewise.
21539         (_mm256_cvtps_ph): Likewise.
21540
21541         * config/i386/sse.md (vcvtph2ps): New.
21542         (*vcvtph2ps_load): Likewise.
21543         (vcvtph2ps256): Likewise.
21544         (vcvtps2ph): Likewise.
21545         (*vcvtps2ph): Likewise.
21546         (*vcvtps2ph_store): Likewise.
21547         (vcvtps2ph256): Likewise.
21548
21549         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
21550
21551         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
21552
21553 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
21554
21555         PR bootstrap/44512
21556         * genenums.c (main): Output include of insn-constants.h
21557         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
21558
21559 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
21560
21561         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
21562         (override_options): Initialize it.
21563         (ix86_expand_prologue): Use it.
21564
21565 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
21566
21567         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
21568
21569 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
21570
21571         * double-int.h (fit_double_type): Remove declaration.
21572         * double-int.c (fit_double_type): Remove function.
21573         * tree.h (int_fits_type_p): Adjust prototype.
21574         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
21575         instead of fit_double_type.
21576         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
21577         instead of fit_double_type and build_int_cst_wide.
21578         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
21579         instead of fit_double_type and build_int_cst_wide.
21580         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
21581         of fit_double_type.
21582
21583 2010-07-05  Jan Hubicka  <jh@suse.cz>
21584
21585         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
21586         in_other_partition.
21587         * lto-cgraph.c (referenced_from_other_partition_p,
21588         reachable_from_other_partition_p): Use in_other_partition flags.
21589         (output_node, output_varpool_node): COMDAT nodes always have private
21590         copies and thus are never used from other partition.
21591
21592 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
21593
21594         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
21595         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
21596         * config/ia64/ia64.c Include reload.h.
21597         (ia64_memory_move_cost): New function.
21598         (TARGET_MEMORY_MOVE_COST): Define.
21599         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
21600         memory_move_cost.
21601
21602 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
21603
21604         PR middle-end/42505
21605         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
21606         comments about cost model.
21607         (try_add_cand_for):  Add second strategy for choosing initial set
21608         based on original IVs, controlled by ORIGINALP argument.
21609         (get_initial_solution): Add ORIGINALP argument.
21610         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
21611         (find_optimal_iv_set): Try two different strategies for choosing
21612         the IV set, and return the one with lower cost.
21613
21614 2010-07-05  Richard Guenther  <rguenther@suse.de>
21615
21616         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
21617
21618 2010-07-05  Richard Guenther  <rguenther@suse.de>
21619
21620         * tree.c (reference_alias_ptr_type): New function.
21621         * tree.h (reference_alias_ptr_type): Declare.
21622         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
21623         allow non-TARGET_MEM_REF new refs.
21624         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
21625         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
21626         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
21627         (create_mem_ref): Get alias pointer type.  Adjust calls to
21628         create_mem_ref_raw.
21629         (maybe_fold_tmr): Likewise.
21630         * tree-flow.h (create_mem_ref): Adjust prototype.
21631
21632 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
21633
21634         PR c++/44808
21635         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
21636         *from_p is VAR_DECL.
21637
21638 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
21639
21640         * tree.h (build_call_list): Remove.
21641         * tree.c (build_call_list): Remove.
21642
21643 2010-07-05  Richard Guenther  <rguenther@suse.de>
21644
21645         * double-int.h (double_int_sub): Declare.
21646         * double-int.c (double_int_sub): New function.
21647         * dwarf2out.c (field_byte_offset): Use it.
21648         * fixed-value.c (do_fixed_add): Likewise.
21649         (do_fixed_multiply): Likewise.
21650         (do_fixed_divide): Likewise.
21651         * tree-predcom.c (add_ref_to_chain): Likewise.
21652         (determine_roots_comp): Likewise.
21653         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
21654
21655 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
21656
21657         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
21658         implementations.
21659
21660 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
21661
21662         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
21663         * arm-modes.def (CC_NOTB): Don't define.
21664         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
21665         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
21666         (LTUGEU): New code_iterator.
21667         (cnb, optab): New corresponding code_attrs.
21668         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
21669         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
21670         using LTUGEU.
21671         (addsi3_carryin_shift_<optab>): Likewise.
21672         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
21673         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
21674         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
21675         (subsi3_compare): Renamed from subsi3_compare0_c.
21676         Change CC_NOTB to CC.
21677         (arm_subsi3_insn): Allow constants for operand 0.
21678         (compare_scc peephole for eq case): New.
21679         (compare_scc splitters): Change CC_NOTB to CC.
21680
21681 2010-07-05  Richard Guenther  <rguenther@suse.de>
21682
21683         * tree-ssa-loop-im.c (for_each_index): Do not handle
21684         ALIGN_INDIRECT_REF.
21685         (gen_lsm_tmp_name): Likewise.
21686         * tree-dump.c (dequeue_and_dump): Likewise.
21687         * tree-pretty-print.c (dump_generic_node): Likewise.
21688         (op_code_prio): Likewise.
21689         (op_symbol_code): Likewise.
21690         * tree.c (staticp): Likewise.
21691         (build1_stat): Likewise.
21692         * tree.h (INDIRECT_REF_P): Likewise.
21693         * fold-const.c (maybe_lvalue_p): Likewise.
21694         (operand_equal_p): Likewise.
21695         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
21696         (ao_ref_init_from_vn_reference): Likewise.
21697         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
21698         (find_interesting_uses_address): Likewise.
21699         * dwarf2out.c (loc_list_from_tree): Likewise.
21700         * gimplify.c (gimplify_expr): Likewise.
21701         * tree-eh.c (tree_could_trap_p): Likewise.
21702         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
21703         * cfgexpand.c (expand_debug_expr): Likewise.
21704         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
21705         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
21706         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
21707         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
21708         * tree-ssa-operands.c (get_expr_operands): Likewise.
21709         * expr.c (safe_from_p): Likewise.
21710         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
21711         * tree-vect-data-refs.c (vect_setup_realignment): Build
21712         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
21713         * tree-vect-stmts.c (vectorizable_load): Likewise.
21714         * tree.def (ALIGN_INDIRECT_REF): Remove.
21715
21716 2010-07-05  Richard Guenther  <rguenther@suse.de>
21717
21718         PR tree-optimization/44784
21719         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
21720         for inserted stmts.
21721         (find_or_generate_expression): Fix SCCVN insertion check.
21722
21723 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
21724
21725         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
21726         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
21727         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
21728         directives.
21729
21730 2010-07-05  Ira Rosen  <irar@il.ibm.com>
21731
21732         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
21733         statements that are not vectorized.
21734         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
21735         in INSIDE_COST.
21736
21737 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
21738
21739         PR bootstrap/44820
21740         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
21741
21742 2010-07-05  Richard Guenther  <rguenther@suse.de>
21743
21744         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
21745         RESULT_DECLs properly.
21746
21747 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
21748
21749         PR rtl-optimization/44695
21750         * config/i386/i386.md (extract_code): Removed.
21751         (<u>divmodqi4): Likewise.
21752         (divmodqi4): New.
21753         (udivmodqi4): Likewise.
21754         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
21755         (udivmodhiqi3): Likewise.
21756
21757 2010-07-04  Jan Hubicka  <jh@suse.cz>
21758
21759         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
21760
21761 2010-07-04  Jan Hubicka  <jh@suse.cz>
21762
21763         * cgraphunit.c (init_cgraph): Only initialize dump file if it
21764         is not already initialized.
21765
21766 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21767
21768         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
21769         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
21770         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
21771         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
21772         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
21773         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
21774         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
21775         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
21776         (sync_new_nand_optab): Redefine as macros.
21777         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
21778         Delete.
21779         (direct_optab_index): New enum.
21780         (direct_optab_d): New structure.
21781         (direct_optab): New typedef.
21782         (direct_optab_table): Declare.
21783         (direct_optab_handler, set_direct_optab_handler): New functions.
21784         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
21785         (sync_lock_release_optab): New macros.
21786         * optabs.c (direct_optab_table): New variable.
21787         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
21788         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
21789         cmpstr_optab and cmpstrn_optab.
21790         (emit_conditional_move): Likewise for movcc_optab.
21791         (can_conditionally_move_p): Likewise for movcc_gen_code.
21792         (init_insn_codes): Clear direct_optab_table.
21793         (init_optabs): Don't initialize the new "direct optabs" here.
21794         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
21795         vcond_gen_code.
21796         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
21797         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
21798         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
21799         (expand_sync_operation): Likewise other sync_*_optabs.
21800         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
21801         to sync_compare_and_swap_optab.
21802         (expand_sync_lock_test_and_set): Use direct_optab_handler for
21803         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
21804         to the names of both.
21805         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
21806         cmpstr_optab and cmpstrn_optab.
21807         (expand_builtin_lock_release): Likewise sync_lock_release.
21808         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
21809         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
21810         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
21811         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
21812         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
21813         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
21814         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
21815         (sync_lock_test_and_set, sync_lock_release): Delete.
21816         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
21817         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
21818         * genopinit.c (optabs): Use set_direct_optab_handler for the new
21819         macro optabs.
21820         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
21821         the "optab" local variable.  Use direct_optab_handler for optab and
21822         sync_compare_and_swap_optab.
21823         * reload1.c (reload_in_optab, reload_out_optab): Delete.
21824         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
21825         reload_in_optab and reload_out_optab.
21826         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21827         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
21828         * config/pa/pa.c (pa_secondary_reload): Likewise.
21829         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
21830         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
21831         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
21832         (VMSupportsCS8_builtin): Likewise.
21833
21834 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21835
21836         * optabs.h (optab_handlers): Change type of insn_code to int.
21837         (optab_handler, set_optab_handler, convert_optab_handler)
21838         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
21839         CODE_FOR_nothing".
21840         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
21841         (init_insn_codes): Zero both the above arrays.
21842         (init_optabs): Never call init_insn_codes first time around.
21843
21844 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21845
21846         * optabs.h (optab_handler, convert_optab_handler): Turn into
21847         inline functions that return an insn code.
21848         (set_optab_handler, set_convert_optab_handler): New functions.
21849         * builtins.c: Replace optab_handler(X)->insn_code with
21850         optab_handler or set_optab_handler thoughout.  Likewise
21851         convert_optab_handler(X)->insn_code with convert_optab_handler
21852         and set_convert_optab_handler.
21853         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
21854         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
21855         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
21856         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
21857         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
21858         config/spu/spu.c: Likewise.
21859
21860 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
21861
21862         PR target/44531
21863         * config.gcc (sh*-*-*): Use regular expressions instead of
21864         the 'i' modifier for sed substitutions.
21865
21866 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
21867
21868         * gimple.c (gimple_body): Comments added.
21869
21870 2010-07-04  Richard Guenther  <rguenther@suse.de>
21871
21872         PR middle-end/44809
21873         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
21874         of an INDIRECT_REF.
21875
21876 2010-07-04  Richard Guenther  <rguenther@suse.de>
21877
21878         PR tree-optimization/44479
21879         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
21880         extra SSA name copy statements which preserves points-to
21881         information.
21882         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
21883         Copy points-to information for all pointers.  Properly handle
21884         MEM_REFs.
21885         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
21886         copy statements.
21887         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
21888         dependency.
21889
21890 2010-07-04  Richard Guenther  <rguenther@suse.de>
21891
21892         PR middle-end/44785
21893         * tree-inline.c (initialize_inlined_parameters): Do not
21894         re-use pointer-map slot over remap_type call.
21895
21896 2010-07-04  Richard Guenther  <rguenther@suse.de>
21897
21898         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
21899
21900 2010-07-04  Richard Guenther  <rguenther@suse.de>
21901
21902         PR tree-optimization/44656
21903         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
21904         again after value-replacing in the defintions lhs.
21905
21906 2010-07-04  Ira Rosen  <irar@il.ibm.com>
21907             Revital Eres  <eres@il.ibm.com>
21908
21909         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
21910         Document new arguments.
21911         * doc/tm.texi: Regenerate.
21912         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
21913         Handle unaligned store.
21914         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
21915         * target.def (builtin_vectorization_cost): Add new arguments.
21916         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
21917         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
21918         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
21919         (vect_vfa_segment_size): Fix indentation.
21920         * tree-vectorizer.h (struct _vect_peel_info): New.
21921         (struct _vect_peel_extended_info): New.
21922         (struct _loop_vec_info): Add new field for peeling hash table and a
21923         macro for its access.
21924         (VECT_MAX_COST): Define.
21925         (vect_get_load_cost): Declare.
21926         (vect_get_store_cost, vect_get_known_peeling_cost,
21927         vect_get_single_scalar_iteraion_cost): Likewise.
21928         (vect_supportable_dr_alignment): Add new argument.
21929         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
21930         field.
21931         (destroy_loop_vec_info): Free peeling hash table.
21932         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
21933         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
21934         vect_analyze_slp. Fix indentation.
21935         (vect_get_single_scalar_iteraion_cost): New function.
21936         (vect_get_known_peeling_cost): Likewise.
21937         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
21938         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
21939         statement. Move outside cost calculation inside unknown peeling case.
21940         Call vect_get_known_peeling_cost for known amount of peeling.
21941         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
21942         reference to the print message of forced alignment.
21943         (vect_verify_datarefs_alignment): Update call to
21944         vect_supportable_dr_alignment.
21945         (vect_get_data_access_cost): New function.
21946         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
21947         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
21948         vect_peeling_hash_choose_best_peeling): Likewise.
21949         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
21950         to store all the accesses in the loop and find best possible access to
21951         align using peeling for known alignment case. For unknown alignment
21952         check if stores are preferred or if peeling is worthy.
21953         (vect_find_same_alignment_drs): Analyze pairs of loads too.
21954         (vect_supportable_dr_alignment): Add new argument and check aligned
21955         accesses according to it.
21956         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
21957         (cost_for_stmt): Call vect_get_stmt_cost.
21958         (vect_model_simple_cost): Likewise.
21959         (vect_model_store_cost): Call vect_get_stmt_cost. Call
21960         vect_get_store_cost to calculate the cost of the statement.
21961         (vect_get_store_cost): New function.
21962         (vect_model_load_cost): Call vect_get_stmt_cost. Call
21963         vect_get_load_cost to calculate the cost of the statement.
21964         (vect_get_load_cost): New function.
21965         (vectorizable_store): Update call to vect_supportable_dr_alignment.
21966         (vectorizable_load): Likewise.
21967         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
21968         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
21969         arguments. Handle unaligned store.
21970         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
21971         (rs6000_builtin_support_vector_misalignment): Return true for word and
21972         double word alignments for VSX.
21973         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
21974         vect_supportable_dr_alignment and builtin_vectorization_cost.
21975
21976 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21977
21978         PR target/44597
21979         * config/pa/predicates.md (prefetch_cc_operand): Remove.
21980         (prefetch_nocc_operand): Likewise.
21981         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
21982         (prefetch_20): New insn.
21983         (prefetch_cc): Remove.
21984         (prefetch_nocc): Likewise.
21985
21986 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21987
21988         * expr.c (vector_mode_valid_p): Move to c-common.c.
21989         * expr.h (vector_mode_valid_p): Do not declare here.
21990         * system.h: Poison GCC_EXPR_H in front-ends.
21991         * Makefile.in: Update dependencies.
21992
21993 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21994
21995         PR target/44705
21996         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
21997
21998 2010-07-03  Jan Hubicka  <jh@suse.cz>
21999
22000         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
22001         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
22002         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
22003         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
22004         Likewise.
22005
22006         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
22007         Update timevars.V
22008         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
22009         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
22010         TV_IPA_LTO_DECL_OUT): New.
22011         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
22012
22013 2010-07-03  Jan Hubicka  <jh@suse.cz>
22014
22015         * ipa-inline.c (update_edge_key): Break out from ...
22016         update_callers_keys): ... here;
22017         (update_callee_keys): Update only the edges from caller to callee.
22018         (update_all_calle_keys): Do what update_calle_keys did.
22019         (decide_inlining_of_small_functions): Avoid recomputing of all
22020         callees when badness increase.
22021
22022 2010-07-03  Jie Zhang  <jie@codesourcery.com>
22023
22024         * config/arm/arm.c (arm_attr_length_move_neon): New.
22025         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
22026         * config/arm/neon.md (define_mode_attr V_slen): Remove.
22027         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
22028         to compute length attribute.
22029
22030 2010-07-03  Jie Zhang  <jie@codesourcery.com>
22031
22032         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
22033         as predicate for operand 1 and remove its constraint.
22034         * config/arm/predicates.md (vfp_register_operand): New.
22035         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
22036         (*push_fp_multi): Likewise.
22037
22038 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
22039
22040         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
22041
22042 2010-07-03  Jan Hubicka  <jh@suse.cz>
22043
22044         * config/i386/i386.c (override_options): Revert accidental commit.
22045
22046 2010-07-02  Le-Chun Wu  <lcwu@google.com>
22047
22048         PR c++/44128
22049         * doc/invoke.texi: Update documentation of -Wshadow.
22050
22051 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
22052             Julian Brown  <julian@codesourcery.com>
22053             Sandra Loosemore  <sandra@codesourcery.com>
22054
22055         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
22056         comparisons.  Adjust to take both operands.
22057         (arm_select_cc_mode): Handle DImode comparisons.
22058         (arm_gen_compare_reg): Generate a scratch register for DImode
22059         comparisons which require one.  Use xor for Thumb equality checks.
22060         (arm_const_double_by_immediates): New.
22061         (arm_print_operand): Allow 'Q' and 'R' for constants.
22062         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
22063         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
22064         arm_canonicalize_comparison.
22065         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
22066         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
22067         prototype.
22068         (arm_const_double_by_immediates): Declare.
22069         * config/arm/constraints.md (Di): New constraint.
22070         * config/arm/predicates.md (arm_immediate_di_operand)
22071         (arm_di_operand, cmpdi_operand): New.
22072         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
22073         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
22074         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
22075         (cstoredi4): Handle non-Cirrus also.
22076
22077 2010-07-02  Julian Brown  <julian@codesourcery.com>
22078             Sandra Loosemore  <sandra@codesourcery.com>
22079
22080         PR target/43703
22081         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
22082         (smax<mode>3): Disable for NEON float modes when
22083         flag_unsafe_math_optimizations is false.
22084         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
22085         (*mul<mode>3_neon)
22086         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
22087         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
22088         for NEON float modes when flag_unsafe_math_optimizations is false.
22089         (quad_halves_<code>v4sf): Only enable if
22090         flag_unsafe_math_optimizations is true.
22091         * doc/invoke.texi (ARM Options): Add note about floating point
22092         vectorization requiring -funsafe-math-optimizations.
22093
22094 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22095             Julian Brown  <julian@codesourcery.com>
22096
22097         * config/arm/neon.md (UNSPEC_VABA): Delete.
22098         (UNSPEC_VABAL): Delete.
22099         (UNSPEC_VABS): Delete.
22100         (UNSPEC_VMUL_N): Delete.
22101         (adddi3_neon): New.
22102         (subdi3_neon): New.
22103         (mul<mode>3add<mode>_neon): Make the pattern named.
22104         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
22105         (neon_vadd<mode>): Replace with define_expand, and move the remaining
22106         unspec parts...
22107         (neon_vadd<mode>_unspec): ...to this.
22108         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
22109         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
22110         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
22111         (neon_vaba<mode>): Rewrite in terms of vabd.
22112         (neon_vabal<mode>): Rewrite in terms of vabdl.
22113         (neon_vabs<mode>): Rewrite without unspec.
22114         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
22115         (*arm_subdi3): Likewise.
22116         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
22117         No_op attribute to disable assembly output checks.
22118         * config/arm/arm_neon.h: Regenerated.
22119         * doc/arm-neon-intrinsics.texi: Regenerated.
22120
22121 2010-07-02  Jan Hubicka  <jh@suse.cz>
22122
22123         * ipa-split.c (split_function): For aggregate values, set the return
22124         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
22125         *<retval> = fncall.part ().
22126         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
22127
22128 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22129
22130         * config/arm/neon.md (UNSPEC_VAND): Delete.
22131         (UNSPEC_VBIC): Delete.
22132         (UNSPEC_VCLZ): Delete.
22133         (UNSPEC_VCNT): Delete.
22134         (UNSPEC_VEOR): Delete.
22135         (UNSPEC_VORN): Delete.
22136         (UNSPEC_VORR): Delete.
22137         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
22138         core registers too.
22139         (anddi3_neon): Likewise.
22140         (orndi3_neon): Likewise.
22141         (bicdi3_neon): Likewise.
22142         (xordi3_neon): Likewise.
22143         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
22144         rid of unspec and handle unused operand.
22145         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
22146         * config/arm/predicates.md (imm_for_neon_logic_operand):
22147         Require TARGET_NEON.
22148         (imm_for_neon_inv_logic_operand): Likewise.
22149         * config/arm/arm.md (define_split for logical_binary_operator):
22150         Disable for NEON registers.
22151         (anddi3): Add new define_expand, and rename the insn.  Disable
22152         this insn for NEON, where anddi3_neon now applies.
22153         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
22154         (iordi3): As for anddi3.
22155         (xordi3): Likewise.
22156         * config/arm/neon.ml (Vand): Split DImode variants and mark them
22157         as No_op to disable testing for exact instruction match.
22158         (Vorr): Likewise.
22159         (Veor): Likewise.
22160         (Vbic): Likewise.
22161         (Vorn): Likewise.
22162         * config/arm/arm_neon.h: Regenerated.
22163         * doc/arm-neon-intrinsics.texi: Regenerated.
22164
22165 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
22166
22167         * expr.h (emit_stack_probe): Declare.
22168         * explow.c (emit_stack_probe): Make global.
22169         (anti_adjust_stack_and_probe): Fix comments.
22170         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
22171         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
22172         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
22173         * config/sparc/sparc.c: Include except.h.
22174         (sparc_emit_probe_stack_range): New function.
22175         (output_probe_stack_range): Likewise.
22176         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
22177         built-in stack checking is enabled.
22178         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
22179         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
22180         (probe_stack_range): New insn.
22181
22182 2010-07-02  Richard Guenther  <rguenther@suse.de>
22183
22184         PR target/43958
22185         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
22186         for argument alignment.
22187
22188 2010-07-02  Jan Hubicka  <jh@suse.cz>
22189
22190         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
22191         walk backwards from entry_bb to check only those basic block of header
22192         that might lead to execution of split part.
22193         (consider_split) ... here.
22194         (find_return_bb): Allow assignment in return BB.
22195         (find_retval): New.
22196         (split_function): Fix name of cloned function; take care of updating
22197         return value in return_bb containing move.
22198
22199 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
22200
22201         PR target/44771
22202         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
22203         used variable insn.
22204
22205 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
22206
22207         * implicit-zee.c (combine_reaching_defs): Fix long lines.
22208         (is_set_with_extension_DI): Delete.
22209         (struct zero_extend_info): New structure.
22210         (add_removable_zero_extend): New function.
22211         (find_removable_zero_extends): Use note_stores to find SETs.
22212         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
22213
22214 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
22215
22216         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
22217         is_miss_rate_acceptable. Pull total_positions computation
22218         out of the loops.  Early return if miss_positions exceeds
22219         the acceptable threshold.
22220         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
22221         is_miss_rate_acceptable after renaming of compute_miss_rate.
22222
22223 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
22224
22225         PR middle-end/44576
22226         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
22227         of 1000) for miss rate if the address diference is greater than or
22228         equal to the cache line size (the two reference will never hit the
22229         same cache line).
22230
22231 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
22232
22233         PR target/42835
22234         * config/arm/arm-modes.def (CC_NOTB): New mode.
22235         * config/arm/arm.c (get_arm_condition_code): Handle it.
22236         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
22237         * config/arm/arm.md (subsi3_compare0_c): New pattern.
22238         (compare_scc): Now a define_and_split.  Add a number of extra
22239         splitters before it.
22240
22241         PR target/42172
22242         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
22243         and ZERO_EXTEND.
22244         (arm_rtx_costs_1): Likewise.
22245         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
22246         * config/arm/arm.md (is_arch6): New attribute.
22247         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
22248         extendqisi2): Tighten the code somewhat, avoiding invalid
22249         RTL to occur in the expander patterns.
22250         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
22251         (thumb1_zero_extendhisi2_v6): Delete.
22252         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
22253         (thumb1_extendhisi2_v6): Delete.
22254         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
22255         (thumb1_extendqisi2_v6): Delete.
22256         (zero_extendhisi2 for register input splitter): New.
22257         (zero_extendqisi2 for register input splitter): New.
22258         (thumb1_extendhisi2 for register input splitter): New.
22259         (extendhisi2 for register input splitter): New.
22260         (extendqisi2 for register input splitter): New.
22261         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
22262         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
22263         and add support for a register alternative requiring a split.
22264         (thumb1_zero_extendqisi2): Likewise.
22265         (arm_zero_extendqisi2): Likewise.
22266         (arm_extendhisi2): Likewise.
22267         (arm_extendqisi2): Likewise.
22268
22269 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22270
22271         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
22272         instead of an unspec.
22273         (neon_expand_vector_init): Likewise.
22274         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
22275         (UNSPEC_VDUP_LANE): Delete.
22276         (UNSPEC VDUP_N): Delete.
22277         (UNSPEC_VGET_HIGH): Delete.
22278         (UNSPEC_VGET_LANE): Delete.
22279         (UNSPEC_VGET_LOW): Delete.
22280         (UNSPEC_VMVN): Delete.
22281         (UNSPEC_VSET_LANE): Delete.
22282         (V_double_vector_mode): New.
22283         (vec_set<mode>_internal): Make code emitted match that for the
22284         corresponding intrinsics.
22285         (vec_setv2di_internal): Likewise.
22286         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
22287         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
22288         (neon_vset_lane<mode>): Combine double and quad patterns and
22289         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
22290         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
22291         (neon_vdup_n<mode>): Rewrite RTL without unspec.
22292         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
22293         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
22294         with neon_vdup_lanev2di, adjusting the pattern from the latter
22295         to be predicable for consistency.
22296         (neon_vdup_lane<mode>_internal): New.
22297         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
22298         to avoid using an unspec.
22299         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
22300         (neon_vdup_lanev2di): Turn into a define_expand.
22301         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
22302         (neon_vget_high<mode>): Replace with....
22303         (neon_vget_highv16qi): New pattern using canonical RTL.
22304         (neon_vget_highv8hi): Likewise.
22305         (neon_vget_highv4si): Likewise.
22306         (neon_vget_highv4sf): Likewise.
22307         (neon_vget_highv2di): Likewise.
22308         (neon_vget_low<mode>): Replace with....
22309         (neon_vget_lowv16qi): New pattern using canonical RTL.
22310         (neon_vget_lowv8hi): Likewise.
22311         (neon_vget_lowv4si): Likewise.
22312         (neon_vget_lowv4sf): Likewise.
22313         (neon_vget_lowv2di): Likewise.
22314
22315         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
22316         test for this emitting vmov.
22317         (Vset_lane): Likewise.
22318         (Vdup_n): Likewise.
22319         (Vmov_n): Likewise.
22320
22321         * doc/arm-neon-intrinsics.texi: Regenerated.
22322
22323 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22324
22325         * config/arm/neon.md (vec_extractv2di): Correct error in register
22326         numbering to reconcile with neon_vget_lanev2di.
22327
22328 2010-07-02  Richard Guenther  <rguenther@suse.de>
22329
22330         * tree-ssa-structalias.c (pt_solution_set_var): New function.
22331         * tree-ssa-alias.h (pt_solution_set_var): Declare.
22332         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
22333         points-to information.
22334
22335 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
22336
22337         * config/s390/s390.c (override_options): Adopt prefetching
22338         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
22339
22340 2010-07-02  Jan Hubicka  <jh@suse.cz>
22341
22342         * df-problems.c (df_kill_notes): Do not collect dead  notes.
22343         (df_set_note): Just call add_reg_note.
22344         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
22345         df_create_unused_note): Do not deal with lists of old notes.
22346         (df_note_bb_compute): Likewise.
22347
22348 2010-07-02  Richard Guenther  <rguenther@suse.de>
22349
22350         * tree-ssa-structalias.c (find_func_aliases): Handle
22351         pointer alignment via BIT_AND_EXPR.
22352         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
22353
22354 2010-07-02  Richard Guenther  <rguenther@suse.de>
22355
22356         * tree-data-ref.c (initialize_data_dependence_relation): Handle
22357         mismatching number of dimensions properly.
22358
22359 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22360
22361         PR target/44707
22362         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
22363         (lo_sum (high ...) ...) patterns generated by earlier passes.
22364
22365 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22366
22367         * doc/install.texi (Prerequisites): Document Perl requirement on
22368         Solaris 2.
22369         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
22370
22371 2010-07-02  Richard Guenther  <rguenther@suse.de>
22372
22373         PR middle-end/44777
22374         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
22375
22376 2010-07-02  Jan Hubicka  <jh@suse.cz>
22377
22378         PR middle-end/44706
22379         * predict.c (predict_paths_for_bb): Handle case when control dependence
22380         BB has only abnormal edges.
22381
22382 2010-07-02  Richard Guenther  <rguenther@suse.de>
22383
22384         PR tree-optimization/44748
22385         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
22386         the embedded conversion in MEM_REFs.
22387
22388 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
22389
22390         * reload.c: Include toplev.h.
22391         * recog.c:  Likewise.
22392         * Makefile.in: Adjust dependencies.
22393
22394 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
22395
22396         PR debug/44694
22397         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
22398         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
22399
22400 2010-07-01  Richard Guenther  <rguenther@suse.de>
22401
22402         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
22403         types for offsets.
22404
22405 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
22406
22407         PR target/44732
22408         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
22409         Fix argument types.
22410
22411 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
22412
22413         PR target/44727
22414         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22415         Make sure operand 0 dies.
22416
22417 2010-07-01  Richard Guenther  <rguenther@suse.de>
22418
22419         PR middle-end/42834
22420         PR middle-end/44468
22421         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
22422         * doc/generic.texi (References to storage): Document MEM_REF.
22423         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
22424         (print_call_name): Likewise.
22425         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
22426         (build_simple_mem_ref_loc): New function.
22427         (mem_ref_offset): Likewise.
22428         * tree.h (build_simple_mem_ref_loc): Declare.
22429         (build_simple_mem_ref): Define.
22430         (mem_ref_offset): Declare.
22431         * fold-const.c: Include tree-flow.h.
22432         (operand_equal_p): Handle MEM_REF.
22433         (build_fold_addr_expr_with_type_loc): Likewise.
22434         (fold_comparison): Likewise.
22435         (fold_unary_loc): Fold
22436         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
22437         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
22438         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
22439         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
22440         (ptr_deref_may_alias_ref_p_1): Likewise.
22441         (ao_ref_base_alias_set): Properly differentiate base object for
22442         offset and TBAA.
22443         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
22444         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
22445         (indirect_refs_may_alias_p): Likewise.
22446         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
22447         chasing code.
22448         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
22449         (call_may_clobber_ref_p_1): Likewise.
22450         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
22451         * expr.c (expand_assignment): Handle MEM_REF.
22452         (store_expr): Handle MEM_REFs from STRING_CSTs.
22453         (store_field): If expanding a MEM_REF of a non-addressable
22454         decl use bitfield operations.
22455         (get_inner_reference): Handle MEM_REF.
22456         (expand_expr_addr_expr_1): Likewise.
22457         (expand_expr_real_1): Likewise.
22458         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
22459         * alias.c (ao_ref_from_mem): Handle MEM_REF.
22460         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
22461         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
22462         (dr_analyze_indices): Likewise.
22463         (dr_analyze_alias): Likewise.
22464         (object_address_invariant_in_loop_p): Likewise.
22465         * gimplify.c (mark_addressable): Handle MEM_REF.
22466         (gimplify_cond_expr): Build MEM_REFs.
22467         (gimplify_modify_expr_to_memcpy): Likewise.
22468         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
22469         (gimple_fold_indirect_ref): Adjust.
22470         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
22471         * tree.def (MEM_REF): New tree code.
22472         * tree-dfa.c: Include toplev.h.
22473         (get_ref_base_and_extent): Handle MEM_REF.
22474         (get_addr_base_and_unit_offset): New function.
22475         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
22476         * gimple-fold.c (may_propagate_address_into_dereference): Handle
22477         MEM_REF.
22478         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
22479         accesses if the array has just one dimension.  Remove always true
22480         parameter.  Do not require type compatibility here.
22481         (maybe_fold_offset_to_component_ref): Remove.
22482         (maybe_fold_stmt_indirect): Remove.
22483         (maybe_fold_reference): Remove INDIRECT_REF handling.
22484         Fold back to non-MEM_REF.
22485         (maybe_fold_offset_to_address): Simplify.  Deal with type
22486         mismatches here.
22487         (maybe_fold_reference): Likewise.
22488         (maybe_fold_stmt_addition): Likewise.  Also handle
22489         &ARRAY + I in addition to &ARRAY[0] + I.
22490         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
22491         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
22492         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
22493         * tree-ssa.c (useless_type_conversion_p): Make most pointer
22494         conversions useless.
22495         (warn_uninitialized_var): Handle MEM_REF.
22496         (maybe_rewrite_mem_ref_base): New function.
22497         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
22498         to SSA form.
22499         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
22500         INDIRECT_REF handling.
22501         (copy_tree_body_r): Handle MEM_REF.
22502         * gimple.c (is_gimple_addressable): Adjust.
22503         (is_gimple_address): Likewise.
22504         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
22505         invariant base are invariant.
22506         (is_gimple_min_lval): Adjust.
22507         (is_gimple_mem_ref_addr): New function.
22508         (get_base_address): Handle MEM_REF.
22509         (count_ptr_derefs): Likewise.
22510         (get_base_loadstore): Likewise.
22511         * gimple.h (is_gimple_mem_ref_addr): Declare.
22512         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
22513         * tree-cfg.c (verify_address): New function, split out from ...
22514         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
22515         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
22516         INDIRECT_REFs.
22517         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
22518         INDIRECT_REF.  Allow conversions.
22519         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
22520         a register does not change its size.
22521         (verify_types_in_gimple_reference): Verify MEM_REF.
22522         (verify_gimple_assign_single): Disallow INDIRECT_REF.
22523         Handle MEM_REF.
22524         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
22525         New.
22526         (mark_address_taken): Handle MEM_REF.
22527         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
22528         (get_asm_expr_operands): Pass opf_not_non_addressable.
22529         (get_expr_operands): Handle opf_[not_]non_addressable.
22530         Handle MEM_REF.  Remove INDIRECT_REF handling.
22531         * tree-vrp.c (check_array_ref): Handle MEM_REF.
22532         (search_for_addr_array): Likewise.
22533         (check_array_bounds): Likewise.
22534         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
22535         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
22536         (ref_always_accessed_p): Likewise.
22537         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
22538         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
22539         Handle MEM_REF.
22540         * cgraphbuild.c (mark_load): Properly check for NULL result
22541         from get_base_address.
22542         (mark_store): Likewise.
22543         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
22544         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
22545         handling for MEM_REF.
22546         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
22547         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
22548         * builtins.c (stabilize_va_list_loc): Use the function ABI
22549         valist type if we couldn't canonicalize the argument type.
22550         Always dereference with the canonical va-list type.
22551         (maybe_emit_free_warning): Handle MEM_REF.
22552         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
22553         memmove to memcpy.
22554         * builtins.c (fold_builtin_memory_op): Use ref-all types
22555         for all memcpy foldings.
22556         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
22557         (build_outer_var_ref): Likewise.
22558         (scan_omp_1_op): Likewise.
22559         (lower_rec_input_clauses): Likewise.
22560         (lower_lastprivate_clauses): Likewise.
22561         (lower_reduction_clauses): Likewise.
22562         (lower_copyprivate_clauses): Likewise.
22563         (expand_omp_atomic_pipeline): Likewise.
22564         (expand_omp_atomic_mutex): Likewise.
22565         (create_task_copyfn): Likewise.
22566         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
22567         Remove old union trick.  Initialize constant offsets.
22568         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
22569         INDIRECT_REF.  Init base_alias_set properly.
22570         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
22571         (vn_reference_fold_indirect): Adjust for MEM_REFs.
22572         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
22573         for ARRAY_REFs.
22574         (may_insert): Remove.
22575         (visit_reference_op_load): Do not test may_insert.
22576         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
22577         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
22578         a field to store the constant offset this op applies.
22579         (run_scc_vn): Adjust prototype.
22580         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
22581         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
22582         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
22583         bother about volatile qualifiers on pointers.
22584         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
22585         * tree-ssa-loop-ivopts.c
22586         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
22587         (strip_offset_1): Likewise.
22588         (find_interesting_uses_address): Replace INDIRECT_REF handling with
22589         MEM_REF handling.
22590         (get_computation_cost_at): Likewise.
22591         * ipa-pure-const.c (check_op): Handle MEM_REF.
22592         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
22593         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
22594         and constants.
22595         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
22596         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
22597         (eliminate_local_variables_1): Likewise.
22598         (create_call_for_reduction_1): Likewise.
22599         (create_loads_for_reductions): Likewise.
22600         (create_loads_and_stores_for_name): Likewise.
22601         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
22602         (ssa_accessed_in_tree): Handle MEM_REF.
22603         (ssa_accessed_in_assign_rhs): Likewise.
22604         (update_type_size): Likewise.
22605         (analyze_accesses_for_call_stmt): Likewise.
22606         (analyze_accesses_for_assign_stmt): Likewise.
22607         (transform_access_sites): Likewise.
22608         (transform_allocation_sites): Likewise.
22609         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
22610         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
22611         not handle INDIRECT_REF.
22612         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
22613         (cond_store_replacement): Likewise.
22614         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
22615         MEM_REF, no not handle INDIRECT_REFs.
22616         (insert_into_preds_of_block): Properly initialize avail.
22617         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
22618         for ARRAY_REFs.  Properly handle reference lookups that
22619         require a bit re-interpretation.
22620         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
22621         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
22622         (build_ref_for_offset_1): Remove.
22623         (build_ref_for_offset): Build MEM_REFs.
22624         (gate_intra_sra): Disable for now.
22625         (sra_ipa_modify_expr): Handle MEM_REF.
22626         (ipa_early_sra_gate): Disable for now.
22627         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
22628         MEM_REF handling.
22629         (disqualify_base_of_expr): Likewise.
22630         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
22631         MEM_REF handling.
22632         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
22633         Use mem_ref_offset.  Remove bogus folding.
22634         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
22635         (make_fancy_name_1): Add support for MEM_REF.
22636         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
22637         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
22638         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
22639         (compute_complex_ancestor_jump_func): Likewise.
22640         (ipa_analyze_virtual_call_uses): Likewise.
22641         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
22642         INDIRECT_REF folding with more generalized MEM_REF folding.
22643         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
22644         (forward_propagate_addr_into_variable_array_index): Also handle
22645         &ARRAY + I in addition to &ARRAY[0] + I.
22646         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
22647         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
22648         creates assignments with overlap.
22649         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
22650         (get_frame_field): Likewise.
22651         (get_nonlocal_debug_decl): Likewise.
22652         (convert_nonlocal_reference_op): Likewise.
22653         (struct nesting_info): Add mem_refs pointer-set.
22654         (create_nesting_tree): Allocate it.
22655         (convert_local_reference_op): Insert to be folded mem-refs.
22656         (fold_mem_refs): New function.
22657         (finalize_nesting_tree_1): Perform defered folding of mem-refs
22658         (free_nesting_tree): Free the pointer-set.
22659         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
22660         (vectorizable_load): Likewise.
22661         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
22662         (propagate_with_phi): Likewise.
22663         * tree-object-size.c (addr_object_size): Handle MEM_REFs
22664         instead of INDIRECT_REFs.
22665         (compute_object_offset): Handle MEM_REF.
22666         (plus_stmt_object_size): Handle MEM_REF.
22667         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
22668         for &MEM_REF.
22669         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
22670         (symbol_marked_for_renaming): Likewise.
22671         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
22672         (fold-const.o): Add $(TREE_FLOW_H).
22673         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
22674         (find_func_clobbers): Likewise.
22675         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
22676         (decompose_access): Likewise.
22677         (replace_field_acc): Likewise.
22678         (replace_field_access_stmt): Likewise.
22679         (insert_new_var_in_stmt): Likewise.
22680         (get_stmt_accesses): Likewise.
22681         (reorg_structs_drive): Disable.
22682         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
22683         (ix86_canonical_va_list_type): Likewise.
22684
22685 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
22686
22687         PR other/44566
22688         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
22689         * target.def (struct gcc_target): Replace enum reg_class with
22690         reg_class_t in hook argument / return types.
22691         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
22692         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
22693         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
22694         * targhooks.h (default_branch_target_register_class): Likewise.
22695         (default_ira_cover_classes, default_secondary_reload): Likewise.
22696         (default_memory_move_cost, default_register_move_cost): Likewise.
22697         * targhooks.c (default_branch_target_register_class): Likewise.
22698         (default_ira_cover_classes, default_secondary_reload): Likewise.
22699         (default_memory_move_cost, default_register_move_cost): Likewise.
22700         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
22701         * bt-load.c (branch_target_load_optimize): Likewise.
22702         * ira.c (setup_cover_and_important_classes): Likewise.
22703         * ira-costs.c (copy_cost): Likewise.
22704         * reload1.c (emit_input_reload_insns): Likewise.
22705         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
22706         * config/frv/frv.c (frv_secondary_reload): Likewise.
22707         * config/s390/s390.c (s390_secondary_reload): Likewise.
22708         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
22709         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
22710         (ix86_register_move_cost): Likewise.
22711         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
22712         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
22713         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
22714         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
22715         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
22716         (rs6000_ira_cover_classes): Likewise.
22717         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
22718         * config/picochip/picochip-protos.h (picochip_secondary_reload):
22719         Likewise.
22720         * config/pa/pa.c (pa_secondary_reload): Likewise.
22721         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
22722         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
22723         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
22724         * doc/tm.texi: Regenerate.
22725
22726 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
22727
22728         PR bootstrrap/44726
22729         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
22730         use.
22731         (build_alias_set_optimal_p): Likewise.
22732         (build_base_obj_set_for_drs): Likewise.
22733
22734 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
22735
22736         * target.def: Remove comment about licensing problems of function
22737         declarations.
22738
22739         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
22740         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
22741         * doc/tm.texi: Regenerate.
22742
22743         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
22744         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
22745
22746         * target.def (enum_va_list_p): Use DEFHOOK.
22747         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
22748         Rename ptype to ptree.
22749         * doc/tm.texi: Regenerate.
22750
22751         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
22752         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
22753         * doc/tm.texi: Regenerate.
22754
22755         * target.def (memory_move_cost): Use DEFHOOK.
22756         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
22757         Rename regclass AKA class to rclass.
22758         * doc/tm.texi: Regenerate.
22759
22760         * target.def (pragma_parse): Use DEFHOOK.
22761         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
22762         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
22763         * doc/tm.texi: Regenerate.
22764
22765         * target.def (pass_by_reference): Use DEFHOOK.
22766         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
22767         * doc/tm.texi: Regenerate.
22768
22769         * target.def (resolve_overloaded_builtin): Rename params to arglist.
22770         Use DEFHOOK.
22771         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
22772         * doc/tm.texi: Regenerate.
22773
22774         * target.def (return_pops_args): Use DEFHOOK.
22775         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
22776         Rename stack-size to size.
22777         * doc/tm.texi: Regenerate.
22778
22779         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
22780         last-sched_cycle to last_clock, cur_cycle to clock.
22781         * doc/tm.texi.in: Use @hook.
22782         * doc/tm.texi: Regenerate.
22783
22784         * target.def (print_operand, print_operand_address): Update comment.
22785         (print_operand_punct_valid_p): Likewise.
22786
22787 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22788
22789         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
22790         to rtl.h.
22791         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
22792         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
22793         * rtl-error.h: New.
22794         * regrename.c: Do not include toplev.h. Include rtl-error.h.
22795         * rtl-error.c: Likewise.
22796         * reload.c: Likewise.
22797         * recog.c:  Likewise.
22798         * sel-sched.c: Likewise.
22799         * function.c: Likewise.
22800         * reg-stack.c: Likewise.
22801         * cfgrtl.c: Likewise.
22802         * reload1.c: Likewise.
22803         * final.c: Include rtl-error.
22804         * Makefile.in: Adjust dependencies.
22805
22806 2010-06-30  Jan Hubicka  <jh@suse.cz>
22807
22808         PR middle-end/PR44706
22809         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
22810         to return the value.
22811
22812 2010-06-30  Michael Matz  <matz@suse.de>
22813
22814         PR bootstrap/44699
22815         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
22816         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
22817         a gimple reg, attach the original VDEF to the last store in the
22818         sequence.
22819
22820 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
22821
22822         PR other/44034
22823         * config/darwin.c (darwin_override_options): Use renamed
22824         targetm.asm_out.emit_unwind_label.
22825
22826 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
22827
22828         PR tree-optimization/39799
22829         * tree-inline.c (remap_ssa_name): Initialize variable only if
22830         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
22831
22832 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
22833
22834         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
22835
22836 2010-06-30  Richard Guenther  <rguenther@suse.de>
22837
22838         PR target/44722
22839         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
22840         against oscillation with reverse peephole2.
22841
22842 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22843
22844         PR target/44721
22845         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22846         Fix last commit.
22847
22848 2010-06-30  Nick Clifton  <nickc@redhat.com>
22849
22850         * config/rx/rx-modes.def: New file.
22851         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
22852         (CC_REGNUM): Define.
22853         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
22854         register.
22855         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
22856         (SELECT_CC_MODE): Define.
22857         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
22858         (reg:CC CC_REG) instead of (cc0).
22859         (attr "cc"): Delete.
22860         (cbranchsi4): Do not split compare and branch here. Instead move
22861         it to...
22862         (cbranchsi4_<code>): ... here.  New patterns.
22863         (cmpsi): Call rx-compare_redundant to find out if it is necessary
22864         to emit the compare instruction.
22865         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
22866         cc_status flags.
22867         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
22868         FIRST_PSEUDO_REGNUM.
22869         (rx_expand_prologue, rx_expand_epilogue): Likewise.
22870         (rx_notice_update_cc): Delete.
22871         (rx_cc_modes_compatible): New function.
22872         (flags_needed_for_conditional): New function.
22873         (flags_from_mode): New function.
22874         (rx_compare_redundant): New function - scans backwards through
22875         insn list to find out if condition flags are already set correctly.
22876         (TARGET_CC_MODES_COMPATIBLE): Define.
22877         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
22878
22879         * config/rx/rx.h (BRANCH_COST): Define.
22880         (REGISTER_MOVE_COST): Define.
22881         * config/rx/predicates (rx_source_operand): Allow all constant types.
22882         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
22883         (tstsi4): New pattern.
22884         * config/rx/rx.c (rx_memory_move_cost): Define.
22885         (TARGET_MEMORY_MOVE_COST): Define.
22886
22887 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22888
22889         * tree.h (block_may_fallthru): Declare here.
22890         * tree-flow.h (block_may_fallthru): Do not declare here.
22891         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
22892         bitmap.h
22893         * Makefile.in (c-typeck.o): Update dependencies.
22894
22895 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
22896
22897         PR debug/44694
22898         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
22899         * cselib.c (cfa_base_preserved_regno): New static variable.
22900         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
22901         of REGNO (cfa_base_preserved_val->locs->loc).
22902         (cselib_preserve_cfa_base_value): Add regno argument, set
22903         cfa_base_preserved_regno to it.
22904         (cselib_invalidate_regno): Allow removal of registers other than
22905         cfa_base_preserved_regno from cfa_base_preserved_val.
22906         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
22907         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
22908         of MEM addresses, if not on LHS.
22909         (reverse_op): Don't add reverse ops for cfa_base_rtx.
22910         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
22911
22912 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
22913
22914         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
22915         static variables.
22916         (peep2_buf_position): New static function.
22917         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
22918         peephole2_optimize): Use it.
22919         (peep2_attempt, peep2_update_life): New static functions, broken out
22920         of peephole2_optimize.
22921         (peep2_fill_buffer): New static function.
22922         (peephole2_optimize): Change the main loop to try to fill the buffer
22923         with the maximum number of insns before matching them against
22924         peepholes.  Use a forward scan.  Remove special case for targets with
22925         conditional execution.
22926         * genrecog.c (change_state): Delete dead code.
22927         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22928         Rewrite so as not to expect the second insn to have had a peephole
22929         applied yet.
22930
22931 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22932
22933         * genhooks.c (emit_findices): Cast field precision to int.
22934         (emit_documentation): Likewise.
22935
22936 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
22937
22938         PR tree-optimization/43801
22939         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
22940         if old_decl was DECL_ONE_ONLY.
22941
22942         PR debug/44668
22943         * dwarf2out.c (add_accessibility_attribute): New function.
22944         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
22945         instead of adding DW_AT_accessibility manually.
22946         (gen_enumeration_type_die, gen_struct_or_union_type_die,
22947         gen_typedef_die): Use it.
22948
22949 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22950
22951         * vmsdbgout.c (full_name): Just output the file name if not native.
22952
22953 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22954
22955         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
22956         (funcnam_table): New static table.
22957         (funcnum_table): New static table.
22958         (write_rtnbeg): Write value saved in funcnum_table.
22959         (write_rtnend): Write value saved in funcnum_table.
22960         (vmsdbgout_begin_function): Save current function info in
22961         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
22962         (vmsdbgout_finish): Iterate over funcnum_table.
22963
22964 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22965
22966         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
22967         (vmsdbgout_type_decl): Declare
22968         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
22969         (FUNC_EPILOGUE_LABEL): New macro
22970         (vmsdbgout_begin_epilogue): New function.
22971         (vmsdbgout_type_decl): New function.
22972
22973 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22974
22975         * vmsdbg.h: Update copyright.
22976
22977 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22978
22979         * vmsdbg.h (DST_K_TBG): New DST constant.
22980         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
22981         (write_modbeg): Cast module_language to avoid warning.
22982         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
22983
22984 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
22985
22986         PR other/44034
22987         * target.def, doc/tm.texi.in, genhooks.c: New files.
22988         * target.h: Instead of defining individual hook members,
22989         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
22990         include target.def.
22991         * target-def.h: Instead of defining individual hook initializers,
22992         include target-hooks-def.h.
22993         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
22994         targetm.live_on_entry -> targetm.extra_live_on_entry
22995         targetm.sched.md_finish ->targetm.sched.finish
22996         targetm.sched.md_init -> targetm.sched.init
22997         targetm.sched.md_init_global -> targetm.sched.init_global
22998         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
22999         targetm.asm_out.except_table_label ->
23000           targetm.asm_out.emit_except_table_label
23001         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
23002         targetm.target_help -> targetm.help
23003         targetm.vectorize.builtin_support_vector_misalignment ->
23004           targetm.vectorize.support_vector_misalignment
23005         targetm.file_start_app_off -> targetm.asm_file_start_app_off
23006         targetm.file_start_file_directive ->
23007          targetm.asm_file_start_file_directive
23008         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
23009         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
23010         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
23011         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
23012           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
23013         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
23014           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
23015         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
23016         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
23017         * Makefile.in (TARGET_H): Depend on target.def.
23018         (TARGET_DEF_H): Depend on target-hooks-def.h.
23019         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
23020         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
23021         * doc/tm.texi: Regenerate.
23022
23023         * Makefile.in (s-tm-texi): Remove stray tab / rule.
23024
23025         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
23026         (targetm.sched.init): Likewise.
23027
23028 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23029
23030         PR bootstrap/44713
23031         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
23032         (function_arg_advance_32): Const-ify TYPE parameter.
23033         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
23034         (ix86_function_arg_advance): Change type of NAMED to bool.
23035         (function_arg_32): Const-ify CUM and TYPE parameters.
23036         (function_arg_64): Likewise.  Change type of NAMED to bool.
23037         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
23038         to bool.
23039         (ix86_function_arg): Change type of NAMED to bool.
23040         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
23041         last argument as a bool.
23042
23043 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
23044
23045         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
23046         (OVERRIDE_OPTIONS): Add note of obsolescence.
23047         Replace references with references to TARGET_OPTION_OVERRIDE.
23048         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
23049          the macro).
23050         * targhooks.c (default_target_option_override): New function.
23051         * targhooks.h (default_target_option_override): Declare.
23052         * target.h (struct gcc_target): Add override member to
23053         target_option member.
23054         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
23055         targetm.target_option.override call.
23056         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
23057         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
23058
23059 2010-06-29  Jan Hubicka  <jh@suse.cz>
23060
23061         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
23062
23063 2010-06-29  Jan Hubicka  <jh@suse.cz>
23064
23065         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
23066         unreachable.
23067         (rebuild_frequencies): New function.
23068         * predict.h (rebuild_frequencies): Declare.
23069         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
23070         entry block and edge reaching new_entry.
23071         (tree_function_versioning): When doing partial cloning, rebuild
23072         frequencies when done.
23073         * passes.c (execute_function_todo): Use rebild_frequencies.
23074
23075 2010-06-29  Richard Guenther  <rguenther@suse.de>
23076
23077         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
23078         * tree-flow.h (enum noalias_state): Remove.
23079         (struct var_ann_d): Remove noalias_state member.
23080
23081 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
23082
23083         PR target/43902
23084         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
23085         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
23086         (maddhidi4): Likewise.
23087
23088         Revert parts of the change for PR25130.
23089         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
23090         MEM_ALIAS_SET.
23091
23092 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23093
23094         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
23095         targetm.calls.function_incoming_arg, and
23096         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
23097         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
23098         * target.h (struct gcc_target): Add function_arg_advance,
23099         function_arg, and function_incoming_arg fields.
23100         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
23101         (TARGET_FUNCTION_INCOMING_ARG): Define.
23102         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
23103         and TARGET_FUNCTION_INCOMING_ARG.
23104         * targhooks.h (default_function_arg_advance): Declare.
23105         (default_function_arg, default_function_incoming_arg): Declare.
23106         * targhooks.c (default_function_arg_advance): New function.
23107         (default_function_arg, default_function_incoming_arg): New function.
23108         * config/i386/i386.c (function_arg_advance): Rename to...
23109         (ix86_function_arg_advance): ...this.  Make static.
23110         (function_arg): Rename to...
23111         (ix86_function_arg): ...this.  Make static.
23112         (TARGET_FUNCTION_ARG_ADVANCE): Define.
23113         (TARGET_FUNCTION_ARG): Define.
23114         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
23115         (FUNCTION_ARG): Delete.
23116         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
23117         (function_arg): Delete prototype.
23118
23119 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23120
23121         * reginfo.c (init_reg_sets_1): Adjust comments.
23122         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
23123         * calls.c (prepare_call_address): Likewise.
23124         (emit_call_1): Use targetm.calls.return_pops_args.
23125         (expand_call): Likewise.
23126         * function.c (assign_parms): Likewise.
23127         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
23128         * target.h (struct gcc_target) [struct calls]: Add
23129         return_pops_args field.
23130         * targhooks.h (default_return_pops_args): Declare.
23131         * targhooks.c (default_return_pops_args): Define.
23132         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
23133         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
23134         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
23135         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
23136         documentation.
23137         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
23138         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
23139         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
23140         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
23141         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
23142         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
23143         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
23144         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
23145         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
23146         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
23147         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
23148         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
23149         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
23150         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
23151         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
23152         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
23153         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
23154         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
23155         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
23156         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
23157         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
23158         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
23159         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
23160         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
23161         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
23162         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
23163         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
23164         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
23165         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
23166         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
23167         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
23168         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
23169         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
23170         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
23171         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
23172         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
23173         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
23174         * config/i386/i386.c (ix86_return_pops_args): Make static.
23175         Constify arguments.
23176         (TARGET_RETURN_POPS_ARGS): Define.
23177         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
23178         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
23179         (TARGET_RETURN_POPS_ARGS): Define.
23180         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
23181         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
23182         (TARGET_RETURN_POPS_ARGS): Define.
23183
23184 2010-06-29  Richard Guenther  <rguenther@suse.de>
23185
23186         PR middle-end/44667
23187         * tree-inline.c (initialize_inlined_parameters): Make sure
23188         to remap the inlined parameter variable substitutions types.
23189
23190 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
23191
23192         PR rtl-optimization/44659
23193         * combine.c (make_compound_operation) <SUBREG>: Do not return the
23194         result of force_to_mode if it partially re-expanded the compound.
23195
23196 2010-06-28  Jan Hubicka  <jh@suse.cz>
23197
23198         PR middle-end/44671
23199         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
23200         RESULT_DECL.
23201
23202 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
23203
23204         * double-int.h (force_fit_type_double): Remove declaration.
23205         * double-int.c (force_fit_type_double): Move to tree.c.
23206         * tree.h (force_fit_type_double): Declare.
23207         * tree.h (force_fit_type_double): Moved from double-int.c. Use
23208         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
23209         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
23210         * convert.c (convert_to_pointer): Adjust call to
23211         force_fit_type_double.
23212         * tree-vrp.c (extract_range_from_assert,
23213         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
23214         * fold-const.c: Update comment.
23215         (int_const_binop, fold_convert_const_int_from_int,
23216         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
23217         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
23218         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
23219         round_up_loc): Adjust call to force_fit_type_double.
23220
23221 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
23222
23223         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
23224
23225 2010-06-28  Martin Jambor  <mjambor@suse.cz>
23226
23227         * tree-sra.c (convert_callers): New parameter, change fndecls of
23228         recursive calls.
23229         (modify_function): Pass the old decl to convert_callers.
23230
23231 2010-06-28  Martin Jambor  <mjambor@suse.cz>
23232
23233         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
23234         ipa_check_create_node_params and ipa_initialize_node_params with
23235         checking asserts they are not necessary.
23236
23237 2010-06-28  Jan Hubicka  <jh@suse.cz>
23238
23239         PR tree-optimization/44687
23240         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
23241
23242 2010-06-28  Martin Jambor  <mjambor@suse.cz>
23243
23244         PR c++/44535
23245         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
23246         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
23247         instead of BINFO_BASE_BINFO.
23248
23249 2010-06-28  Michael Matz  <matz@suse.de>
23250
23251         PR middle-end/44592
23252         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
23253         proper VDEF chain for intermediate stores in the sequence.
23254
23255 2010-06-28  Jan Hubicka  <jh@suse.cz>
23256
23257         PR tree-optimization/44357
23258         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
23259         uninlinable functions.
23260
23261 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
23262
23263         * config.gcc (powerpc*-*-*): Handle titan.
23264         * config/rs6000/rs6000.c (titan_cost): New costs.
23265         (rs6000_override_options): Add "titan" to processor_target_table.
23266         Add Titan to branch alignment logic.
23267         Correctly set rs6000_cost for titan.
23268         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
23269         * config/rs6000/titan.md: New file.
23270         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
23271
23272 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
23273
23274         * tree-browser.c (TB_history_stack): Convert to a VEC.
23275         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
23276         (TB_history_prev): Likewise.
23277
23278 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
23279
23280         * vec.h (vec_heap_free): Add parentheses around free.
23281
23282 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
23283
23284         * system.h: Poison GCC_EXCEPT_H for front-end files.
23285
23286         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
23287         langhook.
23288         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
23289         Define to NULL by default.
23290         * except.h: Define GCC_EXCEPT_H.
23291         (doing_eh): Remove prototype.
23292         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
23293         (lang_protect_cleanup_actions): Remove.
23294         * except.c (lang_protect_cleanup_actions): Remove.
23295         (doing_eh): Remove.
23296         (gen_eh_region): Don't check doing_eh here.
23297         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
23298         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
23299         instead of lang_protect_cleanup_actions.
23300         * omp-low.c (maybe_catch_exception): Likewise.
23301         * Makefile.in: Update dependencies.
23302
23303 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
23304
23305         * cgraph.h (struct varpool_node): new used_from_object_file flag.
23306         (struct cgraph_local_info): new used_from_object_file flag.
23307         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
23308         (cgraph_clone_node): initialize used_from_object_file.
23309         (cgraph_create_virtual_clone): initialize used_from_object_file.
23310         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
23311         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
23312         when compiling with -fwhole-program.
23313         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
23314         internal resolver.
23315         * ipa.c (function_and_variable_visibility): Set externally_visible
23316         flag of varpool_node if used_from_object_file flag is set.
23317         (cgraph_externally_visible_p): check used_from_object_file flag.
23318         * doc/invoke.texi (-fwhole-program option): Change description of
23319         externally_visible attribute accordingly.
23320         * doc/extend.texi (externally_visible): Ditto.
23321
23322 2010-06-27  Jan Hubicka  <jh@suse.cz>
23323
23324         * params.def (max-inline-insns-auto): Default to 40.
23325         * doc/invoke.texi (max-inline-insns-auto): Document the change.
23326
23327 2010-06-27  Jan Hubicka  <jh@suse.cz>
23328
23329         PR middle-end/44671
23330         PR middle-end/44686
23331         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
23332         signature change.
23333         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
23334         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
23335
23336 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
23337
23338         * target.h (struct gcc_target): Add register_move_cost field.
23339         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
23340         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
23341         * targhooks.c (default_register_move_cost): New function.
23342         * targhooks.h (default_register_move_cost): Declare function.
23343         * defaults.h (REGISTER_MOVE_COST): Delete.
23344         * ira-int.h (ira_register_move_cost): Update comment.
23345         * ira.c (ira_register_move_cost): Update comment.
23346         * reload.h (register_move_cost): Declare.
23347         * reginfo.c (register_move_cost): New function.
23348         (move_cost): Update comment.
23349         (init_move_cost, memory_move_secondary_cost): Replace
23350         REGISTER_MOVE_COST with register_move_cost.
23351         * postreload.c (reload_cse_simplify_set): (Ditto.).
23352         * reload.c (find_valid_class, find_reloads): (Ditto.).
23353         * reload1.c (choose_reload_regs): (Ditto.).
23354         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
23355         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
23356         * doc/md.texi (can_create_pseudo_p): Update documentation.
23357
23358         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
23359         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
23360         * config/i386/i386.h (ix86_memory_move_cost): Make static.
23361         (TARGET_MEMORY_MOVE_COST): Define.
23362
23363         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
23364         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
23365         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
23366         (TARGET_MEMORY_MOVE_COST): Define.
23367
23368 2010-06-27  Richard Guenther  <rguenther@suse.de>
23369
23370         PR tree-optimization/44683
23371         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
23372         false edge from the inverted condition.
23373
23374 2010-06-27  Richard Guenther  <rguenther@suse.de>
23375
23376         PR middle-end/44684
23377         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
23378         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
23379         for register LHS.  Or non-store assignments.
23380
23381 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
23382
23383         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
23384         (sparc_emit_set_const64): Likewise.  Remove disabled code.
23385         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
23386         (sparc_emit_set_const64): Likewise.
23387
23388 2010-06-26  Catherine Moore  <clm@codesourcery.com>
23389
23390         * config/mips/mips.md (alu_type): New attribute.
23391         (type): Infer type from alu_type.
23392         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
23393         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
23394         *subsi3_extended, negsi2, negdi2, *low<mode>,
23395         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
23396         xor<mode>3, *nor<mode>3,
23397         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
23398         *zero_extendhi_truncqi):  Set alu_type instead of type.
23399
23400 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
23401
23402         * config/alpha/alpha.c (alpha_need_linkage): Adjust
23403         splay_tree_new_ggc call.
23404         (alpha_use_linkage): Likewise.
23405
23406 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
23407
23408         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
23409         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
23410         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
23411         (static_specs): Remove switches_need_spaces.
23412         (process_command, do_self_spec): Hardcode handling "-o" instead of
23413         checking switches_need_spaces.
23414         * system.h (SWITCHES_NEED_SPACES): Poison.
23415
23416 2010-06-26  Richard Guenther  <rguenther@suse.de>
23417
23418         PR tree-optimization/44393
23419         * tree-loop-distribution.c (generate_loops_for_partition): Fix
23420         stmt removal and VOP renaming.
23421         (generate_memset_zero): Remove redundant stmt updating.
23422         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
23423         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
23424
23425 2010-06-26  Jan Hubicka  <jh@suse.cz>
23426
23427         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
23428         edges comming from header are equivalent.
23429         (visit_bb): Handle PHIs correctly.
23430         * tree-inline.c (copy_phis_for_bb): Be able to copy
23431         PHI from entry edge.
23432         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
23433
23434 2010-06-26  Richard Guenther  <rguenther@suse.de>
23435
23436         PR middle-end/44674
23437         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
23438         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
23439
23440 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
23441
23442         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
23443         add_infile, alloc_switch): New.
23444         (process_command): Remove variable lang_n_infiles.  Process
23445         options in a single pass.  Use new functions for allocating
23446         infiles and switches arrays.  Properly skip operands of
23447         -Xpreprocessor and -Xassembler.
23448
23449 2010-06-26  Jan Hubicka  <jh@suse.cz>
23450
23451         PR middle-end/44671
23452         * cgraphunit.c (cgraph_function_versioning): Remove wrong
23453         cgraph_make_decl_local call; fix typo copying RTL data.
23454
23455 2010-06-25  DJ Delorie  <dj@redhat.com>
23456
23457         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
23458         (m32c_output_aligned_common): Likewise.
23459         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
23460         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
23461         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
23462         (m32c_register_pragmas): Register it.
23463         * config/m32c/m32c.c (m32c_get_pragma_address): New.
23464         (m32c_insert_attributes): Set #pragma address decls volatile.
23465         (pragma_entry_eq): New.
23466         (pragma_entry_hash): New.
23467         (m32c_note_pragma_address): New.
23468         (m32c_get_pragma_address): New.
23469         (m32c_output_aligned_common): New.
23470         * doc/extend.texi: Document the new pragma.
23471
23472         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
23473         also.
23474         * config/m32c/predicates.md (m32c_any_operand): Check the code
23475         instead of memory_operand so as to allow matching volatile MEMs.
23476         (m32c_nonimmediate_operand): Likewise.
23477         (mra_operand): Allow volatiles.
23478
23479 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
23480
23481         PR debug/44610
23482         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
23483         address if the offset is unknown.
23484
23485 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
23486
23487         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
23488         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
23489         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
23490         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
23491         to ia64_start_function. Invoke it.
23492         * config/ia64/ia64.c (ia64_start_function): Call new function
23493         dwarf2out_vms_debug_main_pointer.
23494
23495 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23496
23497         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
23498         statements computing the true predicate.
23499
23500 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23501
23502         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
23503         to boolean_true_node.
23504         (reset_bb_predicate): New.
23505         (predicate_bbs): Call reset_bb_predicate.
23506
23507 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23508
23509         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
23510         (tree_if_conversion): Returns true when something has been changed.
23511         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
23512         changed something.
23513
23514 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23515
23516         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
23517         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
23518         * tree-if-conv.c: Include dbgcnt.h.
23519         (tree_if_conversion): Use if_conversion_tree to count the number of
23520         if-convertible loops.
23521
23522 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
23523
23524         * common.opt (fprefetch-loop-arrays): Re-define
23525         -fprefetch-loop-arrays as a tri-state option with the initial
23526         value of -1.
23527         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
23528         pass only when flag_prefetch_loop_arrays > 0.
23529         * toplev.c (process_options): Note that, with tri-states,
23530         flag_prefetch_loop_arrays>0 means prefetching is enabled.
23531         * config/i386/i386.c (override_options): Enable prefetching at -O3
23532         for a set of CPUs that sw prefetching is helpful.
23533         (software_prefetching_beneficial_p): New.  Return TRUE if software
23534         prefetching is beneficial for the given CPU.
23535
23536 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
23537
23538         PR rtl-optimization/44326
23539         * implicit-zee.c (find_removable_zero_extends): Replace
23540         INSN_P with NONDEBUG_INSN_P.
23541
23542 2010-06-25  Martin Jambor  <mjambor@suse.cz>
23543
23544         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
23545         (struct ipa_node_params): Removed the modification_analysis_done flag.
23546         (ipa_is_param_modified): Removed.
23547         (ipa_analyze_node): Declare.
23548         (ipa_compute_jump_functions): Remove declaration.
23549         (ipa_count_arguments): Likewise.
23550         (ipa_detect_param_modifications): Likewise.
23551         (ipa_analyze_params_uses): Likewise.
23552         * ipa-prop.c (struct param_analysis_info): New type.
23553         (visit_store_addr_for_mod_analysis): Removed.
23554         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
23555         moved down in the file.
23556         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
23557         (ipa_count_arguments): Made static.
23558         (mark_modified): New function.
23559         (is_parm_modified_before_call): New function.
23560         (compute_pass_through_member_ptrs): New parameter parms_info, call
23561         is_parm_modified_before_call instead of ipa_is_param_modified.
23562         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
23563         it to compute_pass_through_member_ptrs.
23564         (ipa_compute_jump_functions): New parameter parms_info, pass it to
23565         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
23566         on the callee if it is analyzed.  Made static.
23567         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
23568         is_parm_modified_before_call instead of ipa_is_param_modified.
23569         (ipa_analyze_call_uses): New parameter parms_info, pass it to
23570         ipa_analyze_indirect_call_uses.
23571         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
23572         ipa_analyze_call_uses.
23573         (ipa_analyze_params_uses): New parameter parms_info, pass it to
23574         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
23575         (ipa_analyze_node): New function.
23576         (ipa_print_node_params): Do not dump the modified flag.
23577         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
23578         it.  Do not stream the modified parameter flag.
23579         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
23580         it.  Do not stream the modified parameter flag.
23581         * ipa-cp.c (ipcp_analyze_node): Removed.
23582         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
23583         with only a call to ipa_analyze_node.
23584         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
23585         node with only a call to ipa_analyze_node.
23586
23587 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23588
23589         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
23590
23591 2010-06-25  Jan Hubicka  <jh@suse.cz>
23592
23593         * tree-pass.h (pass_split_functions): Declare.
23594         * opts.c (decode_options): Enable function splitting at -O2
23595         * timevar.def (TV_IPA_FNSPLIT): New macro.
23596         * ipa-split.c: New file.
23597         * common.opt (-fpartial-inlining): New flag.
23598         * Makefile.in (ipa-split.o): New object file.
23599         * passes.c (init_optimization_passes): Add ipa-split.
23600         * params.def (partial-inlining-entry-probability): New parameters.
23601         * doc/invoke.texi (-fpartial-inlining): New.
23602
23603 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23604
23605         PR 44665
23606         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
23607         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
23608         (gimplify_expr): Likewise.
23609
23610 2010-06-25  Martin Jambor  <mjambor@suse.cz>
23611
23612         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
23613         statements instead of bailing out on them.
23614         (ipa_analyze_indirect_call_uses): Do not require that loads from the
23615         parameter are in the same BB as the condition.  Update comments.
23616
23617 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
23618
23619         PR middle-end/43866
23620         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
23621         true or always false, return NULL_TREE.
23622         (tree_unswitch_single_loop): Optimize conditions even when reaching
23623         max-unswitch-level parameter.  If num > 0, optimize first all conditions
23624         using entry checks, then do still reachable block discovery and consider
23625         only conditions in still reachable basic blocks in the loop.
23626
23627         PR tree-optimization/44539
23628         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
23629         the call doesn't have LHS, but has VDEF.
23630
23631 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
23632
23633         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
23634         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
23635         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
23636         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
23637         * system.h (MODIFY_TARGET_NAME): Poison.
23638
23639 2010-06-25  Alan Modra  <amodra@gmail.com>
23640
23641         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
23642         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
23643         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
23644         CMODEL_LARGE as default.
23645         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
23646         (offsettable_ok_by_alignment): Delete.
23647         (rs6000_emit_move): Remove mcmodel=medium optimization.
23648
23649 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
23650
23651         With large parts from Jim Wilson:
23652         PR target/43902
23653         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
23654         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
23655         * optabs.c (optab_for_tree_code): Likewise.
23656         (expand_widen_pattern_expr): Likewise.
23657         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
23658         out of execute_optimize_widening_mul.
23659         (convert_plusminus_to_widen): New function.
23660         (execute_optimize_widening_mul): Use the two new functions.
23661         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
23662         Remove code to generate widening multiply-accumulate.  Add support
23663         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
23664         * gimple-pretty-print.c (dump_ternary_rhs): New function.
23665         (dump_gimple_assign): Call it when appropriate.
23666         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
23667         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
23668         (expand_gimple_stmt_1): Likewise.
23669         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
23670         WIDEN_MULT_MINUS_EXPR.
23671         * tree-ssa-operands.c (get_expr_operands): Likewise.
23672         * tree-inline.c (estimate_operator_cost): Likewise.
23673         * gimple.c (extract_ops_from_tree_1): Renamed from
23674         extract_ops_from_tree.  Add new arg for a third operand; fill it.
23675         (gimple_build_assign_stat): Support operations with three operands.
23676         (gimple_build_assign_with_ops_stat): Likewise.
23677         (gimple_assign_set_rhs_from_tree): Likewise.
23678         (gimple_assign_set_rhs_with_ops_1): Renamed from
23679         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
23680         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
23681         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
23682         WIDEN_MULT_MINUS_EXPR.
23683         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
23684         (extract_ops_from_tree_1): Adjust declaration.
23685         (gimple_assign_set_rhs_with_ops_1): Likewise.
23686         (gimple_build_assign_with_ops): Pass NULL for last operand.
23687         (gimple_build_assign_with_ops3): New macro.
23688         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
23689         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
23690         functions.
23691         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
23692         (verify_gimple_assign): Call it.
23693         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
23694         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
23695         functions for dealing with three-operand statements.
23696         * tree.c (commutative_ternary_tree_code): New function.
23697         * tree.h (commutative_ternary_tree_code): Declare it.
23698         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
23699         ternary statements.
23700         (gimple_assign_nonzero_warnv_p): Likewise.
23701         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
23702         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
23703         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
23704         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
23705         (struct hashtable_expr): New member ternary in the union.
23706         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
23707         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
23708         (iterative_hash_hashable_expr): Likewise.
23709         (print_expr_hash_elt): Handle EXPR_TERNARY.
23710         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
23711         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
23712         statements.  Handle GIMPLE_TERNARY_RHS.
23713
23714 2010-06-25  Jan Hubicka  <jh@suse.cz>
23715
23716         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
23717
23718 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
23719
23720         PR c/44517
23721         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
23722         parameters are not good.
23723         (c_parser_parameter_declaration): Error unknown type name if the type
23724         name can't start declaration specifiers.
23725
23726 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
23727
23728         * gcc.c (translate_options): Don't mention +e in comment.
23729         (process_command): Don't handle +e specially.
23730
23731 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
23732
23733         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
23734
23735         * ira-build.c (merge_hard_reg_conflicts): New function.
23736         (create_cap_allocno, copy_info_to_removed_store_destinations,
23737         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
23738         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
23739         (remove_unnecessary_allocnos, remove_low_level_allocnos)
23740         copy_nifo_to_removed_store_destination): Use them.
23741         * ira-lives.c (make_hard_regno_born): New function, split out of
23742         make_regno_born.
23743         (make_allocno_born): Likewise.
23744         (make_hard_regno_dead): New function, split out of make_regno_dead.
23745         (make_allocno_dead): Likewise.
23746         (inc_register_pressure): New function, split out of set_allocno_live.
23747         (dec_register_pressure): New function, split out of clear_allocno_live.
23748         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
23749         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
23750         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
23751         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
23752         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
23753         mark_pseudo_regno_live.
23754         (process_bb_node_lives): Use mark_pseudo_regno_live,
23755         make_hard_regno_born and make_allocno_dead.
23756         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
23757         set_allocno_live, clear_allocno_live): Delete functions.
23758
23759         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
23760         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
23761         functions.
23762         (ira_flattening): Use ira_parent_allocno.
23763         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
23764         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
23765
23766         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
23767         statement.
23768
23769         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
23770         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
23771         minmax_set_iter_cond, minmax_set_iter_next,
23772         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
23773         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
23774         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
23775         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
23776         uses changed.
23777
23778         * ira-int.h (struct live_range, live_range_t): Renamed from struct
23779         ira_allocno_live_range and allocno_live_range_t; all uses changed.
23780         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
23781         All uses changed.
23782
23783 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
23784
23785         * thumb2.md (thumb2_tlobits_cbranch): Delete.
23786         (peephole2 to convert zero_extract/compare of single bit to
23787          lshift/compare): New.
23788
23789 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
23790
23791         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
23792         recursive call and call to 'int_const_binop'.
23793         (build_range_check, fold_cond_expr_with_comparison, unextend,
23794         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
23795         multiple_of_p): Adjust call to const_binop.
23796
23797 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
23798
23799         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
23800         determine size of XFmode operand.
23801         (XFmode extended DFmode push splitter): Ditto.
23802         (XFmode extended SFmode push splitter): Ditto.
23803
23804 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
23805
23806         PR target/44588
23807         * config/i386/i386.md (extract_code): New.
23808         (<u>divmodqi4): Likewise.
23809         (divmodhiqi3): Likewise.
23810         (udivmodhiqi3): Likewise.
23811         (<u>divqi3): Remvoved.
23812
23813 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
23814
23815         PR middle-end/44492
23816         * recog.h (struct recog_data): Add is_asm field.
23817         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
23818         present in constraints of inline-asm operand and memory operand
23819         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
23820         (extract_insn): Initialize recog_data.is_asm.
23821         * doc/md.texi (Constraints): Document operand side-effect rules.
23822
23823 2010-06-24  Andi Kleen  <ak@linux.intel.com>
23824
23825         * c-parser.c (c_parser_conditional_expression): Call
23826         warn_for_omitted_condop.
23827         * doc/invoke.texi: Document omitted condop warning.
23828
23829 2010-06-24  Nick Clifton<nickc@redhat.com>
23830
23831         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
23832         insn in the sequence is a jump insn before setting its label.
23833
23834 2010-06-24  Alan Modra  <amodra@gmail.com>
23835
23836         * collect2.c (main): Match exactly --version and --help.
23837
23838 2010-06-24  DJ Delorie  <dj@redhat.com>
23839
23840         * config/m32c/m32c-pragma.c: Don't include rtl.h.
23841
23842 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
23843
23844         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
23845         using X87MODEF mode iterator.
23846         (pushsf splitter): Macroize splitter using P mode iterator.
23847         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
23848         mode iterator.
23849
23850         (*movxf_internal): Rename from *movxf_integer.
23851         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
23852         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
23853         (*movdf_internal): Rename from *movdf_integer.
23854         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
23855         (*movsf_internal): Rename from *movdf_1.
23856
23857 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
23858
23859         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
23860         (const_gimple_seq_node): Removed typedefs.
23861
23862         * gimple.h (gimple_seq_node_d, gimple_seq_node)
23863         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
23864
23865 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
23866
23867         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
23868         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
23869         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
23870         and CODE_FOR_vec_extract_lo_v4df.
23871
23872         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
23873         Changed to define_insn_and_split.
23874         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
23875         (vec_extract_lo_v16hi): Likewise.
23876         (vec_extract_lo_v32qi): Likewise.
23877         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
23878         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
23879
23880 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
23881
23882         PR target/44640
23883         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
23884         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
23885         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
23886         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
23887         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
23888
23889         PR target/44640
23890         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
23891
23892         PR other/44644
23893         * df-core.c (struct df): Rename to df_d.
23894         * df.h (struct df): Likewise.
23895         * dse.h (struct df): Remove forward declaration.
23896         * recog.h (struct insn_data): Rename to:
23897         (struct_insn_data_d).  Adjusted all users.
23898
23899 2010-06-23  Arnaud Charlet  <charlet@adacore.com
23900
23901         PR ada/22220
23902         * doc/install.texi: Update requirements to build GNAT.
23903
23904 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
23905
23906         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
23907         enum type.
23908         (m68k_sched_attr_opx_type): Remove unreachable return.
23909         (m68k_sched_attr_opy_type): Likewise.
23910         (m68k_sched_attr_size): Likewise.
23911         (sched_get_opxy_mem_type): Likewise.
23912         (m68k_sched_attr_op_mem): Likewise.
23913
23914 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
23915
23916         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
23917         new statement and adjust VDEF only if necessary.  Remove superfluous
23918         call to maybe_clean_or_replace_eh_stmt.
23919         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
23920         copy the flags.
23921         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
23922         * tree-inline.c (copy_bb): ...and not there.
23923
23924 2010-06-22  Cary Coutant  <ccoutant@google.com>
23925
23926         * dwarf2out.c (is_nested_in_subprogram): New function.
23927         (should_move_die_to_comdat): Use it.
23928         (copy_ancestor_tree): Don't mark DIEs here.
23929         (copy_decls_walk): Start walk from root of newly-added tree;
23930         mark DIEs here instead.
23931
23932 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
23933
23934         * config/i386/i386.md (unit): Also check sseishft1.
23935
23936 2010-06-22  Jan Hubicka  <jh@suse.cz>
23937
23938         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
23939         enabled.
23940
23941 2010-06-22  Jan Hubicka  <jh@suse.cz>
23942
23943         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
23944         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
23945         Return true if something changed.
23946         * df.h (df_confluence_function_n): Return bool.
23947         * df-core.c (df_worklist_propagate_forward,
23948         df_worklist_propagate_backward): Track changes and ages.
23949         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
23950         track ages.
23951         * dse.c (dse_confluence_n): Return always true.
23952
23953 2010-06-22  Jan Hubicka  <jh@suse.cz>
23954
23955         * bitmap.c (bitmap_clear_bit): Micro optimize.
23956
23957 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
23958
23959         * config/i386/i386.md (SWI1248x): New mode iterator.
23960         (SWI48x): Ditto.
23961         (SWI12): Ditto.
23962         (SWI24): Ditto.
23963
23964         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
23965         SWI1248x mode iterator.
23966         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
23967         using SWI124 mode iterator.
23968         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
23969         mode iterator.
23970         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
23971         *pushdi2_prologue_rex64 using P mode iterator.
23972         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
23973         using SWI48 mode iterator.
23974         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
23975         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
23976         using SWI1248x mode iterator.
23977         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
23978         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
23979         SWI48 mode iterator.
23980         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
23981         iterator.
23982         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
23983         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
23984         SWI12 mode iterator.
23985         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
23986         SWI12 mode iterator.
23987         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
23988         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
23989         SWI24 mode iterator.
23990         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
23991         SWI48 mode iterator.
23992         (mov<mode>_insn_1): New expander.
23993         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
23994         using SWI48x mode iterator.
23995
23996         (*movoi_internal_avx): Rename from *movoi_internal.
23997         (*movti_internal_rex64): Rename from *movti_rex64.
23998         (*movti_internal_sse): Rename from *movti_sse.
23999         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
24000         (*movdi_internal): Rename from *movdi_2.
24001         (*movsi_internal): Rename from *movsi_1.
24002         (*movhi_internal): Rename from *movhi_1.
24003         (*movqi_internal): Rename from *movqi_1.
24004
24005         (insv): Update the call to gen_movsi_insv_1 for rename.
24006         * config/i386/i386.c (promote_duplicated_reg): Ditto.
24007
24008 2010-06-22  Jan Hubicka  <jh@suse.cz>
24009
24010         * passes.c (execute_function_todo): Move call of statistics_fini_pass
24011         to ...
24012         (execute_todo) ... this one.
24013
24014 2010-06-22  Alan Modra  <amodra@gmail.com>
24015
24016         PR target/44364
24017         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
24018         * caller-save.c (insert_restore, insert_save): Use non-validate
24019         form of adjust_address.
24020
24021 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24022
24023         PR target/39690
24024         * config/pa/pa.c (override_options): Disable
24025         -freorder-blocks-and-partition.
24026
24027 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
24028
24029         PR target/44615
24030         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
24031
24032         * config/i386/i386.md (type): Add sseishft1
24033
24034         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
24035         (ppro_insn_load): Likewise.
24036         (ppro_insn_store): Likewise.
24037         (ppro_insn_both): Likewise.
24038
24039         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
24040         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
24041         for type.
24042         (*vec_extractv2di_1_avx): Likewise.
24043         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
24044         type.  Remove atom_unit.
24045         (*vec_extractv2di_1_sse2): Likewise.
24046
24047 2010-06-21  DJ Delorie  <dj@redhat.com>
24048
24049         * diagnostic.h (diagnostic_classification_change_t): New.
24050         (diagnostic_context): Add history and push/pop list.
24051         (diagnostic_push_diagnostics): Declare.
24052         (diagnostic_pop_diagnostics): Declare.
24053         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
24054         from pragmas in a history chain instead of the global table.
24055         (diagnostic_push_diagnostics): New.
24056         (diagnostic_pop_diagnostics): New.
24057         (diagnostic_report_diagnostic): Scan history chain to find state
24058         of diagnostics as of the diagnostic location.
24059         * opts.c (set_option): Pass UNKNOWN_LOCATION to
24060         diagnostic_classify_diagnostic.
24061         (enable_warning_as_error): Likewise.
24062         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
24063         use in the history chain.
24064         * doc/extend.texi: Document pragma GCC diagnostic changes.
24065
24066 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
24067
24068         * dwarf2out.c (add_linkage_name): New function.  Don't add
24069         anything to DW_TAG_member DIEs.
24070         (add_name_and_src_coords_attributes): Use it.
24071         (gen_variable_die): Call it for C++ static data members if
24072         specification is DW_TAG_member.
24073
24074         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
24075         C++ char16_t and char32_t.
24076
24077         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
24078         * genattrtab.c: Include vecprim.h.
24079         (cached_attrs, cached_attr_count, attrs_seen_once,
24080         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
24081         attrs_cached_after): New variables.
24082         (find_attrs_to_cache): New function.
24083         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
24084         (write_test_expr): Add attrs_cached argument, return it too,
24085         attempt to cache non-const attributes used more than once in
24086         a single case handling.
24087         (write_attr_get): Use find_attrs_to_cache, for caching candidates
24088         emit cached_* variables.  Adjust write_attr_set callers.
24089         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
24090         to find attributes that should be cached in this block.  Adjust
24091         write_test_expr callers.
24092         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
24093         callers.
24094         (make_automaton_attrs): Adjust write_test_expr caller.
24095
24096         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
24097         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
24098         (make_automaton_attrs): If find_tune_attr returns non-NULL,
24099         write separate internal_dfa_insn_code_* and insn_default_latency_*
24100         functions for each attribute's value and emit init_sched_attrs
24101         function and function pointers.
24102         * genattr.c (const_attrs, reservations): New variables.
24103         (gen_attr): Add const attributes to const_attrs vector.
24104         (check_tune_attr, find_tune_attr): New functions.
24105         (main): Add reservations to reservations vector.  If find_tune_attr
24106         returns true, add prototype for init_sched_attrs and make
24107         internal_dfa_insn_code and insn_default_latency function pointers,
24108         otherwise define init_sched_attrs as dummy macro.
24109         * cfgexpand.c: Include insn-attr.h.
24110         (gimple_expand_cfg): Call init_sched_attrs.
24111
24112         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
24113
24114         PR target/44575
24115         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
24116         va_arg from a set of register save slots into a temporary,
24117         if the container is bigger than type size, do the copying
24118         using smaller mode or using memcpy.
24119
24120         PR bootstrap/44426
24121         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
24122         prototype.
24123         (sel_print_to_dot): Remove macro.
24124         (sel_print): Likewise.  New prototype.
24125         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
24126         (sel_print): New function.
24127
24128 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24129
24130         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
24131         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
24132
24133 2010-06-21  Nick Clifton  <nickc@redhat.com>
24134
24135         * config/rx/rx.h (PTRDIFF_TYPE): Define.
24136         (SMALL_REGISTER_CLASS): Define (to zero).
24137         (PRINT_OPERAND): Delete.
24138         (PRINT_OPERAND_ADDRESS): Delete.
24139         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
24140         (rx_print_operand_address): Delete prototype.
24141         * config/rx/rx.c (rx_print_operand): Make static.
24142         Allow %H and %L to handle CONST_DOUBLEs.
24143         (rx_print_operand_address): Make static.
24144         (rx_gen_move_template): Rename local variable 'template' to
24145         out_template.
24146         (rx_function_arg): Do not pass unknown sized objects in registers.
24147         (TARGET_PRINT_OPERAND): Define.
24148         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24149
24150 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
24151
24152         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
24153
24154 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
24155
24156         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
24157         stack-alignment for simple leaf-functions.
24158
24159 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
24160
24161         * doc/install.texi: Document bootstrap-lto.
24162
24163 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
24164
24165         PR debug/44248
24166         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
24167         (input_function): Drop them here, if VTA is disabled.
24168
24169 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
24170
24171         PR target/44546
24172         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
24173         New predicate.
24174         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
24175         ix86_swapped_fp_comparsion_operator instead of
24176         ix86_fp_comparison_operator.
24177
24178         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
24179         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
24180         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
24181         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
24182         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
24183         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
24184
24185 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
24186
24187         PR other/32998
24188         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
24189         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
24190         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
24191         (decode_cmdline_option): Update for this return value.  Set
24192         orig_option_with_args_text field.  Set arg field for unknown
24193         options.  Make static.
24194         (decode_cmdline_options_to_array): New.
24195         (prune_options): Update handling of find_opt return value.
24196         * opts.c (read_cmdline_option): Take decoded option.  Return void.
24197         (read_cmdline_options): Take decoded options.
24198         (decode_options): Add parameters for decoded options.  Use
24199         decode_cmdline_options_to_array.  Use decoded options for -O
24200         scan.  Use integral_argument for -O parameters.  Update call to
24201         read_cmdline_options.
24202         (enable_warning_as_error): Update handling of find_opt return value.
24203         * opts.h: Update comment on unknown options.
24204         (struct cl_decoded_option): Update comments on opt_index and arg.
24205         Add orig_option_with_args_text.
24206         (decode_cmdline_option): Remove.
24207         (decode_cmdline_options_to_array): Declare.
24208         (decode_options): Update prototype.
24209         * toplev.c (save_argv): Remove.
24210         (save_decoded_options, save_decoded_options_count): New.
24211         (read_integral_parameter): Remove.
24212         (print_switch_values): Use decoded options.
24213         (toplev_main): Don't set save_argv.  Update call to decode_options.
24214         * toplev.h (read_integral_parameter): Remove.
24215         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
24216
24217 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
24218
24219         PR target/44072
24220         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
24221         immediate.
24222         * constraints.md (Pw, Px): New constraints.
24223         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
24224
24225 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
24226
24227         * config/i386/sse.md (fma4modesuffixf4): Removed.
24228         (ssemodesuffixf2s): Likewise.
24229         (ssemodesuffixf4): Likewise.
24230         (ssemodesuffixf2c): Likewise.
24231         (ssescalarmodesuffix2s): Likewise.
24232         (avxmodesuffixf2c): Likewise.
24233         (ssemodesuffix): New.
24234         (ssescalarmodesuffix): Likewise.
24235         Update patterns with ssemodesuffix and ssescalarmodesuffix.
24236
24237 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
24238
24239         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
24240
24241 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
24242
24243         * stor-layout.c (debug_rli): Remove unused local variables.
24244
24245 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
24246
24247         PR rtl-optimization/40900
24248         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
24249         original expression for later reuse.
24250         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
24251         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
24252
24253 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
24254
24255         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
24256         double_int_fits_in_uhwi_p): Implement as static inline.
24257         (double_int_xor): New inline function.
24258         (double_int_lrotate, double_int_rrotate, double_int_max,
24259         double_int_umax, double_int_smax, double_int_min, double_int_umin,
24260         double_int_smin): Declare.
24261         (lrotate_double, rrotate_double): Remove declaration.
24262         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
24263         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
24264         (double_int_lrotate, double_int_rrotate, double_int_max,
24265         double_int_umax, double_int_smax, double_int_min, double_int_umin,
24266         double_int_smin): New function.
24267         * fold-const.c (int_const_binop): Clean up, use double_int_*
24268         functions.
24269         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
24270         double_int_* and immed_double_int_const functions.
24271
24272 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
24273
24274         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
24275         * function.c (types_used_by_cur_var_decl): Likewise.
24276         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
24277
24278 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
24279
24280         * tree.h (record_layout_info): Change type of pending_statics field
24281         to a VEC.
24282         * stor-layout.c (start_record_layout): Store NULL into
24283         pending_statics.
24284         (debug_rli): Call debug_vec_tree instead of debug_tree.
24285         (place_field): Likewise.
24286         (finish_record_layout): Likewise.
24287
24288 2010-06-18  Alan Modra  <amodra@gmail.com>
24289
24290         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
24291
24292 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24293
24294         PR target/43740
24295         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
24296         for SET source operand from SET destination operand.
24297
24298 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
24299
24300         PR rtl-optimization/39871
24301         * reload1.c (init_eliminable_invariants): For flag_pic, disable
24302         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
24303         (function_invariant_p): Rule out a plus of frame or arg pointer with
24304         a SYMBOL_REF.
24305         * ira.c (find_reg_equiv_invariant_const): Likewise.
24306
24307 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
24308
24309         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
24310         print_operand_address and puts to output the operand for CONST.
24311
24312 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
24313
24314         PR debug/44572
24315         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
24316         hook.
24317
24318 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24319
24320         * v850-protos.h (print_operand): Delete.
24321         (print_operand_address): Delete.
24322         * v850.h (PRINT_OPERAND): Delete.
24323         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24324         (PRINT_OPERAND_ADDRESS): Delete.
24325         * v850.c (print_operand_address): Rename to...
24326         (v850_print_operand_address): ...this.  Make static. Call
24327         v850_print_operand.
24328         (print_operand): Rename to...
24329         (v850_print_operand): ...this.  Make static.  Call
24330         v850_print_operand_address.
24331         (v850_print_operand_punct_valid_p): New function.
24332         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24333         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24334
24335 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24336
24337         * config/sh/sh-protos.h (print_operand): Delete.
24338         (print_operand_address): Delete.
24339         * config/sh/sh.h (PRINT_OPERAND): Delete.
24340         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24341         (PRINT_OPERAND_ADDRESS): Delete.
24342         * config/sh/sh.c (sh_print_operand_address): Make static.
24343         (sh_print_operand): Make static.  Call sh_print_operand_address
24344         and sh_print_operand.
24345         (sh_print_operand_punct_valid_p): New function.
24346         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24347         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24348
24349 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24350
24351         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
24352         (mcore_print_operand_address): Delete.
24353         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
24354         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24355         (PRINT_OPERAND_ADDRESS): Delete.
24356         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
24357         (mcore_print_operand): Make static.
24358         (mcore_print_operand_punct_valid_p): New function.
24359         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
24360         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24361
24362 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24363
24364         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
24365         (print_operand_address): Delete.
24366         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
24367         (PRINT_OPERAND_ADDRESS): Delete.
24368         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
24369         static.
24370         (m68hc11_print_operand): Make static.
24371         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24372
24373 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24374
24375         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
24376         (m32r_print_operand_address): Delete.
24377         * config/m32r/m32r.h (m32r_punct_chars): Delete.
24378         (PRINT_OPERAND): Delete.
24379         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24380         (PRINT_OPERAND_ADDRESS): Delete.
24381         * config/m32r/m32r.c (m32r_punct_chars): Make static.
24382         (m32r_print_operand_address): Make static.
24383         (m32r_print_operand): Make static.
24384         (m32r_print_operand_punct_valid_p): New function.
24385         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24386         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24387
24388 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24389
24390         * config/iq2000/iq2000-protos.h (print_operand): Delete.
24391         (print_operand_address): Delete.
24392         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
24393         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24394         (PRINT_OPERAND_ADDRESS): Delete.
24395         (iq2000_print_operand_punct): Delete.
24396         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
24397         (iq2000_print_operand_address): Make static.
24398         (iq2000_print_operand): Make static.
24399         (iq2000_print_operand_punct_valid_p): New function.
24400         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24401         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24402
24403 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24404
24405         * config/frv/frv-protos.h (frv_print_operand): Delete.
24406         (frv_print_operand_address): Delete.
24407         * config/frv/frv.h (PRINT_OPERAND): Delete.
24408         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24409         (PRINT_OPERAND_ADDRESS): Delete.
24410         * config/frv/frv.c (frv_print_operand_address): Make static.
24411         (frv_print_operand): Make static.
24412         (frv_print_operand_punct_valid_p): New function.
24413         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24414         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24415
24416 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24417
24418         * tree.h (vec_member): Declare.
24419         * tree.c (vec_member): Define.
24420
24421 2010-06-17  Richard Guenther  <rguenther@suse.de>
24422
24423         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
24424         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
24425
24426 2010-06-17  Richard Guenther  <rguenther@suse.de>
24427
24428         * tree-inline.c (declare_return_variable): Remove bogus code.
24429
24430 2010-06-17  Richard Guenther  <rguenther@suse.de>
24431
24432         * gimplify.c (gimplify_bind_expr): Always promote complex
24433         and vector variables to registers if possible.
24434
24435 2010-06-17  Richard Guenther  <rguenther@suse.de>
24436
24437         * expr.c (get_inner_reference): Use double_int for bit_offset
24438         calculation.
24439
24440 2010-06-16  DJ Delorie  <dj@redhat.com>
24441
24442         * common.opt (-fstrict-volatile-bitfields): new.
24443         * doc/invoke.texi: Document it.
24444         * fold-const.c (optimize_bit_field_compare): For volatile
24445         bitfields, use the field's type to determine the mode, not the
24446         field's size.
24447         * expr.c (expand_assignment): Likewise.
24448         (get_inner_reference): Likewise.
24449         (expand_expr_real_1): Likewise.
24450         * expmed.c (store_fixed_bit_field): Likewise.
24451         (extract_bit_field_1): Likewise.
24452         (extract_fixed_bit_field): Likewise.
24453
24454 2010-06-16  Richard Guenther  <rguenther@suse.de>
24455
24456         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
24457
24458 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
24459
24460         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
24461         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
24462         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
24463         * debug.c: Likewise.
24464         * sdbout.c: Likewise.
24465         * vmsdbgout.c: Likewise.
24466         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
24467         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
24468         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
24469         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
24470         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
24471         * dwarf2out.c (dw_fde_struct): New fields
24472         dw_fde_vms_{end,begin}_prologue.
24473         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
24474         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
24475         (dwarf2out_vms_end_prologue): New function.
24476         (dwarf2out_vms_begin_epilogue): New function.
24477         (dw_val_struct): New value dw_val_class_vms_delta.
24478         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
24479         begin_epilogue for VMS.
24480         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
24481         new static functions.
24482         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
24483         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
24484         static functions.
24485         (print_die): New case dw_val_class_vms_delta.
24486         (attr_checksum): Likewise.
24487         (same_dw_val_p: Likewise.
24488         (size_of_die): Likewise.
24489         (value_format): Likewise.
24490         (output_die): Likewise.
24491         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
24492         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
24493         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
24494         dwarf2out_cfi_begin_epilogue
24495         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
24496
24497 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
24498
24499         * config/cris/cris-protos.h (cris_print_operand): Delete.
24500         (cris_print_operand_address): Delete.
24501         * config/cris/cris.h (PRINT_OPERAND): Delete.
24502         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24503         (PRINT_OPERAND_ADDRESS): Delete.
24504         * config/cris/cris.c (cris_print_operand_address): Make static.
24505         (cris_print_operand): Make static.
24506         (cris_print_operand_punct_valid_p): New function.
24507         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24508         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24509
24510 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
24511
24512         * config/arm/arm-protos.h (arm_print_operand): Delete.
24513         (arm_print_operand_address): Delete.
24514         * config/arm/arm.h (PRINT_OPERAND): Delete.
24515         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24516         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
24517         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
24518         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
24519         (arm_print_operand): Make static.
24520         (arm_print_operand_punct_valid_p): New function.
24521         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24522         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24523
24524 2010-06-16  Nick Clifton  <nickc@redhat.com>
24525
24526         * config/rx/constraints.md (NEGint4): New constraint.
24527         * config/rx/rx.md (attr cc): Add set_zsc.
24528         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
24529         initialised.
24530         (cmpsf): Likewise.
24531         (call_internal): Clobber the cc0 register.
24532         (call_value_internal): Likewise.
24533         (cstoresi4): Likewise.
24534         (movsieq): Likewise.
24535         (movsine): Likewise.
24536         (addsi3): Add alternative to handle small negative constants.
24537         (sunsi3): Likewise.
24538         (addsi3): Do not set the O bit in the cc0 register.
24539         (adddi3): Likewise.
24540         (subsi3): Likewise.
24541         (subdi3): Likewise.
24542         (andsi3): Reorder alternatives to prefer shorter forms.
24543         (mulsi3): Likewise.
24544         (iorsi3): Likewise.
24545         (negsi2): Note that the cc0 flags are set.
24546         (rotlsi3): Note that only the Z and S bits are set in cc0.
24547         (lshrsi3): Likewise.
24548         (ashlsi3): Likewise.
24549         (subsf3): Use %Q for the MEM operand.
24550         (fix_truncsfsi2): Likewise.
24551         (floatsisf2): Likewise.
24552         (bitset): Remove early clobber from destination.
24553         (bitset_in_memory): Likewise.
24554         (lrintsf2): Clobber the cc0 register.
24555         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
24556         (rx_print_operand): Handle %N.
24557
24558 2010-06-16  Jan Hubicka  <jh@suse.cz>
24559
24560         * df-core.c (df_compact_blocks): Free problem_temps vector.
24561
24562 2010-06-16  Martin Jambor  <mjambor@suse.cz>
24563
24564         PR tree-optimization/43905
24565         * tree-sra.c: Include tree-inline.h.
24566         (create_abstract_origin): Removed.
24567         (modify_function): Version the call graph node instead of creating
24568         abstract origins and dealing with same_body aliases.
24569         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
24570         function is versionable.
24571         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
24572
24573 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
24574
24575         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
24576         (CHOOSE_DYNAMIC_LINKER): Update.
24577
24578 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
24579
24580         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
24581         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
24582         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
24583         *prefetch_3dnow_rex.
24584
24585 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
24586
24587         * target.h (struct asm_out):Add declare_constant_name field.
24588         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
24589         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
24590         * output.h (default_asm_declare_constant_name): Declare.
24591         (assemble_label): Update prototype.
24592         * varasm.c (assemble_constant_contents): Use
24593         targetm.asm_out.declare_constant_name target hook.
24594         (assemble_label): Add 'file' argument.
24595         (default_asm_declare_constant_name): New function.
24596         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
24597         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
24598         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
24599
24600         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
24601         * config/darwin.c (darwin_asm_declare_constant_name): New function.
24602         (machopic_output_indirection): Update assemble_label argument list.
24603         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
24604         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
24605
24606 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
24607
24608         PR middle-end/44391
24609         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
24610         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
24611
24612 2010-06-15  Richard Guenther  <rguenther@suse.de>
24613
24614         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
24615
24616 2010-06-15  Paul Brook  <paul@codesourcery.com>
24617
24618         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
24619         hard-float ABI.
24620
24621 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
24622
24623         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
24624         don't get a vector type for output.
24625
24626 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
24627
24628         PR fortran/44536
24629         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
24630         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
24631         (LANG_HOOKS_DECLS): Add it.
24632         * gimplify.c (omp_notice_variable): Call
24633         lang_hooks.decls.omp_report_decl.
24634
24635 2010-06-15  Martin Jambor  <mjambor@suse.cz>
24636
24637         PR lto/44464
24638         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
24639         on the newly dead SSA name.
24640
24641 2010-06-15  Alan Modra  <amodra@gmail.com>
24642
24643         * doc/invoke.texi: Add mcmodel to powerpc options.
24644         * configure.ac: Add HAVE_LD_LARGE_TOC test.
24645         * configure: Regenerate.
24646         * config.in: Regenerate.
24647         * config/rs6000/linux64.opt (mcmodel): New.
24648         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
24649         (TARGET_CMODEL, SET_CMODEL): Define.
24650         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
24651         select CMODEL_MEDIUM default.
24652         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
24653         (TARGET_CMODEL): Define default.
24654         * config/rs6000/rs6000.c (cmodel): New variable.
24655         (rs6000_explicit_options): Add cmodel field.
24656         (rs6000_handle_option): Handle -mcmodel.
24657         (create_TOC_reference): Add largetoc_reg param.  Generate high,
24658         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
24659         (rs6000_delegitimize_address): Recognise new toc reference rtl
24660         and minimal-toc rtl.
24661         (rs6000_legitimize_reload_address): Handle new toc references.
24662         (print_operand_address): Handle legitimate_constant_pool_address_p
24663         match before lo_sum.
24664         (rs6000_eliminate_indexed_memrefs): Tidy.
24665         (rs6000_emit_move): Tweak threshold for inlining constants.
24666         Keep rs6000_emit_allocate_stack large stack frame offsets
24667         loaded into r0 inline.
24668         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
24669         (tocrel_base, tocrel_offset): New variables.
24670         (toc_relative_expr_p): Set them here.
24671         (print_operand_address): Skip over any offset on constant pool address.
24672         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
24673         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
24674         (offsettable_ok_by_alignment): New function.
24675         (rs6000_emit_move): Address suitably aligned local symbol_refs
24676         relative to the toc pointer for -mcmodel=medium.
24677         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
24678         strict param.  Allow lo_sum version of addressing.  Verify reg
24679         used for -mminimal-toc and -mcmodel != small.  Update all callers.
24680         * config/rs6000/constraints.md: Update for above change.
24681         * config/rs6000/predicates.md: Likewise.
24682         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
24683         code.
24684         (tls_gd): Split for -mcmodel=medium/large.
24685         (tls_gd_high, tls_gd_low): New.
24686         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
24687         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
24688         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
24689         (largetoc_high, largetoc_low): New.
24690         (cmptf_internal2): Add clobber.
24691         * config/rs6000/rs6000-protos.h: Update.
24692
24693 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
24694
24695         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
24696         true if no prefetch is going to be generated for a given group.
24697         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
24698         estimate the prefetch_count.
24699         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
24700         prefetch count by considering the unroll_factor and prefetch_mod
24701         for is_loop_prefetching_profitable.
24702
24703 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
24704
24705         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
24706         anything if the argument is not a MEM.
24707
24708 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
24709
24710         PR debug/43650
24711         PR debug/44181
24712         PR debug/44247
24713         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
24714         debug stmts.
24715         (canonicalize_loop_ivs): Likewise.
24716
24717 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
24718
24719         PR debug/43656
24720         * haifa-sched.c (setup_insn_reg_pressure_info,
24721         update_register_pressure): Reject debug insns.
24722         (ready_sort): Don't setup reg pressure for debug insns.
24723         (schedule_insn): Don't update reg pressure for debug insns.
24724
24725 2010-06-14  Richard Guenther  <rguenther@suse.de>
24726
24727         * lto-streamer.c (cached_bp): Remove.
24728         (bitpack_delete): Likewise.
24729         (bitpack_create): Likewise.
24730         (bp_get_next_word): Likewise.
24731         (bp_pack_value, bp_unpack_value): Move ...
24732         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
24733         Re-implement.
24734         (struct bitpack_d): Likewise.
24735         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
24736         New inline functions.
24737         * lto-streamer-out.c (lto_output_bitpack): Remove.
24738         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
24739         (pack_value_fields): Adjust.
24740         (lto_write_tree): Likewise.
24741         (output_gimple_stmt): Likewise.
24742         (output_function): Likewise.
24743         * lto-streamer-in.c (input_gimple_stmt): Adjust.
24744         (input_function): Likewise.
24745         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
24746         (lto_input_bitpack): Remove.
24747         (lto_materialize_tree): Adjust.
24748         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
24749         * lto-cgraph.c (lto_output_edge): Adjust.
24750         (lto_output_node): Likewise.
24751         (lto_output_varpool_node): Likewise.
24752         (lto_output_ref): Likewise.
24753         (input_node): Likewise.
24754         (input_varpool_node): Likewise.
24755         (input_ref): Likewise.
24756         (input_edge): Likewise.
24757         (output_node_opt_summary): Likewise.
24758         (input_node_opt_summary): Likewise.
24759         * ipa-pure-const.c (pure_const_write_summary): Likewise.
24760         (pure_const_read_summary): Likewise.
24761         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
24762         (ipa_read_indirect_edge_info): Likewise.
24763         (ipa_write_node_info): Likewise.
24764         (ipa_read_node_info): Likewise.
24765
24766 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
24767
24768         PR target/44534
24769         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
24770         (vec_extract_lo_v16hi): Likewise.
24771         (vec_extract_lo_v32qi): Likewise.
24772
24773 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
24774
24775         PR bootstrap/44426
24776         * tree.h (build_call_expr): Don't define as vararg macro, instead
24777         add a prototype.
24778         * builtins.c (build_call_nofold): Remove.
24779         (expand_builtin_int_roundingfn, expand_builtin_pow,
24780         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
24781         expand_builtin_memset_args, expand_builtin_strcmp,
24782         expand_builtin_strncmp, expand_builtin_memory_chk): Use
24783         build_call_nofold_loc instead of build_call_nofold.
24784         (build_call_expr): New function.
24785
24786         PR tree-optimization/44508
24787         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
24788         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
24789         don't eliminate trivially dead stmts.
24790         * tree-vrp.c (vrp_finalize): Pass false as last argument
24791         to substitute_and_fold.
24792         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
24793         to substitute_and_fold.
24794         * tree-ssa-ccp.c (ccp_finalize): Likewise.
24795
24796         PR bootstrap/44509
24797         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
24798
24799 2010-06-14  Ira Rosen  <irar@il.ibm.com>
24800
24801         PR tree-optimization/44507
24802         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
24803         to build initial vector for BIT_AND_EXPR.
24804         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
24805
24806 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
24807
24808         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
24809         adjust z10prop set_attr.
24810
24811 2010-06-13  Jan Hubicka  <jh@suse.cz>
24812
24813         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
24814         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
24815         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
24816         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
24817         datastructure checks into checking asserts.
24818         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
24819         * tree-ssa-sccvn.c (VN_INFO): Likewise.
24820         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
24821         df_ref_create_structure): Likewise.
24822         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
24823         pool_free): Use gcc_checking_assert.
24824         * alias.c (get_alias_set): Likewise.
24825         * var-tracking.c (variable_htab_free, shared_hash_copy,
24826         canonicalize_values_mark, variable_merge_over_cur): Likewise.
24827         * lto-streamer.c (bp_unpack_value): Likewise.
24828
24829 2010-06-13  Richard Guenther  <rguenther@suse.de>
24830
24831         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
24832         Do not stream but initialize TYPE_CANONICAL to NULL.
24833         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
24834         * gimple.c (gimple_types_compatible_p): Disregard
24835         TYPE_STRUCTURAL_EQUALITY_P.
24836         (gimple_register_type): Use TYPE_CANONICAL as cache.
24837         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
24838         before registering common types.
24839         * config/i386/i386.c (ix86_function_arg_boundary): Do not
24840         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
24841         * tree.h (TYPE_CANONICAL): Clarify documentation.
24842
24843 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
24844
24845         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
24846         LIBCALL_VALUE): Remove macros.
24847         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
24848         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24849         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24850         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
24851         (ia64_function_value): Make static. Handle receiving the function
24852         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
24853
24854 2010-06-12  Jan Hubicka  <jh@suse.cz>
24855
24856         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
24857         at correct place.
24858
24859 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
24860
24861         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
24862
24863 2010-06-12  Jan Hubicka  <jh@suse.cz>
24864
24865         * df-core.c (df_clear_bb_info): New function.
24866         (df_set_blocks): bb_info is always allocated.
24867         (df_get_bb_info): Use block_info_elt_size.
24868         (df_set_bb_info): Likewise.
24869         (df_compact_blocks): Update for new block_info.
24870         (grow_bb_info): New function.
24871         * df-problems.c (df_grow_bb_info): Move to df-core.c
24872         (df_rd_set_bb_info): Remove.
24873         (df_rd_free_bb_info): Do not free block pool.
24874         (df_rd_alloc): Do not create pool, use check for
24875         obstack presence instead of NULL pointer for new blocks.
24876         (df_rd_free): DO not free alloc pool; clear block_info.
24877         (problem_RD): Add size of block info structure.
24878         (df_lr_set_bb_info): Remove.
24879         (df_lr_free_bb_info): Do not free block pool.
24880         (df_lr_alloc): Do not create pool, use check for
24881         obstack presence instead of NULL pointer for new blocks.
24882         (df_lr_free): DO not free alloc pool; clear block_info.
24883         (problem_LR): Add size of block info structure.
24884         (df_live_set_bb_info): Remove.
24885         (df_live_free_bb_info): Do not free block pool.
24886         (df_live_alloc): Do not create pool, use check for
24887         obstack presence instead of NULL pointer for new blocks.
24888         (df_live_free): DO not free alloc pool; clear block_info.
24889         (problem_LIVE): Add size of block info structure.
24890         (problem_CHAIN): Add size of block info structure.
24891         (df_byte_lr_set_bb_info): Remove.
24892         (df_byte_lr_free_bb_info): Do not free block pool.
24893         (df_byte_lr_alloc): Do not create pool, use check for
24894         obstack presence instead of NULL pointer for new blocks.
24895         (df_byte_lr_free): DO not free alloc pool; clear block_info.
24896         (problem_BYTE_LR): Add size of block info structure.
24897         (problem_NOTE): Add size of block info structure.
24898         (df_byte_MD_set_bb_info): Remove.
24899         (df_byte_MD_free_bb_info): Do not free block pool.
24900         (df_byte_MD_alloc): Do not create pool, use check for
24901         obstack presence instead of NULL pointer for new blocks.
24902         (df_byte_MD_free): DO not free alloc pool; clear block_info.
24903         (problem_BD): Add size of block info structure.
24904         * df-scan.c (df_scan_free_internal): Free block pool.
24905         (df_scan_set_bb_info): Remove.
24906         (df_scan_free_bb_info): Check for artificial_defs instead
24907         of bb_info being non-NULL.
24908         (df_scan_alloc): DO not create df_scan_block pool.
24909         (problem_SCAN): Set size of block info.
24910         (df_bb_refs_record): Do not allocate bb_info.
24911         * df.h (df_problem): Add block_info_elt_size.
24912         (struct dataflow): Change block_info to void *.
24913         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
24914         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
24915         in-line structures.
24916
24917 2010-06-12  Jan Hubicka  <jh@suse.cz>
24918
24919         PR tree-optimize/44485
24920         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
24921         containing use of return value of noreturn function.
24922
24923 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
24924
24925         * targhooks.c (default_function_value): Don't use
24926         FUNCTION_OUTGOING_VALUE.
24927         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
24928         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
24929
24930 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
24931
24932         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
24933         Add crtfastmath.o to extra_parts.
24934         * config/mips/crtfastmath.c: New.
24935         * config/mips/linux.h (ENDFILE_SPEC): New.
24936
24937 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
24938
24939         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
24940         old_type in parameter.
24941         (gcc_type_for_value): Update call to gcc_type_for_interval.
24942         (compute_type_for_level_1): Renamed compute_type_for_level.
24943         Update call to gcc_type_for_interval.
24944
24945 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
24946
24947         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
24948         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
24949
24950 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
24951
24952         * opts-common.c: Include options.h.
24953         (integral_argument): Move from opts.c.
24954         (decode_cmdline_option): New.  Based on read_cmdline_option.
24955         * opts.c (integral_argument): Move to opts-common.c.
24956         (read_cmdline_option): Move most contents to
24957         decode_cmdline_option.  Use %qs in diagnostics.
24958         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
24959         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
24960         decode_cmdline_option): New.
24961
24962 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24963
24964         PR target/44481
24965         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
24966         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
24967         (partiysi2_cmp): Ditto.
24968         (*partiyhi2_cmp): Ditto.
24969         (*parityqi2_cmp): Remove.
24970
24971 2010-06-11  Jan Hubicka  <jh@suse.cz>
24972
24973         * bitmap.h (bmp_iter_next_bit): New.
24974         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
24975
24976 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
24977             Eric Botcazou  <ebotcazou@adacore.com>
24978
24979         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
24980         computed cost.
24981
24982 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24983
24984         * config/i386/i386.md (unspec): New define_c_enum.
24985         (unspecv): Ditto.
24986
24987 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
24988
24989         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
24990
24991 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
24992
24993         PR middle-end/44483
24994         * tree-if-conv.c (bb_predicate_s): New struct.
24995         (bb_predicate_p): New.
24996         (bb_has_predicate): New.
24997         (bb_predicate): New.
24998         (set_bb_predicate): New.
24999         (bb_predicate_gimplified_stmts): New.
25000         (set_bb_predicate_gimplified_stmts): New.
25001         (add_bb_predicate_gimplified_stmts): New.
25002         (init_bb_predicate): New.
25003         (free_bb_predicate): New.
25004         (is_predicated): Use bb_predicate.
25005         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
25006         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
25007         before processing their successors.
25008         (clean_predicate_lists): Removed.
25009         (find_phi_replacement_condition): Use bb_predicate.
25010         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
25011         computations.
25012         (insert_gimplified_predicates): New.
25013         (combine_blocks): Call insert_gimplified_predicates.
25014         (tree_if_conversion): Call free_bb_predicate instead of
25015         clean_predicate_lists.
25016
25017 2010-10-11  Paul Brook  <paul@codesourcery.com>
25018
25019         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
25020         * config/arm/arm.c (all_architectures): Change v7e-m default to
25021         cortexm4.
25022         * config/arm/arm-cores.def: Add cortex-m4.
25023         * config/arm/arm-tune.md: Regenerate.
25024
25025 2010-06-11  Jan Hubicka  <jh@suse.cz>
25026
25027         * ipa-pure-const.c (special_builtlin_state): New function.
25028         (check_call): Use it instead of special casign BUILT_IN_RETURN.
25029         (propagate_pure_const): Use it.
25030
25031 2010-06-11  Jan Hubicka  <jh@suse.cz>
25032
25033         * df-problems.c (df_live_scratch): Convert to bitmap_head.
25034         (df_live_alloc): Initialize df_live_scratch when initializing
25035         problem_data.
25036         (df_live_transfer_function): Update uses of df_live_scratch.
25037         (df_live_free): Free problem_data; clear df_live_scratch before
25038         releasing the obstack.
25039         (df_md_free): Free problem data.
25040
25041 2010-06-11  Jan Hubicka  <jh@suse.cz>
25042
25043         * doc/invoke.texi (Wsuggest-attribute): Document.
25044         (Wmissing-noreturn): Remove.
25045         * ipa-pure-const.c (warn_function_noreturn): New function.
25046         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
25047         warn_missing_noreturn.
25048         * common.opt (Wsuggest-attribute=noreturn): New.
25049         * tree-flow.h (warn_function_noreturn): Declare.
25050         * tree-cfg.c (execute_warn_function_noreturn): Use
25051         warn_function_noreturn.
25052         (gate_warn_function_noreturn): New.
25053         (pass_warn_function_noreturn): Update.
25054
25055 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25056
25057         * c-typeck.c (handle_warn_cast_qual): Add loc
25058         parameter. Improve warning message.
25059         (build_c_cast): Pass location to handle_warn_cast_qual.
25060
25061 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25062
25063         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
25064         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
25065         insn mnemonic.
25066         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
25067
25068 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
25069
25070         Fix bootstap on mips
25071         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
25072         be naming typedefs.
25073
25074 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
25075
25076         * system.h (helper_const_non_const_cast): New inline for
25077         gcc version <= 4.0.
25078         (CONST_CAST2): For gcc version <= 4.0 use
25079         new helper to do const/non-const casting.
25080
25081 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25082
25083         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
25084         * Makefile.in (OBJS-common): Include insn-enums.o.
25085         (insn-enums.o): New rule.
25086         (simple_generated_c): Add insn-enums.c.
25087         (build/genenums.o): New rule.
25088         (genprogmd): Add "enums".
25089         * genconstants.c (print_enum_type): Declare a C string array
25090         for each enum.
25091         * genenums.c: New file.
25092         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
25093         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
25094         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
25095
25096 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25097
25098         * doc/md.texi (define_enum_attr): Document.
25099         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
25100         * read-md.h (lookup_enum_type): Declare.
25101         * read-md.c (lookup_enum_type): New function.
25102         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
25103         * genattrtab.c (attr_desc): Add an enum_name field.
25104         (evaluate_eq_attr): Take the associated attribute as argument.
25105         Get the enum prefix from the enum_name field, if defined.
25106         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
25107         (simplify_test_exp): Pass attr to evaluate_eq_attr.
25108         (add_attr_value): New function, split out from...
25109         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
25110         (write_test_expr): Pass attr to evaluate_eq_attr.
25111         (write_attr_get): Use the enum_name as the enum tag, if defined.
25112         (write_attr_valueq): Use the enum_name as a prefix, if defined.
25113         (find_attr): Initialize enum_name.
25114         (main): Handle DEFINE_ENUM_ATTR.
25115         * gensupport.c (process_rtx): Likewise.
25116         * config/mips/mips.h (mips_tune_attr): Delete.
25117         * config/mips/mips.md (cpu): Use define_attr_enum.
25118
25119 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25120
25121         * doc/md.texi (define_c_enum, define_enum): Document.
25122         * read-md.h (md_constant): Add a parent_enum field.
25123         (enum_value, enum_type): New structures.
25124         (upcase_string, traverse_enum_types): Declare.
25125         * read-md.c (enum_types): New variable.
25126         (upcase_string, add_constant): New functions.
25127         (handle_constants): Don't create the hash table here.
25128         Use add_constant.
25129         (traverse_md_constants): Don't check for a null md_constants.
25130         (decimal_string, handle_enum, traverse_enum_types): New functions.
25131         (read_md_files): Initialize md_constants and md_enums.
25132         * genconstants.c (print_md_constant): Ignore info argument.
25133         Only print constants that belong to no enum.
25134         (print_enum_type): New function.
25135         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
25136         for each defined enum type.
25137         * config/mips/mips.md (processor): New define_enum.
25138         (unspec): New define_c_enum.
25139         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
25140         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
25141         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
25142         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
25143         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
25144         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
25145         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
25146         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
25147         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
25148         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
25149         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
25150         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
25151         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
25152         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
25153         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
25154         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
25155         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
25156         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
25157         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
25158         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
25159         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
25160         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
25161         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
25162         (UNSPEC_RDDSP): Move to mips-dsp.md.
25163         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
25164         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
25165         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
25166         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
25167         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
25168         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
25169         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
25170         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
25171         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
25172         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
25173         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
25174         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
25175         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
25176         Moved to mips-dspr2.md.
25177         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
25178         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
25179         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
25180         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
25181         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
25182         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
25183         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
25184         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
25185         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
25186         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
25187         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
25188         UNSPEC_LOONGSON_PSADBH)
25189         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
25190         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
25191         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
25192         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
25193         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
25194         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
25195         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
25196         (cpu): Update comment.
25197         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
25198         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
25199         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
25200         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
25201         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
25202         UNSPEC_LOONGSON_PCMPEQ)
25203         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
25204         UNSPEC_LOONGSON_PINSR_0)
25205         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
25206         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
25207         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
25208         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
25209         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
25210         UNSPEC_LOONGSON_PSADBH)
25211         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
25212         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
25213         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
25214         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
25215         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
25216         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
25217         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
25218         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
25219         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
25220         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
25221         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
25222         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
25223         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
25224         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
25225         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
25226         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
25227         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
25228         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
25229         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
25230         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
25231         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
25232         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
25233         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
25234         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
25235         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
25236         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
25237         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
25238         (UNSPEC_RDDSP): Moved from mips.md.
25239         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
25240         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
25241         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
25242         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
25243         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
25244         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
25245         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
25246         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
25247         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
25248         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
25249         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
25250         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
25251         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
25252         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
25253         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
25254         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
25255         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
25256         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
25257         (UNSPEC_SCC): Moved from mips.md.
25258         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
25259         "processor_type" to "processor".
25260         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
25261         * config/mips/mips.h (processor_type): Delete.
25262         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
25263         "processor_type" to "processor".
25264
25265 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25266
25267         * configure.ac (tm_include_list): Add insn-constants.h.
25268         * configure: Regenerate.
25269         * Makefile.in (GTM_H): Move insn-constants.h here from...
25270         (TM_H): ...here.
25271         * mkconfig.sh: Remove special handling for insn-constants.h.
25272
25273 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25274
25275         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
25276         (BUILD_MD): ...this new variable.
25277         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
25278         that include the old contents of simple_generated_h and
25279         simple_generated_c.
25280         (simple_generated_h, simple_generated_c): Include them.  Add
25281         insn-constants.h.
25282         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
25283         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
25284         Remove these dependencies from the main rule and include
25285         insn-conditions.md in the command line only if it appears
25286         in the dependency list.
25287         (insn-constants.h, s-constants): Delete.
25288         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
25289         or gensupport.h.
25290         (build/genmddeps.o): Likewise.
25291         (genprogrtl): New variable that contains everything from genprogmd
25292         except mddeps and constants.
25293         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
25294         depend on $(BUILD_MD)
25295         (genprog): New variable.  Make these programs depend on
25296         $(BUILD_ERRORS).
25297         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
25298         (main): Use read_md_files instead of init_rtx_reader_args.
25299         * genconstants.c: As for genmddeps.c.
25300         * read-md.h (read_skip_construct): Declare.
25301         * read-md.c (read_skip_construct): New function.
25302         (handle_file): Allow a null handle_directive, skipping the
25303         construct if so.
25304         (parse_include): Update the comment accordingly.
25305
25306 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25307
25308         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
25309         * genmddeps.c: Include read-md.h.
25310         (main): Call init_rtx_reader_args instead of init_md_reader_args.
25311         * genattr.c (main): Likewise.
25312         * genattrtab.c (main): Likewise.
25313         * genautomata.c (main): Likewise.
25314         * gencodes.c (main): Likewise.
25315         * genconditions.c (main): Likewise.
25316         * genconfig.c (main): Likewise.
25317         * genconstants.c (main): Likewise.
25318         * genemit.c (main): Likewise.
25319         * genextract.c (main): Likewise.
25320         * genflags.c (main): Likewise.
25321         * genopinit.c (main): Likewise.
25322         * genoutput.c (main): Likewise.
25323         * genpeep.c (main): Likewise.
25324         * genrecog.c (main): Likewise.
25325         * genpreds.c (main): Likewise.
25326         * gensupport.h (in_fname): Move to read-md.h.
25327         (init_md_reader_args_cb): Rename to...
25328         (init_rtx_reader_args_cb): ...this and return a bool.
25329         (init_md_reader_args): Rename to...
25330         (init_rtx_reader_args): ...this and return a bool.
25331         (include_callback): Move to read-md.h.
25332         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
25333         (file_name_list, first_dir_md_include): Move to read-md.c
25334         (first_bracket_include): Delete unused variable.
25335         (last_dir_md_include): Move to read-md.c.
25336         (process_include): Delete, moving code to read-md.c:handle_include.
25337         (process_rtx): Don't handle INCLUDE.
25338         (save_string): Delete.
25339         (rtx_handle_directive): New function.
25340         (init_md_reader_args_cb): Rename to...
25341         (init_rtx_reader_args_cb): ...this and return a boolean success value.
25342         Use read_md_args.
25343         (init_md_reader_args): Rename to...
25344         (init_rtx_reader_args): ...this and return a boolean success value.
25345         * rtl.def (INCLUDE): Delete.
25346         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
25347         argument.
25348         * read-rtl.c (read_conditions): Don't gobble ')' here.
25349         (read_mapping): Likewise.
25350         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
25351         Handle top-level non-rtx constructs here rather than in read_rtx_1.
25352         Store the whole queue in *X.  Remove call to init_md_reader.
25353         (read_rtx_1): Rename to...
25354         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
25355         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
25356         here.
25357         (read_nested_rtx): New function.  Handle (nil) here rather than
25358         in read_rtx_code.
25359         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
25360         gobble ')' here.
25361         * read-md.h (directive_handler_t): New type.
25362         (in_fname, include_callback): Moved from read-md.h.
25363         (read_constants, init_md_reader): Delete.
25364         (read_md_files): Declare.
25365         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
25366         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
25367         from gensupport.c.
25368         (read_constants): Rename to...
25369         (handle_constants): ...this.  Don't gobble ')' here.
25370         (handle_include, handle_file, handle_toplevel_file)
25371         (parse_include): New functions, mostly taken from gensupport.c.
25372         (init_md_reader): Subsume into...
25373         (read_md_files): ...this new function.
25374
25375 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25376
25377         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
25378         (unread_char): Decrement read_md_lineno after putting back '\n'.
25379         * read-md.c (fatal_with_file_and_line): Push back any characters
25380         that we decide not to add to the context.
25381         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
25382         fatal_expected_char in cases where '/' ends a line (for example).
25383         (read_name): Don't increment read_md_lineno here.
25384         (read_escape): Likewise.
25385         (read_quoted_string): Likewise.
25386         (read_braced_string): Likewise.
25387
25388 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25389
25390         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
25391         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
25392         * genconstants.c: Include read-md.h.
25393         * read-rtl.c (md_constants): Move to read-md.c.
25394         (md_name): Move to read-md.h.
25395         (initialize_iterators): Use leading_string_hash instead of def_hash
25396         and leading_string_eq_p instead of def_name_eq_p.
25397         (read_name): Move to read-md.c.
25398         (def_hash, def_name_eq_p): Delete.
25399         (read_constants, traverse_md_constants): Move to read-md.c.
25400         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
25401         * read-md.h: Include hashtab.h.
25402         (md_name): Moved from read-rtl.c.
25403         (md_constant): Moved from read-md.h.
25404         (leading_string_hash, leading_string_eq_p, read_name)
25405         (read_constants, traverse_md_constants): Declare.
25406         * read-md.c (md_constants): Moved from read-rtl.c.
25407         (leading_string_hash, leading_string_eq_p): New functions.
25408         (read_name, read_constants, traverse_md_constants): Moved from
25409         read-rtl.c.
25410
25411 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25412
25413         * read-rtl.c (md_name): New structure.
25414         (read_name): Take an md_name instead of a buffer pointer.
25415         Use the "string" field instead of strcpy when expanding constants.
25416         (read_constants): Remove the tmp_char argument.  Update the calls
25417         to read_name, using two local name buffers instead of the tmp_char
25418         argument.  Merge the constant-creation code.
25419         (read_conditions): Remove the tmp_char argument.  Update the calls
25420         to read_name, using a local name buffer instead of the tmp_char
25421         argument.
25422         (read_mapping): Replace tmp_char variable with a local name buffer.
25423         Update the calls to read_name.
25424         (read_rtx_1): Likewise.  Update the calls to read_constants and
25425         read_conditions.
25426
25427 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25428
25429         * Makefile.in (build/read-md.o): Depend on errors.h.
25430         * read-md.h (error_with_line): Declare.
25431         * read-md.c: Include errors.h.
25432         (message_with_line_1): New function, extracted from...
25433         (message_with_line): ...here.
25434         (error_with_line): New function.
25435         * genattrtab.c: If a call to message_with_line is followed by
25436         "have_error = 1;", replace both statements with a call to
25437         error_with_line.
25438         * genoutput.c: Likewise.
25439         * genpreds.c: Likewise.
25440         * genrecog.c: If a call to message_with_line is followed by
25441         "error_count++;", replace both statements with a call to
25442         error_with_line.
25443         (errorcount): Delete.
25444         (main): Don't check it.
25445         * gensupport.c: If a call to message_with_line is followed by
25446         "errors = 1;", replace both statements with a call to error_with_line.
25447         (errors): Delete.
25448         (process_define_cond_exec): Check have_error instead of errors.
25449         (init_md_reader_args_cb): Likewise.  Don't set errors.
25450
25451 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25452
25453         * read-md.h (read_md_file): Declare.
25454         (read_char, unread_char): New functions.
25455         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
25456         (read_quoted_string, read_string): Remove FILE * argument.
25457         * read-md.c (read_md_file): New variable.
25458         (read_md_filename, read_md_lineno): Update comments and remove
25459         unnecessary initialization.
25460         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
25461         (read_escape, read_quoted_string, read_braced_string, read_string):
25462         Remove FILE * argument.  Update calls accordingly, using read_char
25463         and unread_char instead of getc and ungetc.
25464         * rtl.h (read_rtx): Remove FILE * argument.
25465         * read-rtl.c (iterator_group): Remove FILE * argument from
25466         "find_builtin".
25467         (iterator_traverse_data): Remove "infile" field.
25468         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
25469         (add_mapping, read_name, read_constants, read_conditions)
25470         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
25471         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
25472         Remove file arguments from all calls, using read_char and unread_char
25473         instead of getc and ungetc.
25474         * gensupport.c (process_include): Preserve read_md_file around
25475         the include.  Set read_md_file to the handle of the included file.
25476         Update call to read_rtx.
25477         (init_md_reader_args_cb): Set read_md_file to the handle of the file
25478         and remove local FILE *.  Update calls to read_rtx.
25479
25480 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25481
25482         * read-md.h (read_rtx_lineno): Rename to...
25483         (read_md_lineno): ...this.
25484         (read_rtx_filename): Rename to...
25485         (read_md_filename): ...this.
25486         (copy_rtx_ptr_loc): Rename to...
25487         (copy_md_ptr_loc): ...this.
25488         (print_rtx_ptr_loc): Rename to...
25489         (print_md_ptr_loc): ...this.
25490         * read-md.c: Likewise.  Update references after renaming.
25491         (string_obstack): Replace RTL with MD in comment.
25492         (set_rtx_ptr_loc): Rename to...
25493         (set_md_ptr_loc): ...this.
25494         (get_rtx_ptr_loc): Rename to...
25495         (get_md_ptr_loc): ...this.
25496         * genconditions.c: Update references after renaming.
25497         * genemit.c: Likewise.
25498         * genoutput.c: Likewise.
25499         * genpreds.c: Likewise.
25500         * gensupport.c: Likewise.
25501         * read-rtl.c: Likewise.
25502
25503 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25504
25505         * Makefile.in (READ_MD_H): New variable.
25506         (BUILD_RTL): Add build/read-md.o.
25507         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
25508         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
25509         (build/genattrtab.o, build/genconditions.o build/genemit.o)
25510         (build/genextract.o, build/genflags.o, build/genoutput.o)
25511         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
25512         (build/read-md.o): New rule.
25513         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
25514         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
25515         * coretypes.h: ...here.
25516         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
25517         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
25518         * genattr.c: Include read-md.h.
25519         * genattrtab.c: Likewise.
25520         * genconditions.c: Likewise.
25521         * genemit.c: Likewise.
25522         * genextract.c: Likewise.
25523         * genflags.c: Likewise.
25524         * genoutput.c: Likewise.
25525         * genpreds.c: Likewise.
25526         * genrecog.c: Likewise.
25527         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
25528         (join_c_conditions, print_c_condition, read_rtx_filename)
25529         (read_rtx_lineno): Move to read-md.h.
25530         * read-rtl.c: Include read-md.h.
25531         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
25532         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
25533         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
25534         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
25535         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
25536         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
25537         (read_braced_string, read_string): Move to read-md.c.
25538         (read_rtx): Move some initialization to init_md_reader and call
25539         init_md_reader here.
25540         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
25541         Move to read-md.h.
25542         * gensupport.c: Include read-md.h.
25543         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
25544         * read-md.h, read-md.c: New files.
25545
25546 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
25547
25548         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25549         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25550         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
25551         * config/moxie/moxie.c (moxie_function_value): Make static.
25552         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
25553         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
25554
25555 2010-06-10  Martin Jambor  <mjambor@suse.cz>
25556
25557         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
25558         * dbgcnt.def (tree_sra): New counter.
25559         * tree-sra.c: Include dbgcnt.h.
25560         (gate_intra_sra): Check tree_sra debug counter.
25561
25562 2010-06-10  Martin Jambor  <mjambor@suse.cz>
25563
25564         PR tree-optimization/44258
25565         * tree-sra.c (build_access_subtree): Return false iff there is a
25566         partial overlap.
25567         (build_access_trees): Likewise.
25568         (analyze_all_variable_accesses): Disqualify candidates if
25569         build_access_trees returns true for them.
25570
25571 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
25572
25573         PR debug/41371
25574         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
25575         tail-recurse into canonical node.  Fast-forward over
25576         non-canonical VALUEs.
25577
25578 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
25579
25580         PR boostrap/44470
25581         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
25582         (*addsi_1_zext) <TYPE_LEA>: Likewise.
25583         (add lea splitter): Likewise.
25584         (add_zext lea splitter): Likewise.
25585
25586 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
25587
25588         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
25589
25590 2010-06-10  Jan Hubicka  <jh@suse.cz>
25591
25592         * df-problems.c (df_live_problem_data): Add live_bitmaps.
25593         (df_live_alloc): Initialize problem data and live_osbtacks.
25594         (df_live_finalize): Remove obstack, problem data; do not
25595         clear all bitmaps.
25596         (df_live_top_dump, df_live_bottom_dump): Do not dump old
25597         data when not allocated.
25598         (df_live_verify_solution_start): Do not allocate problem data.
25599         (df_live_verify_solution_end): Check if out is allocated.
25600         (struct df_md_problem_data): New structure.
25601         (df_md_alloc): Allocate problem data.
25602         (df_md_free): Free problem data; do not clear bitmaps.
25603
25604 2010-06-10  Jan Beulich  <jbeulich@novell.com>
25605
25606         PR bootstrap/37304
25607         * configure.ac: Replace $() with ${} when intending to expand
25608         variables rather than invoking commands.
25609         * configure: Re-generate.
25610
25611 2010-06-10  Jan Hubicka  <jh@suse.cz>
25612
25613         PR rtl-optimization/44460
25614         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
25615         TYPE_NEEDS_CONSTRUCTING sanity check.
25616
25617 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
25618
25619         * doc/include/fdl.texi: Move to GFDL version 1.3.
25620
25621         * doc/cpp.texi: Move to GFDL version 1.3.
25622         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
25623         * doc/gccint.texi: Move to GFDL version 1.3.
25624         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
25625         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
25626         * doc/invoke.texi: Move to GFDL version 1.3.
25627
25628 2010-06-09  Jan Hubicka  <jh@suse.cz>
25629
25630         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
25631         Break out from ...
25632         (propagate) ... here; swap the order.
25633
25634 2010-06-09  Jan Hubicka  <jh@suse.cz>
25635
25636         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
25637         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
25638         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
25639         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
25640
25641 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
25642
25643         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
25644         Do not the gather memory reference in the outer loop if the step
25645         is not a constant.
25646
25647 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
25648
25649         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
25650         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
25651         8 to 4.  Minor change of the related comments.
25652
25653 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
25654
25655         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
25656         the scev analysis when the variable is not used outside the loop
25657         in a close phi node: call compute_overall_effect_of_inner_loop.
25658
25659 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
25660
25661         * graphite-sese-to-poly.c (single_pred_cond): Renamed
25662         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
25663         (build_sese_conditions_before): Renamed call to single_pred_cond.
25664         (build_sese_conditions_after): Same.
25665
25666 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
25667
25668         * graphite-poly.h: Fix comments and indentation.
25669         * graphite-sese-to-poly.c: Same.
25670         (build_sese_conditions_before): Compute stmt and gbb only when needed.
25671         * tree-chrec.c: Fix comments and indentation.
25672         (tree-ssa-loop-niter.c): Same.
25673
25674 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
25675
25676         PR rtl-optimization/42461
25677         * dce.c (deletable_insn_p): Return true for const or pure calls again.
25678         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
25679
25680 2010-06-09  Jan Hubicka  <jh@suse.cz>
25681
25682         * bitmap.c (bitmap_and): Walk array forward.
25683         (bitmap_and_compl_into): Likewise.
25684         (bitmap_xor): Likewise.
25685         (bitmap_xor_into):  Likewise.
25686         (bitmap_equal_p): Likewise.
25687         (bitmap_intersect_p): Likewise.
25688         (bitmap_intersect_compl_p): Likewise.
25689         (bitmap_ior_and_into): Likewise.
25690         (bitmap_elt_copy): Likewise.
25691         (bitmap_and_compl): Likewise.
25692         (bitmap_elt_ior): Likewise.
25693
25694 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
25695
25696         * opts-common.c (prune_options): Ensure replacement argv array
25697         is correctly terminated by a NULL entry.
25698
25699 2010-06-09  Jan Hubicka  <jh@suse.cz>
25700
25701         * cgraph.h (varpool_first_static_initializer,
25702         varpool_next_static_initializer): Make checking only when
25703         checking enabled.
25704         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
25705         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
25706         gcc_assert to gcc_checking_assert.
25707         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
25708         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
25709         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
25710         op_iter_init_phiuse, op_iter_init_phidef,
25711         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
25712         gcc_checking_assert.
25713         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
25714         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
25715         partition_is_global, live_on_entry, live_on_exit,
25716         live_merge_and_clear): Likewise.
25717         * system.h (gcc_checking_assert): New macro.
25718         * gimple.h (set_bb_seq): Use gcc_checking_assert.
25719
25720 2010-06-09  Jason Merrill  <jason@redhat.com>
25721
25722         * Makefile.in (TAGS): Collect tags info from c-family.
25723
25724 2010-06-09  Jan Hubicka  <jh@suse.cz>
25725
25726         * gimple.h (gcc_gimple_checking_assert): New macro.
25727         (gimple_set_def_ops, gimple_set_use_ops,
25728         gimple_set_vuse, gimple_set_vdef,
25729         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
25730         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
25731         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
25732         gimple_asm_output_op, gimple_asm_output_op_ptr,
25733         gimple_asm_set_output_op, gimple_asm_clobber_op,
25734         gimple_asm_set_clobber_op, gimple_asm_label_op,
25735         gimple_asm_set_label_op, gimple_try_set_kind,
25736         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
25737         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
25738         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
25739         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
25740         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
25741         gimple_omp_for_set_initial, gimple_omp_for_final,
25742         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
25743         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
25744         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
25745         conditional with ENABLE_GIMPLE_CHECKING.
25746         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
25747
25748 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
25749
25750         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
25751         (get_computation_cost_at): Use it.
25752         (determine_use_iv_cost_condition): Likewise.
25753         (determine_iv_cost): Likewise.
25754
25755 2010-06-09  Richard Guenther  <rguenther@suse.de>
25756
25757         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
25758         replace constants.
25759
25760 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
25761
25762         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
25763
25764 2010-06-09  Martin Jambor  <mjambor@suse.cz>
25765
25766         PR tree-optimization/44423
25767         * tree-sra.c (dump_access): Dump also grp_assignment_read.
25768         (analyze_access_subtree): Pass negative allow_replacements to children
25769         if the current type is scalar.
25770
25771 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
25772
25773         PR testsuite/42843
25774         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
25775         * doc/plugins.texi (Plugin license check): Update information
25776         on type of plugin_is_GPL_compatible.
25777         * Makefile.in (PLUGINCC): Define as $(COMPILER).
25778         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
25779
25780 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
25781
25782         * config/arm/arm.c (thumb2_reorg): New function.
25783         (arm_reorg): Call it.
25784         * config/arm/thumb2.md (define_peephole2 for flag clobbering
25785         arithmetic operations): Delete.
25786
25787 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
25788
25789         PR target/44067
25790         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
25791         e500v2 target.
25792
25793 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
25794
25795         PR plugins/44459
25796         * gcc-plugin.h: Encapsulate all declarations in extern "C".
25797
25798 2010-06-08  Jan Hubicka  <jh@suse.cz>
25799
25800         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
25801         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
25802
25803 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
25804
25805         PR tree-optimization/39874
25806         PR middle-end/28685
25807         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
25808         Declare.
25809         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
25810         same_bool_result_p): New.
25811         (and_var_with_comparison, and_var_with_comparison_1,
25812         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
25813         (or_var_with_comparison, or_var_with_comparison_1,
25814         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
25815         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
25816         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
25817         of combine_comparisons.
25818         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
25819
25820 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
25821
25822         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25823         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25824         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
25825         pdp11_function_value_regno_p): New functions.
25826         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25827         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25828
25829 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
25830
25831         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
25832         Thumb-2 in the MINUS case.
25833
25834 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25835
25836         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
25837
25838         * doc/gty.texi (GTY Options): Document typed GC allocation and
25839         variable_size GTY option.
25840
25841         * ggc-internal.h: New.
25842
25843         * ggc.h: Update copyright year.
25844         (digit_string): Move to stringpool.c.
25845         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
25846         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
25847         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
25848         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
25849         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
25850         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
25851         (ggc_force_collect, ggc_get_size, ggc_statistics)
25852         (ggc_print_common_statistics): Move to ggc-internal.h.
25853         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
25854         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
25855         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
25856         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
25857         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
25858         (ggc_alloc_zone_pass_stat): Remove.
25859         (ggc_internal_alloc_stat, ggc_internal_alloc)
25860         (ggc_internal_cleared_alloc_stat): New.
25861         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
25862         (ggc_internal_vec_alloc_stat)
25863         (ggc_internal_cleared_vec_alloc_stat)
25864         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
25865         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
25866         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
25867         (ggc_cleared_alloc_ptr_array_two_args): New.
25868         (htab_create_ggc, splay_tree_new_ggc): Redefine.
25869         (ggc_splay_alloc): Change the type of the first argument to
25870         enum gt_types_enum.
25871         (ggc_alloc_string): Make macro.
25872         (ggc_alloc_string_stat): New.
25873         (ggc_strdup): Redefine.
25874         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
25875         (ggc_alloc_rtvec_sized): New.
25876         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
25877         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
25878         (ggc_internal_cleared_alloc_zone_stat)
25879         (ggc_internal_zone_alloc_stat)
25880         (ggc_internal_zone_cleared_alloc_stat)
25881         (ggc_internal_zone_vec_alloc_stat)
25882         (ggc_alloc_zone_rtx_def_stat)
25883         (ggc_alloc_zone_tree_node_stat)
25884         (ggc_alloc_zone_cleared_tree_node_stat)
25885         (ggc_alloc_cleared_gimple_statement_d_stat): New.
25886
25887         * ggc-common.c: Include ggc-internal.h.
25888         (ggc_internal_cleared_alloc_stat): Rename from
25889         ggc_alloc_cleared_stat.
25890         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
25891         (ggc_calloc): Remove.
25892         (ggc_cleared_alloc_htab_ignore_args): New.
25893         (ggc_cleared_alloc_ptr_array_two_args): New.
25894         (ggc_splay_alloc): Add obj_type parameter.
25895         (init_ggc_heuristics): Formatting fixes.
25896
25897         * ggc-none.c: Update copyright year.
25898         (ggc_alloc_stat): Rename to ggc_alloc_stat.
25899         (ggc_alloc_cleared_stat): Rename to
25900         ggc_internal_cleared_alloc_stat.
25901         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
25902
25903         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
25904         Remove references to ggc_alloc in comments.
25905         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
25906         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
25907         (new_ggc_zone, destroy_ggc_zone): Remove.
25908         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
25909
25910         * ggc-zone.c: Include ggc-internal.h.  Remove references to
25911         ggc_alloc in comments.
25912         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
25913         (ggc_internal_alloc_zone_pass_stat): New.
25914         (ggc_internal_cleared_alloc_zone_stat): New.
25915         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
25916         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
25917         (new_ggc_zone, destroy_ggc_zone): Remove.
25918
25919         * stringpool.c: Update copyright year.  Include ggc-internal.h
25920         (digit_vector): Make static.
25921         (digit_string): Moved from ggc.h.
25922         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
25923         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
25924
25925         * Makefile.in (GGC_INTERNAL_H): New.
25926         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
25927         $(GGC_INTERNAL_H) to dependencies.
25928
25929         * gengtype.c: Update copyright year.
25930         (walk_type): Accept variable_size GTY option.
25931         (USED_BY_TYPED_GC_P): New macro.
25932         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
25933         whitespace at the end of strings.
25934         (get_type_specifier, variable_size_p): New functions.
25935         (alloc_quantity, alloc_zone): New enums.
25936         (write_typed_alloc_def): New function.
25937         (write_typed_struct_alloc_def): Likewise.
25938         (write_typed_typed_typedef_alloc_def): Likewise.
25939         (write_typed_alloc_defns): Likewise.
25940         (output_typename, write_splay_tree_allocator_def): Likewise.
25941         (write_splay_tree_allocators): Likewise.
25942         (main): Call write_typed_alloc_defns and
25943         write_splay_tree_allocators.
25944
25945         * lto-streamer.h (lto_file_decl_data_ptr): New.
25946
25947         * passes.c (order): Define using cgraph_node_ptr.
25948
25949         * strinpool.c (struct string_pool_data): Declare nested_ptr using
25950         ht_identifier_ptr.
25951
25952         * gimple.h (union gimple_statement_d): Likewise.
25953
25954         * rtl.h (struct rtx_def): Likewise.
25955         (struct rtvec_def): Likewise.
25956
25957         * tree.h (union tree_node): Likewise.
25958
25959         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
25960
25961         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
25962
25963         * tree-scalar-evolution.c (scev_initialize): Likewise.
25964
25965         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
25966
25967         * dwarf2asm.c (dw2_force_const_mem): Likewise.
25968
25969         * omp-low.c (lower_omp_critical): Likewise.
25970
25971         * bitmap.h (struct bitmap_head_def): Update comment to not
25972         reference ggc_alloc.
25973
25974         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
25975
25976         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
25977
25978         * ipa-prop.c (duplicate_ggc_array): Rename to
25979         duplicate_ipa_jump_func_array.  Use typed GC allocation.
25980         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
25981
25982         * gimple.c (gimple_alloc_stat): Use
25983         ggc_alloc_cleared_gimple_statement_d_stat.
25984
25985         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
25986
25987         * tree.c (make_node_stat): Use
25988         ggc_alloc_zone_cleared_tree_node_stat.
25989         (make_tree_vec_stat): Likewise.
25990         (build_vl_exp_stat): Likewise.
25991         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
25992         (make_tree_binfo_stat): Likewise.
25993         (tree_cons_stat): Likewise.
25994
25995         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
25996         (shallow_copy_rtx_stat): Likewise.
25997         (make_node_stat): Likewise.
25998
25999         * lto-symtab.c: Fix comment.
26000
26001         * tree-cfg.c (create_bb): Update comment to not reference
26002         ggc_alloc_cleared.
26003         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
26004
26005         * varpool.c (varpool_node): Use typed GC allocation.
26006         (varpool_extra_name_alias): Likewise.
26007
26008         * varasm.c (emutls_decl): Likewise.
26009         (get_unnamed_section): Likewise.
26010         (get_noswitch_section): Likewise.
26011         (get_section): Likewise.
26012         (get_block_for_section): Likewise.
26013         (build_constant_desc): Likewise.
26014         (create_constant_pool): Likewise.
26015         (force_const_mem): Likewise.
26016
26017         * tree.c (build_vl_exp_stat): Likewise.
26018         (build_real): Likewise.
26019         (build_string): Likewise.
26020         (decl_debug_expr_insert): Likewise.
26021         (decl_value_expr_insert): Likewise.
26022         (type_hash_add): Likewise.
26023         (build_omp_clause): Likewise.
26024
26025         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
26026
26027         * tree-ssa.c (init_tree_ssa): Likewise.
26028
26029         * tree-ssa-structalias.c (heapvar_insert): Likewise.
26030
26031         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
26032
26033         * tree-ssa-loop-niter.c (record_estimate): Likewise.
26034
26035         * tree-ssa-alias.c (get_ptr_info): Likewise.
26036
26037         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
26038
26039         * tree-phinodes.c (allocate_phi_node): Likewise.
26040
26041         * tree-iterator.c (tsi_link_before): Likewise.
26042         (tsi_link_after): Likewise.
26043
26044         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
26045
26046         * tree-dfa.c (create_var_ann): Likewise.
26047
26048         * tree-cfg.c (create_bb): Likewise.
26049
26050         * toplev.c (alloc_for_identifier_to_locale): Likewise.
26051         (general_init): Likewise.
26052
26053         * stringpool.c (stringpool_ggc_alloc): Likewise.
26054         (gt_pch_save_stringpool): Likewise.
26055
26056         * sese.c (if_region_set_false_region): Likewise.
26057
26058         * passes.c (do_per_function_toporder): Likewise.
26059
26060         * optabs.c (set_optab_libfunc): Likewise.
26061         (set_conv_libfunc): Likewise.
26062
26063         * lto-symtab.c (lto_symtab_register_decl): Likewise.
26064
26065         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
26066         (input_eh_region): Likewise.
26067         (input_eh_lp): Likewise.
26068         (make_new_block): Likewise.
26069         (unpack_ts_real_cst_value_fields): Likewise.
26070
26071         * lto-section-in.c (lto_new_in_decl_state): Likewise.
26072
26073         * lto-cgraph.c (input_node_opt_summary): Likewise.
26074
26075         * loop-init.c (loop_optimizer_init): Likewise.
26076
26077         * lambda.h (lambda_vector_new): Likewise.
26078
26079         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
26080
26081         * ira.c (update_equiv_regs): Likewise.
26082
26083         * ipa.c (cgraph_node_set_new): Likewise.
26084         (cgraph_node_set_add): Likewise.
26085         (varpool_node_set_new): Likewise.
26086         (varpool_node_set_add): Likewise.
26087
26088         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
26089         (duplicate_ipa_jump_func_array): Likewise.
26090         (ipa_read_node_info): Likewise.
26091
26092         * ipa-cp.c (ipcp_create_replace_map): Likewise.
26093
26094         * integrate.c (get_hard_reg_initial_val): Likewise.
26095
26096         * gimple.c (gimple_alloc_stat): Likewise.
26097         (gimple_build_omp_for): Likewise.
26098         (gimple_seq_alloc): Likewise.
26099         (gimple_copy): Likewise.
26100
26101         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
26102         (gsi_insert_after_without_update): Likewise.
26103
26104         * function.c (add_frame_space): Likewise.
26105         (insert_temp_slot_address): Likewise.
26106         (assign_stack_temp_for_type): Likewise.
26107         (allocate_struct_function): Likewise.
26108         (types_used_by_var_decl_insert): Likewise.
26109
26110         * except.c (init_eh_for_function): Likewise.
26111         (gen_eh_region): Likewise.
26112         (gen_eh_region_catch): Likewise.
26113         (gen_eh_landing_pad): Likewise.
26114         (add_call_site): Likewise.
26115
26116         * emit-rtl.c (get_mem_attrs): Likewise.
26117         (get_reg_attrs): Likewise.
26118         (start_sequence): Likewise.
26119         (init_emit): Likewise.
26120
26121         * dwarf2out.c (new_cfi): Likewise.
26122         (queue_reg_save): Likewise.
26123         (dwarf2out_frame_init): Likewise.
26124         (new_loc_descr): Likewise.
26125         (find_AT_string): Likewise.
26126         (new_die): Likewise.
26127         (add_var_loc_to_decl): Likewise.
26128         (clone_die): Likewise.
26129         (clone_as_declaration): Likewise.
26130         (break_out_comdat_types): Likewise.
26131         (new_loc_list): Likewise.
26132         (loc_descriptor): Likewise.
26133         (add_loc_descr_to_each): Likewise.
26134         (add_const_value_attribute): Likewise.
26135         (tree_add_const_value_attribute): Likewise.
26136         (add_comp_dir_attribute): Likewise.
26137         (add_name_and_src_coords_attributes): Likewise.
26138         (lookup_filename): Likewise.
26139         (store_vcall_insn): Likewise.
26140         (dwarf2out_init): Likewise.
26141
26142         * dbxout.c (dbxout_init): Likewise.
26143
26144         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
26145
26146         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
26147
26148         * config/score/score7.c (score7_output_external): Likewise.
26149
26150         * config/score/score3.c (score3_output_external): Likewise.
26151
26152         * config/s390/s390.c (s390_init_machine_status): Likewise.
26153
26154         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
26155         (rs6000_init_machine_status): Likewise.
26156         (output_toc): Likewise.
26157
26158         * config/pa/pa.c (pa_init_machine_status): Likewise.
26159         (get_deferred_plabel): Likewise.
26160
26161         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
26162
26163         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
26164
26165         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
26166
26167         * config/mep/mep.c (mep_init_machine_status): Likewise.
26168         (mep_note_pragma_flag): Likewise.
26169
26170         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
26171
26172         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
26173
26174         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
26175
26176         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
26177         (i386_pe_maybe_record_exported_symbol): Likewise.
26178
26179         * config/i386/i386.c (get_dllimport_decl): Likewise.
26180         (ix86_init_machine_status): Likewise.
26181         (assign_386_stack_local): Likewise.
26182
26183         * config/frv/frv.c (frv_init_machine_status): Likewise.
26184
26185         * config/darwin.c (machopic_indirection_name): Likewise.
26186
26187         * config/cris/cris.c (cris_init_machine_status): Likewise.
26188
26189         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
26190
26191         * config/avr/avr.c (avr_init_machine_status): Likewise.
26192
26193         * config/arm/arm.c (arm_init_machine_status): Likewise.
26194
26195         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
26196         (alpha_need_linkage): Likewise.
26197         (alpha_use_linkage): Likewise.
26198
26199         * cgraph.c (cgraph_allocate_node): Likewise.
26200         (cgraph_create_edge_1): Likewise.
26201         (cgraph_create_indirect_edge): Likewise.
26202         (cgraph_add_asm_node): Likewise.
26203
26204         * cfgrtl.c (init_rtl_bb_info): Likewise.
26205
26206         * cfgloop.c (alloc_loop): Likewise.
26207         (rescan_loop_exit): Likewise.
26208
26209         * cfg.c (init_flow): Likewise.
26210         (alloc_block): Likewise.
26211         (unchecked_make_edge): Likewise.
26212
26213         * c-parser.c (c_parse_init): Likewise.
26214         (c_parse_file): Likewise.
26215
26216         * c-decl.c (bind): Likewise.
26217         (record_inline_static): Likewise.
26218         (push_scope): Likewise.
26219         (make_label): Likewise.
26220         (lookup_label_for_goto): Likewise.
26221         (finish_struct): Likewise.
26222         (finish_enum): Likewise.
26223         (c_push_function_context): Likewise.
26224
26225         * bitmap.c (bitmap_element_allocate): Likewise.
26226         (bitmap_gc_alloc_stat): Likewise.
26227
26228         * alias.c (record_alias_subset): Likewise.
26229         (init_alias_analysis): Likewise.
26230
26231 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
26232
26233         * fold-const.c (fold_comparison): Remove redundant parenthesis.
26234         * tree-inline.c (expand_call_inline): Pass translated return value of
26235         cgraph_inline_failed_string to diagnostic function.
26236
26237 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
26238             Shujing Zhao  <pearly.zhao@oracle.com>
26239
26240         PR c/37724
26241         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
26242         implicit bad conversions is initialization.
26243         (error_init): Use gmsgid instead of msgid for argument name and change
26244         the call for error.
26245         (pedwarn_init): Use gmsgid instead of msgid for argument name and
26246         change the call for pedwarn.
26247         (warning_init): Use gmsgid instead of msgid for argument name and
26248         change the call for warning.
26249
26250 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
26251
26252         * config/mips/mips-protos.h (mips_print_operand): Delete.
26253         (mips_print_operand_address): Delete.
26254         * config/mips/mips.h (mips_print_operand_punct): Delete.
26255         (PRINT_OPERAND): Delete.
26256         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
26257         (PRINT_OPERAND_ADDRESS): Delete.
26258         * config/mips/mips.c (mips_print_operand_punct): Make static.
26259         (mips_print_operand_address): Make static.
26260         (mips_print_operand): Make static.  Call
26261         mips_print_operand_punct_valid_p.
26262         (mips_print_operand_punct_valid_p): New function.
26263         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
26264         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
26265
26266 2010-06-07  Jan Hubicka  <jh@suse.cz>
26267
26268         PR middle-end/44454
26269         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
26270         are allocated.
26271
26272 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
26273
26274         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
26275         name of RECORD.
26276
26277 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26278
26279         * doc/sourcebuild.texi (Effective-Target Keywords, Other
26280         attributes): Document gas.
26281
26282 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
26283
26284         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
26285         <TYPE_LEA>: Split instruction.
26286         <default>: Remove alternative 2 handling.
26287         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
26288         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
26289         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
26290
26291         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
26292         (ashift_zext lea splitter): Use DImode for multiplication.
26293
26294         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
26295         to generate addition.
26296
26297 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
26298
26299         * common.opt (fira-verbose): Use Var.
26300         (fpcc-struct-return): Use Init instead of VarExists.
26301         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
26302         toplev.c.
26303         * flags.h (flag_signed_char, flag_short_enums,
26304         flag_pcc_struct_return, flag_ira_verbose,
26305         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
26306         * toplev.c (flag_detailed_statistics, flag_signed_char,
26307         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
26308         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
26309         * toplev.h (flag_crossjumping, flag_if_conversion,
26310         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
26311         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
26312         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
26313         flag_cprop_registers, time_report, flag_ira_loop_pressure,
26314         flag_ira_coalesce, flag_ira_move_spills,
26315         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
26316
26317 2010-06-07  Jan Hubicka  <jh@suse.cz>
26318
26319         * df-core.c (df_analyze_problem): Do verification after allocation.
26320
26321         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
26322         (df_lr_alloc): Initialize problem data; move bitmaps to
26323         lr_bitmaps obstack.
26324         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
26325         (df_lr_verify_solution_start): Do not initialize problem data;
26326         allocate bitmaps in lr_bitmaps.
26327         (df_lr_verify_solution_end): Do not free problem data.
26328
26329 2010-06-07  Jan Hubicka  <jh@suse.cz>
26330
26331         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
26332         if caller is noreturn.
26333         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
26334         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
26335         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
26336         * ipa-pure-const.c (check_decl): Add IPA parameter.
26337         (state_from_flags): New function.
26338         (better_state, worse_state): New functions.
26339         (check_call): When in IPA mode, do not care about callees.
26340         (check_load, check_store): Update.
26341         (check_ipa_load, check_ipa_store): New.
26342         (check_stmt): When in IPA mode, use IPA checkers.
26343         (analyze_function): Use state_from_flags.
26344         (propagate): Check indirect edges and references.
26345
26346 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
26347
26348         PR rtl-optimization/44404
26349         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
26350         of count_occurrences to see if it's safe to modify mem_insn.
26351
26352 2010-06-07  Richard Guenther  <rguenther@suse.de>
26353
26354         * gimplify.c (gimplify_cleanup_point_expr): For empty body
26355         and EH-only cleanup drop the cleanup instead of inserting it
26356         unconditionally.
26357
26358 2010-06-07  Ira Rosen  <irar@il.ibm.com>
26359
26360         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
26361         documentation.
26362         * targhooks.c (default_builtin_vectorization_cost): New function.
26363         * targhooks.h (default_builtin_vectorization_cost): Declare.
26364         * target.h (enum vect_cost_for_stmt): Define.
26365         (builtin_vectorization_cost): Change argument and comment.
26366         * tree-vectorizer.h: Remove cost model macros.
26367         * tree-vect-loop.c: Include target.h.
26368         (vect_get_cost): New function.
26369         (vect_estimate_min_profitable_iters): Replace cost model macros with
26370         calls to vect_get_cost.
26371         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
26372         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
26373         default implementation.
26374         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
26375         calls to target hook builtin_vectorization_cost.
26376         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
26377         Likewise.
26378         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
26379         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
26380         implementation to return costs.
26381         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
26382         * config/spu/spu.h: Remove vectorizer cost model macros.
26383         * config/i386/i386.h: Likewise.
26384         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
26385         a call to target hook builtin_vectorization_cost.
26386
26387 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
26388
26389         PR target/44319
26390         * config/i386/i386.c (override_options): Turn zee pass on for level 2
26391         and above and defer till target is known.
26392         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
26393         turn off otherwise.
26394
26395 2010-05-25  Jan Hubicka  <jh@suse.cz>
26396
26397         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
26398         (df_compact_blocks): Likewise.
26399         * df.h (struct df): Turn hardware_regs_used,
26400         regular_block_artificial_uses, eh_block_artificial_uses,
26401         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
26402         bitmap_head.
26403         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
26404         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
26405         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
26406         df_scan_blocks, df_insn_delete, df_insn_rescan,
26407         df_insn_rescan_debug_internal, df_insn_rescan_all,
26408         df_process_deferred_rescans, df_process_deferred_rescans,
26409         df_notes_rescan, df_get_call_refs, df_get_call_refs,
26410         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
26411         df_record_entry_block_defs, df_record_exit_block_uses,
26412         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
26413         df_scan_verify): Update.
26414
26415 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
26416
26417         PR c++/44188
26418         * c-common.c (is_typedef_decl): Move this definition ...
26419         * tree.c (is_typedef_decl): ... here.
26420         (typdef_variant_p): Move definition here from cp/tree.c.
26421         * c-common.h (is_typedef_decl): Move this declaration ...
26422         * tree.h (is_typedef_decl): ... here.
26423         (typedef_variant_p): Move declaration here from cp/cp-tree.h
26424         * dwarf2out.c (is_naming_typedef_decl): New function.
26425         (gen_tagged_type_die): Split out of ...
26426         (gen_type_die_with_usage): ... this function. When an anonymous
26427         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
26428         is emitted for the typedef.
26429         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
26430         anonymous tagged types.
26431
26432 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26433
26434         PR c/20000
26435         * c-decl.c (grokdeclarator): Delete warning.
26436
26437 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
26438
26439         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
26440         newly built CALL_EXPR.
26441         * tree-profile.c (tree_profiling): Don't profile functions produced
26442         for built-in stuff.
26443
26444 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
26445
26446         PR bootstrap/44427
26447         PR bootstrap/44428
26448         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
26449         endianness-independent.
26450
26451 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
26452
26453         * c-common.c: Move to c-family/.
26454         * c-common.def: Likewise.
26455         * c-common.h: Likewise.
26456         * c-cppbuiltin.c: Likewise.
26457         * c-dump.c: Likewise.
26458         * c-format.c: Likewise.
26459         * c-format.h : Likewise.
26460         * c-gimplify.c: Likewise.
26461         * c-lex.c: Likewise.
26462         * c-omp.c: Likewise.
26463         * c.opt: Likewise.
26464         * c-opts.c: Likewise.
26465         * c-pch.c: Likewise.
26466         * c-ppoutput.c: Likewise.
26467         * c-pragma.c: Likewise.
26468         * c-pragma.h: Likewise.
26469         * c-pretty-print.c: Likewise.
26470         * c-pretty-print.h: Likewise.
26471         * c-semantics.c: Likewise.
26472         * stub-objc.c: Likewise.
26473
26474         * gengtype.c (get_file_langdir): Special-case files in c-family/.
26475         (get_output_file_with_visibility): Fix name for c-common.h.
26476         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
26477
26478         * c-tree.h: Update include path for moved files.
26479         * c-lang.c: Likewise.
26480         * c-lang.h: Likewise.
26481         * c-parser.c: Likewise.
26482         * c-convert.c: Likewise.
26483         * c-decl.c: Likewise.
26484         * c-objc-common.c: Likewise.
26485         * configure.ac: Make sure c-family/ exists in the build directory.
26486         * configure: Regenerate.
26487         * Makefile.in: Update paths for moved files.  Regroup files per
26488         location and update dependencies.  Move generated_files down after
26489         ALL_GTFILES_H.
26490
26491         * config/spu/spu-c.c: Update paths for moved files.
26492         * config/mep/mep-pragma.c: Likewise.
26493         * config/darwin-c.c: Likewise.
26494         * config/i386/msformat-c.c: Likewise.
26495         * config/i386/i386-c.c: Likewise.
26496         * config/avr/avr-c.c: Likewise.
26497         * config/sol2-c.c: Likewise.
26498         * config/ia64/ia64-c.c: Likewise.
26499         * config/rs6000/rs6000-c.c: Likewise.
26500         * config/arm/arm.c: Likewise.
26501         * config/arm/arm-c.c: Likewise.
26502         * config/h8300/h8300.c: Likewise.
26503         * config/v850/v850-c.c: Likewise.
26504
26505         * config/t-darwin: Fix dependencies for moved files.
26506         * config/t-sol2: Fix dependencies for moved files.
26507         * config/mep/t-mep: Fix dependencies for moved files.
26508         * config/ia64/t-ia64: Fix dependencies for moved files.
26509         * config/rs6000/t-rs6000: Fix dependencies for moved files.
26510         * config/v850/t-v850: Fix dependencies for moved files.
26511         * config/v850/t-v850e: Fix dependencies for moved files.
26512
26513         * config/m32c/m32c-pragma.c
26514
26515         * po/exgettext: Look in c-family/ also.
26516
26517 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
26518
26519         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
26520         (mark_control_dependent_edges_necessary): Call it instead of marking
26521         the last statement manually.
26522         (propagate_necessity): Likewise.
26523
26524 2010-06-05  Jan Hubicka  <jh@suse.cz>
26525
26526         * basic-block.h (compute_dominance_frontiers): Updated.
26527         (compute_idf): Likewise.
26528
26529         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
26530         for dominance frontiers.
26531         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
26532         (insert_updated_phi_nodes_for): Likewise.
26533         (update_ssa): Likewise.
26534         * cfganal.c (compute_dominance_frontiers_1): Likewise.
26535         (compute_dominance_frontiers): Likewise.
26536         (compute_idf): Likewise.
26537         * df-problems.c (df_md_local_compute): Likewise.
26538
26539 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
26540
26541         * target.h (struct gcc_target): Add memory_move_cost field.
26542         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
26543         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
26544         * targhooks.c (default_memory_move_cost): New function.
26545         * targhooks.h (default_memory_move_cost): Declare function.
26546         * reload.h (memory_move_cost): Declare.
26547         (memory_move_secondary_cost): Change type of 'in' argument to bool.
26548         * reginfo.c (memory_move_cost): New function.
26549         (memory_move_secondary_cost): Change type of 'in' argument to bool.
26550         * ira.h (ira_memory_move_cost): Update comment.
26551         * ira.c (ira_memory_move_cost): Update comment.
26552         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
26553         with memory_move_cost.
26554         * postreload.c (reload_cse_simplify_set): (Ditto.).
26555         * reload1.c (choose_reload_regs): (Ditto.).
26556         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
26557         (MEMORY_MOVE_COST):  Revise documentation.
26558
26559         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
26560         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
26561         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
26562         type of 'in' argument to bool.
26563         (TARGET_MEMORY_MOVE_COST): Define.
26564
26565 2010-06-05  Jan Hubicka  <jh@suse.cz>
26566
26567         * ipa-pure-const.c (propagate): Fix typo in handling of functions
26568         that cannot return.  Be more careful when merging the results with
26569         previously known ones.
26570
26571 2010-06-05  Matthias Klose  <doko@ubuntu.com>
26572
26573         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
26574         function to add the -iplugindir option.
26575         (find_plugindir_spec_function): Add new declaration and function.
26576         (static_spec_func): Use it for "find-plugindir".
26577
26578 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
26579
26580         PR c++/44361
26581         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
26582         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
26583         statement expression.
26584
26585 2010-06-05  Jan Hubicka  <jh@suse.cz>
26586
26587         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
26588         (df_rd_problem_data): Convert sparse_invalidated_by_call,
26589         dense_invalidated_by_call to bitmap head.
26590         (df_rd_alloc, df_rd_bb_local_compute_process_def,
26591         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
26592         df_rd_start_dump, df_lr_verify_transfer_functions,
26593         df_live_verify_transfer_functions, df_chain_create_bb,
26594         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
26595         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
26596         df_simulate_one_insn_forwards, df_md_alloc,
26597         df_md_bb_local_compute_process_def,
26598         df_md_bb_local_compute_process_def, df_md_local_compute,
26599         df_md_transfer_function df_md_free): Update.
26600
26601 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
26602
26603         PR c/44322
26604         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
26605         target type for ADDR_EXPR; require no changes to qualifiers except
26606         for function types.
26607         * c-tree.h (c_build_type_variant): Remove.
26608
26609 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
26610
26611         * genautomata.c (get_excl_set): Do work per element, not per char.
26612         (check_presence_pattern_sets): Similar.
26613         (check_absence_pattern_sets): Similar.
26614
26615 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
26616
26617         * genautomata.c (curr_state_pass_num): Delete.
26618         (min_issue_delay_pass_states): Delete.
26619         (min_issue_delay): Delete.
26620         (initiate_min_issue_delay_pass_states): Delete.
26621         (output_min_issue_delay_table): Compute min_issue_delay_vect
26622         using a breadth-first search variant.
26623         (output_tables): Don't call initiate_min_issue_delay_pass_states.
26624
26625 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
26626
26627         PR boostrap/44421
26628         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
26629         (df_byte_lr_bb_local_compute): Likewise.
26630
26631 2010-06-03  Jason Merrill  <jason@redhat.com>
26632
26633         Implement noexcept operator (5.3.7)
26634         * c-common.c (c_common_reswords): Add noexcept.
26635         * c-common.h (enum rid): Add RID_NOEXCEPT.
26636
26637 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
26638
26639         * config/darwin-driver.c (darwin_default_min_version): Use
26640         GCC-specific formats in diagnostics.
26641         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
26642         diagnostics.
26643         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
26644         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
26645         eval_spec_function, handle_braces, process_brace_body, main,
26646         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
26647         getenv_spec_function, compare_version_strings,
26648         version_compare_spec_function): Use GCC-specific formats in
26649         diagnostics.
26650
26651 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
26652
26653         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
26654         that operand 0 and operand 1 are equal.
26655         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
26656         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
26657         and operand 1 are equal.
26658         <default>: Ditto.  Remove ??? comment.
26659         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
26660         and operand 1 are equal.
26661         <default>: Ditto.  Remove ??? comment.
26662         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
26663         are equal.
26664         (*add<mode>_4) <default>: Ditto.
26665         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
26666
26667 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
26668
26669         * config/i386/i386-protos.h (ix86_print_operand): Declare.
26670         * config/i386/i386.c (ix86_print_operand): Make non-static.
26671         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
26672         * output.h (output_operand): Declare.
26673         * final.c (output_operand): Make non-static.
26674
26675 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
26676
26677         PR rtl-optimization/44013
26678         * sched-deps.c (add_dependence_list_and_free): Don't free lists
26679         when processing debug insns.
26680
26681         PR debug/41371
26682         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
26683         recursing.  Check that recursion is bounded.  Rename inner var
26684         to avoid hiding incoming argument.
26685
26686 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
26687
26688         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
26689         operands[2] == 255.
26690         (*addqi_3): Ditto.
26691         (*addqi_4): Ditto.
26692         (*addqi_5): Ditto.
26693         (*addqi_ext_1_rex64): Ditto.
26694         (*addqi_ext_1): Ditto.
26695
26696         (*addqi_4): Check for incdec_operand in QImode.
26697
26698         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
26699         using SWI mode iterator.
26700         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
26701         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
26702         mode iterator.
26703         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
26704         using SWI mode iterator.
26705
26706 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26707
26708         PR c/25880
26709         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
26710         * c-format.c (gcc_diag_flag_specs): Add hash.
26711         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
26712         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
26713         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
26714         pp_c_cv_qualifiers. Handle qualifiers spelling here.
26715         (pp_c_type_qualifier_list): Call the function above.
26716         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
26717         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
26718         (WARN_FOR_QUALIFIERS): New macro.
26719         (convert_for_assignment): Use it.
26720
26721 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
26722
26723         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
26724
26725 2010-06-04  Jan Hubicka  <jh@suse.cz>
26726
26727         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
26728         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
26729         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
26730         DF_BYTE_LR_OUT): Update for embedded bitmaps.
26731         * fwprop.c (single_def_use_enter_block): Likewise.
26732         * ddg.c (create_ddg_dep_from_intra_loop_link,
26733         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
26734         * loop-iv.c (latch_dominating_def): Likewise.
26735         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
26736         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
26737         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
26738         df_rd_transfer_function, df_rd_top_dump,
26739         df_rd_bottom_dump): Update.
26740         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
26741         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
26742         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
26743         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
26744         df_lr_verify_solution_start, df_lr_verify_solution_end,
26745         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
26746         df_live_free_bb_info, df_live_alloc, df_live_reset,
26747         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
26748         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
26749         df_live_verify_solution_start, df_live_verify_solution_end,
26750         df_live_verify_transfer_functions, df_chain_create_bb,
26751         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
26752         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
26753         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
26754         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
26755         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
26756         df_byte_lr_transfer_function, df_byte_lr_top_dump,
26757         df_byte_lr_bottom_dump, df_create_unused_note,
26758         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
26759         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
26760         df_md_transfer_function, df_md_init, df_md_confluence_0,
26761         df_md_confluence_n,
26762         df_md_top_dump, df_md_bottom_dump): Update.
26763         (struct df_lr_problem_data): Embedd bitmap headers.
26764
26765 2010-06-04  Jan Hubicka  <jh@suse.cz>
26766
26767         * dce.c (dce_process_block): Do not re-scan already marked
26768         instructions.
26769
26770 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
26771
26772         PR rtl-optimization/39871
26773         PR rtl-optimization/40615
26774         PR rtl-optimization/42500
26775         PR rtl-optimization/42502
26776         * ira.c (init_reg_equiv_memory_loc: New function.
26777         (ira): Call it twice.
26778         * reload.h (calculate_elim_costs_all_insns): Declare.
26779         * ira-costs.c: Include "reload.h".
26780         (regno_equiv_gains): New static variable.
26781         (init_costs): Allocate it.
26782         (finish_costs): Free it.
26783         (ira_costs): Call calculate_elim_costs_all_insns.
26784         (find_costs_and_classes): Take estimated elimination costs
26785         into account.
26786         (ira_adjust_equiv_reg_cost): New function.
26787         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
26788         * reload1.c (init_eliminable_invariants, free_reg_equiv,
26789         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
26790         (elim_bb): New static variable.
26791         (reload): Move code out of here into init_eliminable_invariants and
26792         free_reg_equiv.  Call them.
26793         (calculate_elim_costs_all_insns): New function.
26794         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
26795         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
26796         but call note_reg_elim_costly if we turned a valid memory address
26797         into an invalid one.
26798         * Makefile.in (ira-costs.o): Depend on reload.h.
26799
26800 2010-06-04  Julian Brown  <julian@codesourcery.com>
26801
26802         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
26803         for pool ranges.
26804
26805 2010-06-04  Richard Guenther  <rguenther@suse.de>
26806
26807         PR lto/41584
26808         * cgraph.h (struct varpool_node): Add lto_file_data field.
26809         * lto-cgraph.c (input_varpool_node): Initialize it.
26810
26811 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
26812
26813         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
26814         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
26815         predicate in "type" attribute calculation.
26816         (*addsi_1_zext): Ditto.
26817         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
26818         (*addsi_2_zext): Ditto.
26819         (*add<mode>_3): Ditto.
26820         (*addsi_3_zext): Ditto.
26821         (*add<mode>_5): Ditto.
26822
26823 2010-06-03  Jan Hubicka  <jh@suse.cz>
26824
26825         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
26826         of bitmap_bit_p.
26827         * cfganal.c (compute_dominance_frontiers_1): Likewise.
26828
26829 2010-06-03  Jan Hubicka  <jh@suse.cz>
26830
26831         * df-problems.c (df_create_unused_note, df_note_bb_compute):
26832         micro-optimize the checks when to add new note.
26833
26834 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
26835
26836         * final.c (output_asm_insn): Call
26837         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
26838         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
26839         (output_address): Call targetm.asm_out.print_operand_address.
26840         Update comments.
26841         * target.h (struct gcc_target): Add print_operand,
26842         print_operand_address, and print_operand_punct_valid_p fields.
26843         * targhooks.h (default_print_operand): Declare.
26844         (default_print_operand_address): Declare.
26845         (default_print_operand_punct_valid_p): Declare.
26846         * targhooks.c (default_print_operand): Define.
26847         (default_print_operand_address): Define.
26848         (default_print_operand_punct_valid_p): Define.
26849         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
26850         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
26851         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
26852         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
26853         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
26854         * vmsdbgout.c (addr_const_to_string): Update comment.
26855         * config/i386/i386.c (print_operand): Rename to...
26856         (ix86_print_operand): ...this.  Make static.
26857         (print_operand_address): Rename to...
26858         (ix86_print_operand_address): ...this.  Make static.  Call
26859         ix86_print_operand instead of PRINT_OPERAND.
26860         (ix86_print_operand_punct_valid_p): New function.
26861         (TARGET_PRINT_OPERAND): Define.
26862         (TARGET_PRINT_OPERAND_ADDRESS): Define.
26863         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
26864         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
26865         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
26866         (PRINT_OPERAND): Delete.
26867         (PRINT_OPERAND_ADDRESS): Delete.
26868         * config/i386/i386-protos.h (print_operand): Delete prototype.
26869         (print_operand_address): Delete prototype.
26870
26871 2010-06-03  Richard Guenther  <rguenther@suse.de>
26872
26873         PR tree-optimization/44403
26874         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
26875         Preserve pointer qualifiers.
26876         (vect_create_data_ref_ptr): Likewise.
26877
26878 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
26879
26880         PR c++/44294
26881         * defaults.h (MAX_FIXED_MODE_SIZE): New.
26882
26883         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
26884
26885 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
26886
26887         PR debug/44375
26888         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
26889         return false if merging the bbs would lead to goto_locus
26890         location being lost from the IL.
26891
26892 2010-06-03  Jan Hubicka  <jh@suse.cz>
26893             Jakub Jelinek  <jakub@redhat.com>
26894
26895         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
26896         set->regs[i] is NULL or has just one entry.
26897
26898 2010-06-03  Jan Hubicka  <jh@suse.cz>
26899
26900         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
26901         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
26902
26903 2010-06-03  Paul Brook  <paul@codesourcery.com>
26904
26905         * config/arm/arm.c (FL_TUNE): Define.
26906         (arm_default_cpu, arm_cpu_select): Remove.
26907         (all_cores): Populate core field.
26908         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
26909         (arm_find_cpu): New function.
26910         (arm_handle_option): Lookup cpu/architecture names.
26911         (arm_override_options): Cleanup mcpu/march/mtune handling.
26912         (arm_file_start): Ditto.
26913
26914 2010-06-03  Alan Modra  <amodra@gmail.com>
26915
26916         PR target/44169
26917         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
26918         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
26919         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
26920         (rs6000_emit_load_toc_table): Likewise.
26921
26922 2010-06-02  Jan Hubicka  <jh@suse.cz>
26923
26924         * passes.c (init_optimization_passes): Put ipa reference
26925         after ipa pure-const.
26926
26927 2010-06-02  Jan Hubicka  <jh@suse.cz>
26928
26929         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
26930         calls_read_all and calls_write_all.
26931         (get_reference_optimization_summary): Fix formatting.
26932         (is_proper_for_analysis): Check that decl is not readonly.
26933         (propagate_bits): Check CONST/PURE/noreturn flags.
26934         (ipa_init): Move all_module_statics to optimization_summary_obstack.
26935         (analyze_function): Ignore indirect edges.
26936         (copy_global_bitmap): For all module statics, do nothing.
26937         (generate_summary): Do not print calls_read_all/calls_write_all.
26938         (read_write_all_from_decl): Take node as argument; check
26939         cgraph_node_cannot_return.
26940         (propagate): Reorganize read_all/write_all computation;
26941         check indirect edges; check ecf flags; use all_module_statics
26942         in the results; do not free all_module_statics.
26943         (stream_out_bitmap): Handle all_module_statics.
26944         (ipa_reference_write_optimization_summary): Likewise; use
26945         varpool/cgraph encoders to get boundaries.
26946         (ipa_reference_read_optimization_summary): Read in all_module_statics;
26947         use it when possible.
26948
26949 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
26950
26951         PR target/44218
26952         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
26953         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
26954
26955         * doc/extend.texi (powerpc builtins): Document vec_recip,
26956         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
26957
26958         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
26959         (rs6000_emit_swrsqrt): Ditto.
26960         (rs6000_emit_swdivsf): Delete.
26961         (rs6000_emit_swdivdf): Ditto.
26962         (rs6000_emit_swrsqrtsf): Ditto.
26963
26964         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
26965         describe the reciprocal estimate support for each type.
26966         (recip_options): Map -mrecip=<opt> into option bits.
26967         (gen_2arg_fn_t): New typedef for binary rtx gen function.
26968         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
26969         reciprocal estimate instructions.
26970         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
26971         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
26972         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
26973         cost information if -mdebug=cost or -mdebug=reg.
26974         (rs6000_override_options): Set -mrecip-precision for power6, and
26975         power7 machines.  If -mvsx or -mdfp, enable various options that
26976         came in previous instruction set ISAs, unless the option was
26977         explicitly disabled by the command line option.  Parse
26978         -mrecip=<opt> options.
26979         (rs6000_builtin_vectorized_function): Add support for vectorizing
26980         the reciprocal estimate builtins and expansions.
26981         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
26982         (bdesc_2arg): Add reciprocal estimate builtins.
26983         (bdesc_1arg): Add reciprocal square root estimate builtins.
26984         (rs6000_expand_builtin): Rewrite to use a switch statement,
26985         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
26986         (rs6000_init_builtins): Create declarations for reciprocal
26987         estimate builtins.
26988         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
26989         sized, prefer traditional floating point registers, if integer
26990         vector types, prefer altivec registers.  Don't actually look at
26991         the memory address any more.
26992         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
26993         builtins.
26994         (rs6000_load_constant_and_splat): New helper function to load up
26995         the constant for reciprocal estimate instructions.
26996         (rs6000_emit_madd): New helper function for generating
26997         multiply/add type instructions, based on the current switches.
26998         (rs6000_emit_msub): Ditto.
26999         (rs6000_emit_mnsub): Ditto.
27000         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
27001         replace a divide with a reciprocal estimate and fixup, adding
27002         support for machines with high precision and vectors.
27003         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
27004         low precision machines.
27005         (rs6000_emit_swdiv): New common function to be called to replace a
27006         division with reciprocal estimate and fixup.
27007         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
27008         for double and vector types.  Add support for high precision machines.
27009
27010         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
27011         the reciprocal estimate instructions can be generated.
27012         (TARGET_FRE): Ditto.
27013         (TARGET_FRSQRTES): Ditto.
27014         (TARGET_FRSQRTE): Ditto.
27015         (RS6000_RECIP_*): New macros for reciprocal estimate support.
27016
27017         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
27018         square root estimate on vectors.
27019         (re<mode>2): New insn for reciprocal division estimate on vectors.
27020
27021         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
27022         New builtin.
27023         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
27024         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
27025         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
27026         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
27027         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
27028         (RS6000_BUILTIN_RSQRT): Ditto.
27029         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
27030         floating point builtin.
27031
27032         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
27033         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
27034         __RECIP_PRECISION__ based on the command line switches.
27035         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
27036
27037         * config/rs6000/rs6000.opt (-mrecip): Document add support for
27038         replacing division instructions with reciprocal estimate and fixup.
27039         (-mrecip=<opt>): New option.
27040         (-mrecip-precision): Ditto.
27041
27042         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
27043         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
27044         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
27045         precision scalar.
27046
27047         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
27048         (UNSPEC_VREFP): Ditto.
27049         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
27050         conterparts with regard to support of -mno-fused-madd and -ffast-math.
27051         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
27052         reciprocal estimate instructions to be generated.
27053         (altivec_vrefp): Ditto.
27054
27055         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
27056         estimate support.
27057         (rreg): New mode attribute for reciprocal estimate support.
27058         (recip<mode>3): New insn for division using reciprocal estimate
27059         and fixup builtins.
27060         (divide define_split): New define_split to convert floating point
27061         division to use reciprocal estimate if the user used the
27062         appropriate options and the split is run when we can add new
27063         pseudo registers for the fixup.
27064         (rsqrt<mode>2): New insn for reciprocal square root support.
27065         (recipsf3): Move into recip<mode>3.
27066         (recipdf3): Ditto.
27067         (fres): Use TARGET_FRES.
27068         (rsqrtsf2): Move into rsqrt<mode>2.
27069         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
27070         (copysignsf3): Add support for VSX.
27071         (fred): Use TARGET_FRE.
27072         (fred_fpr): Ditto.
27073         (rsqrtdf_internal1): New function for frsqrte instruciton.
27074
27075         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
27076         (vec_rsqrt): Ditto.
27077
27078 2010-06-03  Richard Guenther  <rguenther@suse.de>
27079
27080         PR middle-end/44291
27081         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
27082         (set_user_assembler_libfunc): Likewise.
27083
27084 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
27085
27086         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
27087         defaults.h.
27088         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
27089         to defaults.h
27090         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
27091         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
27092         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
27093         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
27094         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
27095         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
27096         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
27097         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
27098         * defaults.h: Updated for above mentioned changes.
27099
27100 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
27101
27102         * c-common.c: Remove header include of tm_p.h.
27103         * Makefile.in (c-common.o): Remove TM_P_H dependency.
27104
27105 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
27106
27107         * tree.h (struct tree_decl_map): New type.
27108         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
27109         (tree_decl_map_hash): New prototype.
27110         (debug_expr_for_decl, value_expr_for_decl): Change into
27111         tree_decl_map hashtab from tree_map.
27112         (init_ttree): Adjust initialization.
27113         (tree_decl_map_hash): New function.
27114         (decl_debug_expr_lookup, decl_debug_expr_insert,
27115         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
27116
27117 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27118
27119         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
27120         linker emulations.
27121         * configure: Regenerate.
27122         * config.in: Regenerate.
27123
27124         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
27125         (X86_64_EMULATION): Define.
27126         (TARGET_LD_EMULATION): Use them.
27127
27128         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
27129         (SPARC64_EMULATION): Define.
27130         (LINK_ARCH_SPEC): Use them.
27131
27132 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
27133
27134         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
27135         smallest_mode_for_size for computing the precision types of new
27136         graphite IVs.  Do not call lang_hooks.types.type_for_size.
27137
27138 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
27139
27140         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
27141         information.
27142         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
27143
27144 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
27145
27146         PR middle-end/44363
27147         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
27148         return false instead.
27149
27150 2010-06-02  Jan Hubicka  <jh@suse.cz>
27151
27152         PR middle-end/44295
27153         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
27154         create new cgraph node to check callee.
27155
27156 2010-06-02  Richard Guenther  <rguenther@suse.de>
27157
27158         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
27159
27160 2010-06-02  Richard Guenther  <rguenther@suse.de>
27161
27162         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
27163         (lto_wrapper_cleanup): ... this.  Do not exit.
27164         (fatal): Adjust.  Exit here.
27165         (fatal_perror): Likewise.
27166         (fatal_signal): New function.
27167         (main): Set up signal handlers to cleanup temporary files.
27168         * Makefile.in (lto-wrapper.o): Adjust dependencies.
27169
27170 2010-06-02  Richard Guenther  <rguenther@suse.de>
27171
27172         PR tree-optimization/44377
27173         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
27174
27175 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27176
27177         * config/s390/2097.md (z10_fhex): Remove insn reservation.
27178         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
27179         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
27180         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
27181         instruction.
27182         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
27183
27184 2010-06-02  Jan Hubicka  <jh@suse.cz>
27185
27186         * bitmap.c (bitmap_descriptor): Add search_iter.
27187         (bitmap_find_bit): Increment it.
27188         (print_statistics): Print it.
27189
27190 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
27191
27192         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
27193         instead of gimple_build_call_vec.  Delete unnecessary local variable.
27194
27195 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
27196
27197         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
27198         change from yesterday.
27199
27200 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
27201
27202         * c-ada-spec.c: Clean up redundant includes.
27203
27204 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
27205
27206         * gimplify.c: Do not include except.h and optabs.h.
27207         (gimplify_body): Do not initialize RTL profiling.
27208         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
27209         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
27210         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
27211         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
27212         langhooks.h.
27213
27214         * tree-pretty-print.h: Include pretty-print.h.
27215         * gimple-pretty-print.h: Include pretty-print.h.
27216
27217         * tree-pretty-print.c: Do not include diagnostic.h.
27218         * tree-vrp.c: Likewise.
27219         * tree-tailcall.c: Likewise
27220         * tree-scalar-evolution.c: Likewise
27221         * tree-ssa-dse.c: Likewise
27222         * tree-chrec.c: Likewise
27223         * tree-ssa-sccvn.c: Likewise
27224         * tree-ssa-copyrename.c: Likewise
27225         * tree-nomudflap.c: Likewise
27226         * tree-call-cdce.c: Likewise
27227         * tree-stdarg.c: Likewise
27228         * tree-ssa-math-opts.c: Likewise
27229         * tree-nrv.c: Likewise
27230         * tree-ssa-sink.c: Likewise
27231         * tree-browser.c: Likewise
27232         * tree-ssa-loop-ivcanon.c: Likewise
27233         * tree-ssa-loop.c: Likewise
27234         * tree-parloops.c: Likewise
27235         * tree-ssa-address.c: Likewise
27236         * tree-ssa-ifcombine.c: Likewise
27237         * tree-if-conv.c: Likewise
27238         * tree-data-ref.c: Likewise
27239         * tree-affine.c: Likewise
27240         * tree-ssa-phiopt.c: Likewise
27241         * tree-ssa-coalesce.c: Likewise
27242         * tree-ssa-pre.c: Likewise
27243         * tree-ssa-live.c: Likewise
27244         * tree-predcom.c: Likewise
27245         * tree-ssa-forwprop.c: Likewise
27246         * tree-ssa-dce.c: Likewise
27247         * tree-ssa-ter.c: Likewise
27248         * tree-ssa-loop-prefetch.c: Likewise
27249         * tree-optimize.c: Likewise
27250         * tree-ssa-phiprop.c: Likewise
27251         * tree-object-size.c: Likewise
27252         * tree-outof-ssa.c: Likewise
27253         * tree-ssa-structalias.c: Likewise
27254         * tree-switch-conversion.c: Likewise
27255         * tree-ssa-reassoc.c: Likewise
27256         * tree-ssa-operands.c: Likewise
27257         * tree-vectorizer.c: Likewise
27258         * tree-vect-data-refs.c: Likewise
27259         * tree-vect-generic.c: Likewise
27260         * tree-vect-stmts.c: Likewise
27261         * tree-vect-patterns.c: Likewise
27262         * tree-vect-slp.c: Likewise
27263         * tree-vect-loop.c: Likewise
27264         * tree-ssa-loop-ivopts.c: Likewise
27265         * tree-ssa-loop-im.c: Likewise
27266         * tree-ssa-loop-niter.c: Likewise
27267         * tree-ssa-loop-unswitch.c: Likewise
27268         * tree-ssa-loop-manip.c: Likewise
27269         * tree-ssa-loop-ch.c: Likewise
27270         * tree-dump.c: Likewise
27271         * tree-complex.c: Likewise
27272
27273         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
27274         * tree-ssa-uninit.c: Likewise
27275         * tree-ssa-threadupdate.c: Likewise
27276         * tree-ssa-uncprop.c: Likewise
27277         * tree-ssa-ccp.c: Likewise
27278         * tree-ssa-dom.c: Likewise
27279         * tree-ssa-propagate.c: Likewise
27280         * tree-ssa-alias.c: Likewise
27281         * tree-dfa.c: Likewise
27282         * tree-cfgcleanup.c: Likewise
27283         * tree-sra.c: Likewise
27284         * tree-ssa-copy.c: Likewise
27285         * tree-ssa.c: Likewise
27286         * tree-profile.c: Likewise
27287         * tree-cfg.c: Likewise
27288         * tree-ssa-threadedge.c: Likewise
27289         * tree-vect-loop-manip.c: Likewise
27290
27291         * tree-inline.c: Do not include diagnostic.h and expr.h.
27292         Include rtl.h.
27293         (copy_decl_for_dup_finish): Do not use NULL_RTX.
27294
27295         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
27296         * tree-loop-distribution.c: Likewise.
27297
27298 2010-06-01  Jan Hubicka  <jh@suse.cz>
27299
27300         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
27301
27302 2010-06-01  Jan Hubicka  <jh@suse.cz>
27303
27304         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
27305         remove return value.
27306         (split_bbs_on_noreturn_calls) .... here.
27307         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
27308         * tree-flow.h (fixup_noreturn_call): New.
27309
27310 2010-06-01  Jan Hubicka  <jh@suse.cz>
27311
27312         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
27313
27314 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
27315
27316         * tree.h (build_nt_call_list): Delete.
27317         * tree.c (build_nt_call_list): Delete.
27318
27319 2010-06-01  Jan Hubicka  <jh@suse.cz>
27320
27321         * fwprop.c: Make emit-rtl.h include last.
27322         * rtlanal.c: Include emit-rtl.h.
27323         * genautomata.c: Output emit-rtl include into insn-automata.c
27324         * df-scan.c: Include emit-rtl.h.
27325         * haifa-sched.c: Indlude emit-rtl.h.
27326         * mode-switching.c: Indlude emit-rtl.h.
27327         * graph.c: Indlude emit-rtl.h.
27328         * sel-sched.c: Include emit-rtl.h.
27329         * sel-sched-ir.c: Include emit-rtl.h.
27330         * ira-build.c: Include emit-rtl.h.
27331         * emit-rtl.c (first_insn, last_insn): Remove defines.
27332         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
27333         Move to emit-rtl.h.
27334         (set_new_first_and_last_insn, get_last_insn_anywhere,
27335         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
27336         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
27337         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
27338         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
27339         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
27340         Use accessor functions.
27341         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
27342          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
27343         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
27344         mem_expr_equal_p): Move here from rtl.h.
27345         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
27346         Move here from emit-rtl.c; make inline.
27347         * cfglayout.h: Include emit-rtl.h.
27348         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
27349          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
27350         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
27351         mem_expr_equal_p, get_insns, set_first-insn,
27352         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
27353         * reg-stack.c: Include emit-rtl.h.
27354         * dce.c: Likewise.
27355
27356 2010-06-01  Jan Hubicka  <jh@suse.cz>
27357
27358         * cgraph.h (tree_function_versioning): Update prototype.
27359         (cgraph_function_versioning): Update prototype.
27360         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
27361         bitmap.
27362         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
27363         (cgraph_materialize_clone, save_inline_function_body): Update use of
27364         tree_function_versioning.
27365         * tree-inline.c (copy_bb): Look for previous copied block to link
27366         after; fix debug output.
27367         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
27368         (copy_body): Likewise.
27369         (expand_call_inline): Update use of copy_body.
27370         (tree_function_versioning): Update use of copy body; accept
27371         blocks_to_copy and new_entry.
27372
27373 2010-06-01  Jan Hubicka  <jh@suse.cz>
27374
27375         * gegenrtl.c: Remove unnecesary prototypes.
27376         (gendecl): Remove.
27377         (gendef): Produce static inline.
27378         (gencode): Remove.
27379         (main): Do not decode parameters; generate header only.
27380         * Makefile.in (genrtl.c): Remove.
27381
27382 2010-06-01  Jan Hubicka  <jh@suse.cz>
27383
27384         * tree-switch-conversion.c (build_one_array): Make it readonly.
27385
27386 2010-06-01  Richard Guenther  <rguenther@suse.de>
27387
27388         * optabs.c (init_optabs): Guard all accesses to reinit.
27389         * ipa-pure-const.c (propagate): Fix another typo.
27390         * opts.c (common_handle_option): Split assignment to bool.
27391         * c-opts.c (c_common_handle_option): Likewise.
27392
27393 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
27394             Matthew Gingell  <gingell@adacore.com>
27395
27396         * doc/invoke.texi: Mention -fdump-ada-spec.
27397         * tree-dump.c (dump_files): Add ada-spec.
27398         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
27399         * tree-pass.h (tree_dump_index): Add TDI_ada.
27400         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
27401         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
27402         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
27403         * c-decl.c: Include c-ada-spec.h.
27404         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
27405         functions.
27406         (c_write_global_declarations): Add handling of -fdump-ada-spec.
27407         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
27408         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
27409         * c-ada-spec.h, c-ada-spec.c: New files.
27410
27411 2010-06-01  Richard Guenther  <rguenther@suse.de>
27412
27413         PR lto/43853
27414         * ipa-pure-const.c (get_function_state): Hand back varying state
27415         if we do not have one.
27416         (has_function_state): New function.
27417         (duplicate_node_data): Adjust.
27418         (remove_node_data): Likewise.
27419         (pure_const_write_summary): Likewise.
27420         (propagate): Likewise.  Fix typo.
27421
27422 2010-06-01  Jan Hubicka  <jh@suse.cz>
27423
27424         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
27425         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
27426         (execute_all_ipa_transforms): Do not play with the states.
27427
27428 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
27429
27430         * config/arm/t-linux-androideabi: New.
27431         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
27432
27433 2010-06-01  Jan Hubicka  <jh@suse.cz>
27434
27435         * tree-inline.c (estimate_num_insns): For stdarg functions look
27436         into call statement to count cost of argument passing.
27437
27438 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
27439
27440         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
27441         argument for fprintf.
27442         (ix86_output_addr_diff_elt): Likewise.
27443         (x86_function_profiler): Likewise.
27444         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
27445         (LPREFIX): Likewise.
27446         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
27447
27448 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
27449
27450         PR target/44338
27451         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
27452         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
27453         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
27454         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
27455         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
27456         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
27457         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
27458         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
27459         TARGET_FUSED_MADD.
27460
27461 2010-05-31  Jan Hubicka  <jh@suse.cz>
27462
27463         * tree.h (tree_range_check_failed): Declare noreturn.
27464
27465 2010-05-31  Jan Hubicka  <jh@suse.cz>
27466
27467         * gimple.c (gimple_call_builtin_p): New function.
27468         * gimple.h (gimple_call_builtin_p): Declare.
27469         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
27470         to exit.
27471         (execute_warn_function_return): BUILT_IN_RETURN is return.
27472         (split_critical_edges): Return edges are not critical.
27473         (is_ctrl_altering_stmt): Builtin_in_return is altering.
27474         (gimple_verify_flow_info): Handle built_in_return.
27475         (execute_warn_function_return): Handle built_in_return.
27476         * ipa-pure-const.c (check_call): Ignore builtin_return.
27477
27478 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
27479
27480         PR middle-end/44337
27481         * expr.c (expand_assignment): Don't store anything for out-of-bounds
27482         array accesses with non-MEM.
27483
27484         PR tree-optimization/44182
27485         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
27486         newly needs to end a bb is followed by debug stmts, instead return
27487         true from the function at the end.
27488         (maybe_move_debug_stmts_to_successors): New function.
27489         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
27490
27491 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
27492
27493         PR target/44161
27494         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
27495
27496 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
27497
27498         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
27499         for nested functions in non-optimized compilation.
27500
27501 2010-05-31  Richard Guenther  <rguenther@suse.de>
27502
27503         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
27504
27505 2010-05-30  Jan Hubicka  <jh@suse.cz>
27506
27507         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
27508
27509 2010-05-30  Richard Guenther  <rguenther@suse.de>
27510
27511         PR lto/42975
27512         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
27513         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
27514         no longer needed.
27515
27516 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
27517
27518         * config/darwin.c (output_objc_section_asm_op): Add comment.
27519         (name_needs_quotes): Add '_' to list of valid comment chars.
27520         (machopic_output_function_base_name): Remove unneeded quotes.
27521         (darwin_encode_section_info): Adjust asm whitespace.
27522         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
27523         (ASM_OUTPUT_LOCAL): Ditto.
27524         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
27525         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
27526         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
27527
27528 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
27529
27530         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
27531         RS6000_OUTPUT_BASENAME unconditionally.
27532         (rs6000_output_function_epilogue): Likewise.
27533
27534 2010-05-30  Jan Hubicka  <jh@suse.cz>
27535
27536         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
27537         nodes.
27538
27539 2010-05-30  Richard Guenther  <rguenther@suse.de>
27540
27541         * tree-cfg.c (verify_gimple_assign_single): Implement
27542         verification for COND_EXPR rhs.
27543
27544 2010-05-30  Jan Hubicka  <jh@suse.cz>
27545
27546         * cgraph.h (cgraph_dump_file): Declare.
27547         * cgraphunit.c (cgraph_dump_file): Export.
27548         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
27549
27550 2010-05-30  Jan Hubicka  <jh@suse.cz>
27551
27552         * dwarf2out.c (reference_to_unused,
27553         premark_types_used_by_global_vars_helper): Avoid creation of new
27554         varpool nodes.
27555
27556 2010-05-30  Jan Hubicka  <jh@suse.cz>
27557
27558         * cgraph.h (cgraph_node_cannot_return,
27559         cgraph_edge_cannot_lead_to_return): New functions.
27560         * cgraph.c (cgraph_node_cannot_return,
27561         cgraph_edge_cannot_lead_to_return): Use them.
27562         * ipa-pure-const.c (pure_const_names): New static var.
27563         (check_call): Handle calls not leading to return.
27564         (pure_const_read_summary): Dump info read.
27565         (propagate): Dump info about propagation process; ignore side effects
27566         of functions not leading to exit; fix handling of pure functions.
27567
27568 2010-05-30  Jan Hubicka  <jh@suse.cz>
27569
27570         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
27571         for tail call epilogues.
27572
27573 2010-05-30  Jan Hubicka  <jh@suse.cz>
27574
27575         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
27576         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
27577         dump files.
27578
27579 2010-05-29  Jan Hubicka  <jh@suse.cz>
27580
27581         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
27582         node; remove references in node we no longer keep in cgrpah but need
27583         body of.
27584
27585 2010-05-29  Jan Hubicka  <jh@suse.cz>
27586
27587         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
27588
27589 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27590
27591         PR target/44165
27592         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
27593
27594 2010-05-29  Jan Hubicka  <jh@suse.cz>
27595
27596         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
27597         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
27598         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
27599         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
27600         debug_names_replaced_by, debug_update_ssa): Likewise.
27601         * sbitmap.c (debug_sbitmap): Likewise.
27602         * genrecog.c (debug_decision, debug_decision_list): Likewise.
27603         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
27604         debug_tree_chain): Likewise.
27605         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
27606         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
27607         * optabs.c (debug_optab_libfuncs): Likewise.
27608         (verify_loop_closed_ssa): Likewise.
27609         * value-prof.c (verify_histograms): Likewise.
27610         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
27611         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
27612         * cfghooks.c (verify_flow_info): Likewise.
27613         * fold-const.c (debug_fold_checksum): Likewise.
27614         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
27615         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
27616         Likewise.
27617         * omega.c (debug_omega_problem): Likewise.
27618         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
27619         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
27620         * dominance.c (verify_dominators, debug_dominance_info,
27621         debug_dominance_tree): Likewise.
27622         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
27623         * df_regno_debug, df_ref_debug,
27624         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
27625         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
27626         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
27627         * sel-sched.c (debug_state): Likewise.
27628         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
27629         Likewise.
27630         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
27631         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
27632         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
27633         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
27634         Likewise.
27635         * c-pretty-print.c (debug_c_tree): Likewise.
27636         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
27637         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
27638         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
27639         * ebitmap.c (debug_ebitmap): Likewise.
27640         * function.c (debug_find_var_in_block_tree): Likewise.
27641         * print-rtl.c (debug_rtx): Likewise.
27642         (debug_rtx_count): Likewise.
27643         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
27644         * stor-layout.c (debug_rli): Likewise.
27645         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
27646         * tree-data-ref.c (debug_data_references,
27647         debug_data_dependence_relations, debug_data_reference,
27648         debug_data_dependence_relation, debug_rdg_vertex,
27649         debug_rdg_component, debug_rdg): Likewise.
27650         * tree-affine.c (debug_aff): Likewise.
27651         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
27652         Likewise.
27653         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
27654         * emit-rtl.c (verify_rtl_sharing): Likewise.
27655         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
27656         debug_value_expressions): Likewise.
27657         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
27658         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
27659         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
27660         * cfglayout.c (verify_insn_chain): Likewise.
27661         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
27662         debug_clast_stmt, debug_generated_program): Likewise.
27663         * ggc-page.c (debug_print_page_list): Likewise.
27664         * tree-ssa-ter.c (debug_ter): Likewise.
27665         * graphite-dependences.c (debug_pddr): Likewise.
27666         * sched-deps.c (debug_ds): Likewise.
27667         * tree-ssa.c (verify_ssa): Likewise.
27668         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
27669         debug_scattering_functions, debug_iteration_domains, debug_pdr,
27670         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
27671         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
27672         * tree-inline.c (debug_find_tree): Likewise.
27673         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
27674         debug_ppl_powerset_matrix): Likewise.
27675         * var-tracking.c (debug_dv): Likewise.
27676         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
27677         * cfgloop.c (verify_loop_structure): Likewise.
27678         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
27679         * c-common.c (verify_sequence_points): Likewise.
27680         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
27681         debug_candidates, debug_rgn_dependencies): Likewise.
27682         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
27683         * debug_constraint_graph, debug_solution_for_var,
27684         debug_sa_points_to_info): Likewise.
27685         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
27686         Likewie.
27687         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
27688         debug_loops, debug_loop, debug_loop_num): Likewise.
27689         * passes.c (debug_pass): Likewise.
27690         (dump_properties): Likewise; add cfglayout property.
27691         (debug_properties): Likewise.
27692         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
27693         * varpool.c (debug_varpool): Likewise.
27694         * regcprop.c (debug_value_data): Likewise.
27695         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
27696         debug_immediate_uses_for): Likewise.
27697
27698 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
27699
27700         PR bootstrap/44315
27701         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
27702         Filter out insn-flags.h.
27703
27704 2010-05-29  Jan Hubicka  <jh@suse.cz>
27705
27706         * cgraph.h (struct varpool_node_set_def,
27707         struct cgraph_node_set_def): Remove unused AUX pointer.
27708         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
27709         VEC_empty macro.
27710
27711 2010-05-29  Jan Hubicka  <jh@suse.cz>
27712
27713         PR middle-end/44324
27714         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
27715
27716 2010-05-29  Richard Guenther  <rguenther@suse.de>
27717
27718         * lto-streamer.c (cached_bp): New global variable.
27719         (bitpack_create): Return the cached bitpack, if available.
27720         (bitpack_delete): Clear and cache the bitpack, if appropriate.
27721         (bp_pack_value): Remove redundant asserts.
27722
27723 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
27724
27725         PR middle-end/44306
27726         * tree-if-conv.c (is_true_predicate): New.
27727         (is_predicated): Use is_true_predicate.
27728         (add_to_predicate_list): Same.  Do not use unshare_expr.
27729         (add_to_dst_predicate_list): Same.
27730
27731 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
27732
27733         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
27734         field on edges.
27735         (predicate_bbs): Same.
27736         (clean_predicate_lists): Same.
27737         (find_phi_replacement_condition): Do not AND the predicate from
27738         edge->aux.
27739
27740 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
27741
27742         PR bootstrap/44315
27743         * Makefile.in (build/gencondmd.o): Add a missing `\'.
27744
27745 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27746
27747         PR target/44261
27748         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
27749         (negdf2): Adjust expander pattern and use negdf2_slow.
27750         (negsf2): Likewise.
27751
27752 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
27753
27754         * basic-block.h (struct control_flow_graph): Move last_label_uid field
27755         up.
27756         * df.h (struct df_base_ref): Move regno field up.
27757         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
27758         * expr.h (struct separate_ops): Move location field up.
27759         * optabs.h (struct optab_d): Move libcall_basename field down.
27760         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
27761         * config/i386/i386.h (struct machine_function): Convert call_abi field
27762         into a bitfield.  Move cfa field to the end of the structure.
27763
27764 2010-05-29  Jan Hubicka  <jh@suse.cz>
27765
27766         * varpool.c (varpool_get_node): Fix lookup.
27767
27768 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27769
27770         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
27771         RTL specific prototypes with #ifdef RTX_CODE.
27772         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
27773         * config/spu/t-spu-elf: Fix dependencies.
27774
27775         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
27776
27777 2010-05-29  Mike Stump  <mikestump@comcast.net>
27778
27779         PR bootstrap/44315
27780         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
27781         TM_H when building to avoid dependency loops.
27782
27783 2010-05-29  Jan Hubicka  <jh@suse.cz>
27784
27785         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
27786         refs and body; not the whole node for masters of materialized clones.
27787
27788 2010-05-29  Mike Stump  <mikestump@comcast.net>
27789
27790         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
27791
27792 2010-05-29  Jan Hubicka  <jh@suse.cz>
27793
27794         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
27795         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
27796         use of clone_function_name.
27797         * cgraph.h (cgraph_create_virtual_clone,
27798         cgraph_function_versioning): update prototypes.
27799         (clone_function_name): Declare.
27800         * ipa-cp.c (ipcp_insert_stage): Update call of
27801         cgraph_create_virtual_clone.
27802         * omp-low.c (create_omp_child_function_name): Use
27803         cgraph_create_virtual_clone.
27804         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
27805         (cgraph_function_versioning): Take SUFFIX argument; produce new name
27806         and make decl local.
27807
27808 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27809
27810         * vec.h: Include statistics.h
27811         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
27812         with VEC_H.
27813
27814 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27815
27816         * c-lex.c: Do not include c-tree.h.
27817         * c-pretty-print.c: Likewise.
27818         * c-opts.c: Likewise.
27819         * c-gimplify.c: Likewise.
27820         * c-common.c: Likewise.
27821         * c-dump.c: Likewise.  Include c-common.h.
27822
27823 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27824
27825         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
27826         before including diagnostic-core.h.
27827         (c_cpp_error): New prototype moved from c-tree.h.
27828         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
27829         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
27830         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
27831         (c_cpp_error): Prototype moved to c-common.h.
27832         * Makefile.in: Update dependency for C_COMMON_H.
27833
27834 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27835
27836         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
27837         * c-common.c (c_register_addr_space): Remove here.
27838         * c-decl.c (c_register_addr_space): Re-add here.
27839
27840 2010-05-28  Mike Stump  <mikestump@comcast.net>
27841
27842         * config/darwin-c.c: Remove c-tree.h include.
27843
27844 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27845
27846         * gcc.c: Include diagnostic.h.
27847         (error_count): Remove.  All users changed to use errorcount.
27848         (programname): Remove.  All users changed to use progname.
27849         (fancy_abort, internal_error, fatal_error, error, warning, inform,
27850         fnotice): Remove.
27851         (execute): Don't include "Internal error" and bug reporting
27852         information in argument of internal_error call.
27853         (process_command): Don't increment error_count after calling
27854         perror_with_name.
27855         (input_filename): Rename to gcc_input_filename.  All users
27856         changed.
27857         (main): Call diagnostic_initialize.  Register delete_temp_files
27858         with atexit.  Use seen_error to test for errors.
27859         * gcc.h: Include diagnostic-core.h.
27860         (fatal_error, error, warning): Remove.
27861         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
27862         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
27863         (gcc.o): Update dependencies.
27864
27865 2010-05-28  Jeff Law  <law@redhat.com>
27866
27867         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
27868         functions.
27869         * ira.h (ira_bad_reload_regno): Declare
27870         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
27871
27872         * ira-color.c (update_curr_costs): Free updated hard reg costs.
27873         (ira_reassign_conflict_allocnos): Remove bogus asserts.
27874         (allocno_reload_assign): Likewise.
27875
27876 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
27877
27878         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
27879         build1_stat.
27880
27881 2010-05-28  Richard Guenther  <rguenther@suse.de>
27882
27883         PR lto/44312
27884         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
27885         Stream fixed-point constants mode.
27886         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
27887         and TYPE_PRECISION.
27888         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
27889         Stream fixed-point constants mode.
27890         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
27891         and TYPE_PRECISION.
27892
27893 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27894
27895         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
27896         only place it was called from.
27897         (number_of_latch_executions): Do not return chrec_dont_know when the
27898         may_be_zero is a runtime condition: instead, return a COND_EXPR
27899         including the may_be_zero condition.
27900         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
27901         of nb_iterations.
27902         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
27903         COND_EXPRs.
27904
27905 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27906
27907         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
27908         generate COND_EXPRs for degenerate_phi_result.
27909
27910 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27911
27912         PR middle-end/44293
27913         * tree-if-conv.c (if_convertible_loop_p): Check the
27914         if-convertibility of phi nodes in non predicated BBs.
27915
27916 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27917
27918         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
27919
27920 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27921
27922         PR driver/15303
27923         * gcc.c (inform, warning, inform): New functions.
27924         (fatal_ice): Rename to internal_error; change cmsgid parameter to
27925         gmsgid.  All callers changed.
27926         (notice): Rename to fnotice; add parameter fp.  All callers changed.
27927         (fatal_error): Rename to fatal_signal.  All users changed.
27928         (fatal): Rename to fatal_error; change cmsgid parameter to
27929         gmsgid.  All callers changed.
27930         (process_command): Use warning instead of error for warnings.
27931         (end_going_arg): Don't use _() around argument of error.
27932         (do_spec_1): Use inform for message from %n specs.  Use warning
27933         instead of error for warnings.
27934         (main): Use inform for comparison messages.  Use warning for
27935         message about unused linker input.
27936         (error): Increment error_count.  Print "error: ".
27937         * gcc.h (fatal): Change to fatal_error.
27938         (warning): Declare.
27939         * config/darwin-driver.c (darwin_default_min_version): Use warning
27940         instead of fprintf for warnings.
27941         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
27942
27943 2010-05-28  Julian Brown  <julian@codesourcery.com>
27944
27945         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
27946         (*thumb2_addsi3_compare0_scratch): New.
27947         * config/arm/constraints.md (Pv): New.
27948         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
27949         for ARM mode only.
27950         (*addsi3_compare0_scratch): Likewise.
27951
27952 2010-05-28  Jan Hubicka  <jh@suse.cz>
27953
27954         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
27955         check.
27956         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
27957         only on local statics.
27958
27959 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
27960
27961         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
27962
27963 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
27964
27965         PR bootstrap/44314
27966         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
27967         (OPTION_GLIBC): Define.
27968
27969 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
27970
27971         PR debug/41048
27972         * dwarf2out.c (double_int_type_size_in_bits): New function.
27973         (round_up_to_align): Change first argument and return value to
27974         double_int.
27975         (field_byte_offset): Work internally on double_ints.
27976
27977         PR target/43636
27978         * builtins.c (expand_movstr): Use a temporary pseudo instead
27979         of target even when target is not NULL and not const0_rtx, but
27980         fails movstr predicate.
27981         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
27982
27983 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27984
27985         * final.c (rest_of_clean_state): Use %m in errors instead of
27986         strerror (errno).
27987         * gengtype.c (read_input_list, close_output_files): Use xstrerror
27988         instead of strerror.
27989         * toplev.c (process_options): Use %m in errors instead of strerror
27990         (errno).
27991         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
27992         (errno).
27993
27994 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
27995
27996         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
27997         (ix86_canonical_va_list_type): Make static.  Add declaration.
27998         (ix86_enum_va_list): Make static.  Reindent.
27999         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
28000         (ix86_canonical_va_list_type): Ditto.
28001         (ix86_enum_va_list): Ditto.
28002
28003 2010-05-28  Richard Guenther  <rguenther@suse.de>
28004
28005         * lto-wrapper.c (run_gcc): With -save-temps generate a
28006         user-visible ltrans filename.  Fixup ltrans unit numbering.
28007
28008 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
28009
28010         * c-common.c (c_common_nodes_and_builtins): Replace use
28011         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
28012         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
28013         to ix86_enum_va_list.
28014         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
28015         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
28016         (TARGET_ENUM_VA_LIST_P): Add hook description.
28017         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
28018         * target.h (gcc_target): Add enum_va_list hook.
28019
28020         PR bootstrap/44299
28021         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
28022         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
28023         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
28024
28025 2010-05-28  Alan Modra  <amodra@gmail.com>
28026
28027         PR target/44266
28028         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
28029         emit_library_call machinery to set up __tls_get_addr calls.
28030
28031 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28032
28033         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
28034
28035 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
28036
28037         Revert fix for PR c++/44188
28038         * c-common.c (is_typedef_decl): Revert the moving of  this
28039         definition ...
28040         * tree.c (is_typedef_decl): ... here.
28041         (typdef_variant_p): Revert the moving of this  definition
28042         here from cp/tree.c.
28043         * c-common.h (is_typedef_decl): Revert the moving of this
28044         declaration ...
28045         * tree.h (is_typedef_decl): ... here.
28046         (typedef_variant_p): Revert the moving of this  declaration here
28047         from cp/cp-tree.h
28048         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
28049         (gen_tagged_type_die): Revert the splitting out of ...
28050         (gen_type_die_with_usage): ... this function. Revert the anonymous
28051         tagged type handling.
28052         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
28053         typedefs naming anonymous tagged types.
28054
28055 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
28056
28057         * config/rs6000/rs6000-modes.def (PSImode): Delete.
28058
28059 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
28060
28061         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
28062         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
28063         throughout.
28064         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
28065         "xer" to "ca".
28066         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
28067         XER_REGS to CA_REGS throughout.
28068         * config/rs6000/rs6000.h: Same.
28069         (ADDITIONAL_REGISTER_NAMES): Add "xer".
28070         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
28071         that mode_iterator "P" is the size for arithmetic carries as well.
28072         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
28073
28074 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
28075
28076         PR bootstrap/44255
28077         * combine.c (struct rtx_subst_pair): Define unconditionally.
28078         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
28079         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
28080         Call make_compound_operation on pair->to.
28081         (propagate_for_debug): Don't call make_compound_operation here.
28082         Always use simplify_replace_fn_rtx.
28083
28084 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
28085
28086         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
28087         * config/xtensa/xtensa.c (override_options): Check
28088           TARGET_FORCE_NO_PIC and set flag_pic.
28089         * config/xtensa/xtensa.opt: Document -mforce-no-pic
28090
28091 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
28092
28093         PR bootstrap/44299
28094         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
28095         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
28096
28097 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
28098
28099         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
28100         toplev.h.
28101         * diagnostic.c: Don't include toplev.h.
28102         (progname): Define.  Moved from toplev.c.
28103         (seen_error): New function.
28104         * diagnostic.h: Include diagnostic-core.h.
28105         (diagnostic_t, emit_diagnostic): Don't declare here.
28106         * toplev.c (progname): Move to toplev.c.
28107         (emit_debug_global_declarations, compile_file, finalize,
28108         do_compile, toplev_main): Use seen_error.
28109         * toplev.h: Include diagnostic-core.h.
28110         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
28111         internal_error, warning, warning_at, error, error_n, error_at,
28112         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
28113         verbatim, fnotice, progname): Move to diagnostic-core.h.
28114         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
28115         (expand_builtin_expect): Use seen_error.
28116         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
28117         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
28118         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
28119         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
28120         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
28121         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
28122         errorcount for errors.
28123         * c-opts.c (c_common_finish): Use seen_error.
28124         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
28125         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
28126         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
28127         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
28128         (get_coverage_counts): Use seen_error.
28129         * dwarf2out.c (dwarf2out_finish): Use seen_error.
28130         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
28131         gimplify_body): Use seen_error.
28132         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
28133         * ipa-pure-const.c (gate_pure_const): Use seen_error.
28134         * ipa-reference.c (gate_reference): Use seen_error.
28135         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
28136         * lambda-code.c: Include diagnostic-core.h instead of
28137         diagnostic.h.
28138         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
28139         * lto-compress.c: Include diagnostic-core.h instead of
28140         diagnostic.h.
28141         * lto-section-in.c: Include diagnostic-core.h instead of
28142         diagnostic.h.
28143         * lto-streamer-out.c: Include diagnostic-core.h instead of
28144         diagnostic.h.
28145         * lto-streamer.c: Include diagnostic-core.h instead of
28146         diagnostic.h.
28147         (gate_lto_out): Use seen_error.
28148         * matrix-reorg.c: Include diagnostic-core.h instead of
28149         diagnostic.h.
28150         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
28151         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
28152         (gate_expand_omp, lower_omp_1): Use seen_error.
28153         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
28154         (rest_of_decl_compilation, rest_of_type_compilation,
28155         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
28156         * tree-cfg.c (label_to_block_fn): Use seen_error.
28157         * tree-inline.c (optimize_inline_calls): Use seen_error.
28158         * tree-mudflap.c (mudflap_finish_file): Use
28159         seen_error.
28160         * tree-optimize.c (gate_all_optimizations,
28161         gate_all_early_local_passes, gate_all_early_optimizations): Use
28162         seen_error.
28163         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
28164         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
28165         (varpool_remove_unreferenced_decls,
28166         varpool_assemble_pending_decls): Use seen_error.
28167         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
28168         (TOPLEV_H, DIAGNOSTIC_H): Update.
28169         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
28170         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
28171         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
28172         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
28173         coverage.o, lambda-code.o): Update dependencies.
28174
28175 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
28176
28177         PR c++/44188
28178         * c-common.c (is_typedef_decl): Move this definition ...
28179         * tree.c (is_typedef_decl): ... here.
28180         (typdef_variant_p): Move definition here from cp/tree.c.
28181         * c-common.h (is_typedef_decl): Move this declaration ...
28182         * tree.h (is_typedef_decl): ... here.
28183         (typedef_variant_p): Move declaration here from cp/cp-tree.h
28184         * dwarf2out.c (is_naming_typedef_decl): New function.
28185         (gen_tagged_type_die): Split out of ...
28186         (gen_type_die_with_usage): ... this function. When an anonymous
28187         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
28188         is emitted for the typedef.
28189         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
28190         anonymous tagged types.
28191
28192 2010-05-27  Jason Merrill  <jason@redhat.com>
28193
28194         * print-tree.c (debug_vec_tree): New fn.
28195         (print_vec_tree): New fn.
28196         * tree.h: Declare them.
28197         * gdbinit.in (pvt): New command.
28198
28199         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
28200
28201         * gdbinit.in (pdd): New command.
28202
28203 2010-05-27  Jan Hubicka  <jh@suse.cz>
28204
28205         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
28206         (update_caller_keys): Return early if there are no callers;
28207         only update fibheap when decresing the key.
28208         (update_callee_keys): Avoid recursion.
28209         (decide_inlining_of_small_functions): When badness does not match;
28210         re-insert into fibheap.
28211
28212 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
28213
28214         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
28215         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
28216         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
28217         (ALL_HOST_OBJS): Now a union of the above two.
28218         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
28219         all files in ALL_HOST_FRONTEND_OBJS.
28220         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
28221
28222         * c-common.c: Pretend to be a backend file by undefining
28223         IN_GCC_FRONTEND (still need rtl.h here).
28224
28225 2010-05-27  Jan Hubicka  <jh@suse.cz>
28226
28227         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
28228         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
28229
28230 2010-05-27  Jan Hubicka  <jh@suse.cz>
28231
28232         * sched-ebb.c: Rename struct deps to struct deps_desc.
28233         * ddg.c: Likewise.
28234         * sel-sched-ir.c: Likewise.
28235         * sched-deps.c: Likewise.
28236         * sched-int.h: Likewise.
28237         * sched-rgn.c: Likewise.
28238
28239 2010-05-27  Jon Beniston  <jon@beniston.com>
28240
28241         PR 43726
28242         * config/lm32/lm32.h: Remove definition of
28243         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
28244
28245 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
28246
28247         PR lto/44230
28248         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
28249
28250 2010-05-27  Richard Guenther  <rguenther@suse.de>
28251
28252         PR tree-optimization/44284
28253         * tree-vect-stmts.c (vectorizable_assignment): Handle
28254         sign-changing conversions as simple copy.
28255
28256 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
28257
28258         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
28259         Bionic C library.
28260         (__gthread_active_p): Check for pthread_create if compiling against
28261         Bionic C library.
28262
28263 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
28264
28265         Support compilation for Android platform.  Reimplement -mandroid.
28266
28267         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
28268         (*android*): Set ANDROID_DEFAULT.
28269         (arm*-*-linux*): Include linux-android.h.
28270         (arm*-*-eabi*): Don't include previous -mandroid implementation.
28271         * config/arm/eabi.h: Remove, move Android-specific parts ...
28272         * config/linux-android.h: ... here.  New file.
28273         * config/arm/eabi.opt: Rename to ...
28274         * config/linux-android.opt: ... this.
28275         (mandroid): Allow -mno-android option.  Initialize based on
28276         ANDROID_DEFAULT.
28277         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
28278         Move logic to corresponding LINUX_TARGET_* macros.
28279         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
28280         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
28281         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
28282         Android definitions.
28283         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
28284         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
28285         Document.
28286
28287 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
28288
28289         Add support for Bionic C library
28290
28291         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
28292         macro.
28293         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
28294         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
28295
28296         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
28297         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
28298         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
28299         to support multiple C libraries.  Handle Bionic.
28300         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
28301         (BIONIC_DYNAMIC_LINKER64): Define.
28302         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
28303         Update.
28304         (TARGET_HAS_SINCOS): Enable for Bionic.
28305
28306         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
28307         the last option specified on command line take effect.
28308         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
28309         (mbionic): New.
28310         (mglibc, muclibc): Update.
28311
28312         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
28313         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
28314         DEFAULT_LIBC.
28315
28316         * doc/invoke.texi (-mglibc, -muclibc): Update.
28317         (-mbionic): Document.
28318
28319 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28320
28321         * c-common.h (c_register_addr_space): Add prototype.
28322         (ADDR_SPACE_KEYWORD): Remove.
28323         * c-common.c (c_register_addr_space): New function.
28324         (c_addr_space_name): Reimplement.
28325         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
28326
28327         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
28328         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
28329
28330         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
28331         Remove TARGET_ADDR_SPACE_KEYWORDS.
28332
28333 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
28334
28335         * input.c: New file.
28336         * input.h (main_input_filename): Move declaration to toplev.h.
28337         * toplev.c (input_location, line_table): Move to input.c
28338         * toplev.h (main_input_filename): Move declaration from input.h.
28339         * tree.c (expand_location): Move to input.c.
28340         * Makefile.in (OBJS-common): Add input.o.
28341         (input.o): Add dependencies.
28342
28343 2010-05-27  Richard Guenther  <rguenther@suse.de>
28344
28345         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
28346         for non-existant files.
28347         (fork_execute): Mark args_name file as deleted.
28348
28349 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
28350
28351         PR bootstrp/44287
28352         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
28353         (narrow_signed_type): Likewise.
28354
28355 2010-05-26  Jan Hubicka  <jh@suse.cz>
28356
28357         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
28358         edge only when checking is enabled; check using former_clone_of;
28359         check inline clones too.
28360         (cgraph_materialize_clone): Record former_clone_of pointer.
28361         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
28362         combining redirections; dump args_to_skip bitmap
28363         (cgraph_materialize_all_clones): Do no redirection here.
28364         * ipa-inline.c (inline_transform): Do redirection here.
28365         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
28366         cheking only).
28367
28368 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28369
28370         * config/avr/avr-c.c: Do not include regs.h.
28371         Include cpplib.h for cpp_define and tree.h for c-common.h.
28372         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
28373         * config/avr/t-avr: Fix dependencies for avr-c.o.
28374
28375 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28376
28377         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
28378         string instead of SYMBOL_REF rtx.
28379         * rtl.h (set_stack_check_libfunc): Move prototype from here...
28380         * libfuncs.h: ...to here.  Adjust for explow.c change.
28381
28382 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
28383
28384         * pretty-print.c: Don't include ggc.h.
28385         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
28386         (identifier_to_locale): Use them for allocation.
28387         * pretty-print.h (identifier_to_locale_alloc,
28388         identifier_to_locale_free): Declare.
28389         * toplev.c (alloc_for_identifier_to_locale): New.
28390         (general_init): Set identifier_to_locale_alloc and
28391         identifier_to_locale_free.
28392         * Makefile.in (pretty-print.o): Update dependencies.
28393
28394 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
28395
28396         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
28397         pointer types if they have different alignment or mode.
28398
28399 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
28400
28401         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28402         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28403         * config/sparc/sparc-protos.h (function_value): Remove declaration.
28404         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
28405         sparc_function_value_regno_p): New functions.
28406         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28407         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28408         (function_value): Rename to...
28409         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
28410         argument to 'outgoing'.
28411         (function_arg_record_value, function_arg_union_value,
28412         function_arg_vector_value): Update comment.
28413
28414 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
28415
28416         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
28417         (fde_needed_for_eh_p): New predicate.
28418         (output_call_frame_info): Use it throughout to decide whether FDEs
28419         are needed for EH purpose.
28420         (dwarf2out_begin_prologue): Reorder assignments.
28421
28422 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28423
28424         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
28425         special case loop->header.
28426         (is_predicated): New.
28427         (if_convertible_loop_p): Call it.
28428
28429 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28430
28431         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
28432         iterator in parameter.  Do not generate code during the analysis.
28433         (tree_if_convert_cond_stmt): Removed.
28434         (tree_if_convert_stmt): Removed.
28435         (predicate_bbs): New.
28436         (if_convertible_loop_p): Call predicate_bbs.
28437         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
28438         now contains all the analysis part.
28439
28440 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28441
28442         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
28443         statements in the analysis part.
28444         (tree_if_convert_stmt): Update comment.
28445         (remove_conditions_and_labels): New.
28446         (combine_blocks): Call remove_conditions_and_labels.
28447         (tree_if_conversion): Update comment.
28448
28449 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28450
28451         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
28452         than 2 predecessors or more than 2 successors.
28453
28454 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28455
28456         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
28457         of loops in which the data dependence analysis fails.
28458
28459 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28460
28461         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
28462         CDI_POST_DOMINATORS.
28463         (tree_if_conversion): Same.
28464
28465 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28466
28467         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
28468
28469 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28470
28471         * tree-if-conv.c: Update copyright years.  Fix comments.
28472         Fix indentation.
28473
28474 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
28475
28476         * builtin-types.def (BT_INT128): New primitive type.
28477         (BT_UINT128): Likewise.
28478         * c-common.c (c_common_r): Add __int128 keyword.
28479         (c_common_type_for_size): Handle __int128.
28480         (c_common_type_for_mode): Likewise.
28481         (c_common_signed_or_unsigned_type): Likewise.
28482         (c_common_nodes_and_builtins): Add builtin type
28483         if target supports 128-bit integer scalar.
28484         * c-common.h (enum rid): Add RID_INT128.
28485         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
28486         if target supports 128-bit integer scalar.
28487         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
28488         (finish_declspecs): Likewise.
28489         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
28490         (c_token_starts_declspecs): Likewise.
28491         (c_parser_declspecs): Likewise.
28492         (c_parser_attributes): Likewise.
28493         (c_parser_objc_selector): Likewise.
28494         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
28495         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
28496         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
28497         * tree.c (make_or_reuse_type): Likewise.
28498         (make_unsigned_type): Likewise.
28499         (build_common_tree_nodes_2): Likewise.
28500         * tree.h (enum integer_type_kind): Add itk_int128 and
28501         itk_unsigned_int128.
28502         (int128_integer_type_node): New define.
28503         (int128_unsigned_type_node): New define.
28504         * doc/extend.texi: Add documentation about __int128 type.
28505
28506 2010-05-26  Richard Guenther  <rguenther@suse.de>
28507
28508         * tree-ssa-sccvn.c (copy_nary): Adjust.
28509         (copy_phis): Rename to ...
28510         (copy_phi): ... this.  Adjust.
28511         (copy_references): Rename to ...
28512         (copy_reference): ... this.  Adjust.
28513         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
28514         result into the valid table.
28515
28516 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28517
28518         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
28519         insn-config.h, insn-codes.h, recog.h, and optabs.h.
28520
28521 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28522
28523         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
28524
28525 2010-05-26  Richard Guenther  <rguenther@suse.de>
28526
28527         * opts.c (common_handle_option): Handle OPT_Ofast.
28528
28529 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
28530
28531         * diagnostic.c: Don't include opts.h.
28532         (permissive_error_option): Define.
28533         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
28534         for classify_diagnostic.  Don't use memset for
28535         classify_diagnostic.  Initialize new and recently added fields.
28536         (diagnostic_classify_diagnostic): Use context->n_opts instead of
28537         N_OPTS.
28538         (diagnostic_report_diagnostic): Pass context parameter to
28539         diagnostic_report_warnings_p.  Use option_enabled and option_name
28540         hooks from context.
28541         (emit_diagnostic): Use permissive_error_option.
28542         (permerror): Likewise.
28543         * diagnostic.h: Don't include options.h.
28544         (struct diagnostic_context): Add n_opts, opt_permissive,
28545         inhibit_warnings, warn_system_headers, option_enabled and
28546         option_name fields.  Change classify_diagnostic to a pointer.
28547         * opts-diagnostic.h: New file.
28548         * opts.c: Include opts-diagnostic.h.
28549         (common_handle_option): Set global_dc fields for -Wfatal-errors,
28550         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
28551         (option_name): New function.
28552         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
28553         (c_common_handle_option): Set global_dc->permissive for
28554         -fpermissive.
28555         * c-common.c (c_cpp_error): Save and restore
28556         global_dc->warn_system_headers, not variable warn_system_headers.
28557         * toplev.c: Include opts-diagnostic.h.
28558         (general_init): Update call to diagnostic_initialize.  Set
28559         global_dc->show_column, global_dc->option_enabled and
28560         global_dc->option_name.
28561         (process_options): Don't set global_dc fields here.
28562         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
28563         (diagnostic.o, opts.o, toplev.o): Update dependencies.
28564
28565 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
28566
28567         * config/picochip/picochip.md (movsi): Split a movsi from a
28568         const after reload.
28569
28570 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28571
28572         * ggc-zone.c: Update copyright year.
28573         (poison_region): Mark memory for Valgrind as undefined before
28574         memset () call and inaccessible afterwards.
28575         (ggc_pch_total_size): Change type of i to int.
28576
28577 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28578
28579         * ggc-common.c (ggc_free_overhead): Allow empty slot.
28580
28581 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28582
28583         * ggc-common.c: Update copyright year.
28584         (ggc_rlimit_bound): Remove prototype.  Compile only if
28585         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
28586         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
28587         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
28588         (ggc_min_heapsize_heuristic): Likewise.
28589
28590 2010-05-26  Richard Guenther  <rguenther@suse.de>
28591
28592         PR rtl-optimization/44164
28593         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
28594         no-common access-path disambiguation.
28595         (indirect_ref_may_alias_decl_p): Adjust.
28596         (indirect_refs_may_alias_p): Likewise.
28597         (refs_may_alias_p_1): Likewise.
28598
28599 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28600
28601         * c-typeck.c: Do not include expr.h.
28602
28603 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28604
28605         * rtl.h (decl_default_tls_model): Move prototype from here...
28606         * output.h: ...to here.
28607         * c-decl.c: Do not include rtl.h.
28608         * c-pragma.c: Likewise.
28609         * c-parser.c: Likewise.
28610         * c-gimplify.c: Likewise.  And also not hard-reg-set.
28611         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
28612         FIXME note for it.  Add a FIXME note for expr.h.
28613         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
28614         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
28615         defined.
28616
28617 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
28618
28619         PR target/44199
28620         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
28621         or total_size is larger than red zone size for non-V4 ABI, emit a
28622         stack_tie resp. frame_tie insn before stack pointer restore.
28623         * config/rs6000/rs6000.md (frame_tie): New insn.
28624
28625 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
28626
28627         * function.h (struct function): Add can_throw_non_call_exceptions bit.
28628         * lto-streamer-in.c (input_function): Stream it in.
28629         * lto-streamer-out.c (output_function): Stream it out.
28630         * function.c (allocate_struct_function): Set it.
28631         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
28632         for flag_non_call_exceptions.
28633         * cfgbuild.c (control_flow_insn_p): Likewise.
28634         (make_edges): Likewise.
28635         * cfgexpand.c (expand_stack_alignment): Likewise.
28636         * combine.c (distribute_notes): Likewise.
28637         * cse.c (cse_extended_basic_block): Likewise.
28638         * except.c (insn_could_throw_p): Likewise.
28639         * gcse.c (simple_mem): Likewise.
28640         * ipa-pure-const.c (check_call): Likewise.
28641         (check_stmt ): Likewise.
28642         * lower-subreg.c (lower-subreg.c): Likewise.
28643         * optabs.c (emit_libcall_block): Likewise.
28644         (prepare_cmp_insn): Likewise.
28645         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
28646         * postreload.c (rest_of_handle_postreload): Likewise.
28647         * reload1.c (reload_as_needed): Likewise.
28648         (emit_input_reload_insns): Likewise.
28649         (emit_output_reload_insns): Likewise.
28650         (fixup_abnormal_edges): Likewise.
28651         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
28652         * store-motion.c (find_moveable_store): Likewise.
28653         * tree-eh.c (stmt_could_throw_p): Likewise.
28654         (tree_could_throw_p): Likewise.
28655         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
28656         * config/arm/arm.c (arm_expand_prologue): Likewise.
28657         (thumb1_expand_prologue): Likewise.
28658         * config/rx/rx.md (cbranchsf4): Likewise.
28659         (cmpsf): Likewise.
28660         * config/s390/s390.c (s390_emit_prologue): Likewise.
28661         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
28662         (inline_forbidden_into_p): New predicate.
28663         (expand_call_inline): Use it to forbid inlining.
28664         (tree_can_inline_p): Likewise.
28665
28666 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
28667
28668         * config/i386/i386-c.c: Do not include rtl.h.
28669         * config/i386/t-i386: Update dependencies.
28670
28671 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
28672
28673         * attribs.c: Do not include rtl.h.
28674         * Makefile.in: Update dependencies.
28675
28676 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
28677
28678         * double-int.h (double_int_and): New.
28679         * combine.c (try_combine): Clean up, use double_int_* and
28680         immed_double_int_const functions.
28681
28682 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28683
28684         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
28685         stderr to /dev/null instead of grep -q.
28686         * configure: Regenerate.
28687
28688 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
28689
28690         * Makefile.in (EXCEPT_H): Fix typo.
28691
28692 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
28693
28694         * ira-build.c (update_conflict_hard_reg_costs): New.
28695         (ira_build): Call update_conflict_hard_reg_costs.
28696
28697 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
28698
28699         PR debug/41371
28700         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
28701         ENABLE_CHECKING.
28702         (intersect_loc_chains): Walk the s2var's loc_chain together
28703         with s1node chain as long as the locations are equal, don't
28704         call find_loc_in_1pdv in that case.
28705
28706         PR debug/42801
28707         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
28708         (copy_bind_expr): ... instead of here.
28709         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
28710         if the block hasn't been remapped.
28711         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
28712         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
28713
28714 2010-05-25  Richard Guenther  <rguenther@suse.de>
28715
28716         PR middle-end/44069
28717         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
28718         out-of-bounds array accesses.
28719
28720 2010-05-25  Richard Guenther  <rguenther@suse.de>
28721
28722         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
28723         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
28724         (run_gcc): Re-organize to make cleanup easier.
28725
28726 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28727
28728         * config/s390/s390.c (optimization_options): Fix and move the
28729         flag_prefetch_loop_arrays override ...
28730         (override_options): ... here.
28731
28732 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
28733
28734         * diagnostic.c: Don't include plugin.h.
28735         (diagnostic_report_diagnostic): Don't handle plugins specially
28736         here.  Pass context to internal_error callback.
28737         * diagnostic.h (struct diagnostic_context): Add context parameter
28738         to internal_error callback.
28739         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
28740         * plugin.h (struct diagnostic_context): Declare.
28741         (warn_if_plugins, plugins_internal_error_function): Declare.
28742         * toplev.c (general_init): Set global_dc->internal_error.
28743         * Makefile.in (diagnostic.o): Update dependencies.
28744
28745 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
28746
28747         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
28748         * config/rs6000/t-darwin64: New.
28749         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
28750         build crt2.
28751
28752 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
28753
28754         PR 44203
28755         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
28756         match the original (and intended) behaviour before r159557.  This
28757         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
28758         in two ways.
28759
28760 2010-05-25  Richard Guenther  <rguenther@suse.de>
28761
28762         * doc/invoke.texi: Document -Ofast.
28763         * target.h (struct gcc_target): Add handle_ofast.
28764         * target-def.h (TARGET_HANDLE_OFAST): Add.
28765         (TARGET_INITIALIZER): Adjust.
28766         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
28767         * common.opt (Ofast): Add.
28768
28769 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
28770
28771         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
28772         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
28773
28774 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
28775
28776         PR target/43610
28777         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
28778         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
28779         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
28780         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
28781
28782 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
28783
28784         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
28785         DW_OP_minus with negated offset instead of DW_OP_plus.
28786         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
28787
28788 2010-05-25  Wei Guozhi  <carrot@google.com>
28789
28790         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
28791         tst instruction and a new alternative.
28792         * config/arm/constraints.md (Pu): New constraint.
28793
28794 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
28795
28796         * function.c (assign_stack_local_1): Initialize variable
28797         to avoid warning when bootstrapping at -O3.
28798
28799 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
28800
28801         * configure.ac (all_lang_makefiles): Remove everything related to it.
28802         * configure: Regenerate.
28803         * Makefile.in: Fix reference to ada Make-lang.in.
28804         Remove support for LANG_MAKEFILES.
28805
28806 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
28807             Sandra Loosemore  <sandra@codesourcery.com>
28808
28809         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
28810         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
28811         description.  Add arm_neon_fp16_ok.
28812         (Add Options): Add arm_neon and arm_neon_fp16.
28813
28814 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
28815
28816         * diagnostic.c: Don't include flags.h.
28817         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
28818         context parameters.  Check flags in the context passed as a parameter.
28819         (diagnostic_build_prefix): Add context parameter.  Check
28820         show_column flag in context.
28821         (diagnostic_action_after_output): Check fatal_errors flag in context.
28822         (diagnostic_report_current_module): Check show_column flag in context.
28823         (default_diagnostic_starter): Update call to
28824         diagnostic_build_prefix.
28825         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
28826         (emit_diagnostic): Pass context to permissive_error_kind.
28827         (permerror): Pass context to permissive_error_kind.
28828         * diagnostic.h (struct diagnostic_context): Add show_column,
28829         pedantic_errors, permissive and fatal_errors fields.
28830         (diagnostic_build_prefix): Update prototype.
28831         * langhooks.c
28832         * toplev.c (process_options): Set flags in global_dc from
28833         flag_show_column, flag_pedantic_errors, flag_permissive,
28834         flag_fatal_errors.
28835         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
28836         to diagnostic_build_prefix.
28837         * Makefile.in (diagnostic.o): Update dependencies.
28838
28839 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
28840
28841         * config/i386/ia32intrin.h (__crc32q): Define only if
28842         __SSE4_2__ is defined.
28843
28844 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
28845
28846         PR target/44132
28847         PR middle-end/43602
28848         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
28849         DECL_VISIBILITY_SPECIFIED.
28850         (emutls_decl): Set DECL_PRESERVE_P and copy
28851         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
28852         (emutls_finalize_control_var): New callback.
28853         (emutls_finish): Finalize emutls control variables.
28854         * toplev.c (compile_file): Move the call to emutls_finish ()
28855         before varpool_assemble_pending_decls ().
28856
28857 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
28858
28859         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
28860         added to the preprocessor condition.
28861
28862 2010-05-24  Paul Brook  <paul@codesourcery.com>
28863
28864         * gengtype-lex.l: Add HARD_REG_SET.
28865         * expr.c (expand_expr_real_1): Record writes to hard registers.
28866         * function.c (rtl_data): Add asm_clobbers.
28867         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
28868         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
28869         Use crtl->asm_clobbers.
28870
28871 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28872
28873         * doc/makefile.texi (Makefile): Mention stages 'profile'
28874         and 'feedback' for profiledbootstrap.
28875
28876 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
28877
28878         PR target/44245
28879         * config/i386/i386.c (def_builtin): Properly check
28880         OPTION_MASK_ISA_64BIT.
28881
28882 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
28883
28884         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
28885         typedefs with different but compatible types.  Allow duplicate
28886         typedefs with the same type except for pedantic non-C1X, but give
28887         warning for variably modified types.
28888         * c-typeck.c (tagged_types_tu_compatible_p,
28889         function_types_compatible_p, type_lists_compatible_p,
28890         comptypes_internal): Add parameter different_types_p; set
28891         *different_types_p for different but compatible types.  All
28892         callers changed.
28893         (comptypes_check_different_types): New.
28894         * c-tree.h (comptypes_check_different_types): Declare.
28895
28896 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
28897
28898         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
28899         * jump.c: Include basic-block.h.
28900         * profile.c: Likewise.
28901         * tree-profile.c: Likewise.
28902         * coverage.c: Likewise.
28903         * basic-block.h (optimize_function_for_size_p): Move to function.h.
28904         (optimize_function_for_speed_p): Likewise.
28905         * function.h (optimize_function_for_size_p,
28906         optimize_function_for_speed_p): Moved here from basic-block.h.
28907         * Makefile.in: Update dependencies.
28908
28909 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28910
28911         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
28912         before calling make; allow override through $MAKE.
28913         * doc/invoke.texi (Optimize Options): Document override.
28914
28915 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
28916
28917         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
28918         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28919         (rs6000_mode_dependent_address_ptr): Make static.
28920         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28921         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
28922         Remove.
28923
28924 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
28925
28926         PR target/43869
28927         * config/i386/i386.c: Make sure that the correct regparm is passed.
28928
28929 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
28930
28931         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
28932         * sbitmap.c: ...to here to internalize sbitmap element access.
28933         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
28934         Explain why basic-block.h is included.
28935         * function.h: Include tm.h for CUMULATIVE_ARGS.
28936         * Makefile.in: Update dependencies.
28937
28938 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
28939
28940         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
28941         New core types.
28942         * sbitmap.h (struct sbitmap_def): Do not typedef here.
28943         * sbitmap.c: Include sbitmap.h.
28944         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
28945         hard-reg-set.h.  Split everything related to regsets out from here...
28946         * regset.h: ...to here.  New file.
28947         * df.h: Include regset.h and sbitmap.h.
28948         * tree-flow.h: Likewise.
28949         * cfgloop.h: Likewise.
28950         * except.h: Do not include sbitmap.h.  Include hashtab.h.
28951         * cgraph.h: Include vec.h and function.h.
28952         * reload.h (struct insn_chain): Change types of live_throughout
28953         and dead_or_set from regset_head to bitmap_head.
28954         (compute_use_by_pseudos): Be defined also if regset.h is not included.
28955         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
28956         spilled_regs from regset_head to bitmap_head to avoid dependency
28957         in regset.h.
28958         * sel-sched-ir.h: Include regset.h.
28959         * reload.c: Include df.h before reload.h.
28960         * caller-save.c: Likewise.
28961         * reload1.c: Likewise.
28962         * ira.c: Likewise.
28963         (mark_elimination): Update type of r to bitmap, consistent with
28964         DF_LR_IN.
28965         * dominance.c: Include bitmap.h.
28966         * modulo-sched.c: Include df.h.
28967         * cfganal.c: Include bitmap.h and sbitmap.h.
28968         * cfgbuild.c: Include sbitmap.h.
28969         * lcm.c: Include sbitmap.h.
28970         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
28971         * domwalk.c: Include sbitmap.h, exclude ggc.h.
28972         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
28973         * cselib.c: Include bitmap.h.
28974         * tree-optimize.c: Include regset.h.
28975         * stmt.c: Include bitmap.h.
28976         * Makefile.in: Update dependencies.
28977
28978 2010-05-22  Jan Hubicka  <jh@suse.cz>
28979
28980         * cgraph.h (struct varpool_node): Add same_comdat_group.
28981         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
28982         pointer.
28983         (output_varpool): Update call of lto_output_varpool_node.
28984         (input_varpool): Read same_comdat_group pointer.
28985         (input_varpool_1): Fixup same_comdat_group pointer.
28986         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
28987         group is needed, all are.
28988         * varpool.c (varpool_remove_node): Remove node from same comdat group
28989         linklist too.
28990         (varpool_analyze_pending_decls): Walk same comdat groups.
28991
28992 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
28993
28994         * rtl.h (union rtunion_def): Remove rt_bit member.
28995         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
28996         * print-rtl (print_rtx): Do not print the member.
28997         * gengtype.c (adjust_field_rtx_def): Do not handle it.
28998         * gengenrtl.c (type_from_format): Likewise.
28999         (accessor_from_format): Likewise.
29000
29001 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
29002
29003         * dbgcnt.c: Include toplev.h instead of errors.h.
29004         * ira-emit.c: Don't include errors.h.
29005         * ira.c: Include toplev.h instead of errors.h.
29006         * lto-compress.c: Include toplev.h instead of errors.h.
29007         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
29008         ira.o, dbgcnt.o): Update dependencies.
29009
29010 2010-05-22  Richard Guenther  <rguenther@suse.de>
29011
29012         * gimple.c (gimple_types_compatible_p): Check type qualifications
29013         before merging pointer to complete and pointer to incomplete type.
29014         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
29015         we use our own resolution algorithm.  The gold linker plugin
29016         doesn't do the job we want it to do here.
29017
29018 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
29019
29020         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29021         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29022         (sparc_mode_dependent_address_p): New function.
29023
29024 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
29025
29026         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
29027
29028         * timevar.c: Do not include any core headers.
29029         (timevar_print): De-i18n-ize.
29030         (print_time): Likewise.
29031         * timevar.h (timevar_push, timevar_pop): Make inline functions.
29032
29033 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
29034
29035         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
29036         langhooks-def.h.
29037         (diagnostic_initialize): Initialize x_data not last_function.
29038         (diagnostic_report_current_function): Move to tree-diagnostic.c.
29039         (default_diagnostic_starter): Call
29040         diagnostic_report_current_module not
29041         diagnostic_report_current_function.
29042         (diagnostic_report_diagnostic): Initialize x_data not
29043         abstract_origin.
29044         (verbatim): Likewise.
29045         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
29046         x_data.
29047         (struct diagnostic_context): Change last_function to x_data.
29048         (diagnostic_auxiliary_data): Replace with
29049         diagnostic_context_auxiliary_data and
29050         diagnostic_info_auxiliary_data.
29051         (diagnostic_last_function_changed, diagnostic_set_last_function,
29052         diagnostic_report_current_function): Move to tree-diagnostic.h.
29053         (print_declaration, dump_generic_node, print_generic_stmt,
29054         print_generic_stmt_indented, print_generic_expr,
29055         print_generic_decl, debug_c_tree, dump_omp_clauses,
29056         print_call_name, debug_generic_expr, debug_generic_stmt,
29057         debug_tree_chain, default_tree_printer): Move to
29058         tree-pretty-print.h.
29059         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
29060         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
29061         gimple-pretty-print.h.
29062         * pretty-print.c: Don't include tree.h
29063         (pp_base_format): Don't handle %K here.
29064         (pp_base_tree_identifier): Move to tree-pretty-print.c.
29065         * pretty-print.h (text_info): Change abstract_origin to x_data.
29066         (pp_tree_identifier, pp_unsupported_tree,
29067         pp_base_tree_identifier): Move to tree-pretty-print.h.
29068         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
29069         tree-pretty-print.h: New files.
29070         * tree-pretty-print.c: Include tree-pretty-print.h.
29071         (percent_K_format): New.  Moved from pretty-print.c.
29072         (pp_base_tree_identifier): Move from pretty-print.c.
29073         * c-objc-common.c: Include tree-pretty-print.h.
29074         (c_tree_printer): Handle %K here.
29075         * langhooks.c: Include tree-diagnostic.h.
29076         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
29077         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
29078         (default_tree_printer): Handle %K using percent_K_format.
29079         (general_init): Use default_tree_diagnostic_starter.
29080         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
29081         (free_lang_data): Use default_tree_diagnostic_starter.
29082         * c-pretty-print.c: Include tree-pretty-print.h.
29083         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29084         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29085         * dwarf2out.c: Include tree-pretty-print.h.
29086         * except.c: Include tree-pretty-print.h.
29087         * gimple-pretty-print.c: Include tree-pretty-print.h and
29088         gimple-pretty-print.h.
29089         * gimplify.c: Include tree-pretty-print.h.
29090         * graphite-poly.c: Include tree-pretty-print.h and
29091         gimple-pretty-print.h.
29092         * ipa-cp.c: Include tree-pretty-print.h.
29093         * ipa-inline.c: Include gimple-pretty-print.h.
29094         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29095         * ipa-pure-const.c: Include gimple-pretty-print.h.
29096         * ipa-struct-reorg.c: Include tree-pretty-print.h and
29097         gimple-pretty-print.h.
29098         * ipa-type-escape.c: Include tree-pretty-print.h.
29099         * print-rtl.c: Include tree-pretty-print.h.
29100         * print-tree.c: Include gimple-pretty-print.h.
29101         * sese.c: Include tree-pretty-print.h.
29102         * tree-affine.c: Include tree-pretty-print.h.
29103         * tree-browser.c: Include tree-pretty-print.h.
29104         * tree-call-cdce.c: Include gimple-pretty-print.h.
29105         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29106         * tree-chrec.c: Include tree-pretty-print.h.
29107         * tree-data-ref.c: Include tree-pretty-print.h and
29108         gimple-pretty-print.h.
29109         * tree-dfa.c: Include tree-pretty-print.h.
29110         * tree-if-conv.c: Include tree-pretty-print.h and
29111         gimple-pretty-print.h.
29112         * tree-inline.c: Include tree-pretty-print.h.
29113         * tree-into-ssa.c: Include tree-pretty-print.h and
29114         gimple-pretty-print.h.
29115         * tree-nrv.c: Include tree-pretty-print.h.
29116         * tree-object-size.c: Include tree-pretty-print.h and
29117         gimple-pretty-print.h.
29118         * tree-outof-ssa.c: Include tree-pretty-print.h and
29119         gimple-pretty-print.h.
29120         * tree-parloops.c: Include tree-pretty-print.h and
29121         gimple-pretty-print.h.
29122         * tree-predcom.c: Include tree-pretty-print.h and
29123         gimple-pretty-print.h.
29124         * tree-scalar-evolution.c: Include tree-pretty-print.h and
29125         gimple-pretty-print.h.
29126         * tree-sra.c: Include tree-pretty-print.h.
29127         * tree-ssa-address.c: Include tree-pretty-print.h.
29128         * tree-ssa-alias.c: Include tree-pretty-print.h.
29129         * tree-ssa-ccp.c: Include tree-pretty-print.h and
29130         gimple-pretty-print.h.
29131         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
29132         * tree-ssa-copy.c: Include tree-pretty-print.h and
29133         gimple-pretty-print.h.
29134         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
29135         * tree-ssa-dce.c: Include tree-pretty-print.h and
29136         gimple-pretty-print.h.
29137         * tree-ssa-dom.c: Include tree-pretty-print.h and
29138         gimple-pretty-print.h.
29139         * tree-ssa-dse.c: Include gimple-pretty-print.h.
29140         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
29141         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
29142         * tree-ssa-live.c: Include tree-pretty-print.h and
29143         gimple-pretty-print.h.
29144         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
29145         gimple-pretty-print.h.
29146         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
29147         gimple-pretty-print.h.
29148         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
29149         gimple-pretty-print.h.
29150         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
29151         gimple-pretty-print.h.
29152         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
29153         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
29154         * tree-ssa-operands.c: Include tree-pretty-print.h and
29155         gimple-pretty-print.h.
29156         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
29157         gimple-pretty-print.h.
29158         * tree-ssa-pre.c: Include tree-pretty-print.h and
29159         gimple-pretty-print.h.
29160         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
29161         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
29162         gimple-pretty-print.h.
29163         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
29164         gimple-pretty-print.h.
29165         * tree-ssa-sink.c: Include gimple-pretty-print.h.
29166         * tree-ssa-ter.c: Include tree-pretty-print.h and
29167         gimple-pretty-print.h.
29168         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
29169         * tree-ssa.c: Include tree-pretty-print.h and
29170         gimple-pretty-print.h.
29171         * tree-stdarg.c: Include gimple-pretty-print.h.
29172         * tree-switch-conversion.c: Include gimple-pretty-print.h.
29173         * tree-tailcall.c: Include tree-pretty-print.h and
29174         gimple-pretty-print.h.
29175         * tree-vect-data-refs.c: Include tree-pretty-print.h and
29176         gimple-pretty-print.h.
29177         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
29178         gimple-pretty-print.h.
29179         * tree-vect-loop.c: Include tree-pretty-print.h and
29180         gimple-pretty-print.h.
29181         * tree-vect-patterns.c: Include gimple-pretty-print.h.
29182         * tree-vect-slp.c: Include tree-pretty-print.h and
29183         gimple-pretty-print.h.
29184         * tree-vect-stmts.c: Include tree-pretty-print.h and
29185         gimple-pretty-print.h.
29186         * tree-vectorizer.c: Include tree-pretty-print.h.
29187         * tree-vrp.c: Include tree-pretty-print.h and
29188         gimple-pretty-print.h.
29189         * value-prof.c: Include tree-pretty-print.h and
29190         gimple-pretty-print.h.
29191         * var-tracking.c: Include tree-pretty-print.h.
29192         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
29193         (tree-diagnostic.o): New dependencies.
29194         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
29195         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
29196         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
29197         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
29198         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
29199         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
29200         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
29201         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
29202         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
29203         tree-ssa-address.o, tree-ssa-loop-niter.o,
29204         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
29205         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
29206         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
29207         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
29208         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
29209         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
29210         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
29211         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
29212         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
29213         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
29214         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
29215         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
29216         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
29217         tree-switch-conversion.o, var-tracking.o, value-prof.o,
29218         cfgexpand.o, pretty-print.o): Update dependencies.
29219
29220 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
29221
29222         * tree-ssa-structalias.c: Remove tm_p.h from include.
29223
29224 2010-05-21  Jeff Law  <law@redhat.com>
29225
29226         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
29227
29228 2010-05-21  Jason Merrill  <jason@redhat.com>
29229
29230         * tree-eh.c (cleanup_is_dead_in): New.
29231         (lower_try_finally): Don't generate a dead cleanup region.
29232         (lower_cleanup): Likewise.
29233
29234 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
29235
29236         PR debug/44223
29237         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
29238         unchain each use from the cyclic next_regno_use chain first.
29239
29240 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
29241
29242         * real: Do not include gmp.h, mpfr.h, and mpc.h.
29243         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
29244         (real_value_negate, real_value_abs): New prototypes.
29245         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
29246         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
29247         new include file for interface between MPFR and REAL_VALUE_TYPE.
29248         * real.c: Include realmpfr.h.
29249         (real_arithmetic2): Remove legacy function.
29250         (real_value_negate): New.
29251         (real_value_abs): New.
29252         (mfpr_from_real, real_from_mpfr): Move from here...
29253         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
29254         * builtins.c: Include realmpfr.h.
29255         * fold-const.c: Include realmpfr.h.
29256         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
29257         (fold_negate_const): Likewise.
29258         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
29259         * toplev.c: Include realmpfr.h.
29260         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
29261         and real_value_negate.
29262         * fixed-value.c (check_real_for_fixed_mode): Likewise.
29263         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
29264         (vfp3_const_double_index): Likewise.
29265         (arm_print_operand): Likewise.
29266         * Makefile.in: Update dependencies.
29267
29268 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29269
29270         * config/s390/s390.c (override_options): Increase the default
29271         of max-completely-peel-times.
29272
29273 2010-05-21  Julian Brown  <julian@codesourcery.com>
29274             Mark Mitchell  <mark@codesourcery.com>
29275
29276         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
29277         sibling calls for Thumb-1.
29278         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
29279         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
29280         Thumb-2.
29281         (*call_insn, *call_value_insn): Don't use for Thumb-2.
29282         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
29283         for Thumb-2.
29284         (return): New expander.
29285         (*arm_return): New name for ARM return insn.
29286         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
29287
29288 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
29289
29290         * config.gcc (sparc64-*-rtems*): New target.
29291
29292 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
29293
29294         * tree.c (build_function_decl_skip_args): Fix grammar.
29295         (build_function_type_list_1): Fix typos, adjust formatting.
29296
29297 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
29298
29299         * tree.h: Include real.h and fixed-value.h as basic datatypes.
29300         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
29301         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
29302         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
29303         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
29304         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
29305         tree-pretty-print.c, tree-loop-distribution.c,
29306         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
29307         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
29308         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
29309         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
29310         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
29311         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
29312         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
29313         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
29314         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
29315         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
29316         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
29317         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
29318         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
29319         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
29320         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
29321         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
29322         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
29323         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
29324         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
29325         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
29326         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
29327         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
29328         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
29329         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
29330         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
29331         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
29332         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
29333         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
29334         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
29335         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
29336         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
29337         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
29338         config/score/score7.c, config/score/score.c, config/arm/arm.c,
29339         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
29340         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
29341         config/bfin/bfin.c: Clean up redundant includes.
29342         * Makefile.in: Update accordingly.
29343
29344 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
29345
29346         PR middle-end/44204
29347         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
29348         statement has no arguments.
29349
29350 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
29351
29352         PR/44139
29353         * varasm.c (emutls_decl): Merge attributes to new decl.
29354
29355 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
29356
29357         PR middle-end/44101
29358         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
29359         around the uniquized constructor if its type requires a conversion.
29360
29361 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
29362
29363         PR debug/44205
29364         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
29365         at -O0 goto_locus of any of the incoming edges differs from
29366         goto_locus of outgoing edge, or gimple_location of any of the
29367         labels differs.
29368
29369 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
29370
29371         * ira.c (ira_non_ordered_class_hard_regs): Define.
29372         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
29373         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
29374         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
29375         cost of unaligned hard regs when allocating multi-reg pseudos.
29376
29377 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
29378
29379         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
29380         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
29381         for TARGET_NO_FLOAT.
29382         * config/mips/mips.c (mips_file_start): Expand conditional expression
29383         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
29384         (mips_override_options): Move -mno-float override -msoft-float and
29385         -mhard-float.
29386         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
29387         Condition(TARGET_SUPPORTS_NO_FLOAT).
29388         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
29389         __mips_no_float here.
29390         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
29391         (TARGET_SUPPORTS_NO_FLOAT): Define.
29392         * config/mips/sdemtk.opt: Delete.
29393
29394 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
29395
29396         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
29397
29398 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
29399
29400         PR target/43733
29401         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
29402         * configure: Regenerate.
29403         * config.in: Regenerate.
29404         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
29405         instead of sahf only for 64bit targets.
29406
29407 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
29408
29409         PR debug/44178
29410         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
29411         setup_ref_regs for DEBUG_INSNs.
29412
29413 2010-05-20  Jan Hubicka  <jh@suse.cz>
29414
29415         PR middle-end/44197
29416         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
29417
29418 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
29419
29420         PR bootstrap/43870
29421         * df-scan.c (df_ref_compare): Stabilize sort.
29422
29423 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
29424
29425         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
29426         argument.  Don't use DW_OP_piece if offset is non-zero,
29427         put offset into second DW_OP_bit_piece argument.
29428         (dw_sra_loc_expr): Adjust callers.  For memory expressions
29429         compute offset.
29430
29431 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
29432
29433         PR target/44202
29434         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
29435         settings for 16-bit-constant "addo" alternative.
29436
29437 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
29438
29439         * config/mips/mips-dsp.md (add<DSPV:mode>3,
29440         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
29441
29442         PR target/43764
29443         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
29444         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
29445         Use it.
29446
29447 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
29448
29449         * diagnostic.c (FLOAT, FFS): Don't undefine.
29450         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
29451         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
29452         include ordering.
29453
29454 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
29455
29456         * combine.c (propagate_for_debug): Call make_compound_operation
29457         on the source value.
29458         (try_combine): When implementing a split chosen by find_split_point,
29459         either copy i2src or set it to null.  Assert that i2src is not null
29460         before substituting into CALL_INSN_FUNCTION_USAGE.
29461
29462 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
29463
29464         * double-int.h (double_int_ior): New function.
29465         * tree.h (build_int_cst_wide_type): Remove.
29466         * tree.c (build_int_cst_wide_type): Remove.
29467         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
29468         of build_int_cst_wide_type.
29469         * stor-layout.c (set_sizetype): (Ditto.).
29470         * dojump.c (do_jump): Use build_int_cstu instead of
29471         build_int_cst_wide_type.
29472
29473 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
29474
29475         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
29476         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
29477         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
29478         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
29479         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
29480         propagate the 'data' argument to copy_tree_r.
29481         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
29482         Propagate 'data' argument to walk_tree.
29483         (copy_if_shared): New function.
29484         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
29485         (unmark_visited): New function.
29486         (unshare_body): Call copy_if_shared instead of doing it manually.
29487         (unvisit_body): Call unmark_visited instead of doing it manually.
29488
29489 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
29490
29491         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
29492         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
29493         * hooks.c: Likewise.
29494         * target-def.h (TARGET_FOLD_BUILTIN): Define to
29495         hook_tree_tree_int_treep_bool_null.
29496         * target.h (struct gcc_target): Update signature of fold_builtin
29497         field.
29498         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
29499         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
29500         instead of the call expression.
29501         (fold_builtin_call_array): Pass n and argarray directly.
29502         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
29503         consing a list.
29504         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
29505         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
29506         `i' and use it in place of `arity'.
29507         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
29508         Dereference `args' directly.
29509         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
29510
29511 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29512
29513         * doc/sourcebuild.texi (Effective-Target Keywords): Document
29514         3dnow, sse3, sse2.
29515         (Directives): Document optional dg-require-effective-target
29516         selector.
29517
29518 2010-05-19  Richard Guenther  <rguenther@suse.de>
29519
29520         PR lto/44196
29521         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
29522
29523 2010-05-19  Richard Guenther  <rguenther@suse.de>
29524
29525         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
29526         * common.opt (fwhopr=): New.
29527         * opts.c (common_handle_option): Handle OPT_fwhopr.
29528         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
29529         * collect2.c (main): Match -fwhopr*.
29530         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
29531         Execute ltrans stage in parallel when jobs is bigger than 1.
29532
29533 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29534
29535         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
29536         pentiumpro on Solaris 8/x86 with Sun as.
29537         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
29538         hidden alias bug.
29539         (gcc_cv_as_ix86_quad): Check for .quad directive.
29540         * configure: Regenerate.
29541         * config.in: Regenerate.
29542         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
29543
29544 2010-05-19  Martin Jambor  <mjambor@suse.cz>
29545
29546         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
29547         also for indirect edges.  Actual printing moved...
29548         (ipa_print_node_jump_functions_for_edge): ...here.
29549         (ipa_compute_jump_functions): Renamed to
29550         ipa_compute_jump_functions_for_edge and made static.
29551         (ipa_compute_jump_functions): New function.
29552         (make_edge_direct_to_target): Check if the number of arguments on
29553         the newly direct edge is the same as the number of parametrs of
29554         the callee.
29555         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
29556         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
29557         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
29558         analysis functions unconditionally, call the new
29559         ipa_analyze_params_uses on the node instead of every edge.
29560
29561 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
29562
29563         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
29564         to tree.
29565         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
29566         also checks for a constant int vs.  non-constant but
29567         loop-invariant steps.
29568         (find_or_create_group): Change the sort algorithm to only consider
29569         steps that are constant ints.
29570         (idx_analyze_ref): Adopt code to handle a tree instead of a
29571         HOST_WIDE_INT for step.
29572         (gather_memory_references_ref): Handle tree instead of int and be
29573         prepared to see a NULL_TREE.
29574         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
29575         prefetches if the step cannot be calculated at compile time.
29576         (issue_prefetch_ref): Issue prefetches for non-constant but
29577         loop-invariant steps.
29578
29579 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
29580
29581         Revert:
29582         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
29583
29584         * tree.h (build_call_list): Remove.
29585         * tree.c (build_call_list): Remove.
29586
29587 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
29588
29589         * tree.h (build_call_list): Remove.
29590         * tree.c (build_call_list): Remove.
29591
29592 2010-05-18  Jan Hubicka  <jh@suse.cz>
29593
29594         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
29595
29596 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
29597
29598         PR rtl-optimization/43332
29599         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
29600
29601 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
29602
29603         * tree.h (build_int_cstu): Implement as static inline.
29604         * tree.c (build_int_cstu): Remove function.
29605         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
29606         sign extended.
29607
29608 2010-05-18  Richard Guenther  <rguenther@suse.de>
29609
29610         PR lto/44143
29611         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
29612         (debug): Initialize from -save-temps.
29613         (collect_execute): Print command-line when verbose.
29614         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
29615         for ltrans invocation.  Produce -dumpbase flag again.
29616         (process_args): Remove.
29617         (main): Simplify.
29618         * collect2.c (maybe_run_lto_and_relink): Only pass object
29619         files to lto-wrapper.
29620         * gcc.c (LINK_COMMAND_SPEC): Likewise.
29621
29622 2010-05-18  Jan Hubicka  <jh@suse.cz>
29623
29624         * opts.c (decode_options): Do not disable whopr at ipa_cp.
29625         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
29626
29627 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
29628
29629         PR lto/44184
29630         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
29631         in a GIMPLE_ASM.
29632         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
29633         in a GIMPLE_ASM.
29634
29635 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
29636
29637         PR debug/41371
29638         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
29639         rtx_equal_p inline.
29640
29641 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
29642
29643         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
29644         lto-macho as lto_binary_reader.
29645
29646         * darwin.c (darwin_asm_named_section): Do not add assembler comment
29647         after .section directive; just print it before the directive instead.
29648
29649 2010-05-17  Jan Hubicka  <jh@suse.cz>
29650
29651         * cgraph.c (cgraph_create_virtual_clone): Only check
29652         versionable_function_p when not in wpa and checking is enabled.
29653         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
29654         there are no more functions to materialize.
29655
29656 2010-05-17  Jan Hubicka  <jh@suse.cz>
29657
29658         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
29659         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
29660         New functions.
29661         (output_cgraph): Call output_cgraph_opt_summary.
29662         (input_cgrpah): Call input_cgraph_opt_summary.
29663         (output_cgraph_opt_summary_p, output_node_opt_summary,
29664         input_node_opt_summary, input_cgraph_opt_section): New functions.
29665         * lto-section-in.c (lto_section_name): Add cgraphopt.
29666         * tree-inline.c (tree_function_versioning): Handle parm_num.
29667         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
29668         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
29669
29670 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
29671
29672         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
29673         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
29674         the insn to prefetch ratio heuristic to loops with known trip count.
29675
29676 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
29677
29678         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
29679         (schedule_prefetches): Do not generate a prefetch if the unroll factor
29680         is far from what is required by the prefetch.
29681
29682 2010-05-17  Jan Hubicka  <jh@suse.cz>
29683
29684         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
29685         (ipcp_estimate_growth): Likewise.
29686         (ipcp_const_param_count): Likewise.
29687         (ipcp_insert_stage): Likewise.
29688         * ipa-prop.c (visit_load_for_mod_analysis): New function.
29689         (visit_store_addr_for_mod_analysis): Set used flag.
29690         (ipa_detect_param_modifications): Set used flag for SSE params;
29691         update use of walk_stmt_load_store_addr_ops.
29692         (ipa_print_node_params): Print used flag.
29693         (ipa_write_node_info): Stream used flag.
29694         (ipa_read_node_info): Likewise.
29695         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
29696         (ipa_is_param_used): New function.
29697         (lto_ipa_fixup_call_notes): Remove unused declaration.
29698
29699 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29700
29701         PR target/44074
29702         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
29703         * configure: Regenerate.
29704         * config.in: Regenerate.
29705         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
29706         !HAVE_AS_IX86_REP_LOCK_PREFIX.
29707         Don't emit whitespace.
29708         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
29709         (*rep_movsi): Likewise.
29710         (*rep_movsi_rex64): Likewise.
29711         (*rep_movqi): Likewise.
29712         (*rep_movqi_rex64): Likewise.
29713         (*rep_stosdi_rex64): Likewise.
29714         (*rep_stossi): Likewise.
29715         (*rep_stossi_rex64): Likewise.
29716         (*rep_stosqi): Likewise.
29717         (*rep_stosqi_rex64): Likewise.
29718         (*cmpstrnqi_nz_1): Use {%;} after repz.
29719         (*cmpstrnqi_nz_rex_1): Likewise.
29720         (*cmpstrnqi_1): Likewise.
29721         (*cmpstrnqi_rex_1): Likewise.
29722         (*strlenqi_1): Use {%;} after repnz.
29723         (*strlenqi_rex_1): Likewise.
29724         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
29725         (*sync_compare_and_swap<mode>): Likewise.
29726         (sync_double_compare_and_swap<mode>): Likewise.
29727         (*sync_double_compare_and_swapdi_pic): Likewise.
29728         (sync_old_add<mode>): Likewise.
29729         (sync_add<mode>): Likewise.
29730         (sync_sub<mode>): Likewise.
29731         (sync_<code><mode>): Likewise.
29732
29733 2010-05-17  Martin Jambor  <mjambor@suse.cz>
29734
29735         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
29736         otr_token and polymorphic.
29737         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
29738         (cgraph_clone_edge): Copy the above fields.
29739         * tree.c (get_binfo_at_offset): New function.
29740         * tree.h (get_binfo_at_offset): Declare.
29741         * ipa-prop.h (enum jump_func_type): Added known_type jump function
29742         type, reordered items, updated comments.
29743         (union jump_func_value): Added base_type field, reordered fields.
29744         (enum ipa_lattice_type): Moved down in the file.
29745         (struct ipa_param_descriptor): New field polymorphic.
29746         (ipa_is_param_polymorphic): New function.
29747         * ipa-prop.c: Include gimple.h and gimple-fold.h.
29748         (ipa_print_node_jump_functions): Print known type jump functions.
29749         (compute_complex_pass_through): Renamed to...
29750         (compute_complex_assign_jump_func): this.
29751         (compute_complex_ancestor_jump_func): New function.
29752         (compute_known_type_jump_func): Likewise.
29753         (compute_scalar_jump_functions): Create known type and complex ancestor
29754         jump functions.
29755         (ipa_note_param_call): New parameter polymorphic, set the corresponding
29756         flag in the call note accordingly.
29757         (ipa_analyze_call_uses): Renamed to...
29758         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
29759         variable var only in the block where it is used.
29760         (ipa_analyze_virtual_call_uses): New function.
29761         (ipa_analyze_call_uses): Likewise.
29762         (combine_known_type_and_ancestor_jfs): Likewise.
29763         (update_jump_functions_after_inlining): Implemented handling of a
29764         number of new jump function types combination.
29765         (print_edge_addition_message): Removed.
29766         (make_edge_direct_to_target): New function.
29767         (try_make_edge_direct_simple_call): Likewise.
29768         (try_make_edge_direct_virtual_call): Likewise.
29769         (update_call_notes_after_inlining): Renamed to...
29770         (update_indirect_edges_after_inlining): this.  Moved edge creation for
29771         indirect calls to try_make_edge_direct_simple_call, also calls
29772         try_make_edge_direct_virtual_call for virtual calls.
29773         (ipa_print_node_params): Changed the header message.
29774         (ipa_write_jump_function): Stream also known type jump functions.
29775         (ipa_read_jump_function): Likewise.
29776         (ipa_write_indirect_edge_info): Stream new fields in
29777         cgraph_indirect_call_info.
29778         (ipa_read_indirect_edge_info): Likewise.
29779         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
29780         GIMPLE_FOLD_H.
29781
29782 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29783
29784         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
29785
29786 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
29787
29788         * tree.h (CALL_EXPR_ARGS): Delete.
29789         (call_expr_arglist): Delete.
29790         * tree.c (call_expr_arglist): Delete.
29791         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
29792         targetm.fold_builtin.
29793         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
29794         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
29795         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
29796         arglist parameter.  Use CALL_EXPR_ARG.
29797         (picochip_expand_builtin_3op): Likewise.
29798         (picochip_expand_builtin_2opvoid): Likewise.
29799         (picochip_expand_array_get): Likewise.
29800         (picochip_expand_array_put): Likewise.
29801         (picochip_expand_array_testport): Likewise.
29802         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
29803         rather than arglist.
29804         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
29805         CALL_EXPR_ARGS.
29806         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
29807         than TREE_VALUE and TREE_CHAIN.
29808         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
29809         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
29810         the arglist.
29811
29812 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
29813
29814         PR bootstrap/42347
29815         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
29816         to have no fallthru edge.
29817
29818         PR middle-end/44102
29819         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
29820         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
29821         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
29822         add BARRIER after previous bb if needed.
29823
29824 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
29825
29826         * tree.c (build_function_type_list_1): Remove bogus assert condition.
29827
29828 2010-05-17  Alan Modra  <amodra@gmail.com>
29829
29830         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
29831         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
29832         with copy_reg rtx param.
29833         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
29834         Correct cases where code for ABI_V4 did not initialise the reg
29835         used to access frame.  Also leave frame_reg_rtx as sp for large
29836         frames that save no regs.
29837
29838 2010-05-17  Martin Jambor  <mjambor@suse.cz>
29839
29840         PR middle-end/44133
29841         * tree-sra.c (create_access_replacement): New parameter rename, mark
29842         the replaement for renaming only when it is true.
29843         (get_access_replacement): Pass true in the rename parameter of
29844         create_access_replacement.
29845         (get_unrenamed_access_replacement): New function.
29846         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
29847         replacement declaration from it.
29848
29849 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
29850
29851         * function.c (try_fit_stack_local, add_frame_space): New static
29852         functions.
29853         (assign_stack_local_1): Use them.  Look for opportunities to use
29854         space previously wasted on alignment.
29855         * function.h (struct frame_space): New.
29856         (struct rtl_data): Add FRAME_SPACE_LIST member.
29857         * reload1.c (something_was_spilled): New static variable.
29858         (alter_reg): Set it.
29859         (reload): Test it in addition to testing if the frame size changed.
29860
29861 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
29862
29863         * config/s390/s390.c: Define sane prefetch settings and activate
29864         flag_prefetch_loop_arrays on -O3.
29865         * config/s390/s390.h: Declare that read can use write prefetch.
29866
29867 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
29868
29869         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
29870         build.
29871
29872 2010-05-16  Jan Hubicka  <jh@suse.cz>
29873
29874         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
29875         function body; do not check stdarg field of struct function.
29876
29877 2010-05-16  Jan Hubicka  <jh@suse.cz>
29878
29879         * cgraph.c (dump_cgraph_node): Dump versionable flag.
29880         * cgraph.h (cgraph_local_info): Add versionable flag.
29881         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
29882         (ipcp_versionable_function_p): Use it.
29883         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
29884         versionable flag.
29885
29886 2010-05-16  Jan Hubicka  <jh@suse.cz>
29887
29888         * cgraph.c (cgraph_clone_node): Take decl argument and insert
29889         clone into hash when it is different from orig.
29890         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
29891         * cgraph.h (cgraph_clone_node): Update prototype.
29892         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
29893         (lto_cgraph_encoder_delete): Delete body map.
29894         (lto_cgraph_encoder_size): Move to header.
29895         (lto_cgraph_encoder_encode_body_p,
29896         lto_set_cgraph_encoder_encode_body): New.
29897         (lto_output_node): Do not take written_decls argument; output clone_of
29898         pointer.
29899         (add_node_to): Add include_body_argument; call
29900         lto_set_cgraph_encoder_encode_body on master of the clone.
29901         (add_references): Update use of add_node_to.
29902         (compute_ltrans_boundary): Likewise.
29903         (output_cgraph): Do not create written_decls bitmap.
29904         (input_node): Take nodes argument; stream in clone_of correctly.
29905         (input_cgraph_1): Update use of input_node.
29906         * lto-streamer-out.c (lto_output): Use encoder info to decide
29907         what bodies to output.
29908         * ipa-inline.c (cgraph_clone_inlined_nodes,
29909         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
29910         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
29911         (lto_cgraph_encoder_size): Define here.
29912         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
29913         Declare.
29914
29915 2010-05-16  Richard Guenther  <rguenther@suse.de>
29916
29917         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
29918         -fipa-type-escape.
29919         * ipa-type-escape.c (gate_type_escape_vars): Run when
29920         -fipa-struct-reorg runs.
29921         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
29922         * common.opt (fipa-type-escape): Remove.
29923
29924 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
29925
29926         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
29927         (decode_options): Likewise.
29928         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
29929
29930 2010-05-16  Jan Hubicka  <jh@suse.cz>
29931
29932         * ipa.c (function_and_variable_visibility): Also bring local all
29933         aliases.
29934
29935 2010-05-16  Richard Guenther  <rguenther@suse.de>
29936
29937         * alias.c (nonoverlapping_memrefs_p): Remove use of
29938         IPA type-escape information.
29939
29940 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
29941
29942         * c-common.c (c_common_reswords): Add _Static_assert for C.
29943         * c-parser.c (c_token_starts_declaration,
29944         c_parser_next_token_starts_declaration,
29945         c_parser_static_assert_declaration_no_semi,
29946         c_parser_static_assert_declaration): New.
29947         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
29948         Handle static assertions if static_assert_ok.
29949         (c_parser_external_declaration, c_parser_declaration_or_fndef,
29950         c_parser_compound_statement_nostart, c_parser_label,
29951         c_parser_for_statement, c_parser_objc_methodprotolist,
29952         c_parser_omp_for_loop): All callers of
29953         c_parser_declaration_or_fndef changed.
29954         (c_parser_struct_declaration): Handle static assertions.
29955         (c_parser_compound_statement_nostart): Use
29956         c_parser_next_token_starts_declaration and
29957         c_token_starts_declaration to detect start of declarations.
29958         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
29959         Likewise.
29960
29961 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
29962
29963         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
29964         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
29965         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
29966         TARGET_FUNCTION_VALUE_REGNO_P): Define.
29967         (mmix_function_outgoing_value): Rename to...
29968         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
29969         (mmix_function_value_regno_p): Make static.
29970         (mmix_libcall_value): New function.
29971         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
29972         mmix_function_value_regno_p): Remove declaration.
29973
29974 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
29975
29976         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
29977         BUILT_IN_ALLOCA if stack checking is enabled.
29978
29979 2010-05-16  Richard Guenther  <rguenther@suse.de>
29980
29981         * var-tracking.c (vars_copy_1): Inline ...
29982         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
29983         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
29984         (variable_merge_over_cur): Adjust.  Merge asserts.
29985         (variable_merge_over_src): Likewise.
29986         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
29987         (variable_post_merge_new_vals): Merge asserts.
29988         (variable_post_merge_perm_vals): Likewise.
29989         (find_mem_expr_in_1pdv): Likewise.
29990         (dataflow_set_different_value): Remove.
29991         (onepart_variable_different_p): Merge asserts.
29992         (variable_different_p): Likewise.
29993         (dataflow_set_different_1): Inline ...
29994         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
29995         (emit_notes_for_differences_1): Merge asserts.
29996
29997 2010-05-16  Richard Guenther  <rguenther@suse.de>
29998
29999         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
30000         * optabs.c (libfunc_decl_hash): Likewise.
30001         * varasm.c (emutls_decl): Likewise.
30002
30003 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
30004
30005         * c-decl.c: Don't include gimple.h.
30006         (merge_decls): Do not copy gimple_body.
30007
30008 2010-05-15  Jason Merrill  <jason@redhat.com>
30009
30010         * c.opt: Add -fnothrow-opt.
30011
30012 2010-05-15  Jan Hubicka  <jh@suse.cz>
30013
30014         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
30015         analyzed.
30016         * passes.c (ipa_write_summaries): Write all analyzed nodes.
30017
30018 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
30019
30020         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
30021         * Makefile.in: Add it.
30022         Fix all other Makefile dependencies for changes below.
30023         * tree.h: Include it instead of defining VEC primitives here.
30024         * gimple.h: Likewise.
30025         * rtl.h: Likewise.
30026         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
30027         * except.h: Include vecir.h, break dependence on tree.h.
30028
30029         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
30030         Move from here...
30031         * tree-iterator.c: ...to here.
30032         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
30033
30034         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
30035         tm_p.h.
30036         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
30037         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
30038         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
30039         tree-mudflap.h, and target.h.
30040         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
30041         predict.h, tree-inline.h, gimple.h, and langhooks.h.
30042         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
30043         Add FIXME for why gimple.h is still included (should be unnecessary
30044         since GCC 4.5 gimplification unit-at-a-time).
30045         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
30046         * c-pragma.c: Add FIXME for why function.h needs to be included just
30047         for cfun, at front-end level.
30048         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
30049         Do not include ggc.h, but include vecprim.h for VEC(char).
30050         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
30051         Explain why target.h is included.
30052         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
30053         Explain why gimple.h is included.
30054         * c-ppoutput.c: Do not include tm.h.
30055         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
30056         * c-parses.c: Explain why rtl.h is included, and that this (and only
30057         this) is also why tm.h must be included.
30058         Do not include except.h.
30059         * c-lang.c: Do not include ggc.h.
30060
30061 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
30062
30063         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
30064
30065 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
30066
30067         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
30068         unions by default if those structs and unions have no tags.  Do
30069         not condition anonymous struct and unions handling on flag_iso.
30070         Allow anonymous structs and unions for C1X.
30071         (finish_struct): Do not diagnose lack of named fields when
30072         anonymous structs and unions present for C1X.  Accept flexible
30073         array members in structure with anonymous structs or unions but no
30074         directly named fields.
30075         * doc/extend.texi (Unnamed Fields): Update.
30076
30077 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
30078
30079         * gimple.h (compare_field_offset): Rename into...
30080         (gimple_compare_field_offset): ...this.
30081         * gimple.c (compare_field_offset): Rename into...
30082         (gimple_compare_field_offset): ...this.  Compare the full access if
30083         the offset is self-referential.
30084         (gimple_types_compatible_p): Adjust for above renaming.
30085         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
30086         DECL_NONADDRESSABLE_P flag of fields before merging them.
30087
30088 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
30089
30090         * tree.h (ctor_to_list): Delete.
30091         * tree.c (ctor_to_list): Delete.
30092
30093 2010-05-15  Jan Hubicka  <jh@suse.cz>
30094
30095         * ipa-reference.c: Include toplev.h
30096         (is_proper_for_analysis): Only add to all_module_statics
30097         if it is allocated.
30098         (write_node_summary_p, stream_out_bitmap,
30099         ipa_reference_write_optimization_summary,
30100         ipa_reference_read_optimization_summary): New.
30101         (struct ipa_opt_pass_d pass_ipa_reference): Add
30102         optimization summary streaming.
30103         * lto-cgraph.c (referenced_from_this_partition_p,
30104         reachable_from_this_partition_p): New functions.
30105         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
30106         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
30107         * opts.c (decode_options): Enable ipa_reference.
30108         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
30109         * lto-streamer.h (referenced_from_this_partition_p,
30110         reachable_from_this_partition_p): Declare.
30111
30112 2010-05-15  Richard Guenther  <rguenther@suse.de>
30113
30114         PR tree-optimization/44038
30115         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
30116         taking the address of a V_C_E of a constant.
30117
30118 2010-05-14  Jan Hubicka  <jh@suse.cz>
30119
30120         * tree.h (memory_identifier_string): Remove.
30121         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
30122         (ipa_reference_global_vars_info_d): Remove statics_not_read and
30123         statics_not_written.
30124         (ipa_reference_optimization_summary_d): New structure.
30125         (ipa_reference_optimization_summary_t): New type and vector.
30126         (ipa_reference_vars_info_d): Embedd structures instead of using
30127         pointers.
30128         (reference_vars_to_consider): Remove out of GGC space.
30129         (module_statics_escape): Remove.
30130         (global_info_obstack): Rename to ...
30131         (optimization_summary_obstack): ... this one.
30132         (initialization_status_t): Remove.
30133         (memory_identifier_string): Remove.
30134         (get_reference_vars_info): Fix indenting.
30135         (set_reference_vars_info): Likewise.
30136         (get_reference_optimization_summary): New.
30137         (set_reference_optimization_summary): New.
30138         (get_global_reference_vars_info): Remove.
30139         (ipa_reference_get_read_global): Remove.
30140         (ipa_reference_get_written_global): Remove.
30141         (ipa_reference_get_not_read_global): Update.
30142         (ipa_reference_get_not_written_global): Update.
30143         (is_proper_for_analysis): Outlaw addressable.
30144         (propagate_bits): Update for new datastructures.
30145         (analyze_variable): Remove.
30146         (init_function_info): Update for new datastructures.
30147         (clean_function_local_data): Remove.
30148         (clean_function): Remove.
30149         (copy_global_bitmap): Use optimizations_summary_obstack.
30150         (duplicate_node_data): Duplicate optimization summary only.
30151         (remove_node_data): Remove optimization summary only.
30152         (generate_summary): Do not analyze variables; do not compute
30153         module_statics_escape; do not prune solutions by it.
30154         (read_write_all_from_decl): Fix typos in comments.
30155         (propagate): Doscover readonly and nonaddressable first;
30156         update for new datastructures; share global bitmaps.
30157         * ipa-reference.h (ipa_reference_get_read_global,
30158         ipa_reference_get_written_global): Remove.
30159         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
30160         * Makefile.in: Remove ipa-refereference from GT files.
30161
30162 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
30163
30164         PR debug/44112
30165         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
30166         for all SYMBOL_REF_DECLs.
30167
30168 2010-05-14  Jan Hubicka  <jh@suse.cz>
30169
30170         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
30171         (varpool_all_refs_explicit_p): New inline function.
30172         * ipa-reference.c: Update comment.
30173         (module_statics_written): Remove.
30174         (get_static_decl): Remove.
30175         (ipa_init): Do not initialize module_statics_written.
30176         (analyze_function): Likewise.
30177         (generate_summary): Likewise; do not compute module_statics_readonly
30178         and do not update variable flags.
30179         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
30180         * ipa.c: Inlucde flags.h
30181         (cgraph_local_node_p): New.
30182         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
30183         promote functions to local.
30184         (ipa_discover_readonly_nonaddressable_vars): New function.
30185         (function_and_variable_visibility): Use cgraph_local_node_p.
30186         * varpool.c (varpool_finalize_decl): Set force_output for
30187         DECL_PRESERVE_P vars.
30188
30189 2010-05-14  Jan Hubicka  <jh@suse.cz>
30190
30191         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
30192
30193 2010-05-14  Richard Guenther  <rguenther@suse.de>
30194
30195         PR tree-optimization/44119
30196         * tree-ssa-pre.c (eliminate): Properly mark replacement of
30197         a PHI node necessary.
30198
30199 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
30200
30201         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
30202
30203 2010-05-14  Jason Merrill  <jason@redhat.com>
30204
30205         PR c++/44127
30206         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
30207         (gimple_call_set_nothrow): New.
30208         * gimple.c (gimple_build_call_from_tree): Call it.
30209         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
30210
30211         PR c++/44127
30212         * gimplify.c (gimplify_seq_add_stmt): No longer static.
30213         * gimple.h: Declare it.
30214         * gimple.c (gimple_build_eh_filter): No ops.
30215
30216 2010-05-14  Jan Hubicka  <jh@suse.cz>
30217
30218         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
30219         nodes already in queue.
30220         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
30221         re-enqueueing node.
30222
30223 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
30224
30225         PR debug/44136
30226         * cfgexpand.c (expand_debug_expr): If non-memory op0
30227         has BLKmode, return NULL.
30228
30229 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
30230
30231         * config.gcc: Add support for --with-cpu option for bdver1.
30232         * config/i386/i386.h (TARGET_BDVER1): New macro.
30233         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
30234         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
30235         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
30236         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
30237         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
30238         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
30239         (processor_type): Add PROCESSOR_BDVER1.
30240         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
30241         processor_type in config/i386/i386.h.
30242         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
30243         movaps <reg, reg> instead of movapd <reg, reg> when replacing
30244         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
30245         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
30246         to emit packed xor instead of packed double/packed integer
30247         xor for SSE and AVX when moving a zero value.
30248         * config/i386/sse.md: Add check for
30249         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
30250         movapd/movdqa for SSE and AVX.
30251         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
30252         single logical operations i.e and, or and xor instead of packed double
30253         logical operations for SSE and AVX.
30254         * config/i386/i386-c.c (ix86_target_macros_internal):
30255         Add PROCESSOR_BDVER1.
30256         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
30257         (has_fma4, has_xop): New.
30258         * config/i386/i386.c (bdver1_cost): New variable.
30259         (m_BDVER1): New macro.
30260         (m_AMD_MULTIPLE): Add m_BDVER1.
30261         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
30262         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
30263         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
30264         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
30265         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
30266         x86_tune_sse_partial_reg_dependency,
30267         x86_tune_sse_unaligned_load_optimal,
30268         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
30269         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
30270         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
30271         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
30272         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
30273         Enable/disable for bdver1.
30274         (processor_target_table): Add bdver1_cost.
30275         (cpu_names): Add bdver1.
30276         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
30277          processor_alias_table.
30278         (ix86_expand_vector_move_misalign): Change.
30279         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
30280         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
30281         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
30282         of movupd/movdqu for SSE and AVX.
30283         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
30284         (ix86_tune_adjust_cost): Add code for bdver1.
30285         (standard_sse_constant_opcode): Add check for
30286         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
30287         of packed double xor for SSE and AVX.
30288
30289 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
30290
30291         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
30292         result to unsigned.
30293
30294 2010-05-14  Tristan Gingold  <gingold@adacore.com>
30295
30296         * toplev.c (default_debug_hooks): Remove this variable.
30297         (process_options): Remove assignments to default_debug_hooks.
30298
30299 2010-05-14  Martin Jambor  <mjambor@suse.cz>
30300
30301         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
30302         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
30303         * langhooks.h (struct lang_hooks_for_decls): Removed field
30304         fold_obj_type_ref.
30305         * tree.c (free_lang_data): Remove assignment to
30306         lang_hooks.fold_obj_type_ref.
30307         * tree.def (OBJ_TYPE_REF): Update comment.
30308
30309 2010-05-14  Richard Guenther  <rguenther@suse.de>
30310
30311         PR tree-optimization/44124
30312         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
30313
30314 2010-05-14  Alan Modra  <amodra@gmail.com>
30315
30316         PR target/44075
30317         * config/rs6000/rs6000.c (struct machine_function): Reorder
30318         fields for better packing.  Add lr_save_state.
30319         (rs6000_ra_ever_killed): Return lr_save_state if set.
30320         (rs6000_emit_eh_reg_restore): Set lr_save_state.
30321
30322 2010-05-13  Jan Hubicka  <jh@suse.cz>
30323
30324         * varpool.c (decide_is_variable_needed): Drop code checking
30325         TREE_SYMBOL_REFERENCED.
30326
30327 2010-05-13  Jan Hubicka  <jh@suse.cz>
30328
30329         * final.c (output_addr_const): Do not call mark_decl_referenced.
30330         * cgraphunit.c (process_function_and_variable_attributes): Use
30331         mark_needed_node dirrectly.
30332         (assemble_thunk): Do not call mark_decl_referenced.
30333
30334 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
30335
30336         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
30337
30338 2010-05-13  Jeff Law  <law@redhat.com>
30339
30340         * ira-conflicts.c (print_allocno_conflicts): New function broken out
30341         from...
30342         (print_conflicts): Call print_allocno_conflicts.
30343
30344 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
30345
30346         PR debug/44104
30347         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
30348         if it is NULL.
30349
30350 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
30351
30352         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
30353         t-mingw-w64 or t-mingw-w32 for multilib configuration.
30354         * config/i386/t-mingw-w32: New.
30355         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
30356
30357 2010-05-13  Martin Jambor  <mjambor@suse.cz>
30358
30359         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
30360         gimple-fold.c).
30361         * gimple-fold.c (get_base_binfo_for_type): New function.
30362         (gimple_get_relevant_ref_binfo): Likewise.
30363         (gimple_fold_obj_type_ref_known_binfo): Likewise.
30364         (gimple_fold_obj_type_ref): Likewise.
30365         (fold_gimple_call): Simplify condition for folding virtual calls
30366         and call gimple_fold_obj_type_ref.
30367         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
30368         (gimple_fold_obj_type_ref_known_binfo): Likewise.
30369
30370 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
30371
30372         * config/rs6000/rs6000-protos.h
30373         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
30374         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
30375         (rs6000_debug_mode_dependent_address)
30376         (rs6000_mode_dependent_address_ptr): Likewise.
30377
30378 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
30379
30380         PR debug/43983
30381         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
30382         by SRA.
30383         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
30384         * tree-sra.c (create_access_replacement): Call unshare_expr before
30385         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
30386         * dwarf2out.c: Include tree-flow.h.
30387         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
30388         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
30389         Handle DW_OP_bit_piece.
30390         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
30391         construct_piece_list, adjust_piece_list): New functions.
30392         (add_var_loc_to_decl): Handle SRA optimized variables.
30393         Adjust for var_loc_note to loc field renaming.
30394         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
30395         in VAR_LOCATION note.
30396         (new_loc_descr_op_bit_piece): New function.
30397         (dw_sra_loc_expr): New function.
30398         (dw_loc_list): Use it.  Don't handle the last range after the
30399         loop, handle it inside of the loop.  Adjust for var_loc_note
30400         to loc field renaming.
30401         (add_location_or_const_value_attribute): Only special case
30402         single entry loc lists if loc is NOTE_P.  Adjust for
30403         var_loc_note to loc field renaming.
30404         (dwarf2out_var_location): Don't set newloc->var_loc_note
30405         and newloc->next here.
30406
30407 2010-05-12  Jan Hubicka  <jh@suse.cz>
30408
30409         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
30410         flag.
30411         * cgraph.h (cgraph_only_called_directly_p,
30412         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
30413         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
30414         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
30415         (assemble
30416         * ipa.c (cgraph_remove_unreachable_nodes): Use
30417         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
30418         flags.
30419         * tree-inline.c (copy_bb): Check address_taken flag.
30420         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
30421         externally_visible flag.
30422
30423 2010-05-12  Jason Merrill  <jason@redhat.com>
30424
30425         PR bootstrap/44048
30426         PR target/44099
30427         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
30428         * sdbout.c (plain_type_1): Likewise.
30429         * dwarf2out.c (is_base_type): Likewise.
30430         (gen_type_die_with_usage): Likewise.  Generate
30431         DW_TAG_unspecified_type for any LANG_TYPE.
30432
30433 2010-05-12  Jan Hubicka  <jh@suse.cz>
30434
30435         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
30436         indrect edges too.
30437         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
30438         (cgraph_clone_edge): Update.
30439         (cgraph_node_remove_callees): Remove indirect calls too.
30440         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
30441         (cgraph_create_indirect_edge): Update prototype.
30442         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
30443         is_proper_for_analysis.
30444         (add_new_function, visited_nodes, function_insertion_hook_holder,
30445         get_local_reference_vars_info, mark_address_taken, mark_address,
30446         mark_load, mark_store, check_asm_memory_clobber, check_call,
30447         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
30448         (ipa_init): Do not initialize visited_nodes;
30449         function_insertion_hook_holder.
30450         (analyze_variable): Rewrite.
30451         (analyze_function): Rewrite.
30452         (copy_local_bitmap): Remove.
30453         (duplicate_node_dat): Do not duplicate local info.
30454         (generate_summary): Simplify to only walk cgraph.
30455         (write_node_summary_p, ipa_reference_write_summary,
30456         ipa_reference_read_summary): Remove.
30457         (propagate): Do not remove function insertion;
30458         generate summary.
30459         (pass_ipa_reference): NULLify summary handling fields.
30460         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
30461         (input_edge): Input ecf_flags.
30462         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
30463         (update_indirect_edges_after_inlining): Ignore edges with unknown
30464         param.
30465
30466 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
30467
30468         * implicit-zee.c: New file.
30469         * tree-pass.h (pass_implicit_zee): Declare.
30470         * passes.c (init_optimization_passes): Add zee pass.
30471         * common.opt (fzee): New flag.
30472         * timevar.def (TV_ZEE): Define.
30473         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
30474         and beyond.
30475         * Makefile.in (implicit-zee.o): Add new build file.
30476
30477 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30478             Nathan Froyd  <froydnj@codesourcery.com>
30479
30480         * c-common.c (sync_resolve_params): Remove write-only variable.
30481
30482 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
30483
30484         * target.h (struct gcc_target): Add mode_dependent_address_p field.
30485         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
30486         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
30487         * targhooks.c (default_mode_dependent_address_p): New function.
30488         * targhooks.h (default_mode_dependent_address_p): Declare function.
30489         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
30490         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
30491         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
30492         target hook. Change return type to bool.
30493         * recog.h (mode_dependent_address_p): Change return type to bool.
30494
30495 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30496             Nathan Froyd  <froydnj@codesourcery.com>
30497
30498         * tree-mudflap.c (build_function_type_0, build_function_type_1,
30499         build_function_type_2, build_function_type_3): Remove.
30500         (mudflap_init): Use build_function_type_list.
30501
30502 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30503             Nathan Froyd  <froydnj@codesourcery.com>
30504
30505         * coverage.c (build_fn_info_value): Call build_constructor instead of
30506         build_constructor_from_list.
30507         (build_ctr_info_value): Likewise.
30508         (build_gcov_info): Likewise.
30509
30510 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
30511
30512         * tree.c (build_constructor): Compute TREE_CONSTANT for the
30513         resultant constructor.
30514         (build_constructor_single): Don't set TREE_CONSTANT.
30515         (build_constructor_from_list): Don't compute TREE_CONSTANT.
30516
30517 2010-05-12  Jan Hubicka  <jh@suse.cz>
30518
30519         * cgraph.h (struct varpool_node): Add aux.
30520         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
30521         * varpool.c (varpool_remove_node): Do not remove initializer.
30522         (varpool_reset_queue): Export.
30523         (varpool_finalize_decl): Volatile vars are forced to be output.
30524         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
30525         replaced decl.
30526         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
30527         process_references, varpool_can_remove_if_no_refs): New functions.
30528         (cgraph_remove_unreachable_nodes): Handle variables too.
30529
30530 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
30531
30532         PR target/44088
30533         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
30534
30535 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
30536
30537         PR middle-end/44085
30538         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
30539         change value of ORT_TASK.
30540         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
30541         (omp_notice_threadprivate_variable): New function.
30542         (omp_notice_variable): Call it for threadprivate variables.
30543         If enclosing ctx is a task, print enclosing task rather than
30544         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
30545         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
30546         if task has untied clause.
30547
30548         PR debug/42278
30549         * dwarf2out.c (base_type_die): Don't add name attribute here.
30550         (modified_type_die): Instead of sizetype use
30551         its underlying original type.  If a DW_TAG_base_type doesn't
30552         have name added, add __unknown__.
30553         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
30554         always call force_type_die instead.
30555
30556 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
30557
30558         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
30559         for __stack_chk_guard.
30560
30561 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
30562
30563         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
30564         don't call start_source_file debug hook here...
30565         (finish_options): ... but here, after outputting predefined and
30566         command line defines and undefs.
30567
30568         PR middle-end/44071
30569         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
30570         no fallthru edge.
30571         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
30572         optimizing away empty bb with no successors, move over its
30573         footer chain to fallthru predecessor.
30574         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
30575         (rtl_split_edge): For asm goto call patch_jump_insn even if
30576         splitting fallthru edge.
30577
30578         PR c++/44059
30579         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
30580         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
30581         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
30582         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
30583         on DW.ref.* decls.
30584
30585         PR c++/44062
30586         * c-parser.c (c_parser_expression): Mark LHS of a comma
30587         expression as read if it is a decl, handled component or
30588         COMPOUND_EXPR with that on the RHS.
30589         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
30590         if it is a decl or handled component.
30591
30592 2010-05-11  Jan Hubicka  <jh@suse.cz>
30593
30594         * lto-symtab.c (lto_symtab_free): New function.
30595         * lto-streamer.h (lto_symtab_free): Declare.
30596
30597 2010-05-11  Jan Hubicka  <jh@suse.cz>
30598
30599         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
30600         that if function is needed it is reachable.
30601         (lto_output_node): See if it the function is reachable or referenced.
30602         (output_cgraph): Update call of lto_output_node.
30603         * lto-streamer.h (reachable_from_other_partition_p): Declare.
30604
30605 2010-05-11  Jan Hubicka  <jh@suse.cz>
30606
30607         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
30608         Mark as used.
30609
30610 2010-05-11  Jan Hubicka  <jh@suse.cz>
30611
30612         PR tree-optimize/44063
30613         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
30614         queue.
30615         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
30616         limits.
30617         (estimate_function_body_sizes): Compute sizes even when disregarding.
30618
30619 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
30620
30621         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
30622
30623 2010-05-11  Jan Hubicka  <jh@suse.cz>
30624
30625         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
30626         into every boundary.
30627
30628 2010-05-11  Jan Hubicka  <jh@suse.cz>
30629
30630         * matrix-reorg.c (matrix_reorg): Rebuild edges.
30631
30632 2010-05-11  Jan Hubicka  <jh@suse.cz>
30633
30634         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
30635         lto_streamer_cache_delete): Put nodes into heap.
30636         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
30637         heap.
30638
30639 2010-05-11  Jan Hubicka  <jh@suse.cz>
30640
30641         * cgraphbuild.c (cgraph_rebuild_references): New.
30642         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
30643         out extern inlines.
30644         * cgraph.h (cgraph_rebuild_references): Declare.
30645         * tree-inline.c (tree_function_versioning): Use it.
30646         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
30647
30648 2010-05-11  Jan Hubicka  <jh@suse.cz>
30649
30650         * cgraph.c: Include ipa-utils.h
30651         (cgraph_create_virtual_clone): Update references.
30652         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
30653
30654 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
30655
30656         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
30657         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
30658         cache size.
30659
30660 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
30661
30662         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
30663
30664 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
30665
30666         * gcc.c (execute): For -### don't quote arguments that
30667         contain just alphanumerics and _/-. characters.
30668         * doc/invoke.texi: Document that change for -###.
30669
30670         PR debug/44023
30671         * df-problems.c (struct dead_debug): Add to_rescan field.
30672         (dead_debug_init): Clear to_rescan field.
30673         (dead_debug_finish): Rescan all debug insns in to_rescan
30674         bitmap and free the bitmap.
30675         (dead_debug_insert_before): Instead of rescanning debug insns
30676         immediately queue their rescanning until dead_debug_finish.
30677         (df_note_bb_compute): After dead_debug_add do continue instead
30678         of break.
30679
30680 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
30681
30682         PR debug/44028
30683         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
30684         clear also INSN_REG_USE_LIST.
30685
30686 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30687
30688         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
30689
30690 2010-05-10  Jan Hubicka  <jh@suse.cz>
30691
30692         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
30693         commited change.
30694
30695 2010-05-10  Jan Hubicka  <jh@suse.cz>
30696
30697         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
30698         Allocate encoders.
30699         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
30700         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
30701         (lto_streamer_cache_create): Init alloc pool.
30702         (lto_streamer_cache_delete): Free alloc pool.
30703         * lto-streamer.h: Include alloc pool.
30704         (lto_streamer_cache_d): Use alloc pool.
30705         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
30706
30707 2010-05-10  Jan Hubicka  <jh@suse.cz>
30708
30709         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
30710         * cgraphbuild.c: Include except.h
30711         (record_type_list, record_eh_tables): New function.
30712         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
30713
30714 2010-05-10  Jan Hubicka  <jh@suse.cz>
30715
30716         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
30717         __frame_dummy_init_array_entry, force_to_data): Attribute as used
30718         rather than unused.
30719
30720 2010-05-10  Michael Matz  <matz@suse.de>
30721
30722         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
30723         (can_reassociate_p): Use FLOAT_TYPE_P.
30724         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
30725         (vect_force_simple_reduction): ... this.
30726         * tree-parloops.c (gather_scalar_reductions): Use
30727         vect_force_simple_reduction.
30728         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
30729         vect_is_simple_reduction, add modify argument, if true rewrite
30730         "a-b" into "a+(-b)".
30731         (vect_is_simple_reduction, vect_force_simple_reduction): New
30732         functions.
30733         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
30734
30735 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
30736             Vladimir Makarov  <vmakarov@redhat.com>
30737
30738         PR rtl-optimization/44012
30739         * ira-build.c (remove_unnecessary_allocnos): Nullify
30740         regno_allocno_map of the removed allocno.
30741
30742 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30743
30744         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
30745         to /dev/null.
30746         * configure: Regenerate.
30747
30748 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30749
30750         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
30751         unused.
30752         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
30753         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
30754         support in Sun ld.
30755         * configure: Regenerate.
30756
30757 2010-05-10  Richard Guenther  <rguenther@suse.de>
30758
30759         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
30760         marked if the entry identifier is marked.
30761
30762 2010-05-10  Richard Guenther  <rguenther@suse.de>
30763
30764         * c-common.c (struct c_common_attributes): Add fnspec attribute.
30765         (handle_fnspec_attribute): New function.
30766         * gimple.h (gimple_call_return_flags): Declare.
30767         (gimple_call_arg_flags): Likewise.
30768         * gimple.c (gimple_call_arg_flags): New function.
30769         (gimple_call_return_flags): Likewise.
30770         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
30771         New argument flags.
30772         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
30773         return value flags.
30774         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
30775         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
30776         main work to ...
30777         (make_heapvar_for): ... this new function.
30778         (handle_rhs_call): Handle fnspec attribute argument specifiers.
30779         (handle_lhs_call): Likewise.
30780         (find_func_aliases): Adjust.
30781
30782 2010-05-10  Richard Guenther  <rguenther@suse.de>
30783
30784         PR tree-optimization/44050
30785         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
30786
30787 2010-05-10  Wei Guozhi  <carrot@google.com>
30788
30789         PR target/42879
30790         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
30791
30792 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
30793
30794         PR c/10676
30795         * c-typeck.c (lookup_field): Take a type directly.  Update
30796         recursive calls.
30797         (build_component_ref): Update call to lookup_field.
30798         (set_init_label): Use lookup_field to find initialized field.
30799         Handle returned list of fields like a sequence of designators.
30800
30801 2010-05-09  Richard Guenther  <rguenther@suse.de>
30802
30803         PR middle-end/44024
30804         * fold-const.c (tree_single_nonzero_warnv_p): Properly
30805         handle &FUNCTION_DECL.
30806
30807 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
30808
30809         PR c/4784
30810         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
30811         structures and unions recursively.
30812         (detect_field_duplicates): Move duplicate detection with a hash to
30813         detect_field_duplicates_hash.  Always use a hash if anonymous
30814         structures or unions are present.
30815         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
30816         give errors.
30817
30818 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
30819
30820         PR target/44046
30821         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
30822         detect Atom, Core 2 and Core i7.
30823
30824 2010-05-09  Richard Guenther  <rguenther@suse.de>
30825
30826         * gcc.c (store_arg): Handle temporary file deletion for
30827         joined arguments.
30828
30829 2010-05-09  Richard Guenther  <rguenther@suse.de>
30830
30831         PR middle-end/44043
30832         * ipa-inline.c (estimate_function_body_sizes): Return after
30833         disregarding inline limits.
30834
30835 2010-05-09  Richard Guenther  <rguenther@suse.de>
30836
30837         * gcc.c (store_arg): Revert last change.
30838
30839 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
30840
30841         PR middle-end/28685
30842         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
30843         (optimize_ops_list): Call it.
30844
30845 2010-05-08  Richard Guenther  <rguenther@suse.de>
30846
30847         PR tree-optimization/44030
30848         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
30849         NECESSARY flag if we propagate from a inserted expression.
30850
30851 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
30852
30853         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
30854         domain types as equal if they are both PLACEHOLDER_EXPRs.
30855
30856 2010-05-08  Richard Guenther  <rguenther@suse.de>
30857
30858         * lto-wrapper.c (run_gcc): Remove linker output from
30859         command line for LTRANS invocation.
30860
30861 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
30862
30863         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
30864         lto-macho as lto_binary_reader.
30865         * target.h (struct gcc_target): New hooks lto_start and lto_end.
30866         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
30867         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
30868         in lto_start and lto_end calls.
30869         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
30870         magic numbers.
30871         (scan_prog_file): Update is_elf_or_coff call.
30872         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
30873
30874         * collect2.c (main): Fix enum comparison.
30875
30876         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
30877         Add prototypes.
30878         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
30879         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
30880         and TARGET_ASM_LTO_END.
30881         * darwin.c: Include obstack.h and lto-streamer.h.
30882         (lto_section_names_offset, lto_section_names_obstack,
30883         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
30884         global variables.
30885         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
30886         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
30887         to a temporary file.
30888         (darwin_asm_lto_end): New function.  Restore asm_out_file.
30889         (darwin_asm_named_section): For LTO sections, replace the name with
30890         the offset of the section name in a string table, and build this
30891         table.
30892         (darwin_file_start): Initialize global vars for LTO support.
30893         (darwin_file_end): If output to asm_out_file was redirected, append it
30894         to the proper asm_out_file here.  Add the section names section.
30895
30896 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
30897
30898         * c-pragma.c (pending_weak_d, pending_weak): New.
30899         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
30900         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
30901         handle_pragma_weak): Update the uses of pending_weaks.
30902
30903 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30904
30905         PR documentation/44016
30906         * doc/standards.texi (Standards): Link to unversioned
30907         cxx0x_status.html page.
30908
30909 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
30910
30911         PR target/43708
30912         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
30913         in addition to TREE_USED, to avoid "set but unused" warnings.
30914
30915 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30916
30917         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
30918         (is_loop_prefetching_profitable): Do not insert prefetches
30919         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
30920         times the prefetch ahead distance.
30921
30922 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30923
30924         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
30925         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
30926         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
30927         the unroll_factor.
30928
30929 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30930
30931         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
30932         a diagnostic info when the insn-to-mem ratio is too small.
30933
30934 2010-05-07  Richard Guenther  <rguenther@suse.de>
30935
30936         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
30937         the linker plugin.
30938         (store_arg): Queue temp_filename for deletion instead of
30939         the whole argument.
30940
30941 2010-05-07  Richard Guenther  <rguenther@suse.de>
30942
30943         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
30944         (run_gcc): Handle LTRANS phase invocation.
30945         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
30946
30947 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
30948
30949         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
30950         this is also meaningful on PARM_DECLs and RESULT_DECLs.
30951
30952 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30953
30954         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
30955
30956 2010-05-07  Richard Guenther  <rguenther@suse.de>
30957
30958         PR tree-optimization/44020
30959         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
30960         code when PRE is not yet initialized.
30961
30962 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30963
30964         * config/mips/dbxmdebug.h: Remove.
30965         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
30966
30967 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
30968
30969         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
30970         with null pointer and also warn about ordered comparison of zero with
30971         pointer if -Wextra.
30972
30973 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
30974
30975         * graphite-blocking.c
30976         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
30977         * graphite-clast-to-gimple.c
30978         (clast_to_gcc_expression): Same.
30979         (precision_for_value): Same.
30980         (precision_for_interval): Same.
30981         (gcc_type_for_interval): Same.
30982         (graphite_create_new_guard): Same.
30983         (compute_bounds_for_level): Same.
30984         (graphite_create_new_loop_guard): Same.
30985         * graphite-interchange.c
30986         (build_linearized_memory_access): Same.
30987         (pdr_stride_in_loop): Same.
30988         (memory_strides_in_loop_1): Same.
30989         (memory_strides_in_loop): Same.
30990         (extend_scattering): Same.
30991         (psct_scattering_dim_for_loop_depth): Same.
30992         (pbb_number_of_iterations): Same.
30993         * graphite-poly.h
30994         (debug_iteration_domains): Same.
30995         * graphite-ppl.c
30996         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
30997         (ppl_set_inhomogeneous_gmp): Same.
30998         (ppl_strip_loop): Same.
30999         (ppl_lexico_compare_linear_expressions): Same.
31000         (ppl_read_polyhedron_matrix): Same.
31001         (ppl_max_for_le_pointset): Same.
31002         * graphite-ppl.h
31003         (ppl_read_polyhedron_matrix): Same.
31004         (tree_int_to_gmp): Same.
31005         (gmp_cst_to_tree): Same.
31006         (ppl_set_inhomogeneous): Same.
31007         (ppl_set_inhomogeneous_tree): Same.
31008         (ppl_set_coef): Same.
31009         (ppl_set_coef_tree): Same.
31010         * graphite-sese-to-poly.c
31011         (build_pbb_scattering_polyhedrons): Same.
31012         (build_scop_scattering): Same.
31013         (scan_tree_for_params_right_scev): Same.
31014         (scan_tree_for_params): Same.
31015         (find_params_in_bb): Same.
31016         (find_scop_parameters): Same.
31017         (add_upper_bounds_from_estimated_nit): Same.
31018         (build_loop_iteration_domains): Same.
31019         (add_condition_to_domain): Same.
31020         (pdr_add_memory_accesses): Same.
31021
31022 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
31023
31024         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
31025         CLooG's value_* macros to their respective mpz_* counterparts.
31026         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
31027         (graphite_create_new_loop_guard): Same.
31028         * graphite-interchange.c (build_linearized_memory_access): Same.
31029         (pdr_stride_in_loop): Same.
31030         (memory_strides_in_loop_1): Same.
31031         (1st_interchange_profitable_p): Same.
31032         * graphite-poly.c (extend_scattering): Same.
31033         (psct_scattering_dim_for_loop_depth): Same.
31034         (pbb_number_of_iterations): Same.
31035         (pbb_number_of_iterations_at_time): Same.
31036         * graphite-poly.h (new_1st_loop): Same.
31037         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
31038         (oppose_constraint): Same.
31039         (insert_constraint_into_matrix): Same.
31040         (ppl_set_inhomogeneous_gmp): Same.
31041         (ppl_set_coef_gmp): Same.
31042         (ppl_strip_loop): Same.
31043         (ppl_lexico_compare_linear_expressions): Same.
31044         (ppl_max_for_le_pointset): Same.
31045         (ppl_min_for_le_pointset): Same.
31046         (ppl_build_realtion): Same.
31047         * graphite-ppl.h (gmp_cst_to_tree): Same.
31048         (ppl_set_inhomogeneous): Same.
31049         (ppl_set_inhomogeneous_tree): Same.
31050         (ppl_set_coef): Same.
31051         (ppl_set_coef_tree): Same.
31052         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
31053         (build_scop_scattering): Same.
31054         (add_value_to_dim): Same.
31055         (scan_tree_for_params_right_scev): Same.
31056         (scan_tree_for_params_int): Same.
31057         (scan_tree_for_params): Same.
31058         (find_params_in_bb): Same.
31059         (find_scop_parameters): Same.
31060         (add_upper_bounds_from_estimated_nit): Same.
31061         (build_loop_iteration_domains): Same.
31062         (create_linear_expr_from_tree): Same.
31063         (add_condition_to_domain): Same.
31064         (pdr_add_memory_accesses): Same.
31065
31066 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
31067             Jason Merrill  <jason@redhat.com>
31068
31069         * c-common.c (c_common_reswords): Add nullptr.
31070         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
31071         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
31072         (gen_type_die_with_usage): Likewise.
31073         * dbxout.c (dbxout_type): Likewise.
31074         * sdbout.c (plain_type_1): Likewise.
31075
31076 2010-05-06  Jason Merrill  <jason@redhat.com>
31077
31078         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
31079         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
31080         ret appropriately.
31081         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
31082
31083         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
31084         stripping WITH_SIZE_EXPR.
31085         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
31086         change.
31087
31088 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31089
31090         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
31091         list of obsolete configurations.
31092         Disabled check for obsolete configurations.
31093         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
31094         Removed support for previous versions.
31095         * config/mips/iris.h: Removed.
31096         * config/mips/iris5.h: Removed.
31097         * config/mips/iris6.h: Merged old iris.h contents.
31098         (TARGET_IRIX): Removed.
31099         (DRIVER_SELF_SPECS): Removed mabi=32.
31100         (IDENT_ASM_OP): Removed undef.
31101         (STARTFILE_SPEC): Removed mabi=32.
31102         (ENDFILE_SPEC): Likewise.
31103         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
31104         (MACHINE_TYPE): Update for IRIX 6.5.
31105         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
31106         TARGET_IRIX by TARGET_IRIX6.
31107         (mips_file_start): Likewise.
31108         (mips_output_external): Remove IRIX 5/6 O32 support.
31109         (mips_output_function_prologue): Likewise.
31110         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
31111         TARGET_IRIX6.
31112         (TARGET_CPU_CPP_BUILTINS): Likewise.
31113         (TARGET_IRIX): Removed.
31114         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
31115         (MULTILIB_DIRNAMES): Removed 32.
31116         (MULTILIB_OSDIRNAMES): Removed ../lib.
31117         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
31118         (Specific, mips-sgi-irix5): Document removal.
31119         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
31120         Remove references to older IRIX 6 releases and the O32 ABI.
31121
31122 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
31123
31124         PR bootstrap/43994
31125         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
31126         instead of DF_REF_REAL_REG.
31127
31128 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
31129
31130         PR target/43888
31131         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
31132         handling to still return true for x64 targets.
31133
31134 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
31135
31136         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
31137
31138 2010-05-06  Jan Hubicka  <jh@suse.cz>
31139
31140         PR tree-optimization/43791
31141         * ipa-inline.c (update_caller_keys): Remove bogus
31142         disregard_inline_limits check.
31143
31144 2010-05-06  Michael Matz  <matz@suse.de>
31145
31146         PR tree-optimization/43984
31147         * tree-ssa-pre.c (inserted_phi_names): Remove.
31148         (inserted_exprs): Change to bitmap.
31149         (create_expression_by_pieces): Set bits, don't append to vector.
31150         (insert_into_preds_of_block): Don't handle inserted_phi_names.
31151         (eliminate): Don't look at inserted_phi_names, remove deleted
31152         insns from inserted_exprs.
31153         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
31154         (init_pre, fini_pre): Allocate and free bitmaps.
31155         (execute_pre): Insert insns on edges before elimination.
31156
31157 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
31158
31159         * tree.c (initializer_zerop): Handle STRING_CST.
31160
31161 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31162
31163         PR 40989
31164         * doc/invoke.texi (Wimplicit): Document as C only.
31165         * opts.c (common_handle_option): Add argument kind.
31166         (handle_option): Rename as read_cmdline_option. Factor out code to...
31167         (handle_option): ... here. New.
31168         (handle_options): Rename as read_cmdline_options.
31169         (decode_options): Update call.
31170         (set_option): Use option index instead of option pointer. Classify
31171         diagnostics correctly.
31172         (enable_warning_as_error): Call handle_option.
31173         * opts.h (set_option): Update declaration.
31174         (handle_option): Declare.
31175         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
31176         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
31177         * c-opts.c (set_Wimplicit): Delete.
31178         (c_family_lang_mask): New static constant.
31179         (c_common_handle_option): Add argument kind. Use handle_option
31180         instead of set_Wimplicit.
31181         (c_common_post_options): warn_implicit and warn_implicit_int
31182         are disabled by default.
31183         * c-common.c (warn_implicit): Do not define here.
31184         * c-common.h (warn_implicit): Do not declare here.
31185         (c_common_handle_option): Update declaration.
31186         * lto-opts.c (lto_reissue_options): Update call to set_option.
31187
31188 2010-05-06  Richard Guenther  <rguenther@suse.de>
31189
31190         PR tree-optimization/43571
31191         * domwalk.c (walk_dominator_tree): Walk the dominator
31192         sons in more optimal order.
31193
31194 2010-05-06  Richard Guenther  <rguenther@suse.de>
31195
31196         PR tree-optimization/43934
31197         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
31198         (stmt_cost): Likewise.
31199         (extract_true_false_args_from_phi): New helper.
31200         (determine_max_movement): For PHI nodes verify we can hoist them
31201         and compute their cost.
31202         (determine_invariantness_stmt): Handle PHI nodes.
31203         (move_computations_stmt): Likewise.  Hoist PHI nodes in
31204         if-converted form using COND_EXPRs.
31205         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
31206         (tree_ssa_lim): Likewise.
31207         * tree-flow.h (tree_ssa_lim): Adjust prototype.
31208         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
31209
31210 2010-05-06  Richard Guenther  <rguenther@suse.de>
31211
31212         PR tree-optimization/43987
31213         * tree-ssa-structalias.c (could_have_pointers): For possibly
31214         address-taken variables force pointers to be recorded.
31215         (create_variable_info_for_1): Likewise.
31216         (push_fields_onto_fieldstack): Pass in wheter all fields
31217         must have pointers.
31218         (find_func_aliases): Query types instead of vars whether
31219         they contain pointers where appropriate.
31220
31221 2010-05-06  Jan Hubicka  <jh@suse.cz>
31222
31223         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
31224         (record_reference, mark_address, mark_load, mark_store): Record
31225         references.
31226         (record_references_in_initializer): Update call of record_references.
31227         (rebuild_cgraph_edges): Remove all references before rebuiding.
31228         * cgraph.c (cgraph_create_node): Clear ref list.
31229         (cgraph_remove_node): Remove references.
31230         (dump_cgraph_node): Dump references.
31231         (cgraph_clone_node): Clone references.
31232         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
31233         (struct cgraph_node, varpool_node): Add ref_lst.
31234         * ipa-ref.c: New file.
31235         * ipa-ref.h: New file.
31236         * ipa-ref-inline.h: New file.
31237         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
31238         (referenced_from_other_partition_p): New function.
31239         (lto_output_varpool_node): Take set arugment; call
31240         referenced_from_other_partition.
31241         (lto_output_ref): New.
31242         (add_references): New.
31243         (output_refs): New.
31244         (output_cgraph): Compute boundary based on references; output refs.
31245         (output_varpool): Accept cgraph_node_set argument.
31246         (input_ref): New.
31247         (input_refs): New.
31248         (input_cgraph): Call input_refs.
31249         * lto-section-in.c (lto_section_name): Add refs.
31250         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
31251         (ipa-ref.o): New file.
31252         * varpool.c (varpool_node): Clear ipa ref list.
31253         (varpool_remove_node): Remove references.
31254         (dump_varpool_node): Dump references.
31255         (varpool_assemble_decl): Only compile finalized ones.
31256         (varpool_extra_name_alias): Initialize ref list.
31257         * lto-streamer.c (lto-get_section_name): Add .refs section.
31258         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
31259         (referenced_from_other_partition_p): Declared.
31260
31261 2010-05-06  Ira Rosen  <irar@il.ibm.com>
31262
31263         PR tree-optimization/43901
31264         * tree-vect-stmts.c (vectorizable_call): Assert that vector
31265         type is not NULL if it's transformation phase, and return
31266         FALSE if it's analysis.
31267         (vectorizable_conversion, vectorizable_operation,
31268         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
31269
31270 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
31271
31272         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
31273         Delete.
31274         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
31275         New define.
31276         * config/mips/mips-protos.h
31277         (mips_small_register_classes_for_mode_p): Delete prototype.
31278
31279 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
31280
31281         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
31282         * config/arm/arm.c (multiple_operation_profitable_p,
31283         compute_offset_order): New static functions.
31284         (load_multiple_sequence, store_multiple_sequence): Use them.
31285         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
31286         memory offsets, not register numbers.
31287         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
31288
31289 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
31290
31291         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
31292         (get_pending_sizes, put_pending_size, put_pending_sizes):
31293         Update the uses of pending_sizes.
31294         * c-decl.c (store_parm_decls): Likewise.
31295         * c-tree.h (struct c_arg_info): Likewise.
31296         * tree.h: Update the prototype for get_pending_sizes and
31297         put_pending_sizes.
31298
31299 2010-05-05  Jason Merrill  <jason@redhat.com>
31300
31301         PR debug/43370
31302         * c-common.c (handle_aligned_attribute): Respect
31303         ATTR_FLAG_TYPE_IN_PLACE.
31304
31305         PR testsuite/43758
31306         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
31307         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
31308         (TARGET_INITIALIZER): Use it.
31309         * c-common.c (attribute_takes_identifier_p): Call it.
31310         * c-common.h: Update prototype.
31311         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
31312         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
31313
31314 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
31315
31316         PR debug/43950
31317         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
31318         DW_ID_down_case for Fortran compilation units.
31319
31320 2010-05-05  Jan Hubicka  <jh@suse.cz>
31321
31322         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
31323         handle aliases.
31324
31325 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
31326
31327         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
31328         a variable-sized RESULT_DECL.
31329
31330 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
31331
31332         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
31333
31334 2010-05-05  Jason Merrill  <jason@redhat.com>
31335
31336         PR c++/43787
31337         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
31338         returns GS_OK.
31339         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
31340
31341 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
31342             Jakub Jelinek  <jakub@redhat.com>
31343
31344         PR debug/43478
31345         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
31346         (dead_debug_init, dead_debug_finish): New functions.
31347         (dead_debug_add, dead_debug_insert_before): Likewise.
31348         (df_note_bb_compute): Initialize a dead_debug object, add dead
31349         debug uses to it, insert debug bind insns before death insns,
31350         reset debug insns that refer to pending uses at the end.
31351         * rtl.h (make_debug_expr_from_rtl): New prototype.
31352         * varasm.c (make_debug_expr_from_rtl): New function.
31353
31354 2010-05-05  Jan Hubicka  <jh@suse.cz>
31355
31356         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
31357         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
31358         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
31359         lto_varpool_encoder_deref, lto_varpool_encoder_size,
31360         lto_varpool_encoder_encode_initializer_p,
31361         lto_set_varpool_encoder_encode_initializer): New functions.
31362         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
31363         call output_varpool.
31364         (input_varpool_node): Do not always set analyzed.
31365         (input_cgraph_1): Return vector of cgraph nodes.
31366         (input_varpool_1): Return vector of varpools.
31367         (input_cgraph): Free the vectors.
31368         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
31369         output only initializers needed.
31370         (lto_output): Only call output_cgraph.
31371         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
31372         * lto-section-out.c (lto_new_out_decl_state): Initialize
31373         state->varpool_node_encoder.
31374         * lto-streamer.h (lto_varpool_encoder_d): New.
31375         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
31376         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
31377         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
31378         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
31379         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
31380         Declare.
31381         (output_varpool, input_varpool): Remove declarations.
31382
31383 2010-05-05  Jan Hubicka  <jh@suse.cz>
31384
31385         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
31386         with body can prevail.
31387
31388 2010-05-05  Jan Hubicka  <jh@suse.cz>
31389
31390         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
31391         size.
31392
31393 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31394
31395         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
31396
31397         * gengtype.h (erro_at_line): Constify pos argument.
31398
31399         * gengtype.c: Include hashtab.h.
31400         (enum gc_used): Document GC_MAYBE_POINTED_TO.
31401         (error_at_line): Constify pos argument.
31402         (do_typedef): Initialize p->opt field.
31403         (get_file_gtfilename): Fix comment typo.
31404         (struct walk_type_data): Constify line field.
31405         (get_output_file_for_structure): New function.
31406         (write_local_func_for_structure): Constify orig_s argument.
31407         Use get_output_file_for_structure.
31408         (write_func_for_structure): Use get_output_file_for_structure.
31409         (INDENT): New define.
31410         (dump_pair, dump_type, dump_type_list, dump_typekind)
31411         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
31412         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
31413         functions.
31414         (seen_types): New variable.
31415         (main): New variable do_dump.  Process "-d" command line option.
31416         Call dump_everything if dump requested.
31417
31418 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
31419
31420         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
31421         in a temporary instead of invoking the macro multiple times.
31422         (track_expr_p): Likewise.
31423
31424 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
31425
31426         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
31427         per new semantics.
31428         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
31429         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
31430         conditions for printing notes.
31431         * common.opt (-Wcoverage-mismatch): Allow negative, default to
31432         true, update documentation.
31433         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
31434
31435 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
31436
31437         PR c/43981
31438         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
31439         on dimen.
31440
31441 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
31442
31443         PR target/43799
31444         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
31445         (*sse_prologue_save_insn1): Likewise.
31446         (SSE prologue save splitter): Likewise.
31447
31448 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
31449
31450         * tree.c (free_lang_data_in_one_sizepos): New inline function.
31451         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
31452         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
31453         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
31454         all decls.  Call it on DECL_FIELD_OFFSET of fields.
31455         (find_decls_types_r): Follow DECL_VALUE_EXPR.
31456         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
31457
31458 2010-05-04  Martin Jambor  <mjambor@suse.cz>
31459
31460         * tree-sra.c (build_access_from_expr_1): The first parameter type
31461         changed to simple tree.
31462         (build_access_from_expr): Likewise, gsi parameter was eliminated.
31463         (scan_assign_result): Renamed to assignment_mod_result, enum elements
31464         renamed as well.
31465         (build_accesses_from_assign): Removed all parameters except for a
31466         simple gimple statement.  Now returns a simple bool.
31467         (scan_function): All non-analysis parts moved to separate functions
31468         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
31469         parameters and updated both callers.
31470         (sra_modify_expr): Removed parameter data.
31471         (sra_modify_function_body): New function.
31472         (perform_intra_sra): Call sra_modify_function_body to modify the
31473         function body.
31474         (replace_removed_params_ssa_names): Parameter data changed into
31475         adjustments vector.
31476         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
31477         changed the parameter dont_convert to convert with the opposite
31478         meaning.
31479         (sra_ipa_modify_assign): Parameter data changed into adjustments
31480         vector, return value changed to bool.
31481         (ipa_sra_modify_function_body): New function.
31482         (sra_ipa_reset_debug_stmts): Updated a comment.
31483         (modify_function): Use ipa_sra_modify_function_body to modify function
31484         body.
31485
31486 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
31487
31488         PR middle-end/43671
31489         * alias.c (true_dependence): Handle the same VALUE in x and mem.
31490         (canon_true_dependence): Likewise.
31491         (write_dependence_p): Likewise.
31492
31493 2010-05-04  Jan Hubicka  <jh@suse.cz>
31494
31495         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
31496         * cgraphbuild.c: Include ipa-utils.h
31497         (record_reference_ctx): New struct.
31498         (record_reference): Simplify to work on initializers; not statements.
31499         (mark_address, mark_load, mark_store): New.
31500         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
31501         walk PHI nodes too.
31502         (record_references_in_initializer): Update use of record_reference.
31503         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
31504         walk PHI nodes too.
31505
31506 2010-05-04  Jan Hubicka  <jh@suse.cz>
31507
31508         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
31509         node will be removed anyway.
31510         (lto_varpool_replace_node): Allow also unanalyzed nodes;
31511         relink aliases of node into prevailing node.
31512         * varpool.c (varpool_remove_node): Remove aliases properly;
31513         when removing node, remove all its aliases too; remove DECL_INITIAL
31514         of removed node; ggc_free the varpool node.
31515
31516 2010-05-04  Richard Guenther  <rguenther@suse.de>
31517
31518         PR tree-optimization/43879
31519         * tree-ssa-structalias.c (alias_get_name): Use
31520         DECL_ASSEMBLER_NAME if available.
31521         (create_function_info_for): Return the varinfo node.
31522         (ipa_pta_execute): Associate same-body aliases and extra names
31523         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
31524
31525 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
31526
31527         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
31528
31529 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
31530
31531         PR bootstrap/43964
31532         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
31533         only if HONOR_REG_ALLOC_ORDER is not defined.
31534
31535 2010-05-04  Richard Guenther  <rguenther@suse.de>
31536
31537         PR tree-optimization/43949
31538         * tree-vrp.c (extract_range_from_binary_expr): Only handle
31539         TRUNC_MOD_EXPR.
31540
31541 2010-04-26  Jason Merrill  <jason@redhat.com>
31542
31543         * c.opt (-fstrict-enums): New.
31544         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
31545
31546 2010-05-03  David Ung  <davidu@mips.com>
31547             James E. Wilson  <wilson@codesourcery.com>
31548
31549         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
31550         emit the trap instruction before the divide for TUNE_74K.
31551
31552 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
31553
31554         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
31555         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
31556         based on the above, for new target hook.
31557
31558         * hooks.c (hook_bool_mode_true): New generic hook.
31559         * hooks.h (hook_bool_mode_true): Add prototype.
31560
31561         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
31562         target hook.
31563         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
31564         target hook, set to hook_bool_mode_false.
31565         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
31566         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
31567         with targetm.small_register_classes_for_mode_p.
31568         (find_reusable_reload): Likewise.
31569         (combine_reloads): Likewise.
31570         * reload1.c (reload_as_needed): Likewise.
31571         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
31572         * ifcvt.c (noce_process_if_block, check_cond_move_block,
31573         dead_or_predicable): Likewise.
31574         * regmove.c (optimize_reg_copy_1): Likewise.
31575         * calls.c (prepare_call_address): Likewise.
31576         (precompute_register_parameters): Likewise.
31577
31578         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
31579         hook definition.
31580         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
31581         implementation of the hook that considers all register classes
31582         small except for SH64.
31583         (sh_override_options): Use the new hook.
31584         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
31585         Add prototype.
31586
31587         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
31588         hook definition.
31589         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
31590         implementation of the hook that considers all register classes
31591         small for THUMB1.
31592         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
31593         Add prototype.
31594
31595         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
31596         hook definition.
31597         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
31598         implementation of the hook that considers all register classes
31599         small for MIPS16.
31600         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
31601         Add prototype.
31602
31603         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
31604         hook definition.
31605         * config/m32c/m32c.h: Likewise.
31606         * config/pdp11/pdp11.h: Likewise.
31607         * config/avr/avr.h: Likewise.
31608         * config/xtensa/xtensa.h: Likewise.
31609         * config/m68hc11/m68hc11.h: Likewise.
31610         * config/mn10300/mn10300.h: Likewise.
31611         * config/mcore/mcore.h: Likewise.
31612         * config/h8300/h8300.h: Likewise.
31613         * config/bfin/bfin.h: Likewise.
31614
31615         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
31616         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
31617
31618 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
31619
31620         * double-int.h (tree_to_double_int): Remove macro.
31621         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
31622         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
31623         (tree_to_double_int): New function.
31624         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
31625         Move ...
31626         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
31627
31628 2010-05-03  Richard Guenther  <rguenther@suse.de>
31629
31630         PR tree-optimization/43971
31631         * tree-ssa-structalias.c (get_constraint_for_1): Fix
31632         constraints in the !flag_delete_null_pointer_checks case.
31633
31634 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
31635
31636         PR debug/43972
31637         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
31638         result mode matches original rtl mode.
31639
31640 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
31641
31642         PR target/43888
31643         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
31644
31645 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31646
31647         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
31648         when processing flag options.
31649
31650 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31651
31652         * gcov-iov.c (main): Change format string placeholder
31653         from %#08x to 0x%08x.
31654         * genchecksum.c (dosum): Change format string placeholder
31655         from %#02x to 0x%02x.
31656
31657 2010-05-02  Richard Guenther  <rguenther@suse.de>
31658
31659         PR tree-optimization/43879
31660         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
31661
31662 2010-05-02  Bruno Haible  <bruno@clisp.org>
31663
31664         * doc/extend.texi (Function Attributes): Fix a typo.
31665
31666 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31667
31668         Revert:
31669         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
31670         placeholder from 0x%x to %#x.
31671         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
31672         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31673         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31674         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31675         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31676         * config/i386/i386.c (ix86_target_string): Ditto.
31677         * config/i386/i386.c (output_pic_addr_const): Ditto.
31678         (print_operand): Ditto.
31679
31680 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31681
31682         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
31683         placeholder from 0x%x to %#x.
31684         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
31685         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
31686         (ASM_OUTPUT_DEBUG_DATA): Ditto.
31687         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
31688         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
31689         * optc-gen.awk: Ditto.
31690         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
31691         (HOST_WIDE_INT_PRINT_HEX): Ditto.
31692         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
31693         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
31694
31695 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
31696
31697         * target.h (struct calls): Add function_value_regno_p field.
31698         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
31699         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
31700         * targhooks.c (default_function_value_regno_p): New function.
31701         * targhooks.h (default_function_value_regno_p): Declare function.
31702         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
31703         * builtins.c. (apply_result_size): (Ditto.).
31704         * combine.c. (likely_spilled_retval_p): (Ditto.).
31705         * mode-switching.c. Include 'target.h'.
31706         (create_pre_exit): Use function_value_regno_p hook.
31707         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
31708         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
31709         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
31710
31711         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
31712         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
31713         (ix86_function_value_regno_p): Declare as static, change argument
31714         type to const unsigned int.
31715         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
31716
31717 2010-05-01  Richard Guenther  <rguenther@suse.de>
31718
31719         PR tree-optimization/43949
31720         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
31721         types.
31722         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
31723
31724 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
31725
31726         * rtl.h (CONST_DOUBLE_P): Define.
31727         (rtx_to_double_int): Declare.
31728         * emit-rtl.c (rtx_to_double_int): New function.
31729         * dwarf2out.c (insert_double): New function.
31730         (loc_descriptor, add_const_value_attribute): Clean up, use
31731         rtx_to_double_int and insert_double functions.
31732
31733 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
31734
31735         * doc/extend.texi (Inline): Add missing return keyword to examples.
31736         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
31737         "command-line".
31738
31739 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
31740
31741         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
31742         the variable part of the offset as well.  Use highest_pow2_factor for
31743         all alignment checks.
31744
31745 2010-04-30  Richard Guenther  <rguenther@suse.de>
31746
31747         PR tree-optimization/43879
31748         * tree-ssa-structalias.c (type_could_have_pointers): Functions
31749         can have pointers.
31750
31751 2010-04-30  Jan Hubicka  <jh@suse.cz>
31752
31753         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
31754         varpool.
31755         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
31756
31757 2010-04-30  Jan Hubicka  <jh@suse.cz>
31758
31759         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
31760         New.
31761         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
31762         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
31763         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
31764         cgraph_node_set_needs_ltrans_p): Remove.
31765
31766 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
31767
31768         * sdbout.c: Include vec.h, do not include varray.h.
31769         (deferred_global_decls, sdbout_global_decl,
31770         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
31771         * toplev.c: Do not include varray.h.
31772         (dump_memory_report): Do not dump VARRAY statistics.
31773         * gengtype.c (open_base_file): Ignore varray.h.
31774         * Makefile.in: Update for abovementioned changes.
31775         Remove all traces of varray.c and varray.h.
31776         * varray.c: Remove file.
31777         * varray.h: Remove file.
31778
31779 2010-04-30  Jan Hubicka  <jh@suse.cz>
31780
31781         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
31782         references.
31783
31784 2010-04-30  Jan Hubicka  <jh@suse.cz>
31785
31786         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
31787         needed.
31788
31789 2010-04-30  Richard Guenther  <rguenther@suse.de>
31790
31791         * tree-ssa-structalias.c (get_constraint_for_1): Generate
31792         constraints for CONSTRUCTOR.
31793
31794 2010-04-30  Richard Guenther  <rguenther@suse.de>
31795
31796         PR lto/43946
31797         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
31798         first after all lowering passes.
31799
31800 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
31801
31802         * toplev.c: Include varray.h for statistics dumping.
31803         * tree.h: Do not declare varray_head_tag.
31804         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
31805         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
31806         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
31807         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
31808         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
31809         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
31810         c-common.c, c-common.h, reg-stack.c, basic-block.h,
31811         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
31812         include varray.h.
31813         * Makefile.in: Update for abovementioned changes.
31814
31815 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
31816
31817         PR debug/43942
31818         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
31819
31820 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
31821
31822         * config/picochip/picochip.c (picochip_legitimize_address): Define.
31823         Use this function to do machine-specific conversion.
31824         (picochip_legitimize_reload_address): Likewise.
31825         (picochip_legitimate_address_p): Check valid base register only if
31826         strict.
31827         (picochip_check_conditional_copy): Check for modw only if opnd is
31828         register.
31829         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
31830         to call the function in c.
31831         * config/picochip/picochip-protos.h
31832         (picochip_legitimize_reload_address): Define.
31833         * config/picochip/picochip.md (supported_compare1): Define.
31834
31835 2010-04-30  Jan Hubicka  <jh@suse.cz>
31836
31837         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
31838         (cgraph_global_info): Remove inlined.
31839         (LTO_cgraph_tag_names): Remove.
31840         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
31841         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
31842         simplify cgraph tags and document.
31843         (lto_output_node): Use only LTO_cgraph_unavail_node and
31844         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
31845         for_functions_valid, global info, process and output flags.
31846         (input_overwrite_node): Initialize estimated stack size and
31847         estimated growth.  Do not read flags we no longer store.
31848         (input_node): Likewise do not read info no longer stored.
31849         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
31850         flag.
31851
31852 2010-04-30  Richard Guenther  <rguenther@suse.de>
31853
31854         PR tree-optimization/43879
31855         * tree-ssa-structalias.c (get_constraint_for_1): Properly
31856         handle non-zero initializers.
31857
31858 2010-04-30  Richard Guenther  <rguenther@suse.de>
31859
31860         * builtins.c (fold_builtin_1): Delete free (0).
31861
31862 2010-04-29  Jan Hubicka  <jh@suse.cz>
31863
31864         * gengtype.c (open_base_files): Add lto-streamer.h
31865         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
31866         (pass_ipa_cp): GGC collect.
31867         * toplev. (compile_file): Do not output symbols.
31868         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
31869         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
31870         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
31871         * lto-section-in.c: Include ggc.h
31872         (lto_new_in_decl_state): Alloc in GGC.
31873         (lto_delete_in_decl_state): Likewise.
31874         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
31875         Collect.
31876
31877 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
31878
31879         PR target/42895
31880         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
31881         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
31882         (HONOR_REG_ALLOC_ORDER): Describe new macro.
31883         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
31884         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
31885         account only if HONOR_REG_ALLOC_ORDER is not defined.
31886         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
31887         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
31888
31889 2010-04-29  Jon Grant  <04@jguk.org>
31890
31891         * collect2.c (vflag): Change type from int to bool.
31892         (debug): Likewise.
31893         (helpflag): New global bool.
31894         (main): Set vflag and debug with boolean, not integer truth values.
31895         Accept new "--help" option and output usage text if found.
31896         * collect2.h (vflag): Update prototype.
31897         (debug): Likewise.
31898
31899 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
31900
31901         PR bootstrap/43936
31902         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
31903
31904 2010-04-29  Richard Guenther  <rguenther@suse.de>
31905
31906         PR bootstrap/43935
31907         * plugin.h (invoke_plugin_callbacks): Annotate arguments
31908         with ATTRIBUTE_UNUSED.
31909
31910 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
31911
31912         PR target/43921
31913         * config/i386/i386.c (get_some_local_dynamic_name): Replace
31914         INSN_P with NONDEBUG_INSN_P.
31915         (distance_non_agu_define): Likewise.
31916         (distance_agu_use): Likewise.
31917
31918 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
31919
31920         From Dominique d'Humieres  <dominiq@lps.ens.fr>
31921         PR bootstrap/43858
31922         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
31923         test_set.
31924
31925 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
31926
31927         * plugin.h (invoke_plugin_callbacks): New inline function.
31928         * plugin.c (flag_plugin_added): New global flag.
31929         (add_new_plugin): Initialize above flag.
31930         (invoke_plugin_callbacks): Rename to ...
31931         (invoke_plugin_callbacks_full): ... this.
31932
31933 2010-04-28  Jan Hubicka  <jh@suse.cz>
31934
31935         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
31936         (lto_varpool_replace_node): New.
31937         (lto_symtab_resolve_symbols): Resolve varpool nodes.
31938         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
31939         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
31940         * cgraph.h (varpool_node_ptr): New type.
31941         (varpool_node_ptr): New vector.
31942         (varpool_node_set_def): New structure.
31943         (varpool_node_set): New type.
31944         (varpool_node_set): New vector.
31945         (varpool_node_set_element_def): New structure.
31946         (varpool_node_set_element, const_varpool_node_set_element): New types.
31947         (varpool_node_set_iterator): New type.
31948         (varpool_node): Add prev pointers, add used_from_other_partition,
31949         in_other_partition.
31950         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
31951         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
31952         varpool_get_node, varpool_remove_node): Declare.
31953         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
31954         varpool_node_set_size): New inlines.
31955         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
31956         * tree-pass.h (varpool_node_set_def): Forward declare.
31957         (ipa_opt_pass_d): Summary writting takes vnode sets too.
31958         (ipa_write_optimization_summaries): Update prototype.
31959         * ipa-cp.c (ipcp_write_summary): Update.
31960         * ipa-reference.c (ipa_reference_write_summary): Update.
31961         * lto-cgraph.c (lto_output_varpool_node): New static function.
31962         (output_varpool): New function.
31963         (input_varpool_node): New static function.
31964         (input_varpool_1): New function.
31965         (input_cgraph): Input varpool.
31966         * ipa-pure-const.c (pure_const_write_summary): Update.
31967         * lto-streamer-out.c (lto_output): Update, output varpool too.
31968         (write_global_stream): Kill WPA hack.
31969         (produce_asm_for_decls): Update.
31970         (output_alias_pair_p): Handle variables.
31971         (output_unreferenced_globals): Output only needed partition of varpool.
31972         * ipa-inline.c (inline_write_summary): Update.
31973         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
31974         cgraph.
31975         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
31976         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
31977         varpool_node_set_new, varpool_node_set_add,
31978         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
31979         debug_varpool_node_set): New functions.
31980         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
31981         (execute_one_pass): Process new decls too.
31982         (ipa_write_summaries_2): Pass around vsets.
31983         (ipa_write_summaries_1): Likewise.
31984         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
31985         to add.
31986         (ipa_write_optimization_summaries_1): Pass around vsets.
31987         (ipa_write_optimization_summaries): Likewise.
31988         * varpool.c (varpool_get_node): New.
31989         (varpool_node): Update doubly linked lists.
31990         (varpool_remove_node): New.
31991         (dump_varpool_node): More dumping.
31992         (varpool_enqueue_needed_node): Update doubly linked lists.
31993         (decide_is_variable_needed): Kill ltrans hack.
31994         (varpool_finalize_decl): Kill lto hack.
31995         (varpool_assemble_decl): Skip decls in other partitions.
31996         (varpool_assemble_pending_decls): Update doubly linkes lists.
31997         (varpool_empty_needed_queue): Likewise.
31998         (varpool_extra_name_alias): Likewise.
31999         * lto-streamer.c (lto_get_section_name): Add vars section.
32000         * lto-streamer.h (lto_section_type): Update.
32001         (output_varpool, input_varpool): Declare.
32002
32003 2010-04-28  Mike Stump  <mikestump@comcast.net>
32004
32005         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
32006
32007 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32008
32009         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
32010         record or union type with RECORD_OR_UNION_TYPE_P predicate.
32011         (lto_input_ts_type_tree_pointers): Likewise.
32012         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
32013         (lto_output_ts_type_tree_pointers): Likewise.
32014
32015 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32016
32017         Uniquization of constants at the Tree level
32018         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
32019         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
32020         bit to the end.
32021         (tree_output_constant_def): Declare.
32022         * gimplify.c (gimplify_init_constructor): When using block copy, first
32023         uniquize the constant constructor on the RHS.
32024         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
32025         DECL_IN_CONSTANT_POOL flag.
32026         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
32027         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
32028         constant pool.
32029         (assemble_variable): Deal with symbols belonging to the tree constant
32030         pool.
32031         (get_constant_section): Add ALIGN parameter and simplify.
32032         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
32033         (assemble_constant_contents): Use the expression of the VAR_DECL.
32034         (output_constant_def_contents): Use the alignment of the VAR_DECL.
32035         (tree_output_constant_def): New global function.
32036         (mark_constant): Use the expression of the VAR_DECL.
32037         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
32038         its expression.
32039         (output_object_block): Likewise and assemble the expression.
32040
32041 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32042
32043         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
32044         hash_tree, eq_tree): New tree hash table.
32045         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
32046         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
32047         lto_orig_address_remove): Reimplement.
32048
32049 2010-04-28  Xinliang David Li  <davidxl@google.com>
32050
32051         PR c/42643
32052         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
32053         (compute_uninit_opnds_pos): New function.
32054         (is_non_loop_exit_postdominating): New function.
32055         (compute_control_dep_chain): New function.
32056         (find_pdom): New function.
32057         (convert_control_dep_chain_into_preds): New function.
32058         (find_predicates): New function.
32059         (find_control_equiv_block): New function.
32060         (collect_phi_def_edges): New function.
32061         (find_def_preds): New function.
32062         (find_dom): New function.
32063         (dump_predicates): New function.
32064         (get_cmp_code): New function.
32065         (is_value_included_in): New function.
32066         (find_matching_predicate_in_rest_chains): New function.
32067         (use_pred_not_overlap_with_undef_path_pred): New function.
32068         (is_use_properly_guarded): New function.
32069         (normalize_cond_1): New function.
32070         (is_and_or_or): New function.
32071         (normalize_cond): New function.
32072         (is_gcond_subset_of): New function.
32073         (is_subset_of_any): New function.
32074         (is_or_set_subset_of): New function.
32075         (is_and_set_subset_of): New function.
32076         (is_norm_cond_subset_of): New function.
32077         (is_pred_expr_subset_of): New function.
32078         (is_pred_chain_subset_of): New function.
32079         (is_included_in): New function.
32080         (is_superset_of): New function.
32081         (find_uninit_use): New function.
32082         (warn_uninitialized_phi): New function.
32083         (compute_possibly_undefined_names): New function.
32084         (ssa_undefined_value_p): New function.
32085         (execute_late_warn_uninitialized): New function.
32086         * tree-ssa.c (ssa_undefined_value_p): Removed.
32087         (warn_uninit): Changed to extern.
32088         (warn_uninitialized_phi): Removed.
32089         (warn_uninitialized_vars): Changed to extern.
32090         (execute_late_warn_uninitialized): Removed
32091         * tree-flow.h: Add new prototypes.
32092         * timevar.def: Add new time variable.
32093         * Makefile.in: Add new build file.
32094
32095 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
32096
32097         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
32098         type if available.
32099
32100 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32101
32102         PR target/22224
32103         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
32104
32105 2010-04-28  Martin Jambor  <mjambor@suse.cz>
32106
32107         * cgraph.h (struct cgraph_node): New field indirect_calls.
32108         (struct cgraph_indirect_call_info): New type.
32109         (struct cgraph_edge): Removed field indirect_call. New fields
32110         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
32111         (cgraph_create_indirect_edge): Declare.
32112         (cgraph_make_edge_direct): Likewise.
32113         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
32114         * ipa-prop.h (struct ipa_param_call_note): Removed.
32115         (struct ipa_node_params): Removed field param_calls.
32116         (ipa_create_all_structures_for_iinln): Declare.
32117         * cgraph.c: Described indirect edges and uids in initial comment.
32118         (cgraph_add_edge_to_call_site_hash): New function.
32119         (cgraph_edge): Search also among the indirect edges, use
32120         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
32121         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
32122         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
32123         site hash.
32124         (initialize_inline_failed): Assign a reason to indirect edges.
32125         (cgraph_create_edge_1): New function.
32126         (cgraph_create_edge): Moved some functionality to
32127         cgraph_create_edge_1.
32128         (cgraph_create_indirect_edge): New function.
32129         (cgraph_edge_remove_callee): Add an assert checking for
32130         non-indirectness.
32131         (cgraph_edge_remove_caller): Special-case indirect edges.
32132         (cgraph_remove_edge): Likewise.
32133         (cgraph_set_edge_callee): New function.
32134         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
32135         (cgraph_make_edge_direct): New function.
32136         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
32137         the declaration of the call statement matches.
32138         (cgraph_node_remove_callees): Special-case indirect edges.
32139         (cgraph_clone_edge): Likewise.
32140         (cgraph_clone_node): Clone also the indirect edges.
32141         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
32142         indirect_call, dump count of indirect_calls edges.
32143         * ipa-prop.c (iinlining_processed_edges): New variable.
32144         (ipa_note_param_call): Create indirect edges instead of
32145         creating notes.  New parameter node.
32146         (ipa_analyze_call_uses): New parameter node, pass it on to
32147         ipa_note_param_call.
32148         (ipa_analyze_stmt_uses): Likewise.
32149         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
32150         (print_edge_addition_message): Work on edges rather than on notes.
32151         (update_call_notes_after_inlining): Likewise, renamed to
32152         update_indirect_edges_after_inlining.
32153         (ipa_create_all_structures_for_iinln): New function.
32154         (ipa_free_node_params_substructures): Do not free notes.
32155         (ipa_edge_duplication_hook): Propagate bits within
32156         iinlining_processed_edges bitmap.
32157         (ipa_node_duplication_hook): Do not duplicate notes.
32158         (free_all_ipa_structures_after_ipa_cp): Renamed to
32159         ipa_free_all_structures_after_ipa_cp.
32160         (free_all_ipa_structures_after_iinln): Renamed to
32161         ipa_free_all_structures_after_iinln.
32162         (ipa_write_param_call_note): Removed.
32163         (ipa_read_param_call_note): Removed.
32164         (ipa_write_indirect_edge_info): New function.
32165         (ipa_read_indirect_edge_info): Likewise.
32166         (ipa_write_node_info): Do not stream notes, do stream information
32167         in indirect edges.
32168         (ipa_read_node_info): Likewise.
32169         (lto_ipa_fixup_call_notes): Removed.
32170         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
32171         * ipa-inline.c (pass_ipa_inline): Likewise.
32172         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
32173         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
32174         * tree-inline.c (copy_bb): Removed an unnecessary double check for
32175         is_gimple_call.
32176         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
32177         edges.
32178         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
32179         (output_cgraph): Stream also indirect edges.
32180         (lto_output_edge): Added capability to stream indirect edges.
32181         (input_edge): Likewise.
32182         (input_cgraph_1): Likewise.
32183         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
32184         of indirect edges.
32185
32186 2010-04-28  Richard Guenther  <rguenther@suse.de>
32187
32188         PR tree-optimization/43879
32189         PR tree-optimization/43909
32190         * tree-ssa-structalias.c (struct variable_info): Add
32191         only_restrict_pointers flag.
32192         (new_var_info): Initialize it.  Increment stats.total_vars here.
32193         (create_function_info_for): Do not increment stats.total_vars here.
32194         (get_function_part_constraint): Fix build with C++.
32195         (insert_into_field_list): Remove.
32196         (push_fields_onto_fieldstack): Properly merge fields.
32197         (create_variable_info_for): Split and simplify.
32198         (create_variable_info_for_1): New piece.
32199         (intra_create_variable_infos): Properly make restrict constraints
32200         from parameters.
32201
32202 2010-04-28  Richard Guenther  <rguenther@suse.de>
32203
32204         PR c++/43880
32205         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
32206
32207 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32208             Jan Hubicka  <hubicka@ucw.cz>
32209
32210         * doc/invoke.texi (-Wsuggest-attribute=const,
32211         -Wsuggest-attribute=pure): Document.
32212         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
32213         (function_always_visible_to_compiler_p,
32214         suggest_attribute, warn_function_pure, warn_function_const):
32215         New functions.
32216         (check_call): Improve debug info.
32217         (analyze_function): Do not check availability.
32218         (add_new_function): Check availability.
32219         (propagate): Output warnings.
32220         (skip_function_for_local_pure_const): New function.
32221         (local_pure_const): Use it; output warnings.
32222         * common.opt (Wsuggest-attribute=const,
32223         Wsuggest-attribute=pure): New.
32224
32225 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
32226
32227         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
32228         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
32229         or DW_CFA_def_cfa_offset{,_sf}.
32230
32231 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
32232
32233         * tree.h: Fix truncated long macros.
32234
32235 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
32236
32237         * collect2.c (TARGET_64BIT): Redefine to target's default.
32238         * tlink.c: Likewise.
32239         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
32240         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
32241         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
32242         for underscoring __USER_LABEL_PREFIX__.
32243         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
32244         (SUB_LINK_ENTRY32): New.
32245         (SUB_LINK_ENTRY64): New.
32246         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
32247         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
32248         (SUB_LINK_ENTRY64): New.
32249         (SUB_LINK_ENTRY): New.
32250         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
32251         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
32252         x64 target is choosen.
32253         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
32254         * configure: Regenerated.
32255         * configure.ac (leading-mingw64-underscores): Option added.
32256
32257 2010-04-27  Jan Hubicka  <jh@suse.cz>
32258
32259         * doc/invoke.texi (-fipa-profile): Document.
32260         * opts.c (decode_options): Enable ipa-profile at -O1.
32261         * timevar.def (TV_IPA_PROFILE): Define.
32262         * common.opt (fipa-profile): Add.
32263         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
32264         flag for clones.
32265         (cgraph_propagate_frequency): Handle only local ones.
32266         * tree-pass.h (pass_ipa_profile): Declare.
32267         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
32268         (pass_ipa_profile): Use TV_IPA_PROFILE.
32269         * ipa.c (ipa_profile): New function.
32270         (gate_ipa_profile): Likewise.
32271         (pass_ipa_profile): New global variable.
32272         * passes.c (pass_ipa_profile): New.
32273
32274 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
32275
32276         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
32277
32278 2010-04-27  Martin Jambor  <mjambor@suse.cz>
32279
32280         PR middle-end/43812
32281         * ipa.c (dissolve_same_comdat_group_list): New function.
32282         (function_and_variable_visibility): Call
32283         dissolve_same_comdat_group_list when comdat group contains external or
32284         newly local nodes.
32285         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
32286         lists are circular and that they contain only DECL_ONE_ONLY nodes.
32287
32288 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
32289
32290         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
32291         (const_hash_1) <VECTOR_CST>: New case.
32292         (compare_constant) <VECTOR_CST>: Likewise.
32293         <ADDR_EXPR>: Deal with LABEL_REFs.
32294         (copy_constant) <VECTOR_CST>: New case.
32295
32296 2010-04-27  Jan Hubicka  <jh@suse.cz>
32297
32298         * cgraph.c (cgraph_propagate_frequency): New function.
32299         * cgraph.h (cgraph_propagate_frequency): Declare.
32300         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
32301         cgraph_propagate_frequency.
32302
32303 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
32304
32305         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
32306
32307 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
32308
32309         PR target/40657
32310         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
32311         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
32312         here to determine which regs to push and how much stack to reserve.
32313
32314 2010-04-27  Jie Zhang  <jie@codesourcery.com>
32315
32316         * doc/gimple.texi (gimple_statement_with_ops): Remove
32317         addresses_taken field.
32318         (gimple_statement_with_memory_ops): Likewise.
32319
32320 2010-04-27  Jan Hubicka  <jh@suse.cz>
32321
32322         * tree-inline.c (eni_inlining_weights): Remove.
32323         (estimate_num_insns): Special case more builtins.
32324
32325 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
32326
32327         PR c/32207
32328         * c-typeck.c (build_binary_op): Move forward check for comparison
32329         pointer with null pointer constant and adjust the diagnostic message.
32330
32331 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
32332
32333         PR lto/42776
32334         * configure.ac (gcc_cv_as_section_has_align): Set if installed
32335         binutils supports extended .section directive needed by LTO, or
32336         warn if older binutils found.
32337         (LTO_BINARY_READER): New AC_SUBST'd variable.
32338         (LTO_USE_LIBELF): Likewise.
32339         * config.gcc (lto_binary_reader): New target-specific configure
32340         variable.
32341         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
32342         (LTO_USE_LIBELF): Likewise.
32343         * configure: Regenerate.
32344
32345         * collect2.c (is_elf): Rename from this ...
32346         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
32347          object files in addition to ELF-formatted ones.
32348         (scan_prog_file): Caller updated.  Also allow for LTO info marker
32349         symbol to be prefixed or not by an extra underscore.
32350
32351         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
32352         * config/i386/winnt.c: Also #include lto-streamer.h
32353         (i386_pe_asm_named_section): Specify 1-byte section alignment for
32354         LTO named sections.
32355         (i386_pe_asm_output_aligned_decl_common): Add comment.
32356         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
32357
32358 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
32359
32360         PR target/43889
32361         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
32362         Add missing earlyclobber for second alternative.
32363
32364 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
32365
32366         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
32367         bits for artificial defs at the top of the block.
32368         * fwprop.c (single_def_use_enter_block): Don't call it.
32369
32370 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
32371
32372         PR 43715
32373         * configure.ac: Use "$gcc_cv_nm -g" on darwin
32374         instead of "$gcc_cv_objdump -T".
32375         Use "-undefined dynamic_lookup" on darwin.
32376         * configure: Regenerate.
32377
32378 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
32379
32380         PR c/43893
32381         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
32382
32383 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
32384
32385         * c-parser.c (struct c_token): Move location field up.
32386         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
32387         (struct c_declspecs): Convert typespec_word, storage_class, and
32388         default_int_p into bitfields.
32389         (struct c_declarator): Move loc field up.
32390
32391 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
32392
32393         * cfgloop.h (struct loop): Move can_be_parallel field up.
32394         * ipa-prop.h (struct ip_node_params): Move bitfields up.
32395         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
32396         down.
32397         (struct iv_cand): Convert pos field into a bitfield.
32398         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
32399         field up.
32400         (struct _stmt_vec_info): Shuffle fields for better packing.
32401
32402 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
32403
32404         * varasm.c (IN_NAMED_SECTION): Remove guard.
32405         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
32406         (IN_NAMED_SECTION_P): ...this.
32407         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
32408         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
32409
32410 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
32411
32412         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
32413         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
32414         of shadowing it.  Fix comments.
32415
32416 2010-04-26  Jan Hubicka  <jh@suse.cz>
32417
32418         * cgraph.c (cgraph_create_node): Set node frequency to normal.
32419         (cgraph_clone_node): Copy function frequency.
32420         * cgraph.h (node_frequency): New enum
32421         (struct cgraph_node): Add.
32422         * final.c (rest_of_clean_state): Update.
32423         * lto-cgraph.c (lto_output_node): Output node frequency.
32424         (input_overwrite_node): Input node frequency.
32425         * tre-ssa-loop-ivopts (computation_cost): Update.
32426         * lto-streamer-out.c (output_function): Do not output function
32427         frequency.
32428         * predict.c (maybe_hot_frequency_p): Update and handle functions
32429         executed once.
32430         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
32431         attribute lookup.
32432         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
32433         (compute_function_frequency): Set noreturn functions to be executed
32434         once.
32435         (choose_function_section): Update.
32436         * lto-streamer-in.c (input_function): Do not input function frequency.
32437         * function.c (allocate_struct_function): Do not initialize function
32438         frequency.
32439         * function.h (function_frequency): Remove.
32440         (struct function): Remove function frequency.
32441         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
32442         (try_update): Update.
32443         * tree-inline.c (initialize_cfun): Do not update function frequency.
32444         * passes.c (pass_init_dump_file): Update.
32445         * i386.c (ix86_compute_frame_layout): Update.
32446         (ix86_pad_returns): Update.
32447
32448 2010-04-26  Jie Zhang  <jie@codesourcery.com>
32449
32450         PR tree-optimization/43833
32451         * tree-vrp.c (range_int_cst_p): New.
32452         (range_int_cst_singleton_p): New.
32453         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
32454         when both operands are constants.  Use range_int_cst_p in
32455         BIT_IOR_EXPR case.
32456
32457 2010-04-26  Jan Hubicka  <jh@suse.cz>
32458
32459         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
32460
32461 2010-04-26  Richard Guenther  <rguenther@suse.de>
32462
32463         PR lto/43080
32464         * gimple.c (gimple_decl_printable_name): Deal gracefully
32465         with a NULL DECL_NAME.
32466
32467 2010-04-26  Richard Guenther  <rguenther@suse.de>
32468
32469         PR lto/42425
32470         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
32471         if emitting debug information and it is either a function
32472         or a namespace decl.
32473
32474 2010-04-26  Ira Rosen  <irar@il.ibm.com>
32475
32476         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
32477         determine if the statement is vectorizable, and a macro to access it.
32478         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32479         Skip statements that can't be vectorized. If the analysis fails,
32480         mark the statement as unvectorizable if vectorizing basic block.
32481         (vect_compute_data_refs_alignment): Likewise.
32482         (vect_verify_datarefs_alignment): Skip statements marked as
32483         unvectorizable. Add print.
32484         (vect_analyze_group_access): Skip statements that can't be
32485         vectorized. If the analysis fails, mark the statement as
32486         unvectorizable if vectorizing basic block.
32487         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
32488         * tree-vect-stmts.c (vectorizable_store): Fix the number of
32489         generated stmts for SLP.
32490         (new_stmt_vec_info): Initialize the new field.
32491         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
32492         statements marked as unvectorizable.
32493
32494 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
32495
32496         * c-common.c (flag_isoc1x): New.
32497         (flag_isoc99): Update comment.
32498         * c-common.h (flag_isoc1x): New.
32499         (flag_isoc99): Update comment.
32500         * c-cppbuiltin.c (builtin_define_float_constants): Also define
32501         __<type>_DECIMAL_DIG__.
32502         * c-opts.c (set_std_c1x): New.
32503         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
32504         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
32505         * c.opt (-std=c1x, -std=gnu1x): New options.
32506         * doc/cpp.texi: Mention -std=c1x.
32507         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
32508         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
32509         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
32510         * doc/standards.texi: Mention C1X.
32511         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
32512         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
32513         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
32514         Define for C1X.
32515
32516 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
32517
32518         * config/i386/gmon-sol2.c (_mcleanup): Change format string
32519         placeholder from 0x%x to %#x.
32520         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
32521         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
32522         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
32523         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
32524         * config/i386/i386.c (ix86_target_string): Ditto.
32525         (output_pic_addr_const): Ditto.
32526         (print_operand): Ditto.
32527
32528 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
32529
32530         * combine.c (find_split_point): Add third argument.  Use it
32531         to find nested multiply-accumulate instructions.  Adjust calls.
32532         (try_combine): Adjust call to find_split_point.
32533
32534 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
32535
32536         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
32537
32538 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
32539
32540         PR tree-optimization/41442
32541         * fold-const.c (merge_truthop_with_opposite_arm): New function.
32542         (fold_binary_loc): Call it.
32543
32544 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32545
32546         * toplev.c (general_init): Set default for fdiagnostics-show-option.
32547         * opts.c (common_handle_option): Allow disabling it.
32548         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
32549
32550 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
32551
32552         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
32553         between modes if both types are integral.
32554
32555 2010-04-23  Richard Guenther  <rguenther@suse.de>
32556
32557         PR tree-optimization/43572
32558         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
32559
32560 2010-04-23  Richard Guenther  <rguenther@suse.de>
32561
32562         PR lto/43455
32563         * tree-inline.c (tree_can_inline_p): Also check compatibility
32564         of return types.
32565
32566 2010-04-23  Martin Jambor  <mjambor@suse.cz>
32567
32568         PR tree-optimization/43846
32569         * tree-sra.c (struct access): New flag grp_assignment_read.
32570         (build_accesses_from_assign): Set grp_assignment_read.
32571         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
32572         (enum mark_read_status): New type.
32573         (analyze_access_subtree): Propagate grp_assignment_read, create
32574         accesses also if both direct_read and root->grp_assignment_read.
32575
32576 2010-04-23  Martin Jambor  <mjambor@suse.cz>
32577
32578         PR middle-end/43835
32579         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
32580         function does not have type attributes.
32581
32582 2010-04-23  Richard Guenther  <rguenther@suse.de>
32583
32584         PR lto/42653
32585         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
32586         of FUNCTION_DECLs.
32587
32588 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32589
32590         * sese.h (create_if_region_on_edge): Remove.
32591
32592         * sese.c (create_if_region_on_edge): Make static.
32593
32594         * tree-inline.c: Do not include ggc.h.
32595
32596         * expr.c: Do not include ggc.h.
32597
32598         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
32599         dependencies.
32600
32601 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
32602
32603         PR target/43744
32604         * config/sh/sh.c (find_barrier): Don't emit a constant pool
32605         in the middle of insns for casesi_worker_2.
32606
32607 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
32608
32609         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
32610
32611 2010-04-22  Ira Rosen  <irar@il.ibm.com>
32612
32613         PR tree-optimization/43842
32614         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
32615         loop unrolling in update of exit phis. Fix comment.
32616         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
32617         least two reduction statements in the loop before starting SLP
32618         analysis.
32619
32620 2010-04-22  Nick Clifton  <nickc@redhat.com>
32621
32622         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
32623
32624 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
32625
32626         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
32627         to simplify a + ~a.
32628
32629 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32630
32631         * tree-parloops.c (loop_parallel_p): New argument
32632         parloop_obstack.  Pass it down.
32633         (parallelize_loops): New variable parloop_obstack.  Initialize it,
32634         pass it down, free it.
32635
32636         * tree-loop-linear.c (linear_transform_loops): Pass down
32637         lambda_obstack.
32638
32639         * tree-data-ref.h (lambda_compute_access_matrices): New argument
32640         of type struct obstack *.
32641
32642         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
32643         scratch_obstack.  Initialize it, pass down, free it.
32644
32645         * lambda.h (lambda_loop_new): Remove.
32646         (lambda_matrix_new, lambda_matrix_inverse)
32647         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
32648         argument of type struct obstack *.
32649
32650         * lambda-trans.c (lambda_trans_matrix_new): New argument
32651         lambda_obstack.  Pass it down, use obstack allocation for ret.
32652         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
32653         it down.
32654
32655         * lambda-mat.c (lambda_matrix_get_column)
32656         (lambda_matrix_project_to_null): Remove.
32657         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
32658         allocation for mat.
32659         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
32660         lambda_obstack.
32661
32662         * lambda-code.c (lambda_loop_new): New function.
32663         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
32664         (lambda_compute_auxillary_space, lambda_compute_target_space)
32665         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
32666         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
32667         (build_access_matrix): New argument lambda_obstack.  Use obstack
32668         allocation for am.
32669         (lambda_compute_step_signs, lambda_compute_access_matrices): New
32670         argument lambda_obstack.  Pass it down.
32671
32672 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
32673
32674         * optabs.h (expand_widening_mult): Declare.
32675
32676 2010-04-22  Richard Guenther  <rguenther@suse.de>
32677
32678         PR tree-optimization/43845
32679         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
32680         lookup the CALL_EXPR function and arguments.
32681
32682 2010-04-22  Nick Clifton  <nickc@redhat.com>
32683
32684         * config/stormy16/stormy16.c
32685         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
32686         * config/stormy16/stormy16.h: Tidy up formatting.
32687         (DONT_USE_BUILTIN_SETJMP): Remove definition.
32688         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
32689         (ineqbranchsi): Delete pattern.
32690         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
32691         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
32692         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
32693         stormy16-lib2-ucmpsi2.c.
32694
32695 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
32696
32697         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
32698         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
32699         extra set merge_set_noclobber, and use it to relax the final test
32700         slightly.
32701         * df.h (df_simulate_find_noclobber_defs): Declare.
32702         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
32703         conditional defs.
32704         (df_simulate_find_noclobber_defs): New function.
32705
32706 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
32707
32708         * config/i386/i386.md: Use {} around multi-line preparation statements.
32709
32710 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32711
32712         * c-tree.h (push_init_level, pop_init_level, set_init_index)
32713         (process_init_element): New argument of type struct obstack *.
32714
32715         * c-typeck.c (push_init_level, pop_init_level, set_designator)
32716         (set_init_index, set_init_label, set_nonincremental_init)
32717         (set_nonincremental_init_from_string, find_init_member)
32718         (output_init_element, output_pending_init_elements)
32719         (process_init_element): New argument braced_init_obstack.  Pass it
32720         down.
32721         (push_range_stack, add_pending_init): New argument
32722         braced_init_obstack.  Use obstack allocation.
32723
32724         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
32725         braced_init_obstack.  Pass it down.
32726         (c_parser_braced_init): New variables ret, braced_init_obstack.
32727         Initialize obstack, pass it down and finally free it.
32728
32729 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
32730
32731         PR middle-end/29274
32732         * tree-pass.h (pass_optimize_widening_mul): Declare.
32733         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
32734         gate_optimize_widening_mul): New static functions.
32735         (pass_optimize_widening_mul): New.
32736         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
32737         <case MULT_EXPR>: Remove support for widening multiplies.
32738         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
32739         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
32740         simplify_gen_unary rather than directly building extensions.
32741         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
32742         WIDEN_MULT_EXPR.
32743         * expmed.c (expand_widening_mult): New function.
32744         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
32745
32746 2010-04-21  Jan Hubicka  <jh@suse.cz>
32747
32748         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
32749         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
32750         * lto-wpa-fixup.c: Remove.
32751         * Makefile.in (lto-wpa-fixup.o): Remove.
32752         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
32753         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
32754         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
32755
32756 2010-04-21  Jan Hubicka  <jh@suse.cz>
32757
32758         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
32759         add write_optimization_summary, read_optimization_summary.
32760         (ipa_write_summaries_of_cgraph_node_set): Remove.
32761         (ipa_write_optimization_summaries): Declare.
32762         (ipa_read_optimization_summaries): Declare.
32763         * ipa-cp.c (pass_ipa_cp): Update.
32764         * ipa-reference.c (pass_ipa_reference): Update.
32765         * ipa-pure-const.c (pass_ipa_pure_const): Update.
32766         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
32767         Update.
32768         * ipa-inline.c (pass_ipa_inline): Update.
32769         * ipa.c (pass_ipa_whole_program): Update.
32770         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
32771         * passes.c (ipa_write_summaries_1): Do not test wpa.
32772         (ipa_write_optimization_summaries_1): New.
32773         (ipa_write_optimization_summaries): New.
32774         (ipa_read_summaries): Do not test ltrans.
32775         (ipa_read_optimization_summaries_1): New.
32776         (ipa_read_optimization_summaries): New.
32777
32778 2010-04-21  Jan Hubicka  <jh@suse.cz>
32779
32780         * lto-cgraph.c (lto_output_node): Do not output comdat groups
32781         for boundary nodes.
32782         (output_cgraph): Do not arrange comdat groups for boundary nodes.
32783
32784 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32785
32786         PR debug/40040
32787         * dwarf2out.c (add_name_and_src_coords_attributes): Add
32788         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
32789
32790 2010-04-21  Jan Hubicka  <jh@suse.cz>
32791
32792         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
32793
32794 2010-04-21  Jan Hubicka  <jh@suse.cz>
32795
32796         * varpool.c (decide_is_variable_needed): Variable is always needed
32797         during ltrans.
32798
32799 2010-04-21  Jan Hubicka  <jh@suse.cz>
32800
32801         * opts.c (decode_options): Enable pure-const pass for whopr.
32802
32803 2010-04-21  Jan Hubicka  <jh@suse.cz>
32804
32805         * cgraph.c (dump_cgraph_node): Dump also assembler name.
32806         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
32807         at WPA dumping.
32808         (cgraph_decide_inlining): Do not expect callee to be removed in all
32809         cases.
32810
32811 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
32812
32813         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
32814
32815 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
32816
32817         * config/i386/i386.md (x86_shrd): Add athlon_decode and
32818         amdfam10_decode attributes.
32819
32820 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32821
32822         PR middle-end/43570
32823         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
32824         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
32825         (lower_copyprivate_clauses): Use private var in outer
32826         context instead of original var.  Make sure the types
32827         are correct for VLAs.
32828
32829 2010-04-21  Richard Guenther  <rguenther@suse.de>
32830
32831         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
32832         to non-pointer objects.
32833
32834 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32835
32836         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
32837         last chain entry if it starts with the still current label.
32838         (add_location_or_const_value_attribute): Check that
32839         loc_list->first->next is NULL instead of comparing ->first with ->last.
32840         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
32841         to add_var_loc_to_decl.
32842
32843         * dwarf2out.c (output_call_frame_info): For dw_cie_version
32844         >= 4 add also address size and segment size fields into CIE header.
32845
32846         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
32847         long as address size is the same as sizeof (void *) and
32848         segment size is 0.
32849         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
32850         address size or segment size is unexpected, return DW_EH_PE_omit.
32851         (classify_object_over_fdes): If get_cie_encoding returned
32852         DW_EH_PE_omit, return -1.
32853         (init_object): If classify_object_over_fdes returned -1,
32854         pretend there were no FDEs at all.
32855
32856 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
32857
32858         * config/i386/i386.md (bswap<mode>2): Macroize expander from
32859         bswap{si,di}2 using SWI48 mode iterator.
32860         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
32861         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
32862         set modrm attribute of bswap insn to 0 and remove length attribute.
32863         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
32864         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
32865         set mode attribute to <MODE> and remove length attribute.
32866
32867 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
32868
32869         PR rtl-optimization/43520
32870         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
32871         zero available registers.
32872
32873 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32874
32875         * builtins.c (fold_builtin_cproj): Fold more cases.
32876
32877 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32878
32879         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
32880         (fold_builtin_1): Fold builtin cproj.
32881         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
32882         Use ATTR_CONST_NOTHROW_LIST.
32883
32884 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
32885
32886         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
32887         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
32888         ffsi2_no_cmove for !TARGET_CMOVE.
32889         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
32890         (ffssi2): Remove expander.
32891         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
32892         mode iterator.
32893         (ctz<mode>2): Ditto from ctz{si,di}2.
32894         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
32895         mode iterator.
32896         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
32897         mode iterator.
32898
32899 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
32900
32901         * dwarf2out.c (AT_linkage_name): Define.
32902         (clone_as_declaration): Handle DW_AT_linkage_name.
32903         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
32904         of DW_AT_MIPS_linkage_name.
32905         (move_linkage_attr): Likewise.
32906         (dwarf2out_finish): Likewise.
32907
32908 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
32909
32910         PR middle-end/41952
32911         * fold-const.c (fold_comparison): New folding rule.
32912
32913 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
32914
32915         * double-int.h (double_int_setbit): Declare.
32916         * double-int.c (double_int_setbit): New function.
32917         * rtl.h (immed_double_int_const): Declare.
32918         * emit-rtl.c (immed_double_int_const): New function.
32919         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
32920         and immed_double_int_const functions.
32921         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
32922         expand_copysign_bit): (Ditto.).
32923         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
32924         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
32925         * dojump.c (prefer_and_bit_test): (Ditto.).
32926         * expr.c (convert_modes, reduce_to_bit_field_precision,
32927         const_vector_from_tree): (Ditto.).
32928         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32929
32930 2010-04-20  Jan Hubicka  <jh@suse.cz>
32931
32932         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
32933         (dump_cgraph_node): Dump new flags.
32934         * cgraph.h (struct cgraph_node): Add flags
32935         reachable_from_other_partition and in_other_partition.
32936         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
32937         other partition can not be removed.
32938         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
32939         the other partition must be output; silence sanity checking on
32940         leaking functions bodies from other paritition.
32941         * lto-cgraph.c (reachable_from_other_partition_p): New function.
32942         (lto_output_node): Output new flags; do not sanity check that inline
32943         clones are output; drop lto_forced_extern_inline_p code; do not mock
32944         visibility flags at partition boundaries.
32945         (add_node_to): New function.
32946         (output_cgraph): Use it to sort functions so masters appear before
32947         clones.
32948         (input_overwrite_node): Input new flags.
32949         * passes.c (ipa_write_summaries): Do not call
32950         lto_new_extern_inline_states.
32951         * lto-section-out.c (forced_extern_inline,
32952         lto_new_extern_inline_states lto_delete_extern_inline_states,
32953         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
32954         * lto-streamer.h (lto_new_extern_inline_states,
32955         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
32956         lto_forced_extern_inline_p): Kill.
32957
32958 2010-04-20  Richard Guenther  <rguenther@suse.de>
32959
32960         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
32961         from vars that can have pointers.
32962         (process_constraint): Dump useless constraints.
32963
32964 2010-04-20  Richard Guenther  <rguenther@suse.de>
32965
32966         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
32967         (dump_sa_points_to_info): Remove asserts.
32968         (init_base_vars): nothing_id isn't an escape point nor does it
32969         have pointers.
32970
32971 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
32972
32973         * tree.h (TYPE_REF_IS_RVALUE): Define.
32974         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
32975         should_move_die_to_comdat, prune_unused_types_walk): Handle
32976         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
32977         (modified_type_die, gen_reference_type_die): Emit
32978         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
32979         if TYPE_REF_IS_RVALUE and -gdwarf-4.
32980
32981 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32982
32983         PR target/43635
32984         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
32985         calls for -fpic -m31 if they have been sibcall optimized.
32986
32987 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
32988
32989         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
32990         ar.lc fixed and call-used.
32991
32992         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
32993
32994 2010-04-19  Jan Hubicka  <jh@suse.cz>
32995
32996         * opts.c (decode_options): Disable whpr incompatible passes.
32997         * lto/lto.c (lto_1_to_1_map): Skip clones.
32998         (read_cgraph_and_symbols): Do not mark everything as needed.
32999         (do_whole_program_analysis): Do map only after optimizing;
33000         set proper cgraph_state; use passmanager.
33001
33002 2010-04-19  DJ Delorie  <dj@redhat.com>
33003
33004         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
33005         POINTER_PLUS_EXPR and fix them.
33006
33007 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
33008
33009         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
33010         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
33011         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
33012         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
33013         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
33014         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
33015         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
33016         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
33017         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
33018         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
33019         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
33020
33021 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33022
33023         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
33024         (check_cond_move_block): Likewise.
33025         (cond_move_process_if_block): Likewise.
33026         (noce_find_if_block): Improve formatting.
33027         (find_if_header): Pass 0 to memset and tweak conditions.
33028         (cond_exec_find_if_block): Fix long lines and tweak conditions.
33029
33030 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
33031
33032         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
33033         for -gdwarf-4.
33034
33035         PR middle-end/43337
33036         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
33037         with non-local decl doesn't need chain.
33038
33039 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
33040
33041         * ira-color.c (allocno_reload_assign): Avoid accumulating
33042         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
33043
33044 2010-04-19  Martin Jambor  <mjambor@suse.cz>
33045
33046         * gimple.h (create_tmp_reg): Declare.
33047         * gimplify.c (create_tmp_reg): New function.
33048         (gimplify_return_expr): Use create_tmp_reg.
33049         (gimplify_omp_atomic): Likewise.
33050         (gimple_regimplify_operands): Likewise.
33051         * tree-dfa.c (make_rename_temp): Likewise.
33052         * tree-predcom.c (predcom_tmp_var): Likewise.
33053         (reassociate_to_the_same_stmt): Likewise.
33054         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
33055         (get_replaced_param_substitute): Likewise.
33056         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
33057         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
33058         * tree-ssa-pre.c (get_representative_for): Likewise.
33059         (create_expression_by_pieces): Likewise.
33060         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
33061         (create_tailcall_accumulator): Likewise.
33062
33063 2010-04-19  Martin Jambor  <mjambor@suse.cz>
33064
33065         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
33066         new_stmt.
33067         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
33068
33069 2010-04-19  Richard Guenther  <rguenther@suse.de>
33070
33071         PR tree-optimization/43796
33072         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
33073         from SCEV in the lattice.
33074         (vrp_visit_phi_node): Dump change.
33075
33076 2010-04-19  Richard Guenther  <rguenther@suse.de>
33077
33078         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
33079         * configure: Re-generated.
33080
33081 2010-04-19  Richard Guenther  <rguenther@suse.de>
33082
33083         PR tree-optimization/43783
33084         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
33085         constant ARRAY_REF operands two and three if possible.
33086
33087 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
33088
33089         PR target/43766
33090         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
33091
33092 2010-04-19  Jie Zhang  <jie@codesourcery.com>
33093
33094         PR target/43662
33095         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
33096
33097 2010-04-19  Ira Rosen  <irar@il.ibm.com>
33098
33099         PR tree-optimization/37027
33100         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
33101         and macro to access it.
33102         (vectorizable_reduction): Add argument.
33103         (vect_get_slp_defs): Likewise.
33104         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
33105         statements for possible use in SLP.
33106         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
33107         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
33108         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
33109         add new argument.
33110         (vectorizable_reduction): Likewise.
33111         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
33112         vect_get_slp_defs.
33113         (vectorizable_type_demotion, vectorizable_type_promotion,
33114         vectorizable_store): Likewise.
33115         (vect_analyze_stmt): Update call to vectorizable_reduction.
33116         (vect_transform_stmt): Likewise.
33117         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
33118         (vect_build_slp_tree): Fix indentation. Check that there are no loads
33119         from different interleaving chains in same node.
33120         (vect_slp_rearrange_stmts): New function.
33121         (vect_supported_load_permutation_p): Allow load permutations for
33122         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
33123         inside SLP nodes if necessary.
33124         (vect_analyze_slp_instance): Handle reductions.
33125         (vect_analyze_slp): Try to build SLP instances originating from groups
33126         of reductions.
33127         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
33128         (vect_get_constant_vectors): Create initial vectors for reductions
33129         according to reduction code. Add new argument.
33130         (vect_get_slp_defs): Add new argument, pass it to
33131         vect_get_constant_vectors.
33132         (vect_schedule_slp_instance): Remove SLP tree root statements.
33133
33134 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
33135
33136         * tree.h (ENUM_IS_SCOPED): Define.
33137         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
33138         for ENUM_IS_SCOPED enums.
33139
33140 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
33141
33142         * fold-const.c (fold_comparison): Use ssizetype.
33143         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
33144         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
33145         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
33146         * tree-object-size.c (compute_object_sizes): Use size_type_node.
33147
33148         * tree.h (initialize_sizetypes): Remove parameter.
33149         (build_common_tree_nodes): Remove second parameter.
33150         * stor-layout.c (initialize_sizetypes): Remove parameter.
33151         Always create an unsigned type.
33152         (set_sizetype): Assert that the passed type is unsigned and simplify.
33153         * tree.c (build_common_tree_nodes): Remove second parameter.
33154         Adjust call to initialize_sizetypes.
33155         * c-decl.c (c_init_decl_processing): Remove second argument in call to
33156         build_common_tree_nodes.
33157
33158 2010-04-18  Matthias Klose  <doko@ubuntu.com>
33159
33160         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
33161
33162 2010-04-18  Ira Rosen  <irar@il.ibm.com>
33163
33164         PR tree-optimization/43771
33165         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
33166         load permutation doesn't have gaps.
33167
33168 2010-04-18  Jan Hubicka  <jh@suse.cz>
33169
33170         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
33171         (sse_prologue_save_insn expander): Use new pattern.
33172         (sse_prologue_save_insn1): New pattern and splitter.
33173         (sse_prologue_save_insn): Update to deal also with 64bit aligned
33174         blocks.
33175         * i386.c (setup_incoming_varargs_64): Do not compute jump
33176         destination here.
33177         (ix86_gimplify_va_arg): Update alignment needed.
33178         (ix86_local_alignment): Do not align all local arrays to 128bit.
33179
33180 2010-04-17  Jan Hubicka  <jh@suse.cz>
33181
33182         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
33183
33184 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
33185
33186         * arm.md (negdi2): Remove redundant code to force values into a
33187         register.
33188
33189 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
33190
33191         * arm/bpabi.S: Add EABI alignment attributes to objects.
33192         * arm/bpabi-v6m.S: Likewise.
33193         * arm/crti.asm: Likewise.
33194         * arm/crtn.asm: Likewise.
33195         * arm/lib1funcs.asm: Likewise.
33196         * arm/libunwind.S: Likewise.
33197
33198 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
33199
33200         * arm-protos.h (tune_params): New structure.
33201         * arm.c (current_tune): New variable.
33202         (arm_constant_limit): Delete.
33203         (struct processors): Add pointer to the tune parameters.
33204         (arm_slowmul_tune): New tuning option.
33205         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
33206         (all_cores): Adjust to pick up the tuning model.
33207         (arm_constant_limit): New function.
33208         (arm_override_options): Select the appropriate tuning model.  Delete
33209         initialization of arm_const_limit.
33210         (arm_split_constant): Use the new constant-limit model.
33211         (arm_rtx_costs): Pick up the current tuning model.
33212         * arm.md (is_strongarm, is_xscale): Delete.
33213         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
33214         for Xscale variant architectures.
33215         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
33216
33217 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33218
33219         * config/arm/arm.c (arm_gen_constant): Remove unused variable
33220         can_shift.
33221         (arm_rtx_costs_1): Remove unused variable extra_cost.
33222         (arm_unwind_emit_set): Use variable offset.
33223         (thumb1_output_casesi): Remove unused variable flags.
33224
33225 2010-04-16  Jeff Law  <law@redhat.com>
33226
33227         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
33228         needing assignment rather than doing a two-phase assignment.  Remove
33229         unused variable 'm'.
33230
33231 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
33232
33233         PR bootstrap/43767
33234         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
33235
33236 2010-04-16  Doug Kwan  <dougkwan@google.com>
33237
33238         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
33239         (next_operand_entry_id): New static variable.
33240         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
33241         (add_to_ops_vec): Assigned unique ID to operand entry.
33242         (struct oecount_s): New field ID.
33243         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
33244         (undistribute_ops_list): Assign unique IDs to oecounts.
33245         (init_reassoc): reset next_operand_entry_id.
33246
33247 2010-04-16  Doug Kwan  <dougkwan@google.com>
33248
33249         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
33250         missing left parenthesis.
33251
33252 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
33253
33254         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
33255         *btdi_rex64 using SWI48 mode iterator.
33256         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
33257         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
33258         *jcc_btdi_mask_rex64.
33259
33260 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
33261
33262         * double-int.h (tree_to_double_int): Convert to macro.
33263         * double-int.c (tree_to_double_int): Remove.
33264
33265 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
33266
33267         PR debug/43762
33268         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
33269         with want_address 2 and in case a single element list might be
33270         possible, call it again with want_address 0.
33271
33272 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
33273
33274         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
33275         case 'W' print operands for HI mode.
33276         * config/h8300/h8300.h (Y0, Y2) : New constraints.
33277         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
33278         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
33279         * config/h8300/predicate.md (bit_register_indirect_operand): New.
33280
33281         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
33282
33283         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
33284         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
33285         #xx:3 and #xx:4 mode.
33286
33287         * config/h8300/h8300.md (inverted load with HImode dest): Add
33288         support for H8300SX.
33289
33290         * config/h8300/predicate.md (bit_operand): Allow immediate values that
33291         satisfy 'U' constraint.
33292
33293 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33294
33295         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
33296         * configure: Regenerate.
33297         * config.in: Regenerate.
33298         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
33299         works.
33300
33301 2010-04-16  Richard Guenther  <rguenther@suse.de>
33302
33303         * tree.h (struct tree_decl_minimal): Move pt_uid ...
33304         (struct tree_decl_common): ... here.
33305         (DECL_PT_UID): Adjust.
33306         (SET_DECL_PT_UID): Likewise.
33307         (DECL_PT_UID_SET_P): Likewise.
33308
33309 2010-04-16  Richard Guenther  <rguenther@suse.de>
33310
33311         PR tree-optimization/43572
33312         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
33313         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
33314         * tree-flow.h (is_call_clobbered): Remove.
33315         * tree-flow-inline.h (is_call_clobbered): Likewise.
33316         * tree-dfa.c (dump_variable): Do not dump call clobber state.
33317         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
33318         (execute_return_slot_opt): Adjust.
33319         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
33320         check for call clobbered vars here.
33321         (find_tail_calls): Move tailcall verification to the
33322         proper place.
33323
33324 2010-04-16  Diego Novillo  <dnovillo@google.com>
33325
33326         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
33327
33328 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
33329
33330         PR target/40603
33331         * config/arm/arm.md (cbranchqi4): New pattern.
33332         * config/arm/predicates.md (const0_operand,
33333         cbranchqi4_comparison_operator): New predicates.
33334
33335 2010-04-16  Richard Guenther  <rguenther@suse.de>
33336
33337         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
33338         (dump_gimple_stmt): Likewise.
33339
33340 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
33341
33342         * recog.h (struct recog_data): New field is_operator.
33343         (struct insn_operand_data): New field is_operator.
33344         * recog.c (extract_insn): Set recog_data.is_operator.
33345         * genoutput.c (output_operand_data): Emit code to set the
33346         is_operator field.
33347         * reload.c (find_reloads): Use it rather than testing for an
33348         empty constraint string.
33349
33350         PR target/41514
33351         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
33352         If the previous insn is a cbranchsi4_insn with the same arguments,
33353         omit the compare instruction.
33354
33355         * config/arm/arm.md (addsi3_cbranch): If destination is a high
33356         register, inputs must be low registers and we need a low register
33357         scratch.  Handle alternative 2 like alternative 3.
33358
33359 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
33360
33361         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
33362         don't call get_addr on both.  If one expression is a VALUE and
33363         the other a REG, check VALUE's locs if the REG isn't among them.
33364
33365 2010-04-16  Christian Bruel  <christian.bruel@st.com>
33366
33367         * config/sh/sh.h (sh_frame_pointer_required): New function.
33368         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
33369         (flag_omit_frame_pointer) Set.
33370         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
33371         (rounded_frame_size): Adjust size with outgoing_args_size.
33372         (sh_set_return_address): Must return from stack pointer.
33373         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
33374         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
33375         (ACCUMULATE_OUTGOING_ARGS): Define.
33376         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
33377         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
33378
33379 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
33380
33381         PR target/43471
33382         * config/sh/sh.c (sh_legitimize_reload_address): Use
33383         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
33384         Remove a unneeded check for offset_base.
33385
33386 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
33387
33388         * configure: Regenerated.
33389
33390 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33391
33392         * config/s390/s390.c (s390_call_save_register_used): Switch back
33393         to HARD_REGNO_NREGS.
33394
33395 2010-04-15  Richard Guenther  <rguenther@suse.de>
33396
33397         * alias.c (alias_set_subset_of): Handle alias-set zero
33398         child properly.
33399
33400 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
33401             Julian Brown  <julian@codesourcery.com>
33402
33403         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
33404         alternatives according to use of high and low regs.
33405         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
33406         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
33407         optimizing for size on Thumb-2.
33408
33409 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
33410
33411         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
33412
33413 2010-04-15  Richard Guenther  <rguenther@suse.de>
33414
33415         * tree-ssa-structalias.c (struct variable_info): Add
33416         is_fn_info flag.
33417         (new_var_info): Initialize it.
33418         (dump_constraints): Support printing last added constraints.
33419         (debug_constraints): Adjust.
33420         (dump_constraint_graph): Likewise.
33421         (make_heapvar_for): Check for NULL cfun.
33422         (get_function_part_constraint): New function.
33423         (get_fi_for_callee): Likewise.
33424         (find_func_aliases): Properly implement IPA PTA constraints.
33425         (process_ipa_clobber): New function.
33426         (find_func_clobbers): Likewise.
33427         (insert_into_field_list_sorted): Remove.
33428         (create_function_info_for): Properly allocate vars for IPA mode.
33429         Do not use insert_into_field_list_sorted.
33430         (create_variable_info_for): Properly generate constraints for
33431         global vars in IPA mode.
33432         (dump_solution_for_var): Always dump the solution.
33433         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
33434         (find_what_var_points_to): Adjust.
33435         (pt_solution_set): Change.
33436         (pt_solution_ior_into): New function.
33437         (pt_solution_empty_p): Export.
33438         (pt_solution_includes_global): Adjust.
33439         (pt_solution_includes_1): Likewise.
33440         (pt_solutions_intersect_1): Likewise.
33441         (dump_sa_points_to_info): Check some invariants.
33442         (solve_constraints): Move constraint dumping ...
33443         (compute_points_to_sets): ... here.
33444         (ipa_pta_execute): ... and here.
33445         (compute_may_aliases): Do not re-compute points-to info
33446         locally if IPA info is available.
33447         (ipa_escaped_pt): New global var.
33448         (ipa_pta_execute): Properly implement IPA PTA.
33449         * tree-into-ssa.c (dump_decl_set): Support dumping
33450         decls not in referenced-vars.
33451         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
33452         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
33453         (dump_points_to_solution): Likewise.
33454         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
33455         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
33456         (remap_gimple_stmt): Reset call clobber/use information if necessary.
33457         (copy_decl_to_var): Copy DECL_PT_UID.
33458         (copy_result_decl_to_var): Likewise.
33459         * tree.c (make_node_stat): Initialize DECL_PT_UID.
33460         (copy_node_stat): Copy it.
33461         * tree.h (DECL_PT_UID): New macro.
33462         (SET_DECL_PT_UID): Likewise.
33463         (DECL_PT_UID_SET_P): Likewise.
33464         (struct tree_decl_minimal): Add pt_uid member.
33465         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
33466         (pt_solution_empty_p): Declare.
33467         (pt_solution_set): Adjust.
33468         (ipa_escaped_pt): Declare.
33469         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
33470         * gimple-pretty-print.c (pp_points_to_solution): New function.
33471         (dump_gimple_call): Dump call clobber/use information.
33472         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
33473         * tree-pass.h (TDF_ALIAS): New dump option.
33474         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
33475         * doc/invoke.texi (-fipa-pta): Update documentation.
33476
33477 2010-04-15  Richard Guenther  <rguenther@suse.de>
33478
33479         * Makefile.in (OBJS-common): Add gimple-fold.o.
33480         (gimple-fold.o): New rule.
33481         * tree.h (maybe_fold_offset_to_reference,
33482         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
33483         prototypes ...
33484         * gimple.h: ... here.
33485         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
33486         may_propagate_address_into_dereference): Move prototypes ...
33487         * gimple.h: ... here.
33488         * tree-ssa-ccp.c (get_symbol_constant_value,
33489         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
33490         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
33491         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
33492         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
33493         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
33494         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
33495         gimplify_and_update_call_from_tree): Move ...
33496         * gimple-fold.c: ... here.  New file.
33497         (ccp_fold_builtin): Rename to ...
33498         (gimple_fold_builtin): ... this.
33499         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
33500
33501 2010-04-15  Richard Guenther  <rguenther@suse.de>
33502
33503         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
33504         fit_double_type, force_fit_type_double, add_double_with_sign,
33505         neg_double, mul_double_with_sign, lshift_double, rshift_double,
33506         lrotate_double, rrotate_double, div_and_round_double): Move ...
33507         * double-int.c: ... here.
33508         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
33509         add_double, neg_double, mul_double_with_sign, mul_double,
33510         lshift_double, rshift_double, lrotate_double, rrotate_double,
33511         div_and_round_double): Move prototypes ...
33512         * double-int.h: ... here.
33513
33514 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
33515
33516         PR target/43742
33517         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
33518         matching constraints to ensure inputs match the output.
33519
33520 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
33521
33522         PR target/43742
33523         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
33524         in an input-only operand.
33525
33526 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
33527
33528         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
33529         (double_int_not, double_int_lshift, double_int_rshift): Declare.
33530         (double_int_negative_p): Convert to static inline function.
33531         * double-int.c (double_int_lshift, double_int_lshift): New functions.
33532         (double_int_negative_p): Remove.
33533         * tree.h (lshift_double, rshift_double):
33534         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
33535         * fold-const.c (fold_convert_const_int_from_real,
33536         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
33537         (lshift_double): Change type of arith argument to bool.
33538         (rshift_double): Change type of arith argument to bool. Correct
33539         comment.
33540         * expmed.c (mask_rtx, lshift_value): (Ditto.).
33541
33542 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
33543
33544         PR target/21803
33545         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
33546         at the start and end of the then/else blocks, and omit them from the
33547         conversion.
33548         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
33549         argument; all callers changed.  Pass zero to old_insns_match_p instead.
33550         (flow_find_head_matching_sequence): New function.
33551         (old_insns_match_p): Check REG_EH_REGION notes for calls.
33552         * basic-block.h (flow_find_cross_jump,
33553         flow_find_head_matching_sequence): Declare functions.
33554
33555 2010-04-14  Jason Merrill  <jason@redhat.com>
33556
33557         PR c++/36625
33558         * c-common.c (attribute_takes_identifier_p): New fn.
33559         * c-common.h: Declare it.
33560
33561 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33562
33563         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
33564         splitter condition.
33565         (*udivmod<mode>4): Ditto.
33566
33567 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33568
33569         * config/i386/i386.md (maxmin_int): Rename code attribute from
33570         maxminiprefix and update all users.
33571         (maxmin_float): Ditto from maxminfprefix.
33572         (logic): Ditto from logicprefix.
33573         (absneg_mnemonic): Ditto from absnegprefix.
33574         * config/i386/mmx.md: Update all users of maxminiprefix,
33575         maxminfprefix and logicprefix for rename.
33576         * config/i386/sse.md: Ditto.
33577         * config/i386/sync.md (sync_<code><mode>): Update for
33578         logicprefix rename.
33579
33580 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33581
33582         PR 42966
33583         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
33584         warnings converted to errors.
33585
33586 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33587
33588         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
33589         used insn_type variable.
33590         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
33591         to avoid set-but-not-used warning.
33592
33593 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33594
33595         * df-core.c (df_ref_debug): Change format string placeholder
33596         from 0x%x to %#x.
33597         * dwarf2asm.c (dw2_asm_output_data_raw,
33598         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
33599         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
33600         * dwarf2out.c (output_cfi, output_cfi_directive,
33601         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
33602         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
33603         Ditto.
33604         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
33605         * print-rtl.c (print_rtx): Ditto.
33606
33607 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
33608
33609         PR middle-end/42694
33610         * builtins.c (expand_builtin_pow_root): New function to expand pow
33611         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
33612         series of sqrt and cbrt calls under -ffast-math.
33613         (expand_builtin_pow): Call it.
33614
33615 2010-04-14  Michael Matz  <matz@suse.de>
33616
33617         PR tree-optimization/42963
33618         * tree-cfg.c (touched_switch_bbs): New static variable.
33619         (group_case_labels_stmt): New function broken out from ...
33620         (group_case_labels): ... here, use the above.
33621         (start_recording_case_labels): Allocate touched_switch_bbs.
33622         (end_recording_case_labels): Deallocate it, call
33623         group_case_labels_stmt.
33624         (gimple_redirect_edge_and_branch): Remember index of affected BB.
33625
33626 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33627
33628         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
33629         from insn template.
33630
33631 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33632
33633         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
33634
33635 2010-04-13  Jan Hubicka  <jh@suse.cz>
33636
33637         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
33638         of optimized out static functions.
33639         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
33640         cost computation.  Also sanity check for overflows.
33641         (update_caller_keys): Update cgraph_edge_badness call; properly
33642         update fibheap and sanity check that it is up to date.
33643         (add_new_edges_to_heap): Update cgraph_edge_badness.
33644         (cgraph_decide_inlining_of_small_function): Likewise;
33645         add sanity checking that badness in heap is up to date;
33646         improve dumping of reason; Update badness of calls to the
33647         offline copy of function currently inlined; dump badness
33648         of functions not inlined because of unit growth limits.
33649
33650 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
33651
33652         PR middle-end/32628
33653         * c-common.c (pointer_int_sum): Disregard overflow that occured only
33654         because of sign-extension change when converting to sizetype here...
33655         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
33656
33657         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
33658         the folding to constants.  Remove redundant final conversion.
33659         (fold_binary) <associate>: Do not associate if the re-association of
33660         constants alone overflows.
33661         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
33662         to the end of the list.
33663         (multiple_of_p) <COND_EXPR>: New case.
33664
33665 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33666
33667         * opt-functions.awk (opt_sanitized_name): New.
33668         (opt_enum): New.
33669         * optc-gen.awk: Use it
33670         * opth-gen.awk: Use it.
33671
33672 2010-04-13  Martin Jambor  <mjambor@suse.cz>
33673
33674         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
33675         (sra_modify_assign): Delete stmts loading dead data even if racc has no
33676         children.  Call replace_uses_with_default_def_ssa_name to handle
33677         SSA_NAES on lhs.
33678
33679 2010-04-13  Michael Matz  <matz@suse.de>
33680
33681         PR middle-end/43730
33682         * builtins.c (expand_builtin_interclass_mathfn): Also create
33683         a register if the predicate doesn't match.
33684
33685 2010-04-13  Diego Novillo  <dnovillo@google.com>
33686
33687         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
33688         * c-pch.c: Include timevar.h.
33689         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
33690         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
33691         * ggc-common.c: Include timevar.h.
33692         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
33693         * timevar.def (TV_PCH_SAVE): Define.
33694         (TV_PCH_CPP_SAVE): Define.
33695         (TV_PCH_PTR_REALLOC): Define.
33696         (TV_PCH_PTR_SORT): Define.
33697         (TV_PCH_RESTORE): Define.
33698         (TV_PCH_CPP_RESTORE): Define.
33699
33700 2010-04-13  Michael Matz  <matz@suse.de>
33701
33702         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
33703         into MINUS_EXPRs.
33704         (can_reassociate_p): New function.
33705         (break_up_subtract_bb, reassociate_bb): Use it.
33706
33707 2010-04-13  Richard Guenther  <rguenther@suse.de>
33708
33709         PR bootstrap/43737
33710         * builtins.c (c_readstr): Fix assert.
33711
33712 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
33713
33714         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
33715         when generating cltd insn.
33716
33717         (*ashl<mode>3_1): Remove special handling for register operand 2.
33718         (*ashlsi3_1_zext): Ditto.
33719         (*ashlhi3_1): Ditto.
33720         (*ashlhi3_1_lea): Ditto.
33721         (*ashlqi3_1): Ditto.
33722         (*ashlqi3_1_lea): Ditto.
33723         (*<shiftrt_insn><mode>3_1): Ditto.
33724         (*<shiftrt_insn>si3_1_zext): Ditto.
33725         (*<shiftrt_insn>qi3_1_slp): Ditto.
33726         (*<rotate_insn><mode>3_1): Ditto.
33727         (*<rotate_insn>si3_1_zext): Ditto.
33728         (*<rotate_insn>qi3_1_slp): Ditto.
33729
33730 2010-04-13  Richard Guenther  <rguenther@suse.de>
33731
33732         * tree-ssa-structalias.c (callused_id): Remove.
33733         (call_stmt_vars): New.
33734         (get_call_vi): Likewise.
33735         (lookup_call_use_vi): Likewise.
33736         (lookup_call_clobber_vi): Likewise.
33737         (get_call_use_vi): Likewise.
33738         (get_call_clobber_vi): Likewise.
33739         (make_transitive_closure_constraints): Likewise.
33740         (handle_const_call): Adjust to do per-call call-used handling.
33741         (handle_pure_call): Likewise.
33742         (find_what_var_points_to): Remove general callused handling.
33743         (init_base_vars): Likewise.
33744         (init_alias_vars): Initialize call_stmt_vars.
33745         (compute_points_to_sets): Process call-used and call-clobbered
33746         vars for call statements.
33747         (delete_points_to_sets): Free call_stmt_vars.
33748
33749 2010-04-13  Richard Guenther  <rguenther@suse.de>
33750
33751         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
33752         Only add RW dependence for dependence distance zero.
33753         Adjust maximal vectorization factor according to dependences.
33754         Move alignment handling ...
33755         (vect_find_same_alignment_drs): ... here.  New function.
33756         (vect_analyze_data_ref_dependences): Adjust.
33757         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
33758         (vect_analyze_data_refs): Adjust minimal vectorization factor
33759         according to data references.
33760         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
33761         dependences before determining the vectorization factor.
33762         Analyze alignment after determining the vectorization factor.
33763         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
33764         dependences before alignment.
33765         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
33766         Adjust prototype.
33767         (vect_analyze_data_refs): Likewise.
33768         (MAX_VECTORIZATION_FACTOR): New define.
33769
33770 2010-04-13  Duncan Sands  <baldrick@free.fr>
33771
33772         * except.h (lang_eh_type_covers): Remove.
33773         * except.c (lang_eh_type_covers): Likewise.
33774
33775 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33776             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
33777
33778         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
33779         * config/s390/s390.c: Replace UNTIS_PER_WORD with
33780         UNITS_PER_LONG where it is ABI relevant.
33781         (s390_return_addr_rtx): Likewise.
33782         (s390_back_chain_rtx): Likewise.
33783         (s390_frame_area): Likewise.
33784         (s390_frame_info): Likewise.
33785         (s390_initial_elimination_offset): Likewise.
33786         (save_gprs): Likewise.
33787         (s390_emit_prologue): Likewise.
33788         (s390_emit_epilogue): Likewise.
33789         (s390_function_arg_advance): Likewise.
33790         (s390_function_arg): Likewise.
33791         (s390_va_start): Likewise.
33792         (s390_gimplify_va_arg): Likewise.
33793         (s390_function_profiler): Likewise.
33794         (s390_optimize_prologue): Likewise.
33795         (s390_rtx_costs): Likewise.
33796         (s390_secondary_reload): Likewise.
33797         (s390_promote_function_mode): Likewise.
33798         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
33799         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
33800         registers available.
33801         (s390_unwind_word_mode): New function.
33802         (s390_function_value): Split 64 bit values into register pair if
33803         used as return value.
33804         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
33805         function call parameters.  Handle parallels.
33806         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
33807         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
33808         (DWARF_CIE_DATA_ALIGNMENT): New macro.
33809         (s390_expand_setmem): Remove unused variable src_addr.
33810         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
33811         deal with 64 bit registers.
33812         * config/s390/s390.h: Define __zarch__ predefined macro.
33813         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
33814         (UNITS_PER_LONG): New macro.
33815         * libjava/include/s390-signal.h: Define extended ucontext
33816         structure containing the upper halfs of the 64 bit registers.
33817
33818 2010-04-13  Simon Baldwin  <simonb@google.com>
33819
33820         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
33821
33822 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
33823
33824         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
33825         rvalue on the RHS if the LHS is of a non-renamable type.
33826         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
33827
33828 2010-04-13  Matthias Klose  <doko@ubuntu.com>
33829
33830         * gcc.c (cc1_options): Handle -iplugindir before processing
33831         the cc1 spec. Only add -iplugindir once.
33832         (cpp_unique_options): Add -iplugindir option if -fplugin* options
33833         found.
33834         * common.opt (iplugindir): Remove `Separate' property, initialize.
33835         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
33836         option.
33837         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
33838         (distclean): Remove plugin dir.
33839         * doc/invoke.texi: Document -iplugindir.
33840
33841 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
33842
33843         * doc/plugins.texi (Loading Plugins): Document short
33844         -fplugin=foo option.
33845         (Plugin API): Mention default_plugin_dir_name function.
33846
33847         * gcc.c (find_file_spec_function): Add new declaration.
33848         (static_spec_func): Use it for "find-file".
33849         (find_file_spec_function): Add new function.
33850         (cc1_options): Add -iplugindir option if -fplugin* options found.
33851
33852         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
33853
33854         * plugin.c (add_new_plugin): Updated comment, and handle short
33855         plugin name.
33856         (default_plugin_dir_name): Added new function.
33857
33858         * common.opt (iplugindir): New option to set the plugin directory.
33859
33860 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
33861
33862         * config/i386/i386.md (any_rotate): New code iterator.
33863         (rotate_insn): New code attribute.
33864         (rotate): Ditto.
33865         (SWIM124): New mode iterator.
33866         (<rotate_insn>ti3): New expander.
33867         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
33868         any_rotate code iterator.
33869         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
33870         using any_rotate code iterator and SWIM124 mode iterator.
33871         (ix86_rotlti3): New insn_and_split pattern.
33872         (ix86_rotrti3): Ditto.
33873         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
33874         ix86_rotl{di,ti}3 patterns.
33875         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
33876         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
33877         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
33878         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
33879         code iterator and SWI mode iterator.
33880         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
33881         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
33882         code iterator.
33883         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
33884         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
33885         (bswap rotatert splitter): Add splitter.
33886         (bswap splitter): Macroize splitter using any_rotate code iterator.
33887         Add insn predicate to split only for TARGET_USE_XCHGB or when
33888         optimizing function for size.
33889
33890 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33891
33892         * config/pa/pa.c (emit_move_sequence): Remove use of
33893         deleted variable flag_argument_noalias.
33894
33895 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33896
33897         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
33898         configurations.
33899         Add to unsupported targets list.
33900         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
33901         sparc*-sun-solaris2.[567]* from target lists.
33902         * configure: Regenerate.
33903         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
33904         removal.
33905         Remove Solaris 7 patch references.
33906         (Specific, sparc-sun-solaris2.7): Removed.
33907         (sparc-sun-solaris2*): Update Solaris 7 example.
33908         (sparc64-*-solaris2*): Likewise.
33909
33910 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33911
33912         * config.build (alpha*-dec-osf4*): Remove.
33913         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
33914         of obsolete configurations.
33915         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
33916         support.
33917         * config/alpha/t-osf4: Renamed to ...
33918         * config/alpha/t-osf5: ... this.
33919         * config/alpha/osf.h: Renamed to ...
33920         * config/alpha/osf5.h: ... this.
33921         Merged old osf5.h contents.
33922         Update comments.
33923         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
33924         (EXTRA_SPECS): Removed.
33925         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
33926         reflect removal of Tru64 UNIX V4.0/V5.0 support.
33927         Document that.
33928
33929 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33930
33931         * doc/contrib.texi (Contributors, Rainer Orth): Update.
33932
33933 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
33934
33935         PR/43702
33936         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
33937         __thiscall convention.
33938
33939 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33940
33941         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
33942         orig_base.
33943         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
33944
33945 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33946
33947         * function.c (assign_parms_initialize_all): Add unused attribute
33948         to fntype.
33949
33950 2010-04-12  Richard Guenther  <rguenther@suse.de>
33951
33952         * gsstruct.def (GSS_CALL): New.
33953         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
33954         * gimple.h: Include tree-ssa-alias.h.
33955         (struct gimple_statement_call): New.
33956         (union gimple_statement_struct_d): Add gimple_call member.
33957         (gimple_call_reset_alias_info): Declare.
33958         (gimple_call_use_set): New function.
33959         (gimple_call_clobber_set): Likewise.
33960         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
33961         * gimple.c (gimple_call_reset_alias_info): New function.
33962         (gimple_build_call_1): Call it.
33963         * lto-streamer-in.c (input_gimple_stmt): Likewise.
33964         * tree-inline.c (remap_gimple_stmt): Likewise.
33965         (expand_call_inline): Remove callused handling.
33966         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
33967         * tree-dfa.c (dump_variable): Likewise.
33968         * tree-parloops.c (parallelize_loops): Likewise.
33969         * tree-ssa.c (init_tree_ssa): Likewise.
33970         (delete_tree_ssa): Likewise.
33971         * tree-flow-inline.h (is_call_used): Remove.
33972         * tree-flow.h (struct gimple_df): Remove callused member.
33973         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
33974         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
33975         (ref_maybe_used_by_call_p_1): Simplify.
33976         (call_may_clobber_ref_p_1): Likewise.
33977         * tree-ssa-structalias.c (compute_points_to_sets): Set
33978         the call stmt used and clobbered sets.
33979         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
33980         (find_tail_calls): Verify the tail call.
33981
33982 2010-04-12  Richard Guenther  <rguenther@suse.de>
33983
33984         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
33985         single-iteration always-inline inlining.
33986         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
33987         (cgraph_decide_inlining): Do not handle always-inline specially.
33988         (try_inline): Remove always-inline cycle detection special case.
33989         Do not recurse on always-inlines.
33990         (cgraph_early_inlining): Do not iterate if not optimizing.
33991         (cgraph_gate_early_inlining): remove.
33992         (pass_early_inline): Run unconditionally.
33993         (gate_cgraph_decide_inlining): New function.
33994         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
33995         not inlining or optimizing.
33996         (cgraph_decide_inlining_of_small_functions): Also consider
33997         always-inline functions.
33998         (cgraph_default_inline_p): Return true for nodes which should
33999         disregard inline limits.
34000         (estimate_function_body_sizes): Assume zero size and time for
34001         nodes which are marked as disregarding inline limits.
34002         (cgraph_decide_recursive_inlining): Do not perform recursive
34003         inlining on always-inline nodes.
34004
34005 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
34006
34007         PR bootstrap/43699
34008         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
34009         for exprs satisfying handled_component_p.
34010
34011 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
34012
34013         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
34014         non-constant aggregate elements.
34015
34016         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
34017         is a real initialization.
34018
34019 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
34020
34021         PR c/36774
34022         * c-decl.c (start_function): Move forward check for nested function.
34023
34024 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
34025
34026         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
34027         * config/sh/sh.c: Include reload.h.
34028         (sh_legitimize_reload_address): New.
34029         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
34030         sh_legitimize_reload_address.
34031
34032 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
34033
34034         * config/sh/sh.md (*movqi_pop): New insn pattern.
34035         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
34036
34037 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34038
34039         * config/i386/i386.md (any_shiftrt): New code iterator.
34040         (shiftrt_insn): New code attribute.
34041         (shiftrt): Ditto.
34042         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
34043         using any_shiftrt code iterator.
34044         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
34045         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
34046         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
34047         pattern from corresponding peephole2 patterns.
34048         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
34049         using any_shiftrt code iterator.
34050         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
34051         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
34052         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
34053         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
34054         *{ashr,lshr}<mode>3_cmp_zext.
34055         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
34056
34057 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34058
34059         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
34060         scratch register.
34061         (*lshr<mode>3_cconly): Ditto.
34062
34063 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34064
34065         * config/i386/i386.md (lshr<mode>3): Macroize expander from
34066         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
34067         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34068         pattern from *lshr{di,ti}3_1 and corresponding splitters using
34069         DWI mode iterator.
34070         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
34071         from corresponding peephole2 patterns.
34072         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
34073         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
34074         and *lshrdi3_1_rex64 using SWI mode iterator.
34075         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
34076         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
34077         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
34078         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
34079         and *lshrdi3_cmp_rex64 using SWI mode iterator.
34080         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
34081         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
34082         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
34083         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
34084         SWI mode iterator.
34085
34086 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
34087
34088         * config/i386/i386.md (ashr<mode>3): Macroize expander from
34089         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
34090         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34091         pattern from *ashr{di,ti}3_1 and corresponding splitters using
34092         DWI mode iterator.
34093         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
34094         from corresponding peephole2 patterns.
34095         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
34096         (ashrsi3_cvt): Rename from ashrsi3_31.
34097         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
34098         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
34099         and x86_64_shift_adj_3 using SWI48 mode iterator.
34100         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
34101         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
34102         and *ashrdi3_1_rex64 using SWI mode iterator.
34103         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
34104         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
34105         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
34106         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
34107         and *ashrdi3_cmp_rex64 using SWI mode iterator.
34108         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
34109         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
34110         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
34111         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
34112         SWI mode iterator.
34113         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
34114         * config/i386/i386.c (ix86_split_ashr): Update for renamed
34115         x86_shift<mode>_adj_3 expanders.
34116
34117 2010-04-10  Wei Guozhi  <carrot@google.com>
34118
34119         PR target/42601
34120         * config/arm/arm.c (arm_pic_static_addr): New function.
34121         (legitimize_pic_address): Call arm_pic_static_addr when it detects
34122         a static symbol.
34123         (arm_output_addr_const_extra): Output expression for new pattern.
34124         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
34125
34126 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
34127
34128         * ira-costs.c (record_reg_classes): Ignore alternatives that are
34129         not enabled.
34130
34131         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
34132         * web.c: Include "insn-config.h" and "recog.h".
34133         (union_match_dups): New function.
34134         (web_main): Call it.
34135         (union_defs): Don't try to recognize match_dups.
34136
34137         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
34138         if doing so would replace the entire pattern.
34139
34140 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
34141
34142         PR target/43707
34143         PR target/43709
34144         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
34145         and splitter pattern.  Change splitter operand 1 predicate to
34146         nonmemory_operand.
34147
34148 2010-04-09  Martin Jambor  <mjambor@suse.cz>
34149
34150         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
34151         lattices are addresses of CONST_DECLs with the same initial value.
34152         (ipcp_print_all_lattices): Print values of CONST_DECLs.
34153         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
34154
34155 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
34156             Bernd Schmidt  <bernds@codesourcery.com>
34157
34158         * loop-invariant.c (replace_uses): New static function.
34159         (move_invariant_reg): Use it to ensure we can replace the uses.
34160
34161 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
34162
34163         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
34164         function template.
34165         (picochip_override_options): Enable section anchors only above -O1.
34166         (picochip_reorg): Fixed a couple of build warnings.
34167
34168 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34169
34170         * configure.ac (plugin -rdynamic test): Log result.
34171         * configure: Regenerate.
34172         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
34173         (RDYNAMIC_SPEC): Define.
34174         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
34175
34176 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34177
34178         * configure.ac: Determine Sun ld version numbers.
34179         (comdat_group): Restrict GNU ld version checks to gld.
34180         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
34181         (enable_comdat): Support --enable-comdat.
34182         * configure: Regenerate.
34183         * doc/install.texi (Configuration): Document --enable-comdat.
34184
34185 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34186
34187         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
34188         * config/sol2-gld.h: ... here.
34189         * config.gcc (sparc*-*-solaris2*): Reflect this.
34190         (i[34567]86-*-solaris2*): Use it.
34191
34192 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
34193
34194         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
34195         setup_clocks_p.
34196         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
34197
34198 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34199
34200         PR 42965
34201         * diagnostic.c (diagnostic_initialize): Initialize
34202         some_warnings_are_errors.
34203         (diagnostic_finish): New.
34204         (diagnostic_action_after_output): Call it before exiting.
34205         (diagnostic_report_diagnostic): Do not print message here. Set
34206         some_warnings_are_errors.
34207         * diagnostic.h (diagnostic_context): Delete
34208         issue_warnings_are_errors_message. Add some_warnings_are_errors.
34209         (diagnostic_finish): Declare.
34210         * toplev.c (toplev_main): Call it before exit.
34211
34212 2010-04-09  Jason Merrill  <jason@redhat.com>
34213
34214         PR c++/42623
34215         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
34216         for incomplete type.
34217
34218         PR c++/41788
34219         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
34220         based on a warning flag.
34221
34222 2010-04-09  Richard Guenther  <rguenther@suse.de>
34223
34224         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
34225
34226 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
34227
34228         PR bootstrap/43684
34229         * varasm.c (default_assemble_visibility): Wrap vars that are
34230         set, but unused, by targets without GAS.
34231         * config/rs6000/rs6000.c (paired_emit_vector_compare):
34232         Remove set, but unused, vars.
34233         (rs6000_legitimize_tls_address): Likewise.
34234         (altivec_expand_dst_builtin): Likewise.
34235         * config/darwin.c (machopic_classify_symbol): Likewise.
34236         (machopic_indirection_name): Likewise.
34237
34238 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
34239
34240         * config/i386/i386.md (DWI): New mode iterator.
34241         (S): New mode attribute.
34242         (shift_operand): Ditto.
34243         (shift_immediate_operand): Ditto.
34244         (ashl_input_operand): Ditto.
34245         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
34246         using SDWIM mode iterator.
34247         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34248         pattern from *ashl{di,ti}3_1 and corresponding splitters using
34249         DWI mode iterator.
34250         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
34251         from corresponding peephole2 patterns.
34252         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
34253         and x86_64_shift_adj_1 using SWI48 mode iterator.
34254         (x86_shift<mode>_adj_2): Ditto.
34255         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
34256         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
34257         using SWI48 mode iterator.
34258         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
34259         *ashldi3_cmp_rex64 using SWI mode iterator.
34260         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
34261         *ashldi3_cconly_rex64 using SWI mode iterator.
34262         * config/i386/i386.c (ix86_split_ashl): Update for renamed
34263         x86_shift<mode>_adj_{1,2}.
34264         (ix86_split_ashr): Ditto.
34265         (ix86_split_lshr): Ditto.
34266
34267 2010-04-09  Richard Guenther  <rguenther@suse.de>
34268
34269         * target.h (builtin_conversion): Pass in input and output types.
34270         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
34271         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
34272         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
34273         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
34274
34275         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
34276         Handle AVX modes.
34277         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
34278
34279 2010-04-09  Richard Guenther  <rguenther@suse.de>
34280
34281         PR target/43152
34282         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
34283
34284 2010-04-09  Richard Guenther  <rguenther@suse.de>
34285
34286         * tree-vectorizer.h (struct _stmt_vec_info): Document
34287         that vectype is the type of the LHS.
34288         (supportable_widening_operation, supportable_narrowing_operation):
34289         Get both input and output vector types as arguments.
34290         (vect_is_simple_use_1): Declare.
34291         (get_same_sized_vectype): Likewise.
34292         * tree-vect-loop.c (vect_determine_vectorization_factor):
34293         Set STMT_VINFO_VECTYPE to the vector type of the def.
34294         (vectorizable_reduction): Adjust.
34295         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
34296         Adjust.  Specify the output vector type.
34297         (vect_pattern_recog_1): Adjust.
34298         * tree-vect-stmts.c (get_same_sized_vectype): New function.
34299         (vectorizable_call): Adjust.
34300         (vectorizable_conversion): Likewise.
34301         (vectorizable_operation): Likewise.
34302         (vectorizable_type_demotion): Likewise.
34303         (vectorizable_type_promotion): Likewise.
34304         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
34305         the def.
34306         (vect_is_simple_use_1): New function.
34307         (supportable_widening_operation): Get both input and output
34308         vector types.
34309         (supportable_narrowing_operation): Likewise.
34310         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
34311
34312 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
34313
34314         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
34315         __thiscall and _thiscall as predefined macros.
34316         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
34317         thiscall attribute handling.
34318         (ix86_comp_type_attributes): Likewise.
34319         (ix86_function_regparm): Likewise.
34320         (ix86_return_pops_args): Likewise.
34321         (init_cumulative_args): Likewise.
34322         (find_drap_reg): Likewise.
34323         (ix86_static_chain): Likewise.
34324         (x86_this_parameter): Likewise.
34325         (x86_output_mi_thunk): Likewise.
34326         (ix86_attribute_table): Add description for thiscall attribute.
34327         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
34328         * doc/extend.texi: Add documentation for thiscall.
34329
34330 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34331
34332         PR c++/28584
34333         * c.opt (Wint-to-pointer-cast): Available in C++.
34334         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
34335
34336 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
34337
34338         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
34339         * calls.c (expand_call): Pass the function type to aggregate_value_p.
34340         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
34341         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
34342         function type instead.  Reorder and simplify checks.
34343
34344         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
34345
34346 2010-04-08  Jing Yu  <jingyu@google.com>
34347             Zdenek Dvorak  <ook@ucw.cz>
34348
34349         PR tree-optimization/42720
34350         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
34351         loop unswitch conditions here from ...
34352         (tree_unswitch_single_loop): ... here.
34353
34354 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
34355
34356         * tree-if-conv.c: Fix comments and simplify logic.
34357
34358 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
34359
34360         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
34361         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
34362         (main_tree_if_conversion): Update call to tree_if_conversion.
34363
34364 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34365
34366         PR 42485
34367         * doc/invoke.texi (-b,-V): Delete.
34368         * doc/tm.texi: Do not mention -b.
34369         * gcc.c (display_help): Delete -b and -V.
34370         (process_command): Delete -b and -V.
34371         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
34372
34373 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
34374             Wolfgang Gellerich  <gellerich@de.ibm.com>
34375
34376         Implement target hook for loop unrolling
34377         * target.h (loop_unroll_adjust): Add a new target hook function.
34378         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
34379         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
34380         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
34381         (s390_loop_unroll_adjust): Implement the new target hook for s390.
34382         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
34383         target hook.
34384         (decide_unroll_stupid): Likewise.
34385
34386 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34387
34388         PR target/43643
34389         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
34390
34391 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34392
34393         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
34394         (Specific, *-*-solaris2*): Likewise.
34395         Don't prefer Sun as over GNU as.
34396
34397 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
34398
34399         * config/s390/s390.c (override_options): Adjust the z10 defaults
34400         for max-unroll-times, max-completely-peeled-insns
34401         and max-completely-peel-times.
34402
34403 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34404
34405         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
34406         instructions for z10.
34407         (s390_expand_setmem): Likewise.
34408         (s390_expand_cmpmem): Likewise.
34409
34410 2010-04-08  Richard Guenther  <rguenther@suse.de>
34411
34412         PR tree-optimization/43679
34413         * tree-ssa-pre.c (eliminate): Only propagate copies.
34414
34415 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
34416
34417         PR bootstrap/43681
34418         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
34419         set but not used variable warning.
34420
34421 2010-04-08  Wei Guozhi  <carrot@google.com>
34422
34423         PR target/41653
34424         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
34425         (arm_size_rtx_costs): Call the new function when optimized for size.
34426
34427 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
34428
34429         PR debug/43670
34430         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
34431         op0 is not a MEM, just return NULL instead of assertion
34432         failure.
34433         (discover_nonconstant_array_refs): Don't walk debug stmts.
34434
34435 2010-04-08  Doug Kwan  <dougkwan@google.com>
34436
34437         * configure.ac: Recognize gold and do not use its version number
34438         to test ld features.
34439         * configure: Regenerate.
34440
34441 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
34442
34443         PR middle-end/40815
34444         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
34445         (negate_value): Move code to push elements to broken_up_substracts ...
34446         (eliminate_plus_minus_pair): ... here.  Push operands that have no
34447         negative pair to plus_negates.
34448         (repropagate_negates, init_reassoc, fini_reassoc): Update.
34449
34450 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34451
34452         * doc/install.texi (Configuration): Move description of
34453         --enable-lto, --with-libelf*, --enable-gold from Java section to
34454         general section.
34455
34456         * doc/generic.texi (Working with declarations)
34457         (Function Properties, C and C++ Trees): Fix typos.
34458         * doc/sourcebuild.texi (Top Level): Likewise.
34459
34460 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
34461
34462         PR c/18624
34463         * tree.h (DECL_READ_P): Define.
34464         (struct tree_decl_common): Add decl_read_flag.
34465         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
34466         a set but not used warning.
34467         (merge_decls): Merge DECL_READ_P flag.
34468         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
34469         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
34470         * c-common.c (handle_used_attribute, handle_unused_attribute):
34471         Likewise.
34472         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
34473         New prototypes.
34474         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
34475         New functions.
34476         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
34477         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
34478         c_parser_binary_expression, c_parser_cast_expression,
34479         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
34480         Call default_function_array_read_conversion instead of
34481         default_function_array_conversion where needed.
34482         (c_parser_unary_expression, c_parser_conditional_expression,
34483         c_parser_postfix_expression_after_primary, c_parser_initelt):
34484         Likewise.  Call mark_exp_read where needed.
34485         (c_parser_statement_after_labels, c_parser_asm_operands,
34486         c_parser_typeof_specifier, c_parser_sizeof_expression,
34487         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
34488         where needed.
34489         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
34490         New.
34491         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
34492         (warn_unused_but_set_parameter): Default to warn_unused
34493         && extra_warnings.
34494         * doc/invoke.texi: Document -Wunused-but-set-variable and
34495         -Wunused-but-set-parameter.
34496
34497         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
34498         used count variable.
34499         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
34500         when operandN variables aren't used in the body of the expander
34501         or splitter.
34502         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
34503         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
34504         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
34505         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
34506         FOR_EACH_IMM_USE_ON_STMT): Likewise.
34507         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
34508         * tree.c (PROCESS_ARG): Likewise.
34509
34510 2010-04-07  Simon Baldwin  <simonb@google.com>
34511
34512         * diagnostic.h (diagnostic_override_option_index): New macro to
34513         set a diagnostic's option_index.
34514         * c-tree.h (c_cpp_error): Add warning reason argument.
34515         * opts.c (_warning_as_error_callback): New.
34516         (register_warning_as_error_callback): Store callback for
34517         warnings enabled via enable_warning_as_error.
34518         (enable_warning_as_error): Call callback, minor code tidy.
34519         * opts.h (register_warning_as_error_callback): Declare.
34520         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
34521         response to -Werror=.
34522         (c_common_init_options): Register warning_as_error_callback in opts.c.
34523         * common.opt: Add -Wno-cpp option.
34524         * c-common.c (struct reason_option_codes_t): Map cpp warning
34525         reason codes to gcc option indexes.
34526         * (c_option_controlling_cpp_error): New function, lookup the gcc
34527         option index for a cpp warning reason code.
34528         * (c_cpp_error): Add warning reason argument, call
34529         c_option_controlling_cpp_error for diagnostic_override_option_index.
34530         * doc/invoke.texi: Document -Wno-cpp.
34531
34532 2010-04-07  Richard Guenther  <rguenther@suse.de>
34533
34534         * ipa-reference.c (mark_load): Use get_base_address.
34535         (mark_store): Likewise.
34536
34537         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
34538         inserting GIMPLE_NOPs into the IL.
34539         * tree-ssa-structalias.c (get_constraint_for_component_ref):
34540         Explicitly strip handled components and indirect references.
34541
34542         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
34543         folding address expressions.
34544         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
34545         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
34546         operand_equal_p to compare decls.
34547         (ptr_deref_may_alias_decl_p): Likewise.
34548         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
34549         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
34550         Handle reversed comparison ops.
34551         * tree-sra.c (asm_visit_addr): Use get_base_address.
34552         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
34553         * ipa-reference.c (mark_address): Use get_base_address.
34554
34555 2010-04-07  Richard Guenther  <rguenther@suse.de>
34556
34557         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
34558         Propagate constants everywhere.
34559
34560 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
34561
34562         PR debug/43516
34563         * tree.c (MAX_INT_CACHED_PREC): Define.
34564         (nonstandard_integer_type_cache): New array.
34565         (build_nonstandard_integer_type): Cache results for precision
34566         <= MAX_INT_CACHED_PREC.
34567
34568 2010-04-07  Richard Guenther  <rguenther@suse.de>
34569
34570         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
34571         -fargument-noalias-global, -fargument-noalias-anything): Remove.
34572         * common.opt: Likewise.
34573         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
34574         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
34575         (nonoverlapping_memrefs_p): Likewise.
34576         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
34577         * opts.c (common_handle_option): Handle OPT_fargument_alias,
34578         OPT_fargument_noalias, OPT_fargument_noalias_anything and
34579         OPT_fargument_noalias_global for backward compatibility.
34580
34581 2010-04-07  Richard Guenther  <rguenther@suse.de>
34582
34583         PR tree-optimization/43270
34584         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
34585         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
34586         * tree-ssa-pre.c (phi_translate_1): Adjust.
34587         (fully_constant_expression): Split out vn_reference handling to ...
34588         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
34589         Fold reads from constant strings.
34590         (vn_reference_lookup): Handle fully constant references.
34591         (vn_reference_lookup_pieces): Likewise.
34592         * Makefile.in (expmed.o-warn): Add -Wno-error.
34593
34594 2010-04-07  Martin Jambor  <mjambor@suse.cz>
34595
34596         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
34597
34598 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
34599
34600         PR driver/41594
34601         * gcc.c: Add -static-libstdc++ to list of recognized options.
34602
34603 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34604
34605         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
34606
34607 2010-04-07  Richard Guenther  <rguenther@suse.de>
34608
34609         PR middle-end/42617
34610         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
34611         bases build simple mem attributes to retain points-to information.
34612
34613 2010-04-07  Richard Guenther  <rguenther@suse.de>
34614
34615         PR middle-end/42617
34616         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
34617         preserve points-to related information.
34618
34619 2010-04-07  Richard Guenther  <rguenther@suse.de>
34620
34621         PR middle-end/42617
34622         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
34623         discard plain indirect references.
34624         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
34625         * tree.c (tree_nop_conversion): Likewise.
34626
34627 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
34628
34629         PR debug/43628
34630         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
34631
34632 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
34633
34634         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
34635         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
34636
34637 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
34638
34639         * tree-if-conv.c: Fix indentation and comments.
34640
34641 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
34642
34643         * tree-if-conv.c: Sort static functions in topological order.
34644
34645 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
34646
34647         * tree-if-conv.c: Fix indentation and comments.
34648
34649 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34650
34651         PR middle-end/43519
34652         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
34653         lang_hooks.types.type_for_size instead of
34654         build_nonstandard_integer_type.
34655         When converting an unsigned type to signed, double its precision.
34656         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
34657         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
34658         (graphite_create_new_loop_guard): When ub + 1 wraps around,
34659         use lb <= ub.
34660
34661 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34662
34663         PR middle-end/43519
34664         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
34665         POINTER_PLUS_EXPR for pointer types.
34666
34667 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34668
34669         PR middle-end/43519
34670         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
34671         * graphite-clast-to-gimple.c: Include langhooks.h.
34672         (max_signed_precision_type): New.
34673         (max_precision_type): Takes two types as arguments.
34674         (precision_for_value): New.
34675         (precision_for_interval): New.
34676         (gcc_type_for_interval): New.
34677         (gcc_type_for_value): New.
34678         (gcc_type_for_clast_term): New.
34679         (gcc_type_for_clast_red): New.
34680         (gcc_type_for_clast_bin): New.
34681         (gcc_type_for_clast_expr): Split up into several functions.
34682         (gcc_type_for_clast_eq): Rewritten.
34683         (compute_bounds_for_level): New.
34684         (compute_type_for_level_1): New.
34685         (compute_type_for_level): New.
34686         (gcc_type_for_cloog_iv): Removed.
34687         (gcc_type_for_iv_of_clast_loop): Rewritten.
34688         (graphite_create_new_loop): Compute the lower and upper bound types
34689         with gcc_type_for_clast_expr.
34690         (graphite_create_new_loop_guard): Same.
34691         (find_cloog_iv_in_expr): Removed.
34692         (compute_cloog_iv_types_1): Removed.
34693         (compute_cloog_iv_types): Removed.
34694         (gloog): Do not call compute_cloog_iv_types.
34695         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
34696         GBB_CLOOG_IV_TYPES.
34697         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
34698         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
34699         (GBB_CLOOG_IV_TYPES): Removed.
34700
34701 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34702
34703         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
34704         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
34705         (detect_commutative_reduction): Same.
34706
34707 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34708
34709         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
34710         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
34711         argument.
34712         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
34713         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
34714         (rewrite_commutative_reductions_out_of_ssa): Same.
34715         * passes.c (execute_function_todo): Call verify_ssa for every pass
34716         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
34717         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
34718         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
34719         with an extra argument.
34720         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
34721         verify_ssa only when the extra argument is true.
34722         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
34723         with an extra argument.
34724         (tree_transform_and_unroll_loop): Same.
34725
34726 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34727
34728         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
34729         for all the passes of the LNO having LOOP_CLOSED_SSA.
34730         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
34731         * tree-loop-distribution.c (pass_loop_distribution): Same.
34732         * tree-pass.h (TODO_verify_loops): Removed.
34733         * tree-ssa-loop.c (pass_tree_loop_init): Same.
34734         (pass_lim): Same.
34735         (pass_tree_unswitch): Same.
34736         (pass_predcom): Same.
34737         (pass_vectorize): Same.
34738         (pass_linear_transform): Same.
34739         (pass_graphite_transforms): Same.
34740         (pass_iv_canon): Same.
34741         (pass_complete_unroll): Same.
34742         (pass_complete_unrolli): Same.
34743         (pass_parallelize_loops): Same.
34744         (pass_loop_prefetch): Same.
34745         (pass_iv_optimize): Same.
34746
34747 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
34748
34749         PR middle-end/32824
34750         * passes.c (init_optimization_passes): Move pass_lim before
34751         pass_copy_prop and pass_dce_loop.
34752
34753 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
34754
34755         PR target/43667
34756         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
34757         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
34758         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
34759         MULTI_* defines for 4 argument vpermil2p* builtins.
34760
34761 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
34762
34763         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
34764         * config/i386/i386.c (x86_maybe_negate_const_int): New.
34765         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
34766         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
34767         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
34768         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
34769         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
34770         Use x86_maybe_negate_const_int to output insn mnemonic.
34771         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
34772         check from instruction predicate.  Update comments.
34773         * config/i386/sync.md (sync_add<mode>): Use
34774         x86_maybe_negate_const_int to output insn mnemonic.
34775
34776 2010-04-06  Jan Hubicka  <jh@suse.cz>
34777
34778         PR tree-optimization/42906
34779         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
34780         IGNORE_SELF argument.  Set visited_control_parents for fully
34781         processed BBs.
34782         (find_obviously_necessary_stmts): Update call of
34783         mark_control_dependent_edges_necessary.
34784         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
34785
34786 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
34787
34788         * config/i386/i386.md: Remove comment about 'e' and 'E'
34789         operand modifier.
34790
34791 2010-04-06  Richard Guenther  <rguenther@suse.de>
34792
34793         PR tree-optimization/43627
34794         * tree-vrp.c (extract_range_from_unary_expr): Widenings
34795         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
34796         not varying.
34797
34798 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
34799
34800         * BASE-VER: Change to 4.6.0.
34801
34802         PR target/43638
34803         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
34804         handling.
34805
34806 2010-04-06  Richard Guenther  <rguenther@suse.de>
34807
34808         PR middle-end/43661
34809         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
34810
34811 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34812
34813         * doc/invoke.texi (Optimize Options): Document that LTO
34814         won't remove object access purely due to incompatible
34815         declarations.
34816
34817 2010-04-04  Matthias Klose  <doko@ubuntu.com>
34818
34819         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
34820         Initialize variable.
34821
34822 2010-04-03  Richard Guenther  <rguenther@suse.de>
34823
34824         PR middle-end/42509
34825         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
34826         require a non-NULL MEM_OFFSET.
34827
34828 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
34829
34830         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
34831         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
34832         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
34833         config/alpha/predicates.md, config/arm/arm.md,
34834         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
34835         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
34836         config/darwin9.h, config/darwin.c, config/darwin.h,
34837         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
34838         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
34839         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
34840         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
34841         config/mips/mips.md, config/mn10300/mn10300.c,
34842         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
34843         config/rs6000/aix.h, config/rs6000/dfp.md,
34844         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
34845         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
34846         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
34847         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
34848         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
34849         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
34850         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
34851         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
34852         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
34853         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
34854         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
34855         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
34856         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
34857         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
34858         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
34859         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
34860         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
34861         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
34862         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
34863         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
34864         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
34865         opt-functions.awk, opth-gen.awk, params.def, passes.c,
34866         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
34867         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
34868         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
34869         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
34870         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
34871         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
34872         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
34873         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
34874         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
34875         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
34876         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
34877         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
34878         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
34879         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
34880
34881 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34882
34883         PR other/43620
34884         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
34885         * aclocal.m4: Regenerate.
34886
34887 2010-04-02  Richard Guenther  <rguenther@suse.de>
34888
34889         PR tree-optimization/43629
34890         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
34891         if we have seen a constant value.
34892
34893 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
34894
34895         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
34896
34897 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
34898
34899         PR target/43469
34900         * arm.c (legitimize_tls_address): Adjust call to
34901         gen_tls_load_dot_plus_four.
34902         (arm_note_pic_base): New function.
34903         (arm_cannot_copy_insn_p): Use it.
34904         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
34905         constraint.
34906
34907 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34908
34909         PR bootstrap/43531
34910
34911         Revert:
34912         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34913
34914         * Makefile.in ($(out_object_file)): Depend on
34915         gt-$(basename $(notdir $(out_file))).h.
34916
34917 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
34918
34919         * config.gcc (lm32-*-rtems*): Add t-lm32.
34920
34921 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
34922
34923         * config.gcc: Add lm32-*-rtems*.
34924         * config/lm32/rtems.h: New file.
34925
34926 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
34927
34928         PR target/42609
34929         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
34930
34931 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
34932
34933         * dwarf2out.c (output_compilation_unit_header): For
34934         -gdwarf-4 use version 4 instead of version 3.
34935         (output_line_info): For version 4 and above emit additional
34936         maximum ops per insn header field.
34937         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
34938
34939         * dwarf2out.c (is_c_family, is_java): Remove.
34940         (lower_bound_default): New function.
34941         (add_bound_info, gen_descr_array_type_die): Use it.
34942
34943 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
34944
34945         PR debug/43325
34946         * dwarf2out.c (gen_variable_die): Allow debug info for variable
34947         re-declaration when it happens in a function.
34948
34949 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
34950
34951         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
34952         (cgraph_remove_function_insertion_hook): Same.
34953         (cgraph_call_function_insertion_hooks): Same.
34954
34955 2010-04-01  Richard Guenther  <rguenther@suse.de>
34956
34957         PR middle-end/43614
34958         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
34959         and TREE_THIS_VOLATILE.
34960         (copy_ref_info): Likewise.
34961         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
34962         * tree.c (build6_stat): Ignore side-effects of all but arg5
34963         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
34964         TARGET_MEM_REF.
34965
34966 2010-04-01  Richard Guenther  <rguenther@suse.de>
34967
34968         PR tree-optimization/43607
34969         * ipa-type-escape.c (check_call): Do not access non-existing
34970         arguments.
34971
34972 2010-04-01  Richard Guenther  <rguenther@suse.de>
34973
34974         PR middle-end/43602
34975         Revert
34976         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34977                     Jack Howarth  <howarth@bromo.med.uc.edu>
34978
34979         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34980         variables TLS.
34981
34982 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34983
34984         * doc/install.texi (Prerequisites): Document libelf usability on
34985         IRIX 5/6 and Solaris 2.
34986         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
34987         Update GNU as, GNU ld requirements.
34988         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
34989         Document Sun Studio compiler download.
34990         Update and simplify as, ld recommendations.
34991         (Specific, *-*-solaris2.7): Note obsoletion, removal.
34992
34993 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34994
34995         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
34996         with_tune_32 to pentium4.
34997
34998 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
34999
35000         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
35001
35002 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35003
35004         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
35005         obsoletion, removal.
35006         Update IDO URL.
35007         Document GNU as requirement.
35008         Update configure requirements.
35009         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
35010         Recomment IRIX 6.5.18+.
35011         Document IDF/IDL requirement.
35012         Document GNU as requirement.
35013         Document GNU ld bootstrap failure.
35014         Remove freeware.sgi.com reference.
35015
35016 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35017
35018         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
35019         UNIX V4.0, V5.0 obsoletion, removal.
35020         Remove --with-gc=simple reference.
35021         Update VM requirements during bootstrap.
35022         Remove -oldas bootstrap description.
35023         Update binutils reference.
35024         Remove comparison failure note.
35025
35026 2010-03-31  Richard Guenther  <rguenther@suse.de>
35027             Zdenek Dvorak  <ook@ucw.cz>
35028             Sebastian Pop  <sebastian.pop@amd.com>
35029
35030         PR middle-end/43464
35031         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
35032         with multiple arguments.
35033         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
35034
35035 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35036
35037         * graphite-dependences.c (print_pddr): Call print_pdr with an
35038         extra argument.
35039         * graphite-poly.c (debug_pdr): Add an extra argument for the
35040         verbosity level.
35041         (print_pdr): Same.
35042         (print_pbb_domain): Same.
35043         (print_pbb): Same.
35044         (print_scop_context): Same.
35045         (print_scop): Same.
35046         (print_cloog): Same.
35047         (debug_pbb_domain): Same.
35048         (debug_pbb): Same.
35049         (print_pdrs): Same.
35050         (debug_pdrs): Same.
35051         (debug_scop_context): Same.
35052         (debug_scop): Same.
35053         (debug_cloog): Same.
35054         (print_scop_params): Same.
35055         (debug_scop_params): Same.
35056         (print_iteration_domain): Same.
35057         (print_iteration_domains): Same.
35058         (debug_iteration_domain): Same.
35059         (debug_iteration_domains): Same.
35060         (print_scattering_function): Same.
35061         (print_scattering_functions): Same.
35062         (debug_scattering_function): Same.
35063         (debug_scattering_functions): Same.
35064         * graphite-poly.h (debug_pdr): Update declaration.
35065         (print_pdr): Same.
35066         (print_pbb_domain): Same.
35067         (print_pbb): Same.
35068         (print_scop_context): Same.
35069         (print_scop): Same.
35070         (print_cloog): Same.
35071         (debug_pbb_domain): Same.
35072         (debug_pbb): Same.
35073         (print_pdrs): Same.
35074         (debug_pdrs): Same.
35075         (debug_scop_context): Same.
35076         (debug_scop): Same.
35077         (debug_cloog): Same.
35078         (print_scop_params): Same.
35079         (debug_scop_params): Same.
35080         (print_iteration_domain): Same.
35081         (print_iteration_domains): Same.
35082         (debug_iteration_domain): Same.
35083         (debug_iteration_domains): Same.
35084         (print_scattering_function): Same.
35085         (print_scattering_functions): Same.
35086         (debug_scattering_function): Same.
35087         (debug_scattering_functions): Same.
35088
35089 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35090
35091         * graphite-poly.c (print_scattering_function_1): New.
35092         (print_scattering_function): Call it.
35093         (print_scop_params): Remove spaces at the end of lines.
35094         (print_cloog): New.
35095         (debug_cloog): New.
35096         * graphite-poly.h (print_cloog): Declared.
35097         (debug_cloog): Declared.
35098
35099 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35100
35101         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
35102         in loop->header.
35103         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
35104         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
35105         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
35106         to switch between adding the IV bump in loop->latch or in loop->header.
35107
35108 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35109
35110         * graphite-poly.c (print_scattering_function): Pretty print following
35111         the scoplib format.
35112         (print_pdr): Same.
35113         (print_pbb_domain): Same.
35114         (dump_gbb_cases): Same.
35115         (dump_gbb_conditions): Same.
35116         (print_pdrs): Same.
35117         (print_pbb): Same.
35118         (print_scop_params): Same.
35119         (print_scop_context): Same.
35120         (print_scop): Same.
35121         (print_pbb_body): New.
35122         (lst_indent_to): New.
35123         (print_lst): Start new lines with a #.
35124         * graphite-poly.h (pbb_bb): New.
35125         (pbb_index): Use pbb_bb.
35126         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
35127         disjuncts.
35128         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
35129
35130 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
35131
35132         * dwarf2out.c (size_of_die): For -gdwarf-4 use
35133         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
35134         and 0 instead of 1 for dw_val_class_flag.
35135         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
35136         dw_val_class_range_list, dw_val_class_loc_list,
35137         dw_val_class_lineptr and dw_val_class_macptr, use
35138         DW_FORM_flag_present for dw_val_class_flag and
35139         DW_FORM_exprloc for dw_val_class_loc.
35140         (output_die): For -gdwarf-4 print dw_val_class_loc
35141         size as uleb128 instead of 1 or 2 bytes and don't print
35142         anything for dw_val_class_flag.
35143
35144         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
35145         instead of cselib_lookup following by tweaking locs->setting_insn.
35146
35147         PR bootstrap/43596
35148         * cselib.c (cselib_process_insn): Clear cselib_current_insn
35149         even before returning from label, setjmp call or volatile asm
35150         handling.
35151
35152 2010-03-31  Richard Guenther  <rguenther@suse.de>
35153
35154         PR middle-end/43600
35155         * cgraphunit.c (cgraph_output_in_order): Do not allocate
35156         temporary data on stack.
35157
35158 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35159
35160         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
35161         (PUSHSECTION_ASM_OP): Remove.
35162         (POPSECTION_ASM_OP): Remove.
35163         (PUSHSECTION_FORMAT): Remove.
35164         * config/sol2.h (PUSHSECTION_FORMAT): Define.
35165         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
35166         * config/sol2.c (solaris_output_init_fini): Use it.
35167
35168 2010-03-31  Jie Zhang  <jie@codesourcery.com>
35169
35170         PR 43574
35171         * opt-functions.awk (var_type_struct): Use signed char type
35172         for simple variables.
35173
35174 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35175
35176         * config/sol2.c: Include output.h.
35177         (solaris_assemble_visibility): New function.
35178         * config/t-sol2 (sol2.o): Add output.h dependency.
35179         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
35180         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
35181         Redefine.
35182
35183 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
35184
35185         PR target/43580
35186         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
35187         V2SImode or XFmode on PRE_DEC.
35188
35189         PR debug/43557
35190         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
35191         BLKmode.
35192
35193 2010-03-31  Jie Zhang  <jie@codesourcery.com>
35194
35195         PR 43562
35196         * reload.h (caller_save_initialized_p): Declare.
35197         * toplev.c (backend_init_target): Don't call
35198         init_caller_save but set caller_save_initialized_p to false.
35199         * caller-save.c (caller_save_initialized_p): Define.
35200         (init_caller_save): Check caller_save_initialized_p.
35201         * ira.c (ira): Call init_caller_save if flag_caller_saves.
35202
35203 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35204
35205         PR target/39048
35206         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
35207         and soft-fp/t-softfp to tmake_file.
35208         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
35209         (LIBGCC2_TF_CEXT): Define.
35210         (TF_SIZE): Define.
35211
35212 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
35213
35214         PR debug/42977
35215         * cselib.c (n_useless_values): Document handling of debug locs.
35216         (n_useless_debug_values, n_debug_values): New variables.
35217         (new_elt_loc_list): Don't add to debug values, keep count.
35218         (promote_debug_loc): New.
35219         (cselib_reset_table): Zero new variables.
35220         (entry_and_rtx_equal_p): Promote debug locs.
35221         (discard_useless_locs): Increment n_useless_debug_values for
35222         debug values.
35223         (remove_useless_values): Adjust n_useless_values and n_debug_values
35224         with n_useless_debug_values.
35225         (add_mem_for_addr): Promote debug locs.
35226         (cselib_lookup_mem): Likewise.
35227         (cselib_lookup_addr): Renamed to...
35228         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
35229         (cselib_log_lookup): ... this.  Turn into...
35230         (cselib_lookup_addr): ... new wrapper.
35231         (cselib_lookup_from_insn): New.
35232         (cselib_invalidate_regno): Increment n_useless_debug_values for
35233         debug values.
35234         (cselib_invalidate_mem): Likewise.
35235         (cselib_process_insn): Take n_deleted and n_debug_values into
35236         account to guard remove_useless_value call.
35237         (cselib_finish): Zero n_useless_debug_values.
35238         * cselib.h (cselib_lookup_from_insn): Declare.
35239         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
35240         (sched_analyze_2): Likewise.
35241
35242 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
35243
35244         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
35245         functions.
35246         (adjust_mems): Replace narrowing SUBREG of expression containing
35247         just PLUS, MINUS, MULT and ASHIFT of registers and constants
35248         with operations in the narrower mode.
35249
35250         PR debug/43593
35251         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
35252         regs_invalidated_by_call instead all call_used_reg_set registers.
35253
35254 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
35255
35256         PR middle-end/43430
35257         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
35258         pointer comparisons with types_compatible_p.
35259         * tree-vect-stmts.c (vectorizable_call): Same.
35260         (vectorizable_condition): Same.
35261
35262 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35263
35264         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
35265         stack check if the mask would be zero.
35266
35267 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
35268             Jack Howarth  <howarth@bromo.med.uc.edu>
35269
35270         * tree-profile.c (tree_init_ic_make_global_vars): Make static
35271         variables TLS.
35272
35273 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
35274
35275         PR other/25232
35276         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
35277         and __unordtf2.
35278         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
35279         Include ___unordxf2 and ___unordtf2.
35280         * config/i386/libgcc-glibc.ver: Do not define inheritance from
35281         GCC_4.4.0 here.
35282
35283 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
35284
35285         * config/lm32/t-lm32: New file.
35286         * config.gcc: Use the above file when targetting lm32.
35287
35288 2010-03-28  Duncan Sands  <baldrick@free.fr>
35289
35290         * Makefile.in (PLUGIN_HEADERS): Add except.h.
35291
35292 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
35293
35294         PR middle-end/43431
35295         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
35296         Improve vectorization cost model diagnostic.
35297
35298 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
35299
35300         PR middle-end/43436
35301         * tree-vect-data-refs.c (vect_analyze_data_refs): When
35302         compute_data_dependences_for_loop returns false, early exit
35303         and output an extra diagnostic for the failed data reference
35304         analysis.
35305
35306 2010-03-29  Richard Guenther  <rguenther@suse.de>
35307
35308         PR tree-optimization/43560
35309         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
35310         (can_sm_ref_p): Treat stores to readonly locations as trapping.
35311
35312 2010-03-29  Jie Zhang  <jie@codesourcery.com>
35313
35314         PR 43564
35315         * toplev.c (process_options): Set optimization_default_node
35316         and optimization_current_node.
35317         * opts.c (decode_options): Don't set optimization_default_node
35318         and optimization_current_node.
35319
35320 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
35321
35322         * config/rtems.h: Abandon -qrtems_debug.
35323
35324 2010-03-28  Jan Hubicka  <jh@suse.cz>
35325
35326         PR tree-optimization/43505
35327         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
35328         map should not be copied.
35329
35330 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35331
35332         PR middle-end/41674
35333         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
35334         cdtors, set DECL_PRESERVE_P.
35335         * ipa.c (cgraph_externally_visible_p): Return true if declaration
35336         should be preseved.
35337
35338 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
35339
35340         PR tree-optimization/43528
35341         * stor-layout.c (place_field): Check that constant fits into
35342         unsigned HWI when skipping calculation of MS bitfield layout.
35343
35344 2010-03-27  Jan Hubicka  <jh@suse.cz>
35345
35346         PR middle-end/43391
35347         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
35348         notice_global_symbol work.
35349
35350 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
35351
35352         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
35353         instead of dwarf2out_decl.
35354         (struct var_loc_node): Remove section_label field.
35355         (dwarf2out_function_decl): New function.
35356         (dwarf2out_var_location): Don't set section_label field.
35357         (dwarf2out_begin_function): Don't empty decl_loc_table here.
35358
35359 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
35360
35361         PR tree-optimization/43544
35362         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
35363         First argument for builtin vectorized function hook is now a
35364         tree to be able to distinguish between machine specific and
35365         standard builtins.
35366         * targhooks.c (default_builtin_vectorized_function): Ditto.
35367         * targhooks.h (default_builtin_vectorized_function): Ditto.
35368         * target.h (struct gcc_target): Ditto.
35369         * tree-vect-stmts.c (vectorizable_function): Ditto.
35370         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
35371         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
35372         Ditto.
35373
35374 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
35375
35376         PR c/43381
35377         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
35378         nested binding iff it is a FUNCTION_DECL.
35379         (store_parm_decls_newstyle): Pass nested=true to bind for
35380         FUNCTION_DECLs amongst parameters.
35381
35382 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
35383
35384         * var-tracking.c (vt_expand_loc_callback): Don't run
35385         cselib_expand_value_rtx_cb in dummy mode if
35386         cselib_dummy_expand_value_rtx_cb returned false.
35387
35388         * var-tracking.c (emit_note_insn_var_location): For one part
35389         notes with offset 0, don't add EXPR_LIST around the location.
35390         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
35391         add_location_or_const_value_attribute): Adjust for that change.
35392
35393         PR debug/43540
35394         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
35395         into first operand and location into second.
35396         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
35397         dw_cfi_oprnd_loc for DW_CFA_expression.
35398         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
35399         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
35400         assume first argument is regnum and second argument is location.
35401
35402 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
35403
35404         PR target/42113
35405         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
35406         of scratch register to DImode.  Split to DImode comparison operator.
35407         Use SImode subreg of scratch register in the multiplication.
35408         (*cmp_sadd_sidi): Ditto.
35409         (*cmp_ssub_si): Ditto.
35410         (*cmp_ssub_sidi): Ditto.
35411
35412 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
35413
35414         PR target/43524
35415         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
35416         Remove invalid assert and wrong comment.
35417
35418 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
35419
35420         PR debug/43516
35421         * flags.h (final_insns_dump_p): New extern.
35422         * final.c (final_insns_dump_p): New variable.
35423         (rest_of_clean_state): Set it before -fdump-final-insns=
35424         dumping, clear afterwards.
35425         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
35426         MEM_ALIAS_SET on MEMs.
35427
35428 2010-03-26  David S. Miller  <davem@davemloft.net>
35429
35430         * configure.ac: Fix sparc GOTDATA_OP bug check.
35431         * configure: Rebuild.
35432
35433 2010-03-26  Alan Modra  <amodra@gmail.com>
35434
35435         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
35436
35437 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35438
35439         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
35440         TLS_SECTION_ASM_FLAG.
35441
35442 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
35443
35444         PR bootstrap/43511
35445         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
35446         Clear first_function_block_is_cold.
35447
35448         PR c/43385
35449         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
35450         argument if the argument is truth_value_p.
35451
35452 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
35453
35454         * config/rs6000/constraints.md: Update copyright year for my changes.
35455
35456         PR target/43484
35457         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
35458         used in reg+reg addressing, swap registers.
35459
35460 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
35461
35462         PR debug/43293
35463         * target.h (struct gcc_target): Add code_end hook.
35464         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
35465         if not yet defined.
35466         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
35467         * toplev.c (compile_file): Call targetm.asm_out.code_end
35468         hook before unwind info/debug info output.
35469         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
35470         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
35471         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
35472         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
35473         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
35474         * config/i386/i386.c (ix86_file_end): Renamed to...
35475         (ix86_code_end): ... this.  Make static.  Don't call
35476         file_end_indicate_exec_stack.  Emit unwind info using
35477         final_start_function/final_end_function.
35478         (darwin_x86_file_end): Remove.
35479         (TARGET_ASM_CODE_END): Define.
35480         * config/i386/i386.h (TARGET_ASM_FILE_END,
35481         NEED_INDICATE_EXEC_STACK): Don't define.
35482         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
35483         (TARGET_ASM_FILE_END): Define to darwin_file_end.
35484         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
35485         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
35486
35487         PR target/43498
35488         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
35489         at the beginning and final_end_function at the end.
35490         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
35491
35492 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35493
35494         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
35495         and Sun as TLS syntax.
35496         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
35497         * configure: Regenerate.
35498         * config.in: Regenerate.
35499         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
35500         (default_elf_asm_named_section): Use it.
35501         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
35502         (i386_output_dwarf_dtprel): Likewise.
35503         (output_addr_const_extra): Likewise.
35504         (output_pic_addr_const): Lowercase @GOTTPOFF.
35505         (output_addr_const_extra): Likewise.
35506         (output_pic_addr_const): Lowercase @GOTNTPOFF.
35507         (output_addr_const_extra): Likewise.
35508         (output_pic_addr_const): Lowercase @INDNTPOFF.
35509         (output_addr_const_extra): Likewise.
35510         (output_pic_addr_const): Lowercase @NTPOFF.
35511         (output_addr_const_extra): Likewise.
35512         (output_pic_addr_const): Lowercase @TPOFF.
35513         (output_addr_const_extra): Likewise.
35514         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
35515         (*tls_global_dynamic_64): Likewise.
35516         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
35517         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
35518
35519         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
35520         (ASM_OUTPUT_TLS_COMMON): Use it.
35521         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
35522
35523         PR target/38118
35524         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
35525         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
35526         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
35527         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
35528         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
35529         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
35530
35531 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35532
35533         * config/i386/i386.c (override_options): Don't accept
35534         -mtls-dialect=sun any longer.
35535         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
35536         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
35537         (*tls_local_dynamic_base_32_sun): Likewise.
35538         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
35539
35540 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
35541
35542         PR debug/43508
35543         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
35544         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
35545
35546         PR debug/43479
35547         * ira.c (adjust_cleared_regs): New function.
35548         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
35549
35550         PR debug/19192
35551         PR debug/43479
35552         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
35553         from gimple_block.
35554         * expr.c (expand_expr_real): Restore previous
35555         curr_insn_source_location and curr_insn_block after
35556         expand_expr_real_1 call.
35557         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
35558         instead of expand_expr_real_1.
35559
35560 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
35561
35562         PR rtl-optimization/43413
35563         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
35564         hard regs too.
35565
35566 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
35567
35568         PR target/43348
35569         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
35570         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
35571
35572 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
35573
35574         * config/i386/i386.c (ix86_target_string): Add -mfma.
35575         Fix a typo in comment.
35576
35577 2010-03-22  Mike Stump  <mikestump@comcast.net>
35578
35579         PR target/23071
35580         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
35581         Don't overly align based upon packed packed fields.
35582
35583 2010-03-22  Jason Merrill  <jason@redhat.com>
35584
35585         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
35586         Use () rather than [], and move before the element type.
35587
35588 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35589
35590         * doc/configfiles.texi (Configuration Files): Removed
35591         fixinc/Makefile*, intl/Makefile.*.
35592         * doc/makefile.texi: Fixed markup. Abstract from version
35593         control system used.
35594         (Makefile): Removed obsolete java/parse.y example.
35595         * doc/sourcebuild.texi: Likewise.
35596         (Top Level): Added config, gnattools, libdecnumber, libgcc,
35597         libgomp, libssp.  Removed fastjar.
35598         (Miscellaneous Docs): Clarify location.
35599         Added COPYING3, COPYING3.LIB.
35600         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
35601
35602 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35603
35604         PR target/38085
35605         * config/i386/i386.c (x86_function_profiler)
35606         [!NO_PROFILE_COUNTERS]: Fix typo.
35607         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
35608         instead of callq.
35609
35610 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
35611             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35612
35613         * doc/sourcebuild.texi (Test Directives): Split into six
35614         subsections, with most of the current text in new subsections
35615         Directives, Selectors, and Final Actions.
35616         (Directives): Split list of test directives into multiple
35617         subsubsections.
35618         (Selectors): Describe use and syntax of selectors.
35619         (Effective-Target Keywords): Describe all existing keywords.
35620         (Add Options): Describe features for dg-add-options.
35621         (Require Support): Describe variants of dg-require-support.
35622         (Final Actions): Describe commands to use in dg-final.
35623
35624 2010-03-22  Michael Matz  <matz@suse.de>
35625
35626         PR middle-end/43475
35627         * recog.c (validate_replace_rtx_group): Replace also in
35628         REG_EQUAL and REG_EQUIV notes.
35629
35630 2010-03-22  Richard Guenther  <rguenther@suse.de>
35631
35632         PR tree-optimization/43390
35633         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
35634         sure vector extracts are type correct.
35635
35636 2010-03-22  Richard Guenther  <rguenther@suse.de>
35637
35638         PR middle-end/40106
35639         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
35640         x * sqrt (x) even when optimizing for size if the target
35641         has native support for sqrt.
35642
35643 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
35644
35645         * varasm.c (make_decl_rtl_for_debug): Also clear
35646         flag_mudflap for the duration of make_decl_rtl call.
35647
35648         PR debug/43443
35649         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
35650         locs from preserved VALUEs.
35651
35652 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35653
35654         PR middle-end/42718
35655         * pa.md (movmemsi): Set align to one if zero.
35656         (movmemdi): Likewise.
35657
35658 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
35659
35660         PR target/42321
35661         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
35662         with their corresponding prologue pushes.
35663
35664 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
35665
35666         PR target/43156
35667         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
35668         at the begining or end.
35669         (spu_expand_epilogue): Likewise.
35670
35671 2010-03-20  Richard Guenther  <rguenther@suse.de>
35672
35673         PR rtl-optimization/43438
35674         * combine.c (make_extraction): Properly zero-/sign-extend an
35675         extraction of the low part of a CONST_INT.  Also handle
35676         CONST_DOUBLE.
35677
35678 2010-03-19  Mike Stump  <mikestump@comcast.net>
35679
35680         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
35681         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
35682         (override_options): Use SUBTARGET32_DEFAULT_CPU.
35683
35684 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35685
35686         PR c/43211
35687         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
35688         an error.
35689
35690 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
35691
35692         PR rtl-optimization/42258
35693         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
35694         use that may match DEF.
35695
35696         PR target/40697
35697         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
35698         the cost of loading the constant rather than assuming
35699         COSTS_N_INSNS (1).
35700         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
35701         outer code is AND, do the same tests as the andsi3 expander and
35702         return COSTS_N_INSNS (1) if and is cheap.
35703
35704         * optabs.c (avoid_expensive_constant): Fix formatting.
35705
35706 2010-03-19  Michael Matz  <matz@suse.de>
35707
35708         PR c++/43116
35709         * attribs.c (decl_attributes): When rebuilding a function pointer
35710         type use the same qualifiers as the original pointer type.
35711
35712 2010-03-19  Martin Jambor  <mjambor@suse.cz>
35713
35714         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
35715         and is_gimple_ip_invariant_address.
35716
35717 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35718
35719         Revert
35720         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35721
35722         * config/arm/arm.c (arm_override_options): Turn off
35723         flag_dwarf2_cfi_asm for AAPCS variants.
35724
35725 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35726
35727         PR target/43399
35728         * config/arm/arm.c (emit_multi_reg_push): Update comments.
35729         Use PRE_MODIFY instead of PRE_DEC.
35730         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
35731         (vfp_emit_fstmd): Likewise.
35732
35733 2010-03-19  Michael Matz  <matz@suse.de>
35734
35735         PR target/43305
35736         * builtins.c (expand_builtin_interclass_mathfn,
35737         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
35738         if that fails.
35739
35740 2010-03-19  Richard Guenther  <rguenther@suse.de>
35741
35742         PR tree-optimization/43415
35743         * tree-ssa-pre.c (phi_translate): Split out worker to ...
35744         (phi_translate_1): ... this.
35745         (phi_translate): Move all caching here.  Cache all NARY
35746         and REFERENCE translations.
35747
35748 2010-03-19  David S. Miller  <davem@davemloft.net>
35749
35750         With help from Eric Botcazou.
35751         * config/sparc/sparc.c: Include dwarf2out.h.
35752         (emit_pic_helper): Delete.
35753         (pic_helper_symbol_name): Delete.
35754         (pic_helper_emitted_p): Delete.
35755         (pic_helper_needed): New.
35756         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
35757         (get_pc_thunk_name): New.
35758         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
35759         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
35760         Set pic_helper_needed to true.  Don't call emit_pic_helper.
35761         (sparc_expand_prologue): Update load_pic_register call.
35762         (sparc_output_mi_thunk): Likewise.
35763         (sparc_file_end): Emit a hidden comdat symbol for the PIC
35764         thunk if possible.  Output CFI information as needed.
35765
35766 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
35767             Jack Howarth  <howarth@bromo.med.uc.edu>
35768
35769         PR target/36399
35770         * config/i386/i386.h: Fix ABI on darwin x86-32.
35771
35772 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
35773
35774         * tree.h: Declare make_decl_rtl_for_debug.
35775         * varasm.c (make_decl_rtl_for_debug): New.
35776         * dwarf2out.c (rtl_for_decl_location): Call it.
35777         * cfgexpand.c (expand_debug_expr): Call it.
35778
35779 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
35780
35781         PR bootstrap/43399
35782         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
35783         mem_mode.
35784
35785         PR bootstrap/43403
35786         * var-tracking.c (vt_init_cfa_base): Do nothing if
35787         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
35788
35789 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
35790
35791         PR debug/42873
35792         * var-tracking.c (canonicalize_vars_star): New.
35793         (dataflow_post_merge_adjust): Use it.
35794
35795 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
35796
35797         PR debug/43058
35798         * var-tracking.c (non_suitable_const): New function.
35799         (add_uses): For DEBUG_INSNs with constants, don't record any
35800         value, instead just the constant value itself.
35801         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
35802         is not VAR_LOC_UNKNOWN_P, set var to the constant.
35803         (emit_notes_in_bb): Likewise.
35804         (emit_note_insn_var_location): For onepart variables if
35805         cur_loc is a VOIDmode constant, use DECL_MODE.
35806
35807 2010-03-18  Martin Jambor  <mjambor@suse.cz>
35808
35809         PR middle-end/42450
35810         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
35811         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
35812         all non-clones.  Moved call redirection...
35813         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
35814         (cgraph_materialize_all_clones): Dispose of all
35815         combined_args_to_skip bitmaps.
35816         (verify_cgraph_node): Do not check for edges pointing to wrong
35817         nodes in inline clones.
35818         * tree-inline.c (copy_bb): Call
35819         cgraph_redirect_edge_call_stmt_to_callee.
35820         * ipa.c (cgraph_remove_unreachable_nodes): Call
35821         cgraph_node_remove_callees even when there are used clones.
35822
35823 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
35824
35825         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
35826
35827 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
35828
35829         PR target/43383
35830         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
35831         for 32bit.
35832
35833 2010-03-18  Michael Matz  <matz@suse.de>
35834
35835         PR middle-end/43419
35836         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
35837         into sqrt(x) if we need to preserve signed zeros.
35838
35839 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
35840             Eric Botcazou  <ebotcazou@adacore.com>
35841
35842         PR rtl-optimization/43360
35843         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
35844         note if we don't know its invariant status.
35845
35846 2010-03-18  Michael Matz  <matz@suse.de>
35847
35848         PR tree-optimization/43402
35849         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
35850         PHI chains of ssa names registered for update.
35851
35852 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
35853
35854         PR target/42427
35855         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
35856         non-offsettable and pre_modify update addressing.
35857         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
35858         and "2" alternatives "#".
35859         (*movdd_softfloat32): Make all alternatives "#";
35860         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
35861         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
35862         (*movdf_softfloat32): Make all alternatives "#";
35863         (movdi): Use the new DIFD mode iterator to create a common splitter
35864         for movdi, movdf and movdd patterns.
35865
35866 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
35867
35868         * common.opt (dumpdir): Remove redundant tab.
35869
35870 2010-03-17  Martin Jambor  <mjambor@suse.cz>
35871
35872         PR tree-optimization/43347
35873         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
35874         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
35875
35876 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
35877
35878         PR rtl-optimization/42216
35879         * regrename.c (create_new_chain): New function, broken out from...
35880         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
35881         appending a use to an empty chain.
35882         (build_def_use): Remove previous changes that convert OP_INOUT to
35883         OP_OUT operands; instead detect the case where an OP_INOUT operand
35884         uses a previously untracked register and create an empty chain for it.
35885
35886 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35887
35888         * doc/extend.texi (Function Attributes): Rewrite unfinished
35889         sentence in ms_abi documentation.
35890
35891 2010-03-17  Alan Modra  <amodra@gmail.com>
35892
35893         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
35894         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
35895         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
35896         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
35897
35898 2010-03-16  Richard Henderson  <rth@redhat.com>
35899
35900         PR middle-end/43365
35901         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
35902         (lower_try_finally): Save and restore eh_seq around the expansion
35903         of the try-finally.
35904
35905 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
35906
35907         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
35908         statements before splitting block.
35909
35910 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35911
35912         * doc/sourcebuild.texi (Testsuites): Fix markup.
35913         Use pathnames relative to gcc/testsuite.
35914         (Test Directives): Move description of how timeout is determined.
35915         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
35916         (C Tests): Correct gcc.misc-tests directory.
35917         Framework tests now live in gcc.test-framework.
35918
35919 2010-03-16  Richard Guenther  <rguenther@suse.de>
35920
35921         PR middle-end/43379
35922         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
35923         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
35924
35925 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
35926             Alexandre Oliva  <aoliva@redhat.com>
35927
35928         PR tree-optimization/42917
35929         * lambda-code.c (remove_iv): Skip debug statements.
35930         (lambda_loopnest_to_gcc_loopnest): Likewise.
35931         (not_interesting_stmt): Debug statements are not interesting.
35932
35933 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
35934
35935         PR debug/43051
35936         PR debug/43092
35937         * cselib.c (cselib_preserve_constants,
35938         cfa_base_preserved_val): New static variables.
35939         (preserve_only_constants): New function.
35940         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
35941         clear its REG_VALUES.  If cselib_preserve_constants, don't
35942         empty the whole hash table, but preserve there VALUEs with constants,
35943         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
35944         (cselib_preserve_cfa_base_value): New function.
35945         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
35946         (cselib_init): Change argument to int bitfield.  Set
35947         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
35948         is in it.
35949         (cselib_finish): Clear cselib_preserve_constants and
35950         cfa_base_preserved_val.
35951         * cselib.h (enum cselib_record_what): New enum.
35952         (cselib_init): Change argument to int.
35953         (cselib_preserve_cfa_base_value): New prototype.
35954         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
35955         * dse.c (dse_step1): Likewise.
35956         * cfgcleanup.c (thread_jump): Likewise.
35957         * sched-deps.c (sched_analyze): Likewise.
35958         * gcse.c (local_cprop_pass): Likewise.
35959         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
35960         If FN is non-NULL, call the callback always and whenever it returns
35961         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
35962         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
35963         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
35964         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
35965         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
35966         * var-tracking.c: Include recog.h.
35967         (bb_stack_adjust_offset): Remove.
35968         (vt_stack_adjustments): Don't call it, instead just gather the
35969         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
35970         (adjust_stack_reference): Remove.
35971         (compute_cfa_pointer): New function.
35972         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
35973         (struct adjust_mem_data): New type.
35974         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
35975         functions.
35976         (get_address_mode): New function.
35977         (replace_expr_with_values): Use it.
35978         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
35979         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
35980         (adjust_sets): Remove.
35981         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
35982         Use get_address_mode.
35983         (get_adjusted_src): Remove.
35984         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
35985         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
35986         (add_with_sets): Don't call adjust_sets.
35987         (fp_setter, vt_init_cfa_base): New functions.
35988         (vt_initialize): Change return type to bool.  Move most of pool etc.
35989         initialization to the beginning of the function from end.  Pass
35990         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
35991         If !frame_pointer_needed, call vt_stack_adjustment before mos
35992         vector is filled, call vt_init_cfa_base if argp/framep has been
35993         eliminated to sp.  If frame_pointer_needed and argp/framep has
35994         been eliminated to hard frame pointer, set
35995         hard_frame_pointer_adjustment and call vt_init_cfa_base after
35996         encountering fp setter in the prologue.  For MO_ADJUST, call
35997         log_op_type before pusing the op into mos vector, not afterwards.
35998         Call adjust_insn before cselib_process_insn/add_with_sets,
35999         call cancel_changes (0) afterwards.
36000         (variable_tracking_main_1): Adjust for vt_initialize calling
36001         vt_stack_adjustments and returning whether it succeeded or not.
36002
36003 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
36004
36005         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
36006         debug statements.
36007
36008 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
36009
36010         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
36011         has been set.
36012         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
36013         drap_reg has not been set.
36014
36015 2010-03-15  Michael Matz  <matz@suse.de>
36016
36017         PR middle-end/43300
36018         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
36019         use it to expand block copies.
36020         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
36021         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
36022         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
36023
36024 2010-03-15  Richard Guenther  <rguenther@suse.de>
36025
36026         PR tree-optimization/43367
36027         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
36028         elimination check.
36029
36030 2010-03-15  Richard Guenther  <rguenther@suse.de>
36031
36032         PR tree-optimization/43317
36033         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
36034
36035 2010-03-15  Martin Jambor  <mjambor@suse.cz>
36036
36037         PR tree-optimization/43141
36038         * tree-sra.c (create_abstract_origin): New function.
36039         (modify_function): Call create_abstract_origin.
36040
36041 2010-03-15  Chris Demetriou  <cgd@google.com>
36042
36043         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
36044         wasn't copied.
36045
36046 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36047
36048         PR middle-end/43354
36049         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
36050         call insert_out_of_ssa_copy for default definitions.
36051
36052 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36053
36054         * graphite-clast-to-gimple.c (my_long_long): Defined.
36055         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
36056         * graphite-sese-to-poly.c (my_long_long): Defined.
36057         (scop_ivs_can_be_represented): Use it.
36058
36059 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36060
36061         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
36062         graphite-max-bbs-per-function, and loop-block-tile-size.
36063         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
36064         with "maximum".
36065         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
36066
36067 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36068
36069         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
36070         forward declaration.
36071         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
36072         (add_upper_bounds_from_estimated_nit): New.
36073         (build_loop_iteration_domains): Use it.
36074
36075 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36076
36077         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
36078
36079 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36080
36081         PR middle-end/43306
36082         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
36083         should be an INTEGER_CST.  Also handle CASE_CONVERT.
36084
36085 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36086
36087         * graphite.c (graphite_initialize): To bound the number of bbs per
36088         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
36089         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
36090         * doc/invoke.texi: Document it.
36091
36092 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36093
36094         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
36095         * graphite-sese-to-poly.h (build_poly_scop): Same.
36096
36097 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36098
36099         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
36100         the number of parameters in the scop.  Use as an upper bound
36101         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
36102         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
36103         * doc/invoke.texi: Document it.
36104
36105 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
36106
36107         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
36108         * doc/c-tree.texi: Remove.
36109         * doc/generic.texi: Merge c-tree.texi here.
36110         * doc/gccint.texi (Trees): Remove menu entry.
36111         (c-tree.texi): Remove @include.
36112         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
36113         * doc/languages.texi (Reading RTL): Ditto.
36114
36115 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
36116
36117         PR target/42869
36118         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
36119
36120 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
36121
36122         PR middle-end/42431
36123         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
36124         code added to work around reload clobbering CONST insns.
36125
36126 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
36127
36128         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
36129         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
36130         (cselib_preserve_only_values): Remove retain argument, don't
36131         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
36132         * cselib.h (cselib_preserve_only_values): Remove retain argument.
36133         * var-tracking.c (micro_operation): Move insn field before union.
36134         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
36135         (struct variable_tracking_info_def): Remove n_mos field, change
36136         mos into a vector of micro_operations.
36137         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
36138         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
36139         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
36140         changing into a vector.
36141         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
36142         come before all other uops generated by add_stores.
36143         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
36144         argument removal.
36145         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
36146         a vector.  Run just one pass over the bbs instead of separate counting
36147         and computation phase.
36148         (vt_finalize): Free VTI (bb)->mos vector instead of array.
36149
36150         PR debug/43329
36151         * tree-inline.c (remap_decls): Put old_var rather than origin_var
36152         into *nonlocalized_list vector.
36153         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
36154         even if origin is non-NULL.
36155         (gen_variable_die): Likewise.
36156         (process_scope_var): Don't change origin.
36157         (gen_decl_die): Likewise.
36158         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
36159         before adding new edges instead of after it, fix moving over
36160         debug stmts.
36161
36162 2010-03-11  David S. Miller  <davem@davemloft.net>
36163
36164         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
36165         of four.
36166         * configure: Rebuild.
36167
36168 2010-03-11  Martin Jambor  <mjambor@suse.cz>
36169
36170         PR tree-optimization/43257
36171         * tree.c (assign_assembler_name_if_neeeded): New function.
36172         (free_lang_data_in_cgraph): Assembler name assignment moved to the
36173         above new function.
36174         * tree.h (assign_assembler_name_if_neeeded): Declare.
36175         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
36176         the function if needed.
36177
36178 2010-03-11  Chris Demetriou  <cgd@google.com>
36179
36180         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
36181         include/stdint-gcc.h, and include/stdint.h world-readable.
36182
36183 2010-03-11  Richard Guenther  <rguenther@suse.de>
36184
36185         PR tree-optimization/43255
36186         * tree-vrp.c (process_assert_insertions_for): Do not insert
36187         asserts for trivial conditions.
36188
36189 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36190
36191         PR tree-optimization/43280
36192         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
36193         generation.  Move calculation of size out of the if branch.
36194         (find_bswap): Modify compare number generation.
36195
36196 2010-03-11  Richard Guenther  <rguenther@suse.de>
36197
36198         PR lto/43200
36199         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
36200         (input_gimple_stmt): Fixup handled component types during
36201         operand read.  Also fix up decls in ADDR_EXPRs.
36202
36203 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
36204
36205         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
36206         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
36207
36208 2010-03-10  Jan Hubicka  <jh@suse.cz>
36209
36210         PR c/43288
36211         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
36212         * varasm.c (get_variable_section): Don't do that here...
36213         (make_decl_rtl): ... and here.
36214         (do_assemble_alias): Produce decl RTL.
36215         (assemble_alias): Likewise.
36216
36217 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
36218
36219         PR debug/43290
36220         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
36221         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
36222         of fde->vdrap_reg.
36223         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
36224         (based_loc_descr): Only express drap or vdrap regno based expressions
36225         using DW_OP_fbreg when not optimizing.
36226         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
36227         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
36228         REG_CFA_SET_VDRAP note.
36229
36230 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
36231
36232         PR tree-optimization/43236
36233         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
36234         error in calculation of base address in reverse iteration case.
36235         (generate_builtin): Take number of latch executions if the statement
36236         is in the latch.
36237
36238 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
36239
36240         PR middle-end/42859
36241         * tree-eh.c: Include pointer-set.h.
36242         (lower_eh_dispatch): Filter out duplicate case labels and
36243         remove the unneeded edge when the label is unused.  Return
36244         true when some edges are removed.
36245         (execute_lower_eh_dispatch): When any lowering resulted in
36246         removing an edge, also delete unreachable blocks.
36247
36248 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
36249
36250         PR bootstrap/43287
36251         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
36252         UNSPEC_MACHOPIC_OFFSET.
36253
36254 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
36255
36256         PR target/43294
36257         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
36258         (m68k_delegitimize_address): New function.
36259
36260 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
36261
36262         PR debug/43299
36263         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
36264
36265         PR debug/43299
36266         * var-tracking.c (adjust_sets): New function.
36267         (count_with_sets, add_with_sets): Use it.
36268         (get_adjusted_src): New inline function.
36269         (add_stores): Use it.
36270
36271         PR debug/43304
36272         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
36273         call cselib_dummy_expand_value_rtx_cb instead of
36274         cselib_expand_value_rtx_cb.
36275
36276         PR debug/43293
36277         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
36278         * config/i386/i386.c: Include debug.h and dwarf2out.h.
36279         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
36280         and .cfi_endproc around the pic thunks.
36281         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
36282         all queued unwind info register saves are saved before the call.
36283         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
36284         considered as sp-=4 for unwind info and the pop as sp+=4 which
36285         also clobbers dest, but doesn't actually restore it.
36286
36287         PR debug/43290
36288         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
36289         RTX_FRAME_RELATED_P.
36290
36291 2010-03-09  Jie Zhang  <jie@codesourcery.com>
36292
36293         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
36294         whitespaces in output template.
36295
36296 2010-03-09  Jie Zhang  <jie@codesourcery.com>
36297
36298         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
36299         out array boundary.
36300
36301 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
36302
36303         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
36304         builtins.exp in a separate job.
36305
36306 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36307
36308         * graphite-sese-to-poly.c (add_param_constraints): Use
36309         lower_bound_in_type and upper_bound_in_type.
36310
36311 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36312
36313         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
36314         instead of unsigned_type_node.
36315
36316 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36317             Reza Yazdani  <reza.yazdani@amd.com>
36318
36319         PR middle-end/43065
36320         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
36321         on pointer type parameters.
36322
36323 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
36324
36325         PR middle-end/42644
36326         PR middle-end/42130
36327         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
36328         handle conversions from pointer to integers.
36329         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
36330         induction variable, to be able to work with code generated by CLooG.
36331         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
36332         (build_poly_scop): Bail out if we cannot codegen a loop.
36333
36334 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
36335
36336         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
36337         code generation with gloog_error.
36338
36339 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36340
36341         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
36342         Call fold_convert on all the returned values.
36343         (expand_scalar_variables_expr): Pass to
36344         expand_scalar_variables_ssa_name the type of the resulting expression.
36345
36346 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36347
36348         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
36349         ppl_min_for_le_pointset.
36350         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
36351         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
36352
36353 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36354
36355         * graphite-dependences.c (map_into_dep_poly): Removed.
36356         (dependence_polyhedron_1): Use combine_context_id_scat.
36357
36358 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36359
36360         * graphite-poly.h (struct poly_scattering): Add layout documentation.
36361         (struct poly_bb): Same.
36362         (combine_context_id_scat): New.
36363
36364 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36365
36366         PR middle-end/42326
36367         * sese.c (name_defined_in_loop_p): Return false for default
36368         definitions.
36369
36370 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36371
36372         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
36373         and clean up the logic.
36374
36375 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36376
36377         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
36378         early return.
36379
36380 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
36381
36382         * var-tracking.c (remove_cselib_value_chains): Define only for
36383         ENABLE_CHECKING.
36384         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
36385         delete_slot_part, emit_notes_for_differences_1): Don't call
36386         remove_cselib_value_chains here.
36387         (set_slot_part, emit_notes_for_differences_2): Don't call
36388         add_cselib_value_chains here.
36389         (preserved_values): New vector.
36390         (preserve_value): New function.
36391         (add_uses, add_stores, vt_add_function_parameters): Use it
36392         instead of cselib_preserve_value.
36393         (changed_values_stack): New vector.
36394         (check_changed_vars_0): New function.
36395         (check_changed_vars_1, check_changed_vars_2): Use it.
36396         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
36397         changed_values_stack VALUEs.
36398         (vt_emit_notes): For all preserved_values call
36399         add_cselib_value_chains.  If ENABLE_CHECKING call
36400         remove_cselib_value_chains before verifying value_chains is empty.
36401         Initialize and free changed_values_stack.
36402         (vt_initialize): Initialize preserved_values.
36403         (vt_finalize): Free preserved_values.
36404
36405 2010-03-08  Richard Guenther  <rguenther@suse.de>
36406
36407         PR tree-optimization/43269
36408         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
36409         region detection.
36410
36411 2010-03-08  Martin Jambor  <mjambor@suse.cz>
36412
36413         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
36414         (ipa_is_param_called): Removed.
36415         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
36416         (ipa_print_node_params): Do not print the called flag.
36417         (ipa_write_node_info): Do not stream the called flag.
36418         (ipa_read_node_info): Likewise.
36419
36420 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
36421
36422         PR debug/43176
36423         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
36424         * cselib.c (struct expand_value_data): Add dummy field.
36425         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
36426         dummy to false.
36427         (cselib_dummy_expand_value_rtx_cb): New function.
36428         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
36429         any rtl.
36430         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
36431         * var-tracking.c: Include pointer-set.h.
36432         (variable): Change n_var_parts to char from int.  Add
36433         cur_loc_changed and in_changed_variables fields.
36434         (variable_canonicalize): Remove.
36435         (shared_var_p): New inline function.
36436         (unshare_variable): Maintain cur_loc_changed and
36437         in_changed_variables fields.  If var was in changed_variables,
36438         replace it there with new_var.  Just copy cur_loc instead of
36439         resetting it to something else.
36440         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
36441         (dataflow_set_union): Don't call variable_canonicalize.
36442         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
36443         of their DEBUG_EXPR_TREE_DECLs.
36444         (canonicalize_loc_order_check): Verify that cur_loc is NULL
36445         and in_changed_variables and cur_loc_changed is false.
36446         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
36447         and cur_loc_changed.  Don't update cur_loc here.
36448         (variable_merge_over_src): Don't call variable_canonicalize.
36449         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
36450         removing loc that is equal to cur_loc, clear cur_loc,
36451         set cur_loc_changed and ensure variable_was_changed is called.
36452         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
36453         compare pointers in cur_loc check, if it is equal to loc,
36454         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
36455         (variable_different_p): Remove compare_current_location argument,
36456         don't compare cur_loc.
36457         (dataflow_set_different_1): Adjust variable_different_p caller.
36458         (variable_was_changed): If dv had some var in changed_variables
36459         already, reset in_changed_variables flag for it and propagate
36460         cur_loc_changed over to the new variable.  On empty var
36461         always set cur_loc_changed.  Set in_changed_variables on whatever
36462         var is added to changed_variables.
36463         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
36464         Use shared_var_p.  When removing loc that is equal to cur_loc,
36465         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
36466         end, don't set it to something else, just call variable_was_changed.
36467         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
36468         loc being removed, clear cur_loc and set cur_loc_changed.
36469         Set cur_loc_changed if all locations have been removed.
36470         (struct expand_loc_callback_data): New type.
36471         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
36472         allocated.  Always create SUBREGs if simplify_subreg failed.
36473         Prefer to use cur_loc, when that fails and still in
36474         changed_variables (and seen first time) recompute it.  Set
36475         cur_loc_changed of variables which had to change cur_loc and
36476         compute elcd->cur_loc_changed if any of the subexpressions used
36477         had to change cur_loc.
36478         (vt_expand_loc): Adjust to pass arguments in
36479         expand_loc_callback_data structure.
36480         (vt_expand_loc_dummy): New function.
36481         (emitted_notes): New variable.
36482         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
36483         that weren't used for any other decl in current
36484         emit_notes_for_changes call call vt_expand_loc_dummy to update
36485         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
36486         first loc_chain location if NULL before.  Always use just
36487         cur_loc instead of first loc_chain location.  When cur_loc_changed
36488         is false, when not --enable-checking=rtl just don't emit any note.
36489         When rtl checking, compute the note and assert it is the same
36490         as previous note.  Clear cur_loc_changed and in_changed_variables
36491         at the end before removing from changed_variables.
36492         (check_changed_vars_3): New function.
36493         (emit_notes_for_changes): Traverse changed_vars to call
36494         check_changed_vars_3 on each changed var.
36495         (emit_notes_for_differences_1): Clear cur_loc_changed and
36496         in_changed_variables.  Recompute cur_loc of new_var.
36497         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
36498         (vt_emit_notes): Initialize and destroy emitted_notes.
36499
36500 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
36501
36502         PR rtl-optimization/42220
36503         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
36504         Use verify_reg_tracked to determine if we should use OP_OUT rather
36505         than OP_INOUT.
36506         (build_def_use): If we see an in-out operand for a register that we
36507         know nothing about, treat is an output if possible, fail the block if
36508         not.
36509
36510 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
36511
36512         PR debug/42897
36513         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
36514         permanently.
36515
36516 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
36517
36518         PR debug/42897
36519         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
36520         uses of relevant DEFs that are dead outside the loop too.
36521
36522 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
36523
36524         * var-tracking.c (dataflow_set_merge): Swap src and src2.
36525         Reverted:
36526         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
36527         PR debug/41371
36528         * var-tracking.c (values_to_unmark): New variable.
36529         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
36530         values_to_unmark vector.  Moved body to...
36531         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
36532         instead queue it into values_to_unmark vector.
36533         (vt_find_locations): Free values_to_unmark vector.
36534
36535 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
36536
36537         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
36538         (site.exp): Export them when plugins are enabled.
36539
36540 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
36541
36542         PR middle-end/42326
36543         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
36544         that contain scevs.
36545         (chrec_fold_multiply): Same.
36546
36547 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
36548
36549         PR c/43248
36550         * c-decl.c (build_compound_literal): Return early if init is
36551         an error_mark_node.
36552
36553 2010-03-04  Martin Jambor  <mjambor@suse.cz>
36554
36555         PR tree-optimization/43164
36556         PR tree-optimization/43191
36557         * tree-sra.c (type_consists_of_records_p): Reject records with
36558         zero-size bit-fields at the end.
36559
36560 2010-03-04  Mike Stump  <mikestump@comcast.net>
36561
36562         * Makefile.in (TAGS): Remove *.y.
36563
36564 2010-03-04  Richard Guenther  <rguenther@suse.de>
36565
36566         PR tree-optimization/40761
36567         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
36568         in reverse order.
36569         (my_rev_post_order_compute): New function.
36570         (init_pre): Call it.
36571
36572 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
36573
36574         PR middle-end/43209
36575         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
36576         decrease the cost of an IV candidate when the cost is infinite.
36577
36578 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36579
36580         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
36581         Use '3DNow!' for the extension of that name, ensure normal space
36582         after the string.
36583         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
36584
36585 2010-03-03  Jeff Law  <law@redhat.com>
36586
36587         * PR middle-end/32693
36588         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
36589         than gen_rtx_SUBREG.
36590         (extract_bit_field_1): Likewise.
36591
36592 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
36593
36594         * doc/sourcebuild.texi (Test directives): Document that arguments
36595         include-opts and exclude-opts are now optional for dg-skip-if,
36596         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
36597
36598 2010-03-03  Jason Merrill  <jason@redhat.com>
36599
36600         PR c++/12909
36601         * cgraph.h (varpool_node): Add extra_name field.
36602         * varpool.c (varpool_extra_name_alias): New.
36603         (varpool_assemble_decl): Emit extra name aliases.
36604         (varpool_mark_needed_node): Look past an extra name alias.
36605         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
36606         * lto-streamer-in.c (lto_input_tree): Read it.
36607         * lto-streamer-out.c (output_unreferenced_globals): Write it.
36608
36609 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
36610
36611         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
36612         (sparc*-*-solaris2*): ...this.
36613
36614 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
36615
36616         PR debug/43229
36617         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
36618         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
36619         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
36620         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
36621
36622         PR debug/43237
36623         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
36624         fallthrough to default handling, just with want_address 0 instead of 2.
36625         For single element lists, add_AT_loc directly, otherwise create an
36626         artificial variable DIE and stick location list to it.
36627
36628         PR debug/43177
36629         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
36630         (VAL_EXPR_HAS_REVERSE): Define.
36631         (reverse_op): New function.
36632         (add_stores): For reversible operations add an extra MO_VAL_USE.
36633
36634 2010-03-02  Jason Merrill  <jason@redhat.com>
36635
36636         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
36637
36638 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
36639
36640         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
36641         (sparc64-*-linux*): Likewise.
36642         (sparc64-*-solaris2*): Include assembler files before linker ones.
36643         (sparc-*-solaris2*): Simplify and reorder to match previous case.
36644         * config/sparc/gas.h: Delete.
36645         * config/sparc/sol2-64.h: Add copyright notice.
36646         * config/sparc/sol2-gas-bi.h: Likewise.
36647         * config/sparc/sol2-gld.h: Likewise.
36648         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
36649         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
36650         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
36651         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
36652         (sparc_elf_asm_named_section): Rename into...
36653         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
36654
36655 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
36656
36657         * config/alpha/alpha.c (override_options): Fix -mtune error message.
36658
36659 2010-03-02  Jeff Law  <law@redhat.com>
36660
36661         PR middle-end/42431
36662         * reload1.c (rtx_p, substitute_stack): Declare.
36663         (substitute): Record addresses of changed rtxs.
36664         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
36665         Restore the original rtx when complete.
36666         (reload): Free subsitute_stack when complete.
36667
36668 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
36669
36670         * doc/gccint.texi (menu): Add Testsuites as a chapter.
36671         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
36672         new chapter.
36673         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
36674         LTO Testing, gcov Testing, profopt Testing, compat Testing,
36675         Torture Tests): Change from subsection to section.
36676
36677 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
36678             Steven Bosscher  <steven@gcc.gnu.org>
36679
36680         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
36681         instead of bb.
36682
36683 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
36684
36685         PR middle-end/42640
36686         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
36687         the assignment from the new induction variable to the assignment
36688         of the value from the original loop PHI function.
36689
36690 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
36691             Daniel Jacobowitz  <dan@codesourcery.com>
36692
36693         * doc/sourcebuild.texi (Test directives): Clarify options to
36694         dg-skip-if.
36695
36696 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36697
36698         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
36699         Disable cfi directives unless GCC and gas agree on using read-only
36700         .eh_frame sections for 64-bit.
36701         * configure: Regenerate.
36702
36703 2010-03-01  Richard Guenther  <rguenther@suse.de>
36704
36705         PR tree-optimization/43220
36706         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
36707         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
36708
36709 2010-03-01  Richard Guenther  <rguenther@suse.de>
36710             Martin Jambor  <mjambor@suse.cz>
36711
36712         PR middle-end/41250
36713         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
36714         gimplified parameters.
36715
36716 2010-03-01  Christian Bruel  <christian.bruel@st.com>
36717
36718         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
36719
36720 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
36721
36722         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
36723
36724 2010-03-01  Richard Guenther  <rguenther@suse.de>
36725
36726         PR middle-end/43213
36727         * expr.c (expand_assignment): Use the alias-oracle to tell
36728         if the rhs aliases the result decl.
36729
36730 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36731
36732         PR pch/14940
36733         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
36734         to sol_gt_pch_get_address.
36735         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
36736         64-bit, SPARC and x86.
36737         (sol_gt_pch_get_address): New function.
36738
36739 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
36740
36741         * toplev.h (inform_n, error_n): Declare.
36742         * diagnostic.c (inform_n, error_n): New function.
36743
36744 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
36745
36746         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
36747         has no rtl yet when processing local_decls, queue it and recheck
36748         if deferred stack allocation hasn't assigned it rtl.
36749
36750 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
36751
36752         * config/sh/sh.c (unspec_bbr_uid): New.
36753         (gen_block_redirect): Use it instead of INSN_UID.
36754         (gen_far_branch): Likewise.
36755
36756 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
36757
36758         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
36759         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
36760
36761 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36762
36763         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
36764         (Warning Options): -Wno-conversion-null is valid for
36765         Objective-C++ as well.
36766         * doc/tm.texi (Named Address Spaces): Likewise.
36767         * doc/plugins.texi (Plugins): Replace TABs with spaces.
36768         * doc/tree-ssa.texi (Tree SSA): Likewise.
36769
36770 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
36771
36772         PR bootstrap/43202
36773         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
36774         by default.  Don't set the default arch for
36775         i[34567]86-*-darwin*|x86_64-*-darwin*.
36776
36777 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
36778
36779         PR bootstrap/43202
36780         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
36781         default.  Set the default 32bit/64bit archs with $with_arch
36782         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
36783
36784 2010-02-27  Richard Guenther  <rguenther@suse.de>
36785
36786         PR tree-optimization/43186
36787         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
36788         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
36789         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
36790         unroller iterations.
36791
36792 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
36793
36794         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
36795         required and i[34567]86-*-* targets don't support 64bit ISA.
36796
36797 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
36798
36799         PR ada/43096
36800         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36801         the same alias set.
36802
36803 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
36804
36805         * config.gcc: Set the default arch at least to Prescott for
36806         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
36807         if SSE math is enabled.
36808
36809 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36810
36811         * diagnostic.c (diagnostic_initialize): Update.
36812         (diagnostic_report_diagnostic): Test inhibit_notes_p for
36813         informative notes.
36814         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
36815         (diagnostic_inhibit_notes): New.
36816         * toplev.c (process_options): inhibit notes with -fcompare-debug.
36817
36818 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36819
36820         PR c/20631
36821         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
36822         * doc/standards.texi: Likewise.
36823         * doc/extend.texi: Likewise.
36824         * doc/trouble.texi: Likewise.
36825         * doc/cppopts.texi: Likewise.
36826         * doc/install.texi: Likewise.
36827         * c.opt (std=c90,std=gnu90): New options.
36828         * c-opts.c (c_common_handle_option): Handle them.
36829
36830 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36831
36832         PR c/24577
36833         * c-decl.c (undeclared_variable): Use an informative note.
36834
36835 2010-02-26  Richard Guenther  <rguenther@suse.de>
36836
36837         PR tree-optimization/43186
36838         * gimple.h (gimple_fold): Remove.
36839         * gimple.c (gimple_fold): Remove.  Inline into single user ...
36840         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
36841         Try harder for conditions.
36842
36843 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
36844
36845         PR debug/43190
36846         * function.c (used_types_insert): Don't skip through named pointer
36847         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
36848         and it is different from the main variant's type.
36849
36850 2010-02-26  Nick Clifton  <nickc@redhat.com>
36851
36852         * config/rx/rx.md (sminsi3): Remove bogus alternative.
36853
36854 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
36855
36856         * config.gcc: Support --with-fpmath=sse for x86.
36857
36858         * config/i386/ssemath.h: New.
36859
36860         * doc/install.texi (--with-fpmath=sse): Documented.
36861
36862 2010-02-26  Richard Guenther  <rguenther@suse.de>
36863
36864         PR tree-optimization/43188
36865         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
36866         vector types of over-aligned element type.
36867
36868 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
36869
36870         PR target/43175
36871         * config/i386/i386.c (expand_vec_perm_blend): Use correct
36872         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
36873
36874 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
36875
36876         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
36877
36878 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
36879
36880         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
36881         * var-tracking.c: Include diagnostic.h.
36882         (debug_dv): New function.
36883         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
36884
36885         PR debug/43160
36886         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
36887         (add_value_chain, add_value_chains, remove_value_chain,
36888         remove_value_chains): Handle DEBUG_EXPRs.
36889         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
36890
36891         PR debug/43161
36892         * regcprop.c (struct queued_debug_insn_change): New type.
36893         (struct value_data_entry): Add debug_insn_changes field.
36894         (struct value_data): Add n_debug_insn_changes field.
36895         (debug_insn_changes_pool): New variable.
36896         (free_debug_insn_changes, apply_debug_insn_changes,
36897         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
36898         (kill_value_one_regno): Call free_debug_insn_changes if needed.
36899         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
36900         fields.
36901         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
36902         changes for them.
36903         (copyprop_hardreg_forward_1): Don't call apply_change_group for
36904         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
36905         changes, call cprop_find_used_regs via note_stores.
36906         (copyprop_hardreg_forward): When copying vd from predecessor
36907         which has any queued DEBUG_INSN changes, make sure the pointers are
36908         cleared.  At the end call df_analyze and then if there are any
36909         DEBUG_INSN changes queued at the end of some basic block for still
36910         live registers, apply them.
36911         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
36912
36913 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
36914
36915         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
36916         (arm*-*-*): Ditto.
36917
36918 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
36919
36920         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
36921         targets.  Set the default with_cpu/with_arch from arch/cpu.
36922         Allow x86-64 and native for with_cpu/with_arch.
36923
36924 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
36925
36926         * ebitmap.c: Change calls to verify_popcount with calls to
36927         sbitmap_verify_popcount.
36928         (ebitmap_clear_bit): Fixed map->cacheindex test and
36929         map>cache update when bit clearing results in an empty
36930         element.
36931
36932 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
36933
36934         PR target/43154
36935         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
36936         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
36937         and support both V2DF and V2DI modes.
36938         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
36939         support both V2DF and V2DI modes.
36940         (general): Delete trailing whitespace from a few patterns.
36941
36942         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
36943         V2DF/V2DI interleave high/low builtins.
36944
36945         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
36946         new VSX builtins.
36947
36948         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
36949         interleave high/low functions.
36950
36951 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
36952
36953         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
36954         #pragma extern_prefix.
36955
36956 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
36957
36958         PR debug/43166
36959         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
36960         BLKmode, assert op0 is a MEM and just adjust its mode.
36961
36962         PR debug/43165
36963         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
36964         if bitpos isn't multiple of mode's bitsize.
36965
36966 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36967
36968         * c.opt (-ftemplate-depth=): New.
36969         (-ftemplate-depth-): Deprecate.
36970         * optc-gen.awk: Handle -ftemplate-depth=.
36971         * opth-gen.awk: Likewise.
36972         * c-opts.c (c_common_handle_option): Likewise.
36973         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
36974
36975 2010-02-24  Jason Merrill  <jason@redhat.com>
36976
36977         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
36978
36979 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36980
36981         * cfg.c (alloc_aux_for_block): Remove inline.
36982         (alloc_aux_for_edge): Likewise.
36983
36984 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36985
36986         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
36987
36988 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36989
36990         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
36991         * config/i386/sol2-gas.h: New file.
36992         * config.gcc (i[34567]86-*-solaris2*): Use it.
36993
36994 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36995
36996         PR c/43128
36997         * c-typeck.c (ep_convert_and_check): New.
36998         (build_conditional_expr): Use it.
36999         (build_binary_op): Likewise.
37000
37001 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
37002
37003         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
37004
37005         PR debug/43150
37006         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
37007         bounds even for -O+.
37008         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
37009         expr needs to have DECL_NAME set.
37010
37011 2010-02-24  Nick Clifton  <nickc@redhat.com>
37012
37013         * config/mep/mep.c: Include gimple.h.
37014         (mep_function_uses_sp): Delete unused function.
37015         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
37016         parameters.  Use unsigned integers to count args.  Return a
37017         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
37018
37019 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
37020
37021         PR target/43107
37022         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
37023         greater or equal to nelt instead of 2 * nelt.
37024         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
37025         with nelt - 1.
37026
37027 2010-02-23  Jason Merrill  <jason@redhat.com>
37028
37029         PR debug/42800
37030         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
37031         in cfun->local_decls even if they have register types.
37032
37033         PR c++/42837
37034         * stor-layout.c (place_field): Don't warn about unnecessary
37035         DECL_PACKED if the type is packed.
37036
37037 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
37038
37039         PR target/43139
37040         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
37041         GOTOFF relocs, even when the base reg isn't pic pointer.
37042
37043 2010-02-23  Michael Matz  <matz@suse.de>
37044
37045         PR debug/43077
37046         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
37047         (expand_gimple_basic_block): Generate and use debug temps if there
37048         are debug uses left after the last real use of TERed ssa names.
37049         Unlink debug immediate uses when they are expanded.
37050
37051 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37052
37053         PR 43123
37054         * config/i386/i386.c (override_options): Reorganise to provide
37055         better error messages.
37056
37057 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37058
37059         PR middle-end/43083
37060         * graphite-scop-detection.c (create_single_exit_edge): Move
37061         the call to find_single_exit_edge to....
37062         (create_sese_edges): ...here.  Don't handle multiple edges
37063         exiting the function.
37064         (build_graphite_scops): Don't handle multiple edges
37065         exiting the function.
37066
37067 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37068
37069         PR middle-end/43097
37070         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
37071         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
37072
37073 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37074
37075         PR middle-end/43026
37076         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
37077
37078 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37079
37080         PR c++/43126
37081         * c-typeck.c (convert_arguments): Print declaration location.
37082         * c-common.c (validate_nargs): Rename as
37083         builtin_function_validate_nargs.
37084         (check_builtin_function_arguments): Update.
37085
37086 2010-02-22  Richard Guenther  <rguenther@suse.de>
37087
37088         PR lto/43045
37089         * tree-inline.c (declare_return_variable): Use the type of
37090         the call stmt lhs if available.
37091
37092 2010-02-22  Duncan Sands  <baldrick@free.fr>
37093
37094         * passes.c (register_pass): Always consider all pass lists when
37095         ref_pass_instance_number is zero.
37096
37097 2010-02-22  Richard Guenther  <rguenther@suse.de>
37098
37099         PR tree-optimization/42749
37100         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
37101         parameter.  Do arithmetic in the original type.
37102         (update_accumulator_with_ops): Likewise.
37103         (adjust_accumulator_values): Adjust.
37104
37105 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37106
37107         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
37108         (QI to BLKmode splitter): New splitter.
37109
37110 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
37111
37112         * config/i386/i386.c (initial_ix86_tune_features): Turn on
37113         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
37114
37115 2010-02-22  Richard Guenther  <rguenther@suse.de>
37116
37117         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
37118
37119 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
37120
37121         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
37122         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
37123         ($(T)crti.o, $(T)crtn.o): Remove rules.
37124
37125 2010-02-21  Tobias Burnus  <burnus@net-b.de>
37126
37127         PR fortran/35259
37128         * doc/invoke.texi (-fassociative-math): Document that this
37129         option is automatically enabled for Fortran.
37130
37131 2010-02-20  David S. Miller  <davem@davemloft.net>
37132
37133         * configure.ac: Test if linker and assembler properly support
37134         GOTDATA_OP relocations.
37135         * configure: Rebuild.
37136         * config.in: Likewise.
37137         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
37138         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
37139         (movsi_high_pic): Likewise.
37140         (movdi_lo_sum_pic): Likewise.
37141         (movdi_high_pic): Likewise.
37142         (movsi_pic_gotdata_op): New pattern.
37143         (movdi_pic_gotdata_op): Likewise.
37144         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
37145         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
37146
37147 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
37148
37149         PR target/43067
37150         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
37151         attribute to ssemul.
37152         (xop_mulv2div2di3_high): Ditto.
37153
37154 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37155
37156         PR c++/35669
37157         * c.opt (Wconversion-null): New option.
37158         * doc/invoke.texi (Wconversion-null): Document.
37159
37160 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37161
37162         * common.opt (Wlarger-than-): Add Undocumented.
37163
37164 2010-02-19  Mike Stump  <mikestump@comcast.net>
37165
37166         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
37167
37168 2010-02-19  Jason Merrill  <jason@redhat.com>
37169
37170         PR target/40332
37171         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
37172         * configure: Likewise.
37173
37174 2010-02-20  Alan Modra  <amodra@gmail.com>
37175
37176         PR middle-end/42344
37177         * cgraph.h (cgraph_make_decl_local): Declare.
37178         * cgraph.c (cgraph_make_decl_local): New function.
37179         (cgraph_make_node_local): Use it.
37180         * cgraphunit.c (cgraph_function_versioning): Likewise.
37181         * ipa.c (function_and_variable_visibility): Likewise.
37182
37183 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
37184
37185         PR bootstrap/43121
37186         * except.c (sjlj_emit_function_enter): Don't call
37187         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
37188         directly.
37189         * rtl.h (add_reg_br_prob_note): Remove prototype.
37190
37191 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37192
37193         PR 41779
37194         * c-common.c (conversion_warning): Remove widening conversions
37195         before checking the conversion of integers to reals.
37196
37197 2010-02-19  Mike Stump  <mikestump@comcast.net>
37198
37199         PR middle-end/43125
37200         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
37201
37202         PR objc/43061
37203         * cgraphunit.c (process_function_and_variable_attributes): Check
37204         DECL_PRESERVE_P instead of looking up attribute "used".
37205         * ipa-pure-const.c (check_decl): Likewise.
37206         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
37207         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
37208         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
37209         instead of attribute "used".
37210         * config/sol2-c.c (solaris_pragma_init): Likewise.
37211         (solaris_pragma_fini): Likewise.
37212
37213 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
37214
37215         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
37216         Use XCNEW instead of xcalloc.
37217         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
37218         XNEW instead of xmalloc.
37219         (get_fields): Use XNEWVEC instead of xmalloc.
37220
37221         PR debug/43084
37222         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
37223         populate vars array.
37224         (create_new_general_access): For debug stmts just reset value.
37225         (get_stmt_accesses): For accesses within debug stmts just record them
37226         using add_access_to_acc_sites instead of preventing the peeling or
37227         counting them as accesses.
37228
37229         PR middle-end/42233
37230         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
37231
37232 2010-02-19  Richard Guenther  <rguenther@suse.de>
37233
37234         PR tree-optimization/42916
37235         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
37236         instructions.
37237
37238 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
37239
37240         * configure.ac: Replace all uses of changequote in macro arguments
37241         with proper quoting.
37242
37243 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
37244
37245         PR middle-end/42233
37246         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
37247
37248 2010-02-19  Richard Guenther  <rguenther@suse.de>
37249
37250         PR tree-optimization/42944
37251         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
37252         test for aliasing with errno.
37253
37254 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
37255
37256         PR middle-end/42233
37257         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
37258         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
37259         * dojump.c: Include output.h.
37260         (inv): New inline function.
37261         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
37262         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
37263         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
37264         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
37265         argument, pass it down to other calls.
37266         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
37267         add REG_BR_PROB note to the conditional jump.
37268         * cfgexpand.c (add_reg_br_prob_note): Removed.
37269         (expand_gimple_cond): Don't call it, add the probability
37270         as last argument to jumpif_1/jumpifnot_1.
37271         * Makefile.in (dojump.o): Depend on output.h.
37272         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
37273         callers.
37274         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
37275         * stmt.c (do_jump_if_equal): Likewise.
37276         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
37277         * loop-unswitch.c (compare_and_jump_seq): Likewise.
37278         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
37279         Likewise.
37280         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
37281         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
37282         jumpifnot_1 callers.
37283         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
37284         callers.
37285         (store_expr): Adjust jumpifnot caller.
37286         (store_constructor): Adjust jumpif caller.
37287
37288         PR middle-end/42233
37289         * gimplify.c (gimple_boolify): For __builtin_expect call
37290         gimple_boolify also on its first argument.
37291
37292 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
37293
37294         * configure.ac (gnu-unique-object): Wrap regexps using [] in
37295         changequote block.
37296         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
37297         * configure: Regenerated.
37298
37299 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
37300
37301         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
37302         lang_hooks.types_compatible_p instead of comptypes.
37303
37304 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
37305
37306         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
37307         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
37308         if __prefer_thumb__ is defined.
37309
37310 2010-02-18  Martin Jambor  <mjambor@suse.cz>
37311
37312         PR tree-optimization/43066
37313         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
37314         array with zero-sized element type.
37315
37316 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
37317
37318         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
37319         rtx, allocate struct var_loc_node here and return it to the
37320         caller, and only if it is actually needed.
37321         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
37322         move it earlier and return immediately if it returns NULL.
37323
37324 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
37325
37326         * config/sparc/gas.h: New file.  Restore
37327         TARGET_ASM_NAMED_SECTION to its ELF default.
37328         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
37329         check !HAVE_GNU_AS.
37330         * config/sparc/sparc.c (sparc_elf_asm_named_section):
37331         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
37332         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
37333         after sparc/sysv4.h.
37334
37335 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
37336
37337         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
37338
37339 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
37340
37341         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
37342         patterns from predicated pattern.
37343
37344 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
37345
37346         PR target/43103
37347         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
37348         for insn mnemonic suffix.
37349
37350 2010-02-17  Richard Guenther  <rguenther@suse.de>
37351
37352         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
37353         to loop PHI nodes.
37354
37355 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
37356
37357         PR debug/42918
37358         * caller-save.c (save_call_clobbered_regs): If BB ends with
37359         a DEBUG_INSN, move any notes in between last real insn and the last
37360         DEBUG_INSN after the last DEBUG_INSN.
37361
37362 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
37363
37364         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
37365         Fix return type.  Fix argument type.  Explain meaning of return value.
37366
37367 2010-02-16  Richard Guenther  <rguenther@suse.de>
37368
37369         PR tree-optimization/41043
37370         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
37371         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
37372         statements ...
37373         (vrp_visit_phi_node): ... but only for loop PHI nodes.
37374
37375 2010-02-16  Ira Rosen  <irar@il.ibm.com>
37376
37377         PR tree-optimization/43074
37378         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
37379         * tree-vect-loop.c (vect_analyze_loop_operations): Add
37380         vectorizable cycles in hybrid SLP check.
37381         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
37382
37383 2010-02-16  Richard Guenther  <rguenther@suse.de>
37384
37385         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
37386         (true_dependence): If memrefs_conflict_p computes must-alias
37387         trust it.  Move TBAA check after offset-based disambiguation.
37388         (canon_true_dependence): Likewise.
37389
37390 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
37391
37392         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
37393         * doc/invoke.texi: Document it.
37394         * var-tracking.c: Include toplev.h and params.h.
37395         (vt_find_locations): Return bool indicating success.  Compute
37396         hash sizes unconditionally.  Check new parameter, report.
37397         (variable_tracking_main_1): Check vt_find_locations results and
37398         retry.  Renamed from...
37399         (variable_tracking_main): ... this.  New wrapper to preserve
37400         flag_var_tracking_assignments.
37401         * Makefile.in (var-tracking.o): Adjust dependencies.
37402
37403 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
37404             Jakub Jelinek  <jakub@redhat.com>
37405
37406         PR target/42854
37407         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
37408         if weak_import attribute is present.
37409         * config/darwin.c (machopic_select_section): Likewise.
37410
37411 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
37412
37413         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
37414         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
37415         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
37416         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
37417
37418         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
37419         types.
37420
37421         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
37422         Fix argument types.
37423
37424         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
37425         Rewrite text to refer to the names.
37426
37427 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
37428
37429         * config/i386/i386-builtin-types.def
37430         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
37431         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
37432         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
37433         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
37434         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
37435         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
37436         IX86_BUILTIN_VPERMIL2PS256.
37437         (MULTI_ARG_4_DF2_DI_I): Defined.
37438         (MULTI_ARG_4_DF2_DI_I1): Defined.
37439         (MULTI_ARG_4_SF2_SI_I): Defined.
37440         (MULTI_ARG_4_SF2_SI_I1): Defined.
37441         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
37442         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
37443         __builtin_ia32_vpermil2ps256.
37444         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
37445         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
37446         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
37447         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
37448         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
37449         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
37450         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
37451         CODE_FOR_xop_vpermil2v8sf3.
37452         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
37453         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
37454         * config/i386/xopintrin.h (_mm_permute2_pd): New.
37455         (_mm256_permute2_pd): New.
37456         (_mm_permute2_ps): New.
37457         (_mm256_permute2_ps): New.
37458
37459 2010-02-15  Nick Clifton  <nickc@redhat.com>
37460
37461         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
37462         boolean parameters.  Use emit_jump_insn when emitting a pop
37463         instruction containing a return insn.
37464         (push): Use 'true' rather than '1' as second parameter to F.
37465         (h8300_expand_prologue): Likewise.
37466         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
37467         (h8300_expand_epilogue): Likewise.
37468
37469 2010-02-15  Richard Guenther  <rguenther@suse.de>
37470
37471         PR middle-end/43068
37472         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
37473         if that is zero.
37474
37475 2010-02-15  Nick Clifton  <nickc@redhat.com>
37476
37477         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
37478         delta.
37479
37480 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
37481
37482         * intl.c (fake_ngettext): New function.
37483         * intl.h (fake_ngettext): Declare.
37484         (ngettext): Define macro.
37485         * collect2.c (notice_translated): New function.
37486         (main): Use notice_translated and ngettext.
37487         * collect2.h (notice_translated): Declare.
37488
37489 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
37490
37491         * reorg.c (delete_computation): Comment fixes.
37492         * caller-save.c (setup_save_areas): Idem.
37493         * sel-sched-dump.c (dump_lv_set): Idem.
37494         * rtl.def: Idem.
37495
37496 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37497
37498         * config/s390/s390.c (s390_sched_init): New function.
37499         (TARGET_SCHED_INIT): Target hook defined.
37500
37501 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
37502             Jack Howarth  <howarth@bromo.med.uc.edu>
37503             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
37504
37505         PR target/42982
37506         Partial revert of unintended change in fix for PR41605.
37507         * config/darwin.h: Fix typo.
37508         * config/darwin9.h: Same.
37509
37510 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
37511
37512         * c-pch.c (pch_init): Clear v.
37513
37514 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37515
37516         PR middle-end/42930
37517         * graphite-scop-detection.c (graphite_can_represent_scev): Call
37518         graphite_can_represent_init for MULT_EXPR.
37519
37520 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37521
37522         PR middle-end/42914
37523         PR middle-end/42530
37524         * graphite-sese-to-poly.c (remove_phi): New.
37525         (translate_scalar_reduction_to_array): Call remove_phi.
37526
37527 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37528
37529         PR middle-end/42771
37530         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
37531         * graphite-clast-to-gimple.h (gloog): Update declaration.
37532         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
37533         * graphite-poly.h (struct poly_bb): Add missing comments.
37534         (struct scop): Add poly_scop_p field.
37535         (POLY_SCOP_P): New.
37536         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
37537         * graphite.c (graphite_transform_loops): Build the polyhedral
37538         representation for each scop before code generation.
37539         * sese.c (rename_variables_in_operand): Removed.
37540         (rename_variables_in_expr): Return the renamed expression.
37541         (rename_sese_parameters): New.
37542         * sese.h (rename_sese_parameters): Declared.
37543
37544 2010-02-11  Richard Guenther  <rguenther@suse.de>
37545
37546         PR tree-optimization/42998
37547         * tree-ssa-pre.c (create_expression_by_pieces): Treat
37548         POINTER_PLUS_EXPR properly.
37549
37550 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37551             Changpeng Fang  <changpeng.fang@amd.com>
37552
37553         PR middle-end/40886
37554         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
37555         the cost of an IV candidate when the IV is used in a test against zero.
37556
37557         * gcc.dg/tree-ssa/ivopts-3.c: New.
37558
37559 2010-02-11  Richard Guenther  <rguenther@suse.de>
37560
37561         PR lto/41664
37562         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
37563         pointer-vs-decl case by swapping refs.  Handle some cases
37564         of pointer-vs-decl disambiguations more conservatively.
37565         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
37566         to false after expanding.
37567
37568 2010-02-11  Richard Guenther  <rguenther@suse.de>
37569
37570         PR driver/43021
37571         * gcc.c (process_command): Handle LTO file@offset case more
37572         appropriately.
37573
37574 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
37575
37576         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
37577         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
37578         of DEBUG_INSNs.
37579         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
37580
37581         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
37582         if MEM's mode size isn't DWARF2_ADDR_SIZE.
37583         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
37584         Optimize eq/ne comparisons when both arguments are known to be
37585         zero-extended.
37586         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
37587         Don't mask operands unnecessarily if they are known to be already
37588         zero-extended.
37589
37590 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
37591
37592         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
37593         instead of loop.
37594
37595 2010-02-10  Richard Guenther  <rguenther@suse.de>
37596
37597         PR tree-optimization/43017
37598         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
37599         for wrapping signed arithmetic.
37600
37601 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
37602
37603         PR debug/43010
37604         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
37605         if no debug info should be emitted for it.
37606
37607 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
37608
37609         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
37610         note when flag_exceptions is set.
37611
37612 2010-02-10  Duncan Sands  <baldrick@free.fr>
37613
37614         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
37615
37616 2010-02-10  Richard Guenther  <rguenther@suse.de>
37617
37618         PR c/43007
37619         * tree.c (get_unwidened): Handle constants.
37620         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
37621
37622 2010-02-10  Martin Jambor  <mjambor@suse.cz>
37623
37624         PR lto/42985
37625         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
37626         check for variable argument counts independently.
37627
37628 2010-02-10  Christian Bruel  <christian.bruel@st.com>
37629
37630         PR target/42841
37631         * config/sh/sh.c (find_barrier): Increase length for non delayed
37632         conditional branches.
37633
37634 2010-02-10  Christian Bruel  <christian.bruel@st.com>
37635
37636         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
37637
37638 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
37639
37640         * builtins.c (set_builtin_user_assembler_name): Also handle
37641         ffs if int is smaller than word.
37642
37643 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
37644
37645         PR middle-end/42973
37646         * ira-conflicts.c (get_dup): Remove.
37647         (process_reg_shuffles): Add new parameter.  Use it as an
37648         additional guard for copy generation.
37649         (add_insn_allocno_copies): Rewrite.
37650
37651 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
37652
37653         * common.opt (fsched2-use-traces): Preserved for backward
37654         compatibility.
37655         * doc/invoke.texi: Remove the documentation about option
37656         -fsched2-use-traces.
37657         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
37658         flag_sched2_use_traces.
37659         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
37660         the backward compatibility flag section.
37661
37662 2010-02-09  Richard Guenther  <rguenther@suse.de>
37663
37664         PR tree-optimization/43008
37665         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
37666         make HEAP variables initialized from global memory if they
37667         are not known builtin functions.
37668         (find_func_aliases): Adjust.
37669
37670 2010-02-09  Richard Guenther  <rguenther@suse.de>
37671
37672         PR tree-optimization/43000
37673         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
37674         arithmetic manually.
37675
37676 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
37677
37678         PR tree-optimization/42931
37679         * tree-loop-linear.c (try_interchange_loops): Don't call
37680         double_int_mul if estimated_loop_iterations failed.
37681
37682 2010-02-08  Martin Jambor  <mjambor@suse.cz>
37683
37684         PR middle-end/42898
37685         * tree-sra.c (build_accesses_from_assign): Do not mark in
37686         should_scalarize_away_bitmap if stmt has volatile ops.
37687         (sra_modify_assign): Do not process assigns piecemeal if if stmt
37688         has volatile ops.
37689
37690 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
37691
37692         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
37693
37694 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
37695
37696         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
37697         before the pattern.
37698
37699 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
37700
37701         PR middle-end/42946
37702         * df-core.c (df_finish_pass): Change type of saved_flags to int.
37703
37704 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
37705
37706         PR middle-end/42988
37707         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
37708         to unknown_dependence.
37709         (graphite_legal_transform_dr): Handle the unknown_dependence.
37710         (graphite_carried_dependence_level_k): Same.
37711
37712 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
37713
37714         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
37715
37716 2010-02-07  Richard Guenther  <rguenther@suse.de>
37717
37718         PR middle-end/42991
37719         * expr.c (get_inner_reference): Always initialize *pbitsize.
37720
37721 2010-02-07  Richard Guenther  <rguenther@suse.de>
37722
37723         PR middle-end/42956
37724         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
37725         new ARRAY_REFs on variable size element or minimal index arrays.
37726         Complete.
37727         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
37728         gimple_fold_indirect_ref.
37729
37730 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
37731
37732         PR target/42957
37733         * arm.c (arm_override_options): Just return if the user has specified
37734         an invalid fpu name.
37735
37736 2010-02-03  Jason Merrill  <jason@redhat.com>
37737
37738         PR c++/42870
37739         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
37740         i386_pe_maybe_record_exported_symbol.
37741
37742 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
37743
37744         PR target/42924
37745         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
37746         (pa_delegitimize_address): New function.
37747
37748 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
37749
37750         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
37751         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
37752
37753 2010-02-05  Richard Guenther  <rguenther@suse.de>
37754
37755         PR lto/42762
37756         * lto-streamer-in.c (get_resolution): Deal with references
37757         to undefined functions.
37758
37759 2010-02-05  Richard Guenther  <rguenther@suse.de>
37760
37761         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
37762         (fold_const_aggregate_ref): Likewise.
37763         (ccp_fold_stmt): Substitute loads.
37764         (maybe_fold_reference): Verify types before substituting.
37765         Unshare properly.
37766         (fold_gimple_assign): Unshare properly.
37767         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
37768
37769 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
37770
37771         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
37772         for rs6000_gen_cell_microcode.
37773
37774 2010-02-04  Richard Guenther  <rguenther@suse.de>
37775
37776         PR rtl-optimization/42952
37777         * dse.c (const_or_frame_p): Remove MEM handling.
37778
37779 2010-02-04  Nick Clifton  <nickc@redhat.com>
37780
37781         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
37782         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
37783         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
37784         (mn10300_asm_output_mi_thunk): New function.
37785         (mn10300_can_output_mu_thunk): New function.
37786         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
37787         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
37788         (FUNCTION_ARG): Delete incorrect comment.
37789
37790 2010-02-03  Jason Merrill  <jason@redhat.com>
37791
37792         PR c++/40138
37793         * fold-const.c (operand_equal_p): Handle erroneous types.
37794
37795 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
37796
37797         * config/h8300/h8300.md (can_delay): Fix attibute condition.
37798
37799 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
37800
37801         PR rtl-optimization/42941
37802         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
37803         of xmalloc.
37804
37805 2010-02-03  Jason Merrill  <jason@redhat.com>
37806
37807         PR c++/35652
37808         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
37809
37810 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
37811
37812         PR debug/42896
37813         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
37814         (cselib_reset_table): Renamed from...
37815         (cselib_reset_table_with_next_value): ... this.
37816         (cselib_get_next_uid): Renamed from...
37817         (cselib_get_next_unknown_value): ... this.
37818         * cselib.c (next_uid): Renamed from...
37819         (next_unknown_value): ... this.
37820         (cselib_clear_table): Adjust.
37821         (cselib_reset_table): Adjust.  Renamed from...
37822         (cselib_reset_table_with_next_value): ... this.
37823         (cselib_get_next_uid): Adjust.  Renamed from...
37824         (cselib_get_next_unknown_value): ... this.
37825         (get_value_hash): Use hash.
37826         (cselib_hash_rtx): Likewise.
37827         (new_cselib_val): Adjust.  Set and dump uid.
37828         (cselib_lookup_mem): Pass next_uid as hash.
37829         (cselib_subst_to_values): Likewise.
37830         (cselib_log_lookup): Dump uid.
37831         (cselib_lookup): Pass next_uid as hash.  Adjust.
37832         (cselib_process_insn): Adjust.
37833         (cselib_init): Initialize next_uid.
37834         (cselib_finish): Adjust.
37835         (dump_cselib_table): Likewise.
37836         * dse.c (canon_address): Dump value uid.
37837         * print-rtl.c (print_rtx): Print value uid.
37838         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
37839         (dvuid): New type.
37840         (dv_uid): New function, sort of renamed from...
37841         (dv_htab_hash): ... this, reimplemented in terms of it and...
37842         (dv_uid2hash): ... this.  New.
37843         (variable_htab_eq): Drop excess assertions.
37844         (tie_break_pointers): Removed.
37845         (canon_value_cmp): Compare uids.
37846         (variable_post_merge_New_vals): Print uids.
37847         (vt_add_function_parameters): Adjust.
37848         (vt_initialize): Reset table.  Adjust.
37849
37850 2010-02-03  Richard Guenther  <rguenther@suse.de>
37851
37852         PR tree-optimization/42944
37853         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
37854         (call_may_clobber_ref_p_1): Likewise.  Properly handle
37855         malloc and calloc clobbering errno.
37856
37857 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
37858
37859         * doc/invoke.texi: Fix name of sched1 dump.
37860
37861         * opts.c (decode_options): Set flag_tree_switch_conversion
37862         only conditionally on optimize >= 2.
37863
37864         * gcse.c: Assorted comment fixes in pass description.
37865
37866 2010-02-03  Anthony Green  <green@moxielogic.com>
37867
37868         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
37869         nop padding in order to maintain alignment of storage location of
37870         target function address.
37871         (moxie_trampoline_init): Store target function address at newly
37872         aligned location.
37873         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
37874         to 32.
37875         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
37876
37877 2010-02-03  Richard Guenther  <rguenther@suse.de>
37878
37879         PR middle-end/42927
37880         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
37881
37882 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37883
37884         * config.gcc: Reenable check for obsolete targets.
37885         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
37886         mips-sgi-irix6.[0-4]*.
37887
37888 2010-02-02  Nick Clifton  <nickc@redhat.com>
37889
37890         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
37891         constant size of 4 as being the same as 0.
37892         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
37893         can take values in the range 0..4.
37894
37895 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
37896
37897         PR java/41991
37898         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
37899         as _darwin10_Unwind_FindEnclosingFunction().
37900         * libgcc-libsystem.ver: New.
37901
37902 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
37903
37904         PR target/41399
37905         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
37906         implicitly set registers.
37907
37908 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
37909
37910         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
37911         (arm_override_options): Allow automatic selection of the thread
37912         pointer register if thumb2.
37913         (legitimize_pic_address): Improve code sequences for Thumb2.
37914         (arm_call_tls_get_addr): Likewise.
37915         (legitimize_tls_address): Likewise.
37916         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
37917         (pic_load_addr_32bit): ... this.  New named pattern.
37918         * thumb2.md (pic_load_addr_thumb2): Delete.
37919         (pic_load_dot_plus_four): Delete.
37920         (tls_load_dot_plus_four): New named pattern.
37921
37922 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37923
37924         PR libgomp/29986
37925         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
37926         Document fix for TLS bug.
37927
37928 2010-01-31  Richard Guenther  <rguenther@suse.de>
37929
37930         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
37931         conservatively correct.
37932
37933 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37934
37935         PR target/42850
37936         Revert:
37937         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37938
37939         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
37940
37941 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
37942
37943         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
37944
37945 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
37946
37947         * config.gcc: Adjust order of makefile fragments for mingw targets.
37948
37949 2010-01-31  Richard Guenther  <rguenther@suse.de>
37950
37951         PR middle-end/42898
37952         * gimplify.c (gimplify_init_constructor): For volatile LHS
37953         initialize a temporary.
37954
37955 2010-01-31  Matthias Klose  <doko@ubuntu.com>
37956
37957         * configure.ac: Fix __stack_chk_fail check for cross builds configured
37958         --with-headers
37959         * configure: Regenerate.
37960
37961 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
37962
37963         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
37964         the same alias set and their sizes different constantness.
37965         (aliasing_component_refs_p): Revert 2009-10-24 change.
37966
37967 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37968
37969         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
37970         unused.
37971
37972 2010-01-29  Richard Guenther  <rguenther@suse.de>
37973
37974         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
37975         Assert we successfully updated the call.
37976
37977 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
37978
37979         PR rtl-optimization/42889
37980         * df.h (df_set_bb_dirty_nonlr): New prototype.
37981         * df-core.c (df_set_bb_dirty_nonlr): New function.
37982         * df-scan.c (df_insn_rescan): Call it instead of
37983         df_set_bb_dirty for DEBUG_INSNs.
37984
37985 2010-01-29  Richard Guenther  <rguenther@suse.de>
37986
37987         PR middle-end/37448
37988         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
37989         quadratic behavior in most cases.
37990
37991 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
37992
37993         PR target/42891
37994         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
37995         in the call to gen_x86_movsicc_0_m1.
37996
37997 2010-01-28  Richard Guenther  <rguenther@suse.de>
37998
37999         PR tree-optimization/42871
38000         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
38001
38002 2010-01-28  Richard Guenther  <rguenther@suse.de>
38003
38004         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
38005         into call arguments.
38006
38007 2010-01-28  Richard Guenther  <rguenther@suse.de>
38008
38009         PR middle-end/42883
38010         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
38011         the forwarder if the destination is an EH landing pad.
38012
38013 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
38014
38015         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
38016         block list passed to gimple_duplicate_sese_tail.
38017         (parallelize_loops): Avoid parallelization when the function
38018         has_nonlocal_label.
38019         Avoid parallelization when the preheader is IRREDUCIBLE.
38020         Try to optimize when estimated_loop_iterations_int is unresolved.
38021         Add the loop's location to the dump file.
38022         * tree-cfg.c (add_phi_args_after_redirect): Remove.
38023         (gimple_duplicate_sese_tail): Remove the check for the latch.
38024         Redirect nexits to the exit block.
38025         Remove handling of the incoming edges to the latch.
38026         Redirect the backedge from the copied latch to the exit bb.
38027
38028 2010-01-28  Michael Matz  <matz@suse.de>
38029
38030         PR target/42881
38031         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
38032         Wrap force_reg into a sequence, emit it before user.
38033
38034 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
38035
38036         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
38037         (arm_rev): New.
38038         (arm_legacy_rev): Likewise.
38039         (thumb_legacy_rev): Likewise.
38040
38041 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
38042
38043         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
38044         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
38045         on MEM's address failed, try avoid_constant_pool_reference and
38046         recurse if it returned something different.
38047         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
38048         address, try avoid_constant_pool_reference and recurse if it
38049         returned something different.
38050         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
38051         address and avoid_constant_pool_reference returned something
38052         different, don't set have_address.
38053
38054 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
38055
38056         PR debug/42861
38057         * var-tracking.c (val_store): Add modified argument, obey it.
38058         Adjust callers.
38059         (count_uses): Move down logging of main.
38060         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
38061         don't need resolution.
38062         (emit_notes_in_bb): Likewise.
38063
38064 2010-01-27  Richard Guenther  <rguenther@suse.de>
38065
38066         PR middle-end/42878
38067         * tree-inline.c (remap_decl): Delay remapping of SSA name
38068         default definitions until we need them.
38069
38070 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
38071
38072         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
38073         (rs6000_delegitimize_address): New function.
38074
38075         * config/s390/s390.c (s390_delegitimize_address): Call
38076         delegitimize_mem_from_attrs.
38077
38078         PR middle-end/42874
38079         * tree-inline.c (cannot_copy_type_1): Removed.
38080         (copy_forbidden): Don't forbid copying of functions containing
38081         records/unions with variable length fields.
38082
38083 2010-01-27  Christian Bruel  <christian.bruel@st.com>
38084
38085         Revert:
38086         PR target/42841
38087         * config/sh/sh.c (find_barrier): Increase length for non delayed
38088         conditional branches.
38089
38090 2010-01-27  Matthias Klose  <doko@ubuntu.com>
38091
38092         * configure.ac (gnu-unique-object): Fix ldd version check.
38093         * configure: Regenerate.
38094
38095 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38096
38097         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
38098         HAVE_GNU_AS value.
38099         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
38100         Test for HAVE_GNU_AS value.
38101
38102 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38103
38104         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
38105         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
38106         INT64_TYPE): Define.
38107         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
38108         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
38109         INT_LEAST64_TYPE): Define.
38110         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
38111         UINT_LEAST64_TYPE): Define.
38112         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
38113         INT_FAST64_TYPE): Define.
38114         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
38115         UINT_FAST64_TYPE): Define.
38116         (INTMAX_TYPE, UINTMAX_TYPE): Define.
38117         (INTPTR_TYPE, UINTPTR_TYPE): Define.
38118         (SIG_ATOMIC_TYPE): Define.
38119
38120 2010-01-26  Richard Guenther  <rguenther@suse.de>
38121
38122         * df-scan.c (df_scan_set_bb_info): Remove assert.
38123         (df_insn_rescan_debug_internal): Merge asserts.
38124         (df_install_ref): Likewise.
38125         (df_mark_reg): Use bitmap_set_range.
38126         (df_hard_reg_used_p): Remove assert.
38127         (df_hard_reg_used_count): Likewise.
38128
38129 2010-01-26  Richard Guenther  <rguenther@suse.de>
38130
38131         PR rtl-optimization/42685
38132         * web.c (web_main): Ignore DEBUG_INSNs.
38133
38134 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
38135
38136         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
38137
38138         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
38139         Fix types of fndecl and arglist parameters.
38140
38141 2010-01-26  Richard Guenther  <rguenther@suse.de>
38142
38143         PR middle-end/42806
38144         * tree-eh.c (unsplit_eh): Skip debug insns.
38145
38146 2010-01-26  Richard Guenther  <rguenther@suse.de>
38147
38148         PR tree-optimization/42250
38149         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
38150
38151 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
38152
38153         PR fortran/42866
38154         * omp-low.c (expand_omp_sections): Only use single_pred if
38155         l2_bb is single_pred_p.
38156
38157 2010-01-25  Christian Bruel  <christian.bruel@st.com>
38158
38159         PR target/42841
38160         * config/sh/sh.c (find_barrier): Increase length for non delayed
38161         conditional branches.
38162         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
38163
38164 2010-01-24  David S. Miller  <davem@davemloft.net>
38165
38166         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
38167         define if not using GAS.
38168         * config/sparc/sparc.c (sparc_elf_asm_named_section):
38169         Likewise.  Delete SECTION_MERGE code, which is only applicable
38170         when using GAS.
38171
38172 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
38173
38174         PR c++/42748
38175         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
38176         mangling of va_list in system headers.
38177
38178 2010-01-23  Toon Moene  <toon@moene.org>
38179
38180         * tree-predcom.c (combine_chains): Return NULL, not false.
38181
38182 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
38183
38184         * tree-loop-distribution.c (distribute_loop): Fix declaration and
38185         initialization of variable res to agree with return type.
38186
38187 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
38188
38189         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
38190         * tree-sra.c: Add include of expr.h.
38191
38192 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
38193
38194         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
38195         insert the debug stmt on the single non-EH edge from the stmt.
38196
38197 2010-01-22  Richard Henderson  <rth@redhat.com>
38198
38199         PR tree-opt/42833
38200         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
38201         the RHS until after generate_subtree_copies has insertted its
38202         code before the current statement.
38203
38204 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
38205
38206         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
38207
38208         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
38209
38210 2010-01-21  Martin Jambor  <mjambor@suse.cz>
38211
38212         PR tree-optimization/42585
38213         * tree-sra.c (struct access): New field grp_total_scalarization.
38214         (dump_access): Dump the new field.
38215         (should_scalarize_away_bitmap): New variable.
38216         (cannot_scalarize_away_bitmap): Likewise.
38217         (sra_initialize): Allocate new bitmaps.
38218         (sra_deinitialize): Free new bitmaps.
38219         (create_access_1): New function.
38220         (create_access): Parts moved to create_access_1.
38221         (type_consists_of_records_p): New function.
38222         (completely_scalarize_record): Likewise.
38223         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
38224         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
38225         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
38226         access.
38227         (analyze_all_variable_accesses): Completely scalarize small eligible
38228         records.
38229
38230 2010-01-21  Martin Jambor  <mjambor@suse.cz>
38231
38232         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
38233
38234 2010-01-21  Andrew Haley  <aph@redhat.com>
38235
38236         * gcc.c (process_command): Move lang_specific_driver before
38237         setting cc_libexec_prefix.
38238
38239 2010-01-21  Richard Guenther  <rguenther@suse.de>
38240
38241         PR middle-end/19988
38242         * fold-const.c (negate_expr_p): Pretend only negative
38243         real constants are easily negatable.
38244
38245 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
38246             Jason Merrill  <jason@redhat.com>
38247
38248         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
38249         (TYPE_TRANSPARENT_AGGR): this, for union and record.
38250         * calls.c (initialize argument_information): Handle it.
38251         * c-common.c (handle_transparent_union_attribute): Use new name.
38252         * c-decl.c (finish_struct): Ditto.
38253         * c-typeck.c (type_lists_compatible_p): Ditto.
38254         (convert_for_assignment): Use new name and also handle record.
38255         * function.c (aggregate_value_p): Handle it.
38256         (pass_by_reference): Ditto.
38257         (assign_parm_data_types): Ditto.
38258         * print-tree.c (print_node): Ditto.
38259         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
38260         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
38261         * tree.c (first_field): New fn.
38262
38263 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
38264
38265         PR target/42818
38266         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
38267         even when linking statically, for now.
38268
38269 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
38270
38271         PR debug/42715
38272         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
38273         without a cselib val.
38274         (count_uses): Accept MO_VAL_SET with no val on stores.
38275         (add_stores): Likewise.
38276
38277 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38278
38279         * var-tracking.c (check_value_val): Add a compile time assertion.
38280         (dv_is_decl_p): Simplify.
38281         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
38282         gcc_assert if ENABLE_CHECKING.
38283
38284 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
38285
38286         PR debug/42782
38287         * var-tracking.c: Include tree-flow.h.
38288         (mem_dies_at_call): New.
38289         (dataflow_set_preserve_mem_locs): Use it.
38290         (dataflow_set_remove_mem_locs): Likewise.
38291         (dump_var): Renamed from dump_variable.  Adjust all callers.
38292         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
38293         * Makefile.in (var-tracking.o): Adjust deps.
38294
38295 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
38296
38297         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
38298
38299 2010-01-20  Richard Guenther  <rguenther@suse.de>
38300
38301         PR tree-optimization/42717
38302         * tree-ssa-dce.c (get_live_post_dom): Remove.
38303         (forward_edge_to_pdom): Take an arbitrary edge to copy
38304         degenerate PHI args from.
38305         (remove_dead_stmt): Use the first post-dominator even if it
38306         does not contain live statements as redirection destination.
38307
38308 2010-01-20  Richard Guenther  <rguenther@suse.de>
38309
38310         * tree-inline.c (estimate_num_insns): Handle EH builtins.
38311
38312 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38313
38314         * sel-sched.c (create_speculation_check): Remove set but not used
38315         variable twin.
38316         (try_transformation_cache): Remove set but not used variable ds.
38317         (calculate_privileged_insns): Remove set but not used variables
38318         cur_insn and min_spec_insn.
38319         (find_best_expr): Remove set but not used variable avail_n.
38320         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
38321         variable e.
38322         * cgraphunit.c (assemble_thunk): Remove set but not used variable
38323         false_label.
38324         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
38325         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
38326         new_scop_exit_edge.
38327
38328 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
38329
38330         PR bootstrap/42786
38331         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
38332         cpu types.  Add support for *-sse3 cpu types.
38333         (x86_64-*-*): Ditto.
38334
38335 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38336
38337         PR middle-end/42803
38338         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
38339         argument, call initializer_constant_valid_p_1 instead of
38340         initializer_constant_valid_p, pass CACHE to it, return NULL
38341         immediately if first call returns NULL.
38342         (initializer_constant_valid_p_1): New function.
38343         (initializer_constant_valid_p): Use it.
38344
38345 2010-01-20  Thomas Quinot  <quinot@adacore.com>
38346
38347         * tree.def (PLACEHOLDER_EXPR): Fix comment.
38348
38349 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38350
38351         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
38352         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
38353         (loc_list_from_tree): Don't handle unsigned division.  Handle
38354         signed modulo using DW_OP_{over,over,div,mul,minus}.
38355         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
38356         modulo instead of signed.
38357
38358 2010-01-20  DJ Delorie  <dj@redhat.com>
38359
38360         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
38361         (Fpa): Pass it
38362         (h8300_emit_stack_adjustment): Propogate it.
38363         (push): Pass it.
38364         (h8300_expand_prologue): Likewise.
38365         (h8300_expand_epilogue): Likewise.
38366
38367 2010-01-19  Michael Matz  <matz@suse.de>
38368
38369         PR tree-optimization/41783
38370         * tree-data-ref.c (toplevel): Include flags.h.
38371         (dump_data_dependence_relation):  Also dump the inputs if the
38372         result will be unknown.
38373         (split_constant_offset_1): Look through some conversions.
38374         * tree-predcom.c (determine_roots_comp): Restart a new chain if
38375         the offset from last element is too large.
38376         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
38377         (reassociate_to_the_same_stmt): Handle vector registers.
38378         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
38379         (e.g. conversions).
38380         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
38381         wide_prolog_niters argument, emit widening instructions.
38382         (vect_do_peeling_for_alignment): Adjust caller, use widened
38383         variant of the iteration cound.
38384         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
38385
38386 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38387
38388         PR target/38697
38389         * config/arm/neon-testgen.m (emit_automatics): New parameter
38390         features. Adjust for Fixed_return_reg feature.
38391         (test_intrinsic): Call emit_automatics with new feature.
38392         * config/arm/neon.ml: Update copyright years.
38393         (features): New Fixed_return_reg feature.
38394         (ops): Update feature for Vget_low.
38395
38396 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
38397
38398         PR tree-optimization/42719
38399         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
38400         stmt uses.
38401
38402         PR debug/42728
38403         * fwprop.c (all_uses_available_at): Return false if def_set dest
38404         is a REG that is used in def_insn.
38405
38406 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
38407
38408         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
38409
38410         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
38411         Add argument names.
38412
38413         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
38414
38415         * target.h (struct gcc_target) <secondary_reload>: Change type
38416         of last argument to secondary_reload_info *.
38417
38418 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
38419
38420         PR target/42774
38421         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
38422         memory references with unaligned offsets.  Remove CQImode handling.
38423         (unaligned_memory_operand): Return 1 for memory references with
38424         unaligned offsets.  Remove CQImode handling.
38425
38426 2010-01-18  Richard Guenther  <rguenther@suse.de>
38427
38428         PR middle-end/39954
38429         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
38430         builtin calls.
38431
38432 2010-01-18  Richard Guenther  <rguenther@suse.de>
38433
38434         PR tree-optimization/42781
38435         * tree-ssa-structalias.c (find_what_var_points_to): Skip
38436         restrict processing only if the original variable was artificial.
38437
38438 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
38439
38440         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
38441         find number of popped argument bytes.
38442
38443         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
38444         Fix the text that describes the return value for invalid insns.
38445
38446         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
38447
38448         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
38449         Clarify what 'cost of the -dependence' is.  Fix quoting.
38450
38451         * toplev.c (default_get_pch_validity): Rename argument to "sz".
38452         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
38453
38454 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
38455
38456         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
38457         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
38458
38459 2010-01-17  Richard Guenther  <rguenther@suse.de>
38460
38461         PR middle-end/42248
38462         * function.c (split_complex_args): Take a VEC to modify.
38463         (assign_parms_augmented_arg_list): Build a VEC instead of
38464         a chain of PARM_DECLs.
38465         (assign_parms_unsplit_complex): Take a VEC of arguments.
38466         Do not fixup unmodified parms.
38467         (assign_parms): Deal with the VEC.
38468         (gimplify_parameters): Likewise.
38469
38470 2010-01-17  Richard Guenther  <rguenther@suse.de>
38471
38472         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
38473         node existence check.
38474         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
38475         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
38476         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
38477         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
38478         (gimple_execute_on_growing_pred): Likewise.
38479
38480 2010-01-17  Richard Guenther  <rguenther@suse.de>
38481
38482         PR tree-optimization/42773
38483         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
38484         (compute_antic_aux): Likewise.
38485         (compute_partial_antic_aux): Likewise.
38486
38487 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
38488
38489         PR debug/42767
38490         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
38491         and US_TRUNCATE.
38492
38493 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
38494
38495         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
38496         appearance.
38497
38498         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
38499         Fix markup for strict argument.
38500
38501         (TARGET_SCHED_REORDER2): Fix argument types.
38502
38503         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
38504         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
38505
38506         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
38507         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
38508
38509         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
38510         Add argument name.
38511
38512         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
38513         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
38514         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
38515         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
38516         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
38517
38518         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
38519
38520         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
38521
38522         (TARGET_ASM_RELOC_RW_MASK): Add return type.
38523         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
38524
38525         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
38526
38527         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
38528         Use prototype.
38529
38530         (TARGET_ASM_NAMED_SECTION): Fix argument list.
38531
38532         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
38533         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
38534
38535         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
38536
38537         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
38538
38539         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
38540         referring to it.  Fix language.
38541
38542         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
38543
38544         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
38545
38546         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
38547
38548         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
38549
38550         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
38551         '@var{stream}.  Remove stray 'and'.
38552
38553         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
38554
38555         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
38556
38557         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
38558
38559         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
38560         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
38561
38562         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
38563         Fix description of return value.
38564         Rename argument "sz" to "len."
38565
38566         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
38567         Clarify meaning of 'true' return value.
38568
38569         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
38570
38571         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
38572         rep_mode versus mode_rep.
38573
38574         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
38575
38576         (TARGET_BUILTIN_DECL): Fix name.
38577
38578         (TARGET_COMMUTATIVE_P): Fix type of first argument.
38579
38580         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
38581
38582         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
38583
38584         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
38585
38586         (TARGET_RELAXED_ORDERING): Use @deftypevr.
38587
38588         (TARGET_GET_DRAP_RTX): Note that this is a hook.
38589         Clarify language.
38590
38591         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
38592         Rename argument tm_fn to md_fn.
38593
38594         (TARGET_OPTION_PRINT): Fix argument list.
38595
38596 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
38597
38598         PR target/42664
38599         * config/i386/i386.c (ix86_fixup_binary_operands):
38600         Revert FMA4 fixup of operands.
38601
38602 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38603
38604         PR other/42525
38605         * Makefile.in (write_entries_to_file, install-plugin):
38606         Use \012 instead of \n with tr.
38607
38608 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
38609
38610         * configure.ac (HAVE_AS_REF): New C macro.
38611         * configure: Regenerate.
38612         * config.in: Likewise.
38613         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
38614         if HAVE_AS_REF.
38615         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
38616         if HAVE_AS_REF.
38617
38618 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
38619
38620         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
38621
38622         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
38623
38624         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
38625
38626         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
38627
38628         (TARGET_IN_SMALL_DATA_P): Fix argument type.
38629
38630         (TARGET_BINDS_LOCAL_P): Fix argument type.
38631
38632         (TARGET_ASM_FILE_END): Use prototype.
38633
38634         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
38635
38636         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
38637
38638         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
38639
38640         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
38641
38642         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
38643         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
38644
38645         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
38646         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
38647
38648         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
38649         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
38650         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
38651         (TARGET_ADDR_SPACE_CONVERT): Likewise.
38652
38653         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
38654
38655         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
38656
38657         (TARGET_INIT_BUILTINS): Use prototype.
38658
38659         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
38660         Put 'const char *' in braces.  Fix parameter types.
38661         (TARGET_INVALID_CONVERSION): Fix parameter types.
38662         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
38663         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
38664
38665         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
38666         Fix argument type.
38667
38668         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
38669
38670         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
38671
38672 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
38673
38674         * doc/tm.texi (TARGET_HELP): Fix return type.
38675
38676         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
38677         in braces.  Fix argument types.
38678
38679         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
38680
38681         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
38682
38683         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
38684
38685         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
38686         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
38687
38688         (TARGET_MANGLE_TYPE): Fix argument types.
38689
38690         (TARGET_IRA_COVER_CLASSES): Use prototype.
38691
38692         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
38693
38694         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
38695
38696         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
38697
38698         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
38699
38700         (TARGET_CALLEE_COPIES): Fix argument types.
38701
38702         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
38703
38704         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
38705
38706         (TARGET_FUNCTION_VALUE): Fix argument types.
38707
38708         (TARGET_RETURN_IN_MSB): Fix argument type.
38709
38710         (TARGET_RETURN_IN_MEMORY): Fix argument types.
38711
38712         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
38713
38714         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
38715
38716         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
38717         agree with return type.
38718
38719         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
38720
38721 2010-01-15  Jing Yu  <jingyu@google.com>
38722
38723         PR rtl-optimization/42691
38724         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
38725         a pseudo to a constant and are merged, and adjust comments.
38726
38727 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
38728
38729         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
38730
38731 2010-01-15  Richard Guenther  <rguenther@suse.de>
38732
38733         PR middle-end/42739
38734         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
38735         labels of computed or non-local gotos to the destination.
38736         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
38737         landing pad label is the first label.
38738
38739 2010-01-15  Richard Guenther  <rguenther@suse.de>
38740
38741         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
38742
38743 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
38744
38745         PR target/42747
38746         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
38747         to allow generation of the xssqrtdp instruction on power7.
38748         (sqrtdf2_fpr): Ditto.
38749
38750 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38751
38752         PR middle-end/42674
38753         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
38754         functions with noreturn attribute.
38755
38756         PR c++/42608
38757         * varasm.c (declare_weak): Add weak attribute to decl if it
38758         doesn't have one already.
38759         (assemble_external): Only add decls to weak_decls if they also
38760         have weak attribute.
38761
38762 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
38763
38764         * var-tracking.c (var_reg_delete): Don't delete the association
38765         between REGs and values or one-part variables if the register
38766         isn't clobbered.
38767
38768 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38769
38770         PR debug/42657
38771         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
38772         because its first operand is a non-localized variable.
38773
38774 2010-01-14  Martin Jambor  <mjambor@suse.cz>
38775
38776         PR tree-optimization/42706
38777         * tree-sra.c (encountered_recursive_call): New variable.
38778         (encountered_unchangable_recursive_call): Likewise.
38779         (sra_initialize): Initialize both new variables.
38780         (callsite_has_enough_arguments_p): New function.
38781         (scan_function): Call decl and flags check only for IPA-SRA, check
38782         whether there is a recursive call and whether it has enough arguments.
38783         (all_callers_have_enough_arguments_p): New function.
38784         (convert_callers): Look for recursive calls only when
38785         encountered_recursive_call is set.
38786         (ipa_early_sra): Bail out either if
38787         !all_callers_have_enough_arguments_p or
38788         encountered_unchangable_recursive_call.
38789
38790 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38791
38792         * sel-sched.c: Add 2010 to copyright years.
38793         * sel-sched-ir.c: Likewise.
38794         * sel-sched-ir.h: Likewise.
38795
38796 2010-01-14  Martin Jambor  <mjambor@suse.cz>
38797
38798         PR tree-optimization/42714
38799         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
38800         constructors specially.
38801
38802 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38803
38804         * config/i386/drivers-i386.c (detect_caches_intel):
38805         Add l2sizekb parameter and fill in.
38806         (host_detect_local_cpu): Add l2sizekb, fill in.
38807         Add Atom small cache heuristic.
38808
38809 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38810
38811         * config/i386/drivers-i386.c (detect_caches_cpuid4):
38812         Add level3 parameter and fill in.
38813         (detect_caches_intel): Handle level3 cache.
38814
38815 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38816
38817         * config/i386/drivers-i386.c (host_detect_local_cpu):
38818         Fix core duo detection.
38819
38820 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38821
38822         * config/i386/drivers-i386.c (host_detect_local_cpu):
38823         Fix Atom detection.
38824
38825 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38826
38827         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
38828         (rs6000_variable_issue_1): this.  Use...
38829         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
38830
38831 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38832
38833         * sel-sched-ir.c (sel_restore_other_notes): Rename to
38834         sel_restore_notes.  Update all callers.  Call reemit_notes
38835         for all insns.
38836
38837 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38838
38839         PR rtl-optimization/42246
38840         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
38841         loops.
38842
38843 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38844
38845         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
38846         all successors is the same as number of successors in current region.
38847
38848 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38849
38850         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
38851         to rename is not separable.  Otherwise check that its LHS is not NULL.
38852
38853 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38854
38855         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
38856
38857 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38858
38859         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
38860         available registers when failed to discover LHS register class.
38861         Fix indentation.  Update comment.
38862
38863 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38864             Alexander Monakov  <amonakov@ispras.ru>
38865
38866         PR rtl-optimization/42389
38867         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
38868         to can_issue_more.
38869         (advance_state_on_fence): Likewise.
38870         (sel_target_adjust_priority): Print debug output only when
38871         sched_verbose >= 4, not 2.
38872         (get_expr_cost): Do not issue all unique insns on the next cycle.
38873         (fill_insns): Initialize can_issue_more from the value saved
38874         with the fence.
38875         * sel-sched-ir.c (flist_add): New parameter issue_more.
38876         Init FENCE_ISSUE_MORE with it.
38877         (merge_fences): Likewise.
38878         (init_fences): Update call to flist_add.
38879         (add_to_fences, add_clean_fence_to_fences)
38880         (add_dirty_fence_to_fences): Likewise.
38881         (move_fence_to_fences): Update call to merge_fences.
38882         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
38883         sched groups.
38884         * sel-sched-ir.h (struct _fence): New field issue_more.
38885         (FENCE_ISSUE_MORE): New accessor macro.
38886
38887 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38888
38889         PR rtl-optimization/42388
38890         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
38891         that have no predecessors nor successors.  Do not call move_bb_info
38892         for empty blocks outside of current region.
38893
38894 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38895
38896         PR rtl-optimization/42294
38897         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
38898         * sel-sched.c (move_exprs_to_boundary): Transitively add all
38899         originators' originators.
38900
38901 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38902
38903         PR rtl-optimization/39453
38904         PR rtl-optimization/42246
38905         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
38906         for pipelining_p.
38907         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
38908
38909 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38910             Alexander Monakov  <amonakov@ispras.ru>
38911
38912         PR middle-end/42245
38913         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
38914         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
38915         argument.  Update all callers.
38916         (tidy_control_flow): ... and here.  Recompute topological order
38917         of basic blocks in region if necessary.
38918         (sel_redirect_edge_and_branch): Change return type.  Return true
38919         if topological order might have been invalidated.
38920         (purge_empty_blocks): Export and move from...
38921         * sel-sched.c (purge_empty_blocks): ... here.
38922         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
38923         (maybe_tidy_empty_bb): Delete prototype.
38924         (purge_empty_blocks): Declare.
38925
38926 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38927
38928         PR rtl-optimization/42249
38929         * sel-sched.c (try_replace_dest_reg): When chosen register
38930         and original register is the same, do not bail out early, but
38931         still check all original insns for validity of replacing destination
38932         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
38933         in this case.
38934
38935 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38936
38937         PR c/42721
38938         Port from no-undefined-overflow branch:
38939         2009-03-09  Richard Guenther  <rguenther@suse.de>
38940
38941         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
38942
38943 2010-01-14  Richard Guenther  <rguenther@suse.de>
38944
38945         PR lto/42665
38946         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
38947
38948 2010-01-14  Ira Rosen  <irar@il.ibm.com>
38949
38950         PR tree-optimization/42709
38951         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
38952         as scalar type in creation of constant vector operand.
38953
38954 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38955
38956         PR testsuite/42414
38957         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
38958         (check-parallel-%): Match `testsuite' directory component only
38959         at the end.
38960
38961 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
38962
38963         PR translation/39521
38964         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
38965         strings with _().
38966
38967 2010-01-13  Richard Guenther  <rguenther@suse.de>
38968
38969         PR tree-optimization/42730
38970         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
38971         offset zero.
38972
38973 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
38974
38975         PR target/pr42542
38976         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
38977         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
38978         them signed.
38979
38980 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
38981
38982         * config/bfin/libgcc-bfin.ver: Regenerate based on current
38983         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
38984         ___umulsi3_highpart.
38985
38986         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
38987         rather than schedule_insns if the pass is enabled.
38988
38989 2010-01-13  Martin Jambor  <mjambor@suse.cz>
38990
38991         PR tree-optimization/42704
38992         * tree-sra.c (sra_modify_assign): Do not delete assignments to
38993         SSA_NAMEs.
38994
38995 2010-01-13  Martin Jambor  <mjambor@suse.cz>
38996
38997         PR tree-optimization/42703
38998         * tree-sra.c (analyze_access_subtree): Check that we can build a
38999         reference to the original data within the aggregate.
39000
39001 2010-01-13  Richard Guenther  <rguenther@suse.de>
39002
39003         PR tree-optimization/42705
39004         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
39005
39006 2010-01-13  Richard Guenther  <rguenther@suse.de>
39007
39008         PR middle-end/42716
39009         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
39010
39011 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
39012
39013         PR debug/41371
39014         * var-tracking.c (values_to_unmark): New variable.
39015         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
39016         values_to_unmark vector.  Moved body to...
39017         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
39018         instead queue it into values_to_unmark vector.
39019         (vt_find_locations): Free values_to_unmark vector.
39020
39021 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
39022
39023         * config/s390/s390.c (override_options): Set
39024         default of max-pending-list-length to 256
39025
39026 2010-01-13  Richard Guenther  <rguenther@suse.de>
39027
39028         PR lto/42678
39029         * tree-pass.h (PROP_gimple_lcx): New.
39030         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
39031         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
39032         before the final cleanup_eh.
39033         (dump_properties): Dump PROP_gimple_lcx.
39034         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
39035         (tree_lower_complex_O0): Remove.
39036         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
39037         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
39038         tree_lower_complex, schedule TODO_update_ssa.
39039         * lto-streamer-out.c (output_function): Stream the functions
39040         properties.
39041         * lto-streamer-in.c (input_function): Likewise.
39042         (lto_read_body): Do not override them here.
39043
39044 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
39045
39046         PR c/42708
39047         * c-typeck.c (build_c_cast): Fold value cast to union type before
39048         wrapping it in a CONSTRUCTOR.
39049
39050 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
39051
39052         PR rtl-optimization/42699
39053         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
39054         involved.
39055
39056 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39057
39058         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
39059         SUBTARGET_WARN_UNUSED_SPEC): Move ...
39060         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
39061         SUBTARGET_WARN_UNUSED_SPEC): ... here
39062         * config/mips/iris5.h (LIBGCC_SPEC): Define.
39063
39064 2010-01-12  Julian Brown  <julian@codesourcery.com>
39065
39066         * config/arm/neon-schedgen.ml (Utils): Don't try to
39067         open missing module.
39068         (find_with_result): New.
39069
39070 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
39071
39072         PR debug/42662
39073         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
39074         sharing when canonicalizing ({lt,ge}u (plus a b) b).
39075
39076         PR tree-optimization/42645
39077         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
39078         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
39079         decl_map, set processing_debug_stmt to -1 and return name without
39080         any remapping.
39081
39082 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
39083
39084         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
39085         binutils version, and reword target configuration description.
39086
39087 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
39088
39089         * config/avr/avr.h (LINKER_NAME): Remove.
39090
39091 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
39092
39093         PR target/42416
39094         * config/rs6000/rs6000.c (rs6000_override_options): On targets
39095         that support VSX, warn for -mno-altivec if vsx is not disabled,
39096         and disable vsx.
39097
39098 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
39099             Shujing Zhao  <pearly.zhao@oracle.com>
39100
39101         PR translation/42469
39102         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
39103         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
39104         character between option name and help text.
39105         * c.opt (imultilib): Likewise.
39106
39107 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
39108
39109         * lto-streamer-out.c (output_unreferenced_globals): Output static
39110         variables.
39111
39112 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
39113
39114         PR rtl-optimization/42621
39115         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
39116         optimizing for size.
39117         (duplicate_computed_gotos): Remove now-redundant check.
39118
39119 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
39120
39121         PR target/37454
39122         * configure.ac: Save and restore LDFLAGS and LIBS
39123         * configure: Regenerate.
39124
39125 2010-01-10  Richard Guenther  <rguenther@suse.de>
39126
39127         PR middle-end/42667
39128         * builtins.c (fold_builtin_strlen): Add type argument and
39129         convert the resulting length to it.
39130         (fold_builtin_1): Adjust.
39131
39132 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
39133
39134         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
39135         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
39136         1 insn.
39137         (num_insns_constant_wide): Adjust for that change.
39138
39139 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39140
39141         PR debug/42631
39142         * web.c (union_defs): Add used argument, to combine uses of
39143         uninitialized regs.
39144         (entry_register): Adjust type and tests of used argument.
39145         (web_main): Widen used for new use.  Pass it to union_defs.
39146         * df.h (union_defs): Adjust prototype.
39147
39148 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39149
39150         PR debug/42630
39151         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
39152         uses in new incoming argument.  Free body.
39153         (reset_debug_uses_in_loop): New.
39154         (analyze_insn_to_expand_var): Call the latter if the former found
39155         anything.  Fix whitespace.  Reject invalid dest overlaps before
39156         going through all insns in the loop.
39157
39158 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39159
39160         PR debug/42629
39161         * haifa-sched.c (dying_use_p): Debug insns don't count.
39162
39163 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39164
39165         PR middle-end/42363
39166         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
39167         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
39168         (verify_gimple_call): Reject LHS in noreturn calls.
39169
39170 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39171
39172         PR debug/42604
39173         PR debug/42395
39174         * tree-vect-loop-manip.c (adjust_info): New type.
39175         (adjust_vec): New pointer to vector.
39176         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
39177         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
39178         (slpeel_update_phis_for_duplicate_loop): Use them.
39179         (slpeel_update_phi_nodes_for_guard1): Likewise.
39180         (slpeel_update_phi_nodes_for_guard2): Likewise.
39181         (slpeel_tree_peel_loop_to_edge): Likewise.
39182         (vect_update_ivs_after_vectorizer): Likewise.
39183
39184 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39185
39186         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
39187         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
39188
39189 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39190
39191         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
39192         bogus uninitialized warning.
39193
39194 2010-01-09  Richard Guenther  <rguenther@suse.de>
39195
39196         PR middle-end/42512
39197         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
39198         the evolution is compatible with the initial condition.
39199
39200 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
39201
39202         * gcc.c (process_command): Update copyright notice dates.
39203         * gcov.c (print_version): Likewise.
39204         * gcov-dump.c (print_version): Likewise.
39205         * mips-tfile.c (main): Likewise.
39206         * mips-tdump.c (main): Likewise.
39207
39208 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
39209
39210         PR target/41885
39211         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
39212         (rotlhi3): Delete.
39213         (rotlhi3_8): Delete.
39214         (rotlsi3): Delete.
39215         (rotlsi3_8): Delete.
39216         (rotlsi3_16): Delete.
39217         (rotlsi3_24): Delete.
39218         (rotl<mode>3): New.
39219         (*rotw<mode>3): New.
39220         (*rotb<mode>3): New.
39221         * config/avr/avr.c (avr_rotate_bytes): New function.
39222         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
39223
39224 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
39225
39226         PR target/37454
39227         * configure.ac: Modify -rdynamic check.
39228         * configure: Regenerate.
39229
39230 2010-01-08  DJ Delorie  <dj@redhat.com>
39231
39232         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
39233         register popping order.
39234
39235 2010-01-08  Richard Guenther  <rguenther@suse.de>
39236
39237         PR lto/42528
39238         * c.opt (fsigned-char): Also let LTO handle this option.
39239         (funsigned-char): Likewise.
39240
39241 2010-01-07  Richard Guenther  <rguenther@suse.de>
39242
39243         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
39244         (gimple_op): Likewise.
39245         (gimple_op_ptr): Likewise.
39246         (gimple_assign_set_lhs): Remove gcc_assert.
39247         (gimple_assign_set_rhs1): Likewise.
39248         (gimple_assign_set_rhs2): Likewise.
39249         (gimple_call_set_lhs): Likewise.
39250         (gimple_call_set_fn): Likewise.
39251         (gimple_call_set_fndecl): Likewise.
39252         (gimple_call_fndecl): Likewise.
39253         (gimple_call_return_type): Likewise.
39254         (gimple_call_set_chain): Likewise.
39255         (gimple_call_num_args): Likewise.
39256         (gimple_call_set_arg): Likewise.
39257         (gimple_cond_set_code): Likewise.
39258         (gimple_cond_set_lhs): Likewise.
39259         (gimple_cond_set_rhs): Likewise.
39260         (gimple_cond_set_true_label): Likewise.
39261         (gimple_cond_set_false_label): Likewise.
39262         (gimple_label_set_label): Likewise.
39263         (gimple_goto_set_dest): Likewise.
39264         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
39265         (gimple_debug_bind_get_value): Likewise.
39266         (gimple_debug_bind_get_value_ptr): Likewise.
39267         (gimple_debug_bind_set_var): Likewise.
39268         (gimple_debug_bind_set_value): Likewise.
39269         (gimple_debug_bind_reset_value): Likewise.
39270         (gimple_debug_bind_has_value_p): Likewise.
39271         (gimple_return_retval_ptr): Remove gcc_assert.
39272         (gimple_return_retval): Likewise.
39273         (gimple_return_set_retval): Likewise.
39274         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
39275         (safe_referenced_var_iterator): Remove.
39276         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
39277         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
39278         (fill_referenced_var_vec): Remove.
39279         (first_readonly_imm_use): Remove redundant gcc_assert.
39280         (phi_arg_index_from_use): Combine gcc_asserts.
39281         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
39282         (first_imm_use_stmt): Remove redundant gcc_assert.
39283         * tree-cfg.c (verify_gimple_call): Verify function and chain
39284         operands.  Verify arguments.
39285         (verify_types_in_gimple_stmt): Verify condition code and labels.
39286
39287 2010-01-07  Richard Guenther  <rguenther@suse.de>
39288
39289         PR tree-optimization/42641
39290         * sese.c (rename_map_elt_info): Use the SSA name version, do
39291         not hash pointers.
39292
39293 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
39294
39295         PR tree-optimization/42625
39296         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
39297         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
39298
39299 2010-01-07  Duncan Sands  <baldrick@free.fr>
39300
39301         * Makefile.in (PLUGIN_HEADERS): Add version.h.
39302
39303 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
39304
39305         PR target/42511
39306         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
39307         note itself is not function_invariant_p.
39308
39309 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
39310
39311         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
39312         Do not add the DF_NOTE problem.
39313         * store-motion.c (execute_rtl_store_motion): Likewise.
39314
39315 2010-01-07  Martin Jambor  <mjambor@suse.cz>
39316
39317         PR tree-optimization/42157
39318         * tree-sra.c (compare_access_positions): Stabilize sort if both
39319         accesses have integer types, return zero immediately if they are the
39320         same.
39321
39322 2010-01-06  Richard Henderson  <rth@redhat.com>
39323
39324         PR middle-end/41883
39325         * haifa-sched.c (add_to_note_list): Merge into ...
39326         (concat_note_lists): ... here, and ...
39327         (unlink_other_notes, rm_other_notes): Merge into...
39328         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
39329         NOTE_INSN_EPILOGUE_BEG.
39330
39331 2010-01-06  Richard Guenther  <rguenther@suse.de>
39332
39333         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
39334         not inline regular functions into always-inline functions.
39335
39336 2010-01-06  Nick Clifton  <nickc@redhat.com>
39337
39338         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
39339         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
39340         used together.
39341         (OVERRIDE_OPTIONS): Delete.
39342         (OPTIMIZATION_OPTIONS): Define.
39343         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
39344         * config/rx/rx.c (rx_handle_option): Issue an error message if
39345         -mcpu=rx200 and -fpu are used together.
39346         (rx_set_optimization_options): New function.  Issue an error
39347         message if an optimization attribute attempts to reset the FPU/
39348         math optimization pairing.
39349         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
39350         * config/rx/rx.opt: Set the default to 32-bit doubles.
39351         * config/rx/t-rx: Add multilibs for -nofpu option.
39352         * doc/invoke.texi: Update documentation of RX options.
39353
39354 2010-01-06  Richard Guenther  <rguenther@suse.de>
39355
39356         * tree-ssa-pre.c (name_to_id): New global.
39357         (alloc_expression_id): Simplify SSA name handling.
39358         (lookup_expression_id): Likewise.
39359         (init_pre): Zero name_to_id.
39360         (fini_pre): Free it.
39361
39362 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
39363
39364         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
39365
39366 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
39367
39368         PR target/42542
39369         * config/i386/sse.md (smaxv2di3): New.
39370         (umaxv2di3): Likewise.
39371         (sminv2di3): Likewise.
39372         (uminv2di3): Likewise.
39373
39374 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
39375
39376         PR target/42564
39377         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
39378         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
39379         (legitimize_tls_address): Likewise.
39380         (sparc_tls_referenced_p): Likewise.
39381         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
39382         and adjust calls to legitimize_pic_address.
39383         (legitimate_constant_p) Use sparc_tls_referenced_p.
39384         (legitimate_pic_operand_p): Likewise.
39385         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
39386         (sparc_tls_symbol_ref_1): Delete.
39387         (sparc_tls_referenced_p): Make static, recognize specific patterns.
39388         (legitimize_tls_address): Make static, handle CONST patterns.
39389         (legitimize_pic_address): Make static, remove unused parameter and
39390         adjust recursive calls.
39391         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
39392         and adjust call to legitimize_pic_address.
39393         (sparc_output_mi_thunk): Likewise.
39394
39395 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
39396             H.J. Lu  <hongjiu.lu@intel.com>
39397
39398         PR target/42542
39399         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
39400         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
39401         operands to make them signed.
39402
39403         Revert:
39404         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
39405
39406         PR target/42542
39407         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
39408         GTU to GT for V4SI and V2DI.
39409
39410         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
39411         (umin<mode>3): Removed.
39412         (uminv8hi3): New.
39413         (uminv4si3): Likewise.
39414
39415 2010-01-05  Martin Jambor  <mjambor@suse.cz>
39416
39417         PR tree-optimization/42462
39418         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
39419         current_function_decl to helper functions and macros.
39420
39421 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39422
39423         PR bootstrap/41771
39424         * flags.h: Don't include real.h.
39425         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
39426         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
39427         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
39428         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
39429         * dominance.c: Update copyright.
39430         * gimple.c (walk_gimple_op): Remove inline.
39431         * tree-ssa-reassoc.c: Include real.h.
39432         * Makefile.in (FLAGS_H): Remove $(REAL_H).
39433         (tree-ssa-reassoc.o): Depend on $(REAL_H).
39434
39435 2010-01-05  Nick Clifton  <nickc@redhat.com>
39436
39437         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
39438         register to push into the stack frame when the accumulator has to
39439         be saved during interrupts.
39440
39441 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
39442
39443         * doc/invoke.texi: Remove the documentation about option
39444         -Wunreachable-code.
39445         * common.opt (Wunreachable-code):  Preserved for backward
39446         compatibility.
39447         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
39448         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
39449         the backward compatibility flag section.
39450
39451 2010-01-05  Richard Guenther  <rguenther@suse.de>
39452
39453         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
39454
39455 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
39456
39457         PR other/42611
39458         * cfgexpand.c (expand_one_var): Diagnose too large variables.
39459
39460         PR tree-optimization/42508
39461         * tree-sra.c (convert_callers): Check for recursive call
39462         by comparing cgraph nodes instead of decls.
39463         (modify_function): Call ipa_modify_formal_parameters also
39464         on all same_body aliases.
39465
39466         * cgraphunit.c (cgraph_materialize_all_clones): Compare
39467         cgraph nodes when checking for same_body aliases.
39468
39469 2010-01-05  Richard Guenther  <rguenther@suse.de>
39470
39471         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
39472         allocation and lookup.
39473         (get_or_alloc_expr_for_constant): Likewise.
39474         (phi_translate): Sink allocation.
39475
39476 2010-01-04  Richard Guenther  <rguenther@suse.de>
39477
39478         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
39479         a new entry only if needed.
39480         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
39481         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
39482         hashtable lookup.
39483         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
39484         the result array.
39485         (phi_translate): Handle CONSTANTs early.
39486
39487 2010-01-04  Martin Jambor  <mjambor@suse.cz>
39488
39489         PR tree-optimization/42398
39490         * tree-sra.c (struct access): Removed flag grp_different_types.
39491         (dump_access): Do not dump the removed flag.
39492         (sort_and_splice_var_accesses): Do not set the removed flag.
39493         (sra_modify_expr): Check for type compatibility directly.
39494
39495 2010-01-04  Martin Jambor  <mjambor@suse.cz>
39496
39497         PR tree-optimization/42366
39498         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
39499         edges with variable number of parameters.
39500         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
39501         flag instead of asserting it.
39502         (ipa_read_node_info): Read uses_analysis_done flag.
39503
39504 2010-01-04  Richard Guenther  <rguenther@suse.de>
39505
39506         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
39507         iterative_hash_* as intended.
39508         (vn_reference_compute_hash): Likewise.  Simplify hashing
39509         SSA names.
39510         (vn_reference_lookup_2): Likewise.
39511         (vn_nary_op_compute_hash): Likewise.
39512         (vn_phi_compute_hash): Likewise.
39513         (expressions_equal_p): Remove strange code.
39514         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
39515         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
39516         (bitmap_insert_into_set_1): Take value-id as parameter.
39517         (add_to_value): Pass it.
39518         (bitmap_insert_into_set): Likewise.
39519         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
39520
39521 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
39522
39523         PR driver/42442
39524         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
39525         (do_self_spec): For switches with SWITCH_IGNORE set set also
39526         SWITCH_IGNORE_PERMANENTLY.
39527         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
39528         of SWITCH_IGNORE.
39529
39530 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
39531
39532         * lto-streamer-out.c (output_unreferenced_globals): Output the full
39533         tree of an unreferenced global var.
39534
39535 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
39536
39537         PR target/42542
39538         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
39539         GTU to GT for V4SI and V2DI.
39540
39541         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
39542         (umin<mode>3): Removed.
39543         (uminv8hi3): New.
39544         (uminv4si3): Likewise.
39545
39546 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
39547
39548         PR lto/42581
39549         * collect2.c (main): Turn on trace in collect2 if -v is passed
39550         to gcc with LTO.
39551
39552 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
39553
39554         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
39555         description of expression operand.
39556
39557 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
39558
39559         * configure.ac: Add install-html to target_list for Make-hooks.
39560         * configure: Regenerate.
39561         * fortran/Make-lang.in (F95_HTMLFILES): New.
39562         (fortran.html): Use it.
39563         (fortran.install-html): New.
39564         * Makefile.in (install-html): Add lang.install-html.
39565         * java/Make-lang.in (JAVA_HTMLFILES): New.
39566         (java.html): Use it.
39567         (java.install-html): New.
39568         * objc/Make-lang.in (objc.install-html): New.
39569         * objcp/Make-lang.in (obj-c++.install-html): New.
39570         * cp/Make-lang.in (c++.install-html): New.
39571         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
39572         * lto/Make-lang.in (lto.install-html): New.
39573
39574 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
39575
39576         PR lto/42520
39577         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
39578
39579 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
39580
39581         PR rtl-optimization/41862
39582         * store-motion.c (store_killed_in_insn, compute_store_table,
39583         remove_reachable_equiv_notes, replace_store_insn,
39584         build_store_vectors): Ignore all DEBUG_INSNs.
39585
39586 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
39587
39588         PR lto/41564
39589         * common.opt: Add dumpdir.
39590
39591         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
39592         isn't specified.
39593         (option_map): Add --dumpdir.
39594
39595         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
39596
39597         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
39598
39599         * opts.c (decode_options): Try dump_dir_name first if
39600         dump_base_name isn't an absolute path.
39601         (common_handle_option): Handle OPT_dumpdir.
39602
39603         * toplev.c (dump_dir_name): New.
39604         (print_switch_values): Also ignore -dumpdir.
39605
39606         * toplev.h (dump_dir_name): New.
39607
39608 2010-01-03  Richard Guenther  <rguenther@suse.de>
39609
39610         PR tree-optimization/42589
39611         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
39612         double-word expansion of bswap32.
39613
39614 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
39615
39616         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
39617         with BLOCK_FOR_INSN.
39618         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
39619         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
39620         noce_process_if_block): Likewise.
39621         * gcse.c (compute_local_properties, insert_expr_in_table,
39622         insert_set_in_table, canon_list_insert, find_avail_set,
39623         pre_insert_copy_insn): Likewise.
39624
39625         * basic-block.h (BLOCK_NUM): Move from here...
39626         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
39627
39628 2010-01-03  Richard Guenther  <rguenther@suse.de>
39629
39630         PR tree-optimization/42438
39631         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
39632         contains_may_not_return_call flag.
39633         (BB_MAY_NOTRETURN): New.
39634         (valid_in_sets): Trapping nary operations are not valid
39635         in blocks that may not return.
39636         (insert_into_preds_of_block): Remove check for trapping expressions.
39637         (compute_avail): Compute also BB_MAY_NOTRETURN.
39638
39639 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
39640
39641         * doc/invoke.texi: Add 2010 to copyright years.
39642
39643 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
39644
39645         * config/sparc/sparc.c: Fix formatting nits.
39646
39647 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
39648             Alexander Monakov  <amonakov@ispras.ru>
39649
39650         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
39651
39652 2010-01-02  Richard Guenther  <rguenther@suse.de>
39653
39654         PR middle-end/42577
39655         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
39656         (simplify_switch_using_ranges): Mark to be removed edges
39657         as non-executable.
39658
39659 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
39660
39661         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
39662
39663         * collect2.c (scan_libraries): Add missing argument in call to
39664         scan_prog_file.
39665
39666 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
39667
39668         PR target/42448
39669         * config/alpha/predicates.md (aligned_memory_operand): Return false
39670         for CQImode.
39671         (unaligned_memory_operand): Return true for CQImode.
39672         * config/alpha/alpha.c (get_aligned_mem): Assert that location
39673         doesn not cross aligned SImode word boundary.
39674
39675 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
39676
39677         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
39678         Remove.
39679         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
39680         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
39681
39682 2010-01-02  Richard Guenther  <rguenther@suse.de>
39683
39684         PR lto/41597
39685         * toplev.c (compile_file): Emit LTO marker properly.  Change
39686         it to __gnu_lto_v1.
39687         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
39688
39689 2010-01-01  Richard Guenther  <rguenther@suse.de>
39690
39691         PR debug/42455
39692         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
39693
39694 2010-01-01  Richard Guenther  <rguenther@suse.de>
39695
39696         PR c/42570
39697         * c-decl.c (grokdeclarator): For zero-size arrays force
39698         structural equality checks as layout_type does.
39699
39700 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
39701
39702         * builtins.c: Update copyright to 2010.
39703
39704 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
39705
39706         PR lto/42531
39707         * lto-streamer-out.c (produce_asm): Revert the last change.
39708         (copy_function): Likewise.
39709
39710         * lto-streamer.c (lto_get_section_name): Skip any leading
39711         asterisk in name.
39712
39713 2010-01-01  Richard Guenther  <rguenther@suse.de>
39714
39715         PR middle-end/42559
39716         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
39717         for LABEL_DECLs.
39718
39719 \f
39720 Copyright (C) 2010 Free Software Foundation, Inc.
39721
39722 Copying and distribution of this file, with or without modification,
39723 are permitted in any medium without royalty provided the copyright
39724 notice and this notice are preserved.