OSDN Git Service

6f6c7f37ab1583f2ddc4c40c06dd6f0bedb3141c
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
2
3         * config/cris/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
4         * config.gcc (crisv32-*-linux* | cris-*-linux*): Don't use svr4.h.
5
6 2010-12-09  Richard Guenther  <rguenther@suse.de>
7
8         PR middle-end/46844
9         * gimple-fold.c (canonicalize_constructor_val): Canonicalize
10         addresses.
11
12 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
13
14         * config/i386/netware.h (TARGET_POSIX_IO): Define.
15         * config/i386/nto.h (TARGET_POSIX_IO): Define.
16         * config/ia64/hpux.h (TARGET_POSIX_IO): Define.
17         * config/moxie/moxie.h (TARGET_POSIX_IO): Don't undefine.
18         * config/openbsd.h (TARGET_POSIX_IO): Define.
19         * config/rtems.h (TARGET_POSIX_IO): Define.
20         * config/sh/embed-elf.h (TARGET_POSIX_IO): Don't undefine.
21         * config/sol2.h (TARGET_POSIX_IO): Define.
22         * config/svr4.h (TARGET_POSIX_IO): Don't define.
23         * config/vxworksae.h (TARGET_POSIX_IO): Define.
24
25 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
26
27         * config/i386/nto.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
28         * config/ia64/hpux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
29         Define.
30         * config/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
31         undefine.
32         * config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
33         undefine.
34         * config/mips/netbsd.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
35         Don't undefine.
36         * config/rs6000/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
37         Don't undefine.
38         * config/rs6000/linux64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
39         Don't undefine.
40         * config/sol2.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
41         * config/sparc/netbsd-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
42         Don't undefine.
43         * config/sparc/openbsd64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
44         Don't undefine.
45         * config/sparc/sp64-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
46         Don't undefine.
47         * config/svr4.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
48         define.
49         * config/xtensa/elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
50         undefine.
51
52 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
53
54         * config/ia64/hpux.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
55         non-GNU assembler.
56         * config/m68k/netbsd-elf.h (AS_NEEDS_DASH_FOR_PIPED_INPUT):
57         Remove.
58         * config/m68k/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
59         * config/mips/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
60         * config/sol2.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
61         non-GNU assembler.
62         * config/sparc/sparc.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
63         * config/svr4.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
64
65 2010-12-09  Martin Jambor  <mjambor@suse.cz>
66
67         * ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the
68         zero is the first phi parameter.
69
70 2010-12-09  Martin Jambor  <mjambor@suse.cz>
71
72         * ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type.
73         * ipa-prop.c (ipa_modify_call_arguments): Use it.
74         * tree-sra.c (splice_param_accesses): Test that all accesses have the
75         same alias reference type.
76         (turn_representatives_into_adjustments): Set alias_ptr_type of the
77         adjustment.
78
79 2010-12-09  Martin Jambor  <mjambor@suse.cz>
80
81         PR middle-end/46734
82         * tree-sra.c (splice_param_accesses): Check that there are not
83         multiple ADDRESSABLE types.
84
85 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
86
87         * config/arc/arc.h (ASM_SPEC): Remove %{v}.
88         * config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
89         * config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
90         * config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
91         * config/frv/frv.h (ASM_SPEC): Remove %{v}.
92         * config/i386/linux.h (ASM_SPEC): Remove %{v}.
93         * config/i386/linux64.h (ASM_SPEC): Remove %{v}.
94         * config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
95         * config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
96         * config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
97         * config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
98         * config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
99         * config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
100         * config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
101         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
102         * config/mips/mips.h (ASM_SPEC): Remove %{v}.
103         * config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
104         * config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
105         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
106         * config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
107         * config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
108         * config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
109         * config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
110         * config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
111         * config/xtensa/linux.h (ASM_SPEC): Remove %{v}.
112
113 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
114
115         * config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
116         * config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
117         * config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not
118         %{r*:}.
119         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not
120         %{r*:}.
121         * config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
122         * config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.
123
124 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
125
126         * config/alpha/freebsd.h (LINK_SPEC): Don't use
127         %{!dynamic-linker:}.
128         * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
129         * config/arm/freebsd.h (LINK_SPEC): Likewise.
130         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
131         * config/bfin/linux.h (LINK_SPEC): Likewise.
132         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
133         * config/frv/linux.h (LINK_SPEC): Likewise.
134         * config/i386/freebsd.h (LINK_SPEC): Likewise.
135         * config/i386/freebsd64.h (LINK_SPEC): Likewise.
136         * config/i386/linux.h (LINK_SPEC): Likewise.
137         * config/i386/linux64.h (LINK_SPEC): Likewise.
138         * config/i386/openbsdelf.h (LINK_SPEC): Likewise.
139         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
140         * config/ia64/linux.h (LINK_SPEC): Likewise.
141         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
142         * config/m32r/linux.h (LINK_SPEC): Likewise.
143         * config/m68k/linux.h (LINK_SPEC): Likewise.
144         * config/microblaze/linux.h (LINK_SPEC): Likewise.
145         * config/mips/linux.h (LINK_SPEC): Likewise.
146         * config/mips/linux64.h (LINK_SPEC): Likewise.
147         * config/mips/openbsd.h (LINK_SPEC): Likewise.
148         * config/mn10300/linux.h (LINK_SPEC): Likewise.
149         * config/netbsd-elf.h (LINK_SPEC): Likewise.
150         * config/pa/pa-linux.h (LINK_SPEC): Likewise.
151         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
152         LINK_OS_LINUX_SPEC64): Likewise.
153         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
154         LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC):
155         Likewise.
156         * config/s390/linux.h (LINK_SPEC): Likewise.
157         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
158         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
159         * config/sparc/linux.h (LINK_SPEC): Likewise.
160         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
161         LINK_SPEC): Likewise.
162         * config/sparc/openbsd64.h (LINK_SPEC): Likewise.
163         * config/vax/linux.h (LINK_SPEC): Likewise.
164         * config/xtensa/linux.h (LINK_SPEC): Likewise.
165
166 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
167
168         * config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
169         * config/frv/frv.h (ASM_SPEC): Likewise.
170         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
171         * config/i386/sol2.h (ASM_SPEC): Likewise.
172         * config/m68k/linux.h (ASM_SPEC): Likewise.
173         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
174         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
175         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
176         * config/sol2.h (ASM_SPEC): Likewise.
177         * config/sparc/linux.h (ASM_SPEC): Likewise.
178         * config/sparc/linux64.h (ASM_SPEC): Likewise.
179         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
180         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
181         * config/svr4.h (SVR4_ASM_SPEC): Likewise.
182
183 2010-12-09  Richard Guenther  <rguenther@suse.de>
184
185         * reginfo.c (struct subregs_of_mode_node): Remove.
186         (subregs_of_mode): Likewise.
187         (som_hash): Likewise.
188         (som_eq): Likewise.
189         (invalid_mode_changes): New bitmap.
190         (record_subregs_of_mode): Get subregs_of_mode argument.
191         Fill in invalid_mode_changes bitmap.
192         (find_subregs_of_mode): Get subregs_of_mode argument and pass
193         it through.
194         (init_subregs_of_mode): Adjust.
195         (finish_subregs_of_mode): Likewise.
196         (invalid_mode_change_p): Query invalid_mode_changes bitmap.
197
198 2010-12-09  Richard Guenther  <rguenther@suse.de>
199
200         * ira.c (ira): Do not call finish_subregs_of_mode.
201         * ira-costs.c (finish_costs): Call finish_subregs_of_mode.
202
203 2010-12-09  Richard Guenther  <rguenther@suse.de>
204
205         * rtl.h (invalid_mode_change_p): Adjust prototype.
206         * reginfo.c (invalid_mode_change_p): Remove from argument.
207         * ira-costs.c (print_allocno_costs): Adjust callers.
208         (find_costs_and_classes): Likewise.
209
210 2010-12-09  Jakub Jelinek  <jakub@redhat.com>
211
212         * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
213         locg and stocg even in comment.
214         (sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.
215
216         PR target/41082
217         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
218         instead of stve*x.
219         (altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
220         of operand 0.
221         * config/rs6000/altivec.md (VI_scalar): New mode attr.
222         (altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
223         vector mode for operand 0, put operand 1 into UNSPEC.
224
225 2010-12-09  Yao Qi  <yao@codesourcery.com>
226
227         * config/arm/arm.c (arm_preferred_rename_class): Implement targethook
228         PREFERRED_RENAME_CLASS.
229
230 2010-12-08  Ian Lance Taylor  <iant@google.com>
231
232         * doc/sourcebuild.texi (Front End): Remove reference to
233         snapshot-README and snapshot-index.html.
234
235 2010-12-08  Ian Lance Taylor  <iant@google.com>
236
237         * doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
238         to update_web_docs_svn.
239         (Front End): Likewise.
240
241 2010-12-08  Iain Sandoe <iains@gcc.gnu.org>
242
243         gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
244         x86_64-*-darwin* to with_cpu:-core2.
245         gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
246         with movd for darwin assembler.
247         gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
248         (*vec_concatv2di_rex64_sse): Ditto.
249
250 2010-12-08  Richard Guenther  <rguenther@suse.de>
251             Sebastian Pop  <sebastian.pop@amd.com>
252
253         PR tree-optimization/45230
254         PR tree-optimization/45231
255         PR tree-optimization/45370
256         * sese.c (rename_uses): Returns a bool.  Call
257         recompute_tree_invariant_for_addr_expr only on the RHS of a
258         GIMPLE_ASSIGN.
259         (graphite_copy_stmts_from_block): Call fold_stmt_inplace when
260         rename_uses returns true.
261         * tree-ssa-copy.c (replace_exp): Add a comment about calling
262         fold_stmt_inplace after replace_exp.
263
264 2010-12-08  Mike Stump  <mikestump@comcast.net>
265
266         PR debug/46749
267         * config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
268         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
269         * config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
270         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
271         * collect2.c (post_ld_pass): Add.
272         (process_args): Add.
273         (maybe_run_lto_and_relink): Call post_ld_pass after ld.
274         (main): Likewise.  Call process_args.
275
276 2010-12-08  Jakub Jelinek  <jakub@redhat.com>
277
278         PR middle-end/46844
279         * regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg
280         parameter.
281
282 2010-12-08  Richard Earnshaw  <rearnsha@arm.com>
283
284         PR target/46631
285         * arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
286         into a 16-bit instruction.
287
288 2010-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
289
290         PR middle-end/42694
291         * builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
292         where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
293         instruction, but do optimize if y is 0.5 or 1./3. since that
294         changes an expensive call into a cheaper one.
295
296 2010-12-08  Richard Guenther  <rguenther@suse.de>
297
298         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
299         instead of a division to divide by BITS_PER_UNIT.
300
301 2010-12-08  Richard Guenther  <rguenther@suse.de>
302
303         * gimplify.c (gimple_tree_eq): Assert hashes are equal only
304         when checking is enabled.
305
306 2010-12-07  Andrey Belevantsev  <abel@ispras.ru>
307
308         PR target/43603
309         * haifa-sched.c (sched_create_recovery_edges): Update
310         dominator info.
311         * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
312         after deleting an empty block.
313         (tidy_control_flow): Also verify dominators.
314         (sel_remove_bb): Update dominator info after removing a block.
315         (sel_redirect_edge_and_branch_force): Assert that no unreachable
316         blocks will be created. Update dominator info.
317         (sel_redirect_edge_and_branch): Update dominator info when
318         basic blocks do not become unreachable.
319         (sel_remove_loop_preheader): Update dominator info. 
320
321 2010-12-07  Richard Guenther  <rguenther@suse.de>
322
323         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
324         Reset alignment information.
325         (bump_vector_ptr): Likewise.
326
327 2010-12-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
328
329         PR middle-end/46671
330         PR target/46685
331         * config/pa/pa.c (pa_function_section): New function.
332         (TARGET_ASM_FUNCTION_SECTION): Define.
333
334 2010-12-07  Ian Lance Taylor  <iant@google.com>
335             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
336
337         PR bootstrap/46810
338         * configure.ac: Disable AC_MSG_ERROR while looking for the C++
339         preprocessor.
340         * configure: Rebuild.
341
342 2010-12-07  Paul Koning  <ni1d@arrl.net>
343
344         * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
345         values with sign rather than as unsigned.
346
347 2010-12-07  Paul Koning  <ni1d@arrl.net>
348
349         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
350         (pdp11_function_section): New function.
351
352 2010-12-07  Joseph Myers  <joseph@codesourcery.com>
353
354         * config/mcore/mcore.c Don't include assert.h.
355         (layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
356         * config/spu/spu.c: Don't include assert.h.
357         (spu_sms_res_mii): Use gcc_assert.
358
359 2010-12-07  Sebastian Pop  <sebastian.pop@amd.com>
360
361         PR tree-optimization/42327
362         * tree-data-ref.c (omega_setup_subscript): Call build_int_cst
363         instead of using integer_minus_one_node.
364
365 2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>
366
367         PR c++/45330
368         * params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
369         * doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.
370
371 2010-12-07  Richard Guenther  <rguenther@suse.de>
372
373         PR tree-optimization/46832
374         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
375         that the call has a lhs.
376
377 2010-12-07  Yao Qi  <yao@codesourcery.com>
378
379         * Makefile.in: Add $(TARGET_H) to the regrename.o rule.
380         * regrename.c (struct du_head): Add new element length.
381         (sort_du_head, get_element, merge, merge_sort_comparison):
382         New functions of merge sort implementation to du_head list.
383         (regrename_optimize): Sort du_head linked list by length.
384         Iterate registers in a preferred-register-first order.
385         Move some code to ...
386         (check_new_reg_p): here.  New function.
387         (create_new_chain):  Initialize length.
388         (scan_rtx_reg): Increase length for non-debug insns.
389         * target.def: New hook preferred_rename_class.
390         * targhook.c (default_preferred_rename_class): New.
391         * targhook.h: Declare it.
392         * doc/tm.texi.in: New hook TARGET_PREFERRED_RENAME_CLASS.
393         * doc/tm.texi: Regenerate.
394
395 2010-12-07  Jakub Jelinek  <jakub@redhat.com>
396
397         PR debug/46799
398         * tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
399         instead of BUILTINS_LOCATION.
400         (create_loop_fn): Add LOC argument, pass it to build_decl instead of
401         BUILTINS_LOCATION.
402         (create_parallel_loop): Add LOC argument, use it for OMP clauses
403         and GIMPLE_*OMP* statements.
404         (gen_parallel_loop): Determine locus for the parallel loop, pass it
405         to create_loop_fn and create_parallel_loop.
406         * cfgexpand.c (gimple_expand_cfg): For builtin functions, call
407         set_curr_insn_source_location (UNKNOWN_LOCATION).
408
409 2010-12-07  Joern Rennecke  <amylaar@spamcop.net>
410             Richard Guenther  <rguenther@suse.de>
411
412         PR target/46737
413         * config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
414         (bfin_reorder_loops): Change type of index to intptr_t.
415
416 2010-12-07  Richard Guenther  <rguenther@suse.de>
417
418         PR tree-optimization/46726
419         * tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
420
421 2010-12-07  Richard Guenther  <rguenther@suse.de>
422
423         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
424         virtual operands.
425
426 2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>
427
428         * c-parser.c (c_parser_typeof_specifier): Removed special
429         treatment of objc_volatilized attribute for Objective-C.
430
431 2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>
432
433         * ira.c (update_equiv_regs): Prohibit move insns if
434         pressure-sensitive scheduling was done.
435
436 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
437
438         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
439         of c_process_expr_stmt() for the iterating and collection
440         expressions of an Objective-C fast enumeration loop.
441
442 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
443
444         PR debug/45997
445         * dwarf2out.c (modified_type_die): If both is_const_type and
446         is_volatile_type is set, start with DW_TAG_const_type or
447         DW_TAG_volatile_type depending on where we get qualified type
448         in the recursive call.
449
450         PR target/43897
451         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
452         as a store into that register.
453
454         PR tree-optimization/46528
455         PR debug/46338
456         * profile.c (branch_prob): Make sure last is never set to a debug
457         stmt.
458
459         PR debug/46771
460         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
461         on DEBUG_INSNs.
462
463         PR rtl-optimization/46777
464         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
465         also barrier after tablejump.
466
467 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
468             Richard Henderson  <rth@redhat.com>
469
470         PR target/46740
471         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
472
473 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
474
475         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
476         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
477
478 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
479
480         PR target/46735
481         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
482         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
483         (int12_operand, int_2word_operand, uint16_operand): Likewise.
484         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
485         (uint5_operand, uint4_operand): Likewise.
486         * config/frv/frv.h (IN_RANGE_P): Delete.
487         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
488         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
489         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
490         (CONST_OK_FOR_P): Likewise.
491         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
492         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
493         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
494         (*movsicc_internal2_float, casesi): Likewise.
495         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
496         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
497         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
498         (frv_split_cond_move, frv_rtx_costs): Likewise.
499
500         PR target/46739
501         * config/mmix/mmix.c (mmix_intval): Split shift count.
502
503 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
504
505         * config/i386/i386.c (m_COREI7): New.
506         (initial_ix86_tune_features): Turn on
507         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
508         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
509
510 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
511
512         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
513
514         * config/i386/driver-i386.c (host_detect_local_cpu): Support
515         Sandy Bridge.
516
517         * config/i386/i386.c (override_options): Handle "corei7-avx".
518
519         * doc/invoke.texi: Document corei7-avx.
520
521 2010-12-06  Richard Guenther  <rguenther@suse.de>
522
523         PR tree-optimization/46806
524         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
525         coalesce different types.
526
527 2010-12-06  Richard Guenther  <rguenther@suse.de>
528
529         PR tree-optimization/46785
530         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
531         call statements as operand definition.
532
533 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
534
535         * doc/tm.texi.in: Fix typo.
536         * doc/tm.texi: Regenerate.
537
538 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
539
540         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
541         last change.
542
543 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
544
545         * c-family/c-common.h: Removed the declarations of all the objc_
546         callbacks, and moved them into c-objc.h.  Removed
547         objc_ivar_visibility_kind and moved it into c-objc.h.
548         * c-family/c-objc.h: New file.
549         * c-family/c-common.c: Include c-objc.h.
550         * c-family/c-format.c: Same change.
551         * c-family/stub-objc.c: Same change.
552         * c-decl.c: Include c-family/c-objc.h.
553         * c-parser.c: Same change.
554         * c-typeck.c: Same change.
555         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
556         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
557         (c-parser.o): same change.
558         (c-typeck.o): Same change.
559         (c-family/c-format.o): Same change.
560         (c-family/stub-objc.o): Same change.
561         (c-family/c-common.o): Same change.
562         (PLUGIN_HEADERS): Added c-family/c-objc.h.
563
564 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
565
566         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
567         --with-dwarf2 option.
568
569 2010-12-03  Jan Hubicka  <jh@suse.cz>
570
571         * lto-streamer-in.c (input_cfg): Fix pasto.
572
573 2010-12-03  Jan Hubicka  <jh@suse.cz>
574
575         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
576         and functions with user asm defined names.
577         (varpool_externally_visible_p): Do not localize vars with user
578         asm defined names.
579
580 2010-12-03  Jan Hubicka  <jh@suse.cz>
581
582         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
583         to prevent mangling with lto frontend.
584
585 2010-12-03  Jan Hubicka  <jh@suse.cz>
586
587         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
588         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
589
590 2010-12-03  Jan Hubicka  <jh@suse.cz>
591
592         PR tree-optimization/46760
593         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
594         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
595         * lto-cgraph.c (lto_output_edge): Fix assert.
596         (lto_output_node): Output count_materialization_scale.
597         (output_profile_summary): Output only runs and sum_max.
598         (input_node): Input count_materialization_scale.
599         (input_profile_summary): Read data into file specific gcov summary.
600         (merge_profile_summaries): New function.
601         (input_cgraph): Update call of input_profile_summary;
602         call merge_profile_summaries.
603         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
604         rescale counts at read in.
605         (intput_bb): Likewise.
606         (input_function): Update call of input_bb.
607         (lto_read_body): Update call of input_cfg.
608         * lto-streamer.h: Inlclude gcov-io.h
609         (lto_file_decl_data): Add gcov_ctr_summary.
610
611 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
612
613         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
614         (Cond Exec Macros): ... to this.
615         * doc/tm.texi: Regenerate.
616
617 2010-12-03  Jason Merrill  <jason@redhat.com>
618
619         PR debug/46123
620         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
621         a declaration DIE.
622
623 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
624
625         * config/arm/arm.c (arm_legitimate_index_p): Split
626         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
627         slightly larger constants in the latter case.
628         (thumb2_legitimate_index_p): Likewise.
629
630 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
631
632         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
633         * gcc.c (cc1_options): Add %{Qy:}.
634
635 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
636
637         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
638         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
639         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
640
641 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
642
643         PR rtl-optimization/45354
644         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
645         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
646         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
647         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
648
649 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
650
651         * basic-block.h (struct edge_prediction): Remove forward
652         declaration.
653         * tree-flow.h (struct edge_prediction): Move from here...
654         * predict.c (struct edge_prediction): ...to here.
655         * cselib.h (struct elt_list): Move from here...
656         * cselib.c (struct elt_list): ...to here.
657
658 2010-12-02  Ian Lance Taylor  <iant@google.com>
659
660         * gcc.c (default_compilers): Add entry for ".go".
661         * common.opt: Add -static-libgo as a driver option.
662         * doc/install.texi (Configuration): Mention libgo as an option for
663         --enable-shared.  Mention go as an option for --enable-languages.
664         * doc/invoke.texi (Overall Options): Mention .go as a file name
665         suffix.  Mention go as a -x option.
666         * doc/frontends.texi (G++ and GCC): Mention Go as a supported
667         language.
668         * doc/sourcebuild.texi (Top Level): Mention libgo.
669         * doc/standards.texi (Standards): Add section on Go language.
670         Move references for other languages into their own section.
671         * doc/contrib.texi (Contributors): Mention that I contributed the
672         Go frontend.
673
674 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
675
676         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
677         (const_call_expr_arg_iterator_d): Likewise.
678         (expanded_location): Likewise.
679         * c-tree.h (struct c_arg_tag_d): Likewise.
680         * dwarf2out.c (struct cfa_loc): Likewise.
681         (struct skeleton_chain_struct): Likewise.
682         * except.c (struct ttypes_filter): Likewise.
683         * cselib.h (struct cselib_val_struct): Likewise.
684         (elt_loc_list): Likewise.
685         (elt_list): Likewise.
686         * varasm.c (struct addr_const): Likewise.
687         * tree-flow.h (struct edge_prediction): Likewise.
688         (struct int_tree_map): Likewise.
689         (struct _edge_var_map): Likewise.
690
691 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
692
693         PR target/46768
694         * config/i386/i386.c (initial_ix86_tune_features): Turn on
695         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
696
697 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
698
699         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
700
701 2010-12-02  Ian Lance Taylor  <iant@google.com>
702
703         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
704         header files unordered_map, tr1/unordered_map, and ext/hash_map.
705         * configure, config.in: Rebuild.
706
707 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
708
709         PR target/46685
710         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
711         (sparc_expand_move): Call it to decide whether to emit the special
712         mov{si,di}_pic_label_ref patterns.
713         (sparc_legitimize_pic_address): Call it to decide whether to emit
714         the regular PIC sequence for labels.  Fix long line.
715         (sparc_file_end): Set is_thunk for the PIC helper.
716
717 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
718
719         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
720         for a non-shared type.
721
722 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
723
724         PR middle-end/45297
725         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
726         with MEM_REFs as POINTER_PLUS_EXPR.
727
728 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
729
730         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
731         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
732         mentioning /lib/elf.
733
734 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
735
736         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
737         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
738         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
739         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
740         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
741         * config/sol2.h (LINK_SPEC): Remove %{b}.
742         * config/svr4.h (LINK_SPEC): Remove %{b}.
743
744 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
745
746         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
747         * config/i386/linux.h (LINK_SPEC): Cut long comment.
748         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
749         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
750         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
751         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
752         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
753         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
754         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
755         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
756         %{v:%{!V:-V}}.
757
758 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
759
760         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
761         -ftraditional.
762
763 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
764
765         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
766         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
767         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
768         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
769         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
770         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
771         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
772         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
773         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
774         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
775         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
776         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
777         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
778         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
779         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
780         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
781         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
782         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
783
784 2010-12-02  Paul Koning  <ni1d@arrl.net>
785
786         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
787         opcodes if CC_NO_OVERFLOW is set.
788         (notice_update_cc_on_set): Correct setting of CC0 as a side
789         effect; set CC_NO_OVERFLOW for cases where C flag is not
790         meaningful.
791
792 2010-12-02  Ian Lance Taylor  <iant@google.com>
793
794         * doc/install.texi (Configuration): Update default for
795         --with-boot-ldflags.
796
797 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
798
799         PR c/45062
800         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
801         !funcdef_flag.
802
803 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
804
805         PR tree-optimization/45199
806         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
807         (stores_zero_from_loop): Call
808         mem_write_stride_of_same_size_as_unit_type_p.
809         * tree-data-ref.h (stride_of_unit_type_p): New.
810         * tree-loop-distribution.c (generate_memset_zero): Simplified.
811         Call stride_of_unit_type_p.
812         (build_rdg_partition_for_component): Do not call
813         rdg_flag_similar_memory_accesses when
814         flag_tree_loop_distribute_patterns is set.
815
816 2010-12-02  Richard Guenther  <rguenther@suse.de>
817
818         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
819         sign-changing conversions for induction detection.
820
821 2010-12-02  Richard Guenther  <rguenther@suse.de>
822
823         PR tree-optimization/46723
824         * tree-vect-loop.c (get_initial_def_for_induction): Strip
825         conversions from the induction evolution and apply it to
826         the result instead.
827         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
828         assigns for induction defs.
829
830 2010-12-02  Richard Guenther  <rguenther@suse.de>
831
832         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
833         the case we need to split the edge and not the block.
834
835 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
836
837         DFA model for Core 2 and Core i7 scheduling.
838
839         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
840         * config/i386/i386.c (ix86_option_override_internal): Update entries
841         for Core 2 and Core i7.
842         (ix86_issue_rate): Set issue rate to 3 [be realistic].
843         * config/i386/i386.md: Include "core2.md".
844         (define_attr cpu): Add "corei7".
845
846 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
847
848         Define tuning for Core 2 and Core i7.
849
850         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
851         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
852         (m_CORE2): Replace with m_CORE2_{32,64}.
853         (m_CORE2I7{,_32,_64}): New macros.
854         (m_GENERIC32, m_GENERIC64): Update.
855         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
856         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
857         set m_CORE2I7_64 iff m_GENERIC64.
858         (processor_target_table): Use generic costs for Core 2 and Core i7.
859         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
860         (ix86_issue_rate): Remove entry for Core 2.
861         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
862         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
863         (TARGET_CORE2): Update.
864         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
865         (PROCESSOR_CORE2): Remove.
866
867 2010-12-02  Richard Guenther  <rguenther@suse.de>
868
869         * lto-streamer.h (LTO_major_version): Bump to 2.
870
871 2010-12-02  Richard Guenther  <rguenther@suse.de>
872
873         PR lto/44871
874         * gimple.c (canonical_type_hash_cache): New hashtable.
875         (gimple_type_hash): Make a wrapper around ...
876         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
877         (gimple_canonical_type_hash): Likewise.
878         (gtc_visit): Take a gtc_mode argument.
879         (gimple_types_compatible_p_1): Likewise. Do not compare struct
880         tag names or field names when computing canonical types.
881         (gimple_types_compatible_p): Adjust.
882         (visit): Take a gtc_mode argument.
883         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
884         names or field names when computing hashes of canonical types.
885         (gimple_register_canonical_type): Use gimple_canonical_type_hash
886         for the hash.
887         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
888         (free_gimple_type_tables): Free canonical_type_hash_cache.
889
890 2010-12-02  Richard Guenther  <rguenther@suse.de>
891             Ira Rosen  <irar@il.ibm.com>
892
893         PR tree-optimization/46663
894         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
895         FUNCTION_DECL exists and that it's a builtin.
896
897 2010-12-02  Jie Zhang  <jie@codesourcery.com>
898
899         PR middle-end/46674
900         * varasm.c (compute_visible_aliases): Handle user set
901         assembler name.
902
903 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
904
905         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
906         thinko regarding setting -mno-<xxx> debug switches.
907         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
908
909 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
910
911         * intl.c: Don't include tm.h.
912         * Makefile.in (intl.o): Don't depend on $(TM_H).
913
914 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
915
916         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
917         unused warning.
918         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
919
920 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
921
922         * graphite-sese-to-poly.c (analyze_drs): Removed.
923         (build_scop_drs): Do not call analyze_drs.
924         (analyze_drs_in_stmts): New.
925         (insert_stmts): New.
926         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
927         (insert_out_of_ssa_copy_on_edge): Same.
928         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
929         (rewrite_phi_out_of_ssa): Same.
930         (rewrite_cross_bb_scalar_dependence): Same.
931         (split_reduction_stmt): Move data references in the new basic blocks.
932         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
933
934 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
935
936         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
937
938 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
939
940         PR middle-end/45297
941         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
942         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
943         * graphite-poly.h (new_poly_bb): Update declaration.
944         (gbb_from_bb): Moved here...
945         (pbb_from_bb): New.
946         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
947         Removed.
948         (graphite_stmt_p): Removed.
949         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
950         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
951         new_poly_bb.
952         (build_scop_bbs_1): Do not pass in sbitmap reductions.
953         (build_scop_bbs): Same.
954         (gbb_from_bb): ... from here.
955         (add_conditions_to_constraints): Moved up.
956         (analyze_drs): New.
957         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
958         not contain data references.
959         (new_pbb_from_pbb): New.
960         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
961         block is split.
962         (rewrite_close_phi_out_of_ssa): Update call to
963         insert_out_of_ssa_copy_on_edge.
964         (rewrite_reductions_out_of_ssa): Now static.
965         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
966         (split_pbb): New.
967         (split_reduction_stmt): Call split_pbb.
968         (translate_scalar_reduction_to_array): Pass in the scop, do not
969         pass in the sbitmap reductions.
970         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
971         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
972         (rewrite_commutative_reductions_out_of_ssa): Same.
973         (build_poly_scop): Call build_scop_bbs,
974         rewrite_commutative_reductions_out_of_ssa,
975         rewrite_reductions_out_of_ssa, and
976         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
977         before scop_to_lst.
978         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
979         Removed declaration.
980         (rewrite_reductions_out_of_ssa): Same.
981         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
982         (build_scop_bbs): Same.
983         * graphite.c (graphite_transform_loops): Do not initialize reductions.
984         Do not call build_scop_bbs,
985         rewrite_commutative_reductions_out_of_ssa,
986         rewrite_reductions_out_of_ssa, and
987         rewrite_cross_bb_scalar_deps_out_of_ssa.
988         * sese.h (struct gimple_bb): Add field pbb.
989         (GBB_PBB): New.
990
991 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
992
993         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
994         New.
995         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
996         handle_scalar_deps_crossing_scop_limits.
997         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
998         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
999
1000 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1001
1002         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
1003         when replacing a constant in an ADDR_EXPR.
1004
1005 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1006
1007         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
1008         for the stride.
1009         (lst_do_strip_mine): Same.
1010         (scop_do_strip_mine): Same.
1011         * graphite-poly.c (apply_poly_transforms): Update call to
1012         scop_do_strip_mine.
1013         * graphite-poly.h (scop_do_strip_mine): Update declaration.
1014
1015 2010-12-01  Jan Hubicka  <jh@suse.cz>
1016
1017         * tree.c (build_common_builtin_nodes): Do not initialize
1018         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
1019         * builtins.c (expand_builtin_profile_func): Remove.
1020         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
1021         BUILT_IN_PROFILE_FUNC_EXIT.
1022         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
1023         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
1024         * gimplify.c (gimplify_function_tree): Reorganize code calling
1025         profiling functions.
1026
1027 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1028
1029         * opts.c: Expand comment on tm.h include.
1030
1031 2010-12-01  Yao Qi  <yao@codesourcery.com>
1032
1033         * config/arm/predicates.md ("vfp_register_operand"): Return true for
1034         VFP_D0_D7_REGS classes.
1035
1036 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1037
1038         * common.opt (flag_stack_check): New Variable entry.
1039         (fcompare-debug-second): Use Var.
1040         * flags.h (flag_compare_debug, flag_stack_check): Remove.
1041         * opts.c (flag_compare_debug): Remove.
1042         (common_handle_option): Don't handle OPT_fcompare_debug_second.
1043         Set opts->x_flag_stack_check for OPT_fstack_check_.
1044         * toplev.c (flag_stack_check): Remove.
1045
1046 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1047
1048         * common.opt (main_input_filename, main_input_basename,
1049         main_input_baselength): New Variable entries.  From toplev.c.
1050         * final.c (output_quoted_string): Move from toplev.c.
1051         * output.h (output_quoted_string): Move from toplev.h.
1052         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
1053         access main_input_filename, main_input_baselength and
1054         main_input_basename.
1055         * targhooks.c: Include intl.h and opts.h.
1056         (option_affects_pch_p, default_get_pch_validity): Move from
1057         toplev.c.
1058         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
1059         Move from toplev.h.
1060         * toplev.c (main_input_filename, main_input_basename,
1061         main_input_baselength): Move to common.opt.
1062         (output_quoted_string): Move to final.c.
1063         (warn_deprecated_use): Move to tree.c.
1064         (option_affects_pch_p, default_get_pch_validity,
1065         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
1066         * toplev.h (skip_leading_substring): Move to tree-dump.c.
1067         (warn_deprecated_use): Move to tree.h.
1068         (output_quoted_string): Move to output.h.
1069         (main_input_filename, main_input_basename, main_input_baselength):
1070         Move to common.opt.
1071         (default_get_pch_validity, default_pch_valid_p): Move to
1072         targhooks.c.
1073         * tree-dump.c (skip_leading_substring): Move from toplev.h.
1074         * tree.c (warn_deprecated_use): Move from toplev.c.
1075         * tree.h (warn_deprecated_use): Move from toplev.h.
1076         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
1077         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
1078         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
1079         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
1080         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
1081         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
1082         config/mcore/mcore.c, config/mep/mep.c,
1083         config/microblaze/microblaze.c, config/mips/mips.c,
1084         config/mmix/mmix.c, config/mn10300/mn10300.c,
1085         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
1086         config/picochip/picochip.c, config/s390/s390.c,
1087         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
1088         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
1089         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
1090         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
1091         varasm.c, xcoffout.c: Don't include toplev.h.
1092         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
1093         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
1094         varasm.o, xcoffout.o): Update dependencies.
1095         * config/arm/t-arm (arm.o): Update dependencies.
1096         * config/spu/t-spu-elf (spu.o): Update dependencies.
1097
1098 2010-12-01  Richard Guenther  <rguenther@suse.de>
1099
1100         PR tree-optimization/46730
1101         * value-prof.c (gimple_ic): Always generate a separate merge BB.
1102
1103 2010-11-30  Ian Lance Taylor  <iant@google.com>
1104
1105         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
1106         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
1107         * config/i386/linux64.h (ASM_SPEC): Likewise.
1108         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
1109         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
1110         * config/i386/vxworks.h (ASM_SPEC): Likewise.
1111         * config/i386/x86-64.h (ASM_SPEC): Likewise.
1112         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
1113         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
1114
1115 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1116
1117         * c-decl.c (finish_function): Call objc_finish_function in
1118         Objective-C.
1119         * c-typeck.c (convert_for_assignment): Do not call
1120         objc_type_quals_match().
1121
1122 2010-11-30  Richard Guenther  <rguenther@suse.de>
1123
1124         PR tree-optimization/46722
1125         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
1126         operands as arguments.
1127         (execute_optimize_widening_mul): Also handle power of two as
1128         multiplication.
1129
1130 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1131
1132         PR middle-end/46709
1133         * cgraphunit.c (process_function_and_variable_attributes): Fix
1134         cut'n'pasteo.
1135
1136 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
1137
1138         * hwint.c:  New.  Extracted from toplev.c.
1139         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1140         Move from toplev.h.
1141         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1142         Move to hwint.c.
1143         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1144         Move to hwint.h.
1145         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
1146         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
1147         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
1148         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
1149         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
1150         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
1151         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
1152         tree-vrp.c: Don't include toplev.h.
1153         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
1154         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
1155         toplev.h in generated output.
1156         * Makefile.in (OBJS-common): Add hwint.o.
1157         Dependencies for above files changed to remove toplev.h.
1158         (hwint.o): New.
1159         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
1160         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
1161         toplev.h.
1162         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
1163         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
1164
1165 2010-11-30  Richard Guenther  <rguenther@suse.de>
1166
1167         PR tree-optimization/46717
1168         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
1169         call.  Manually create EH edges for the direct call and update
1170         target PHI nodes.
1171
1172 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
1173
1174         * diagnostic-core.h: Include bversion.h.
1175         * toplev.h: Don't include input.h or bversion.h.
1176         (parse_optimize_options): Don't declare here.
1177         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
1178         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
1179         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
1180         config/host-darwin.c, config/i386/host-cygwin.c,
1181         config/i386/host-mingw32.c, config/i386/msformat-c.c,
1182         config/i386/netware.c, config/i386/nwld.c,
1183         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
1184         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
1185         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
1186         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
1187         config/score/score3.c, config/score/score7.c,
1188         config/sh/symbian-base.c, config/sh/symbian-c.c,
1189         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
1190         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
1191         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
1192         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
1193         graphite-blocking.c, graphite-clast-to-gimple.c,
1194         graphite-dependences.c, graphite-flattening.c,
1195         graphite-interchange.c, graphite-poly.c,
1196         graphite-scop-detection.c, graphite.c, haifa-sched.c,
1197         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
1198         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
1199         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
1200         lto-opts.c, lto-section-in.c, lto-section-out.c,
1201         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
1202         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
1203         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
1204         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
1205         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
1206         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
1207         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
1208         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
1209         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
1210         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
1211         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
1212         include toplev.h.
1213         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
1214         toplev.h.  Dependencies for above files and c-family files changed
1215         to remove $(TOPLEV_H) or toplev.h.
1216         (C_TREE_H): Don't include $(TOPLEV_H).
1217         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
1218         bversion.h.
1219         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
1220         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
1221         config/t-darwin, config/t-sol2,
1222         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
1223         Dependencies for above files changed to remove $(TOPLEV_H) or
1224         toplev.h.
1225
1226 2010-11-30  Richard Guenther  <rguenther@suse.de>
1227
1228         PR lto/44986
1229         * gcc.c (main): Use the first input with a compiler as infile
1230         for link spec processing.
1231
1232 2010-11-30  Richard Guenther  <rguenther@suse.de>
1233
1234         PR lto/45949
1235         * cgraphunit.c (ipa_passes): Stop after errors from
1236         small IPA passes.
1237
1238 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
1239
1240         * gcc-plugin.h: Include coretypes.h.
1241         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
1242
1243 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1244
1245         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
1246         * ggc-none.c (ggc_internal_alloc_zone_stat)
1247         (ggc_internal_cleared_alloc_zone_stat): New.
1248
1249 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
1250
1251         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
1252         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
1253         (rs6000_emit_prologue): Don't set PIC register if
1254         TARGET_SINGLE_PIC_BASE.
1255         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
1256         * doc/invoke.texi (msingle-pic-base): Document.
1257
1258 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
1259
1260         PR driver/46712
1261         * exec-tool.in (id): New.
1262         Check and export LT_RCU_$id instead of LT_RCU.
1263
1264 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
1265
1266         PR tree-optimization/46675
1267         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
1268         in offset calculation.
1269
1270 2010-11-29  Jan Hubicka  <jh@suse.cz>
1271
1272         * collect2.c (main): Do not imply verbose output with
1273         LTO and linker plugin.
1274
1275 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
1276
1277         * dwarf2out.c (print_die): Print the address of the current DIE or
1278         of any DIE referenced by the current one.
1279
1280 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
1281
1282         PR debug/46101
1283         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
1284         function.
1285         (scope_die_for, gen_type_die_for_member): Replace uses of
1286         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
1287
1288 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
1289
1290         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
1291         (darwin_asm_declare_object_name): Correct spelling.
1292         (darwin_output_aligned_bss): Likewise.
1293
1294 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
1295             Mike Stump  <mrs@gcc.gnu.org>
1296
1297         PR target/26427
1298         PR target/33120
1299         PR testsuite/35710
1300         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
1301         (ASM_OUTPUT_LOCAL): Likewise.
1302         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
1303         (darwin_output_aligned_bss): Likewise.
1304         (darwin_asm_output_aligned_decl_local): Likewise.
1305         (darwin_asm_output_aligned_decl_common): Likewise.
1306         (darwin_use_anchors_for_symbol_p): Likewise.
1307         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
1308         (TARGET_ASM_OUTPUT_ANCHOR): Define.
1309         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
1310         (DARWIN_SECTION_ANCHORS): Set to 1.
1311         * config/darwin.c (emit_aligned_common): New var.
1312         (darwin_init_sections): Check that the Darwin private zero-size section
1313         marker is in range.
1314         (darwin_text_section): Check for zero-sized objects.
1315         (darwin_mergeable_string_section): Likewise.
1316         (darwin_mergeable_constant_section): Likewise.
1317         (machopic_select_section): Adjust to check for zero-sized objects.
1318         Assert that OBJC meta data are non-zero sized.
1319         (darwin_asm_declare_object_name): New.
1320         (darwin_asm_declare_constant_name): Adjust for zero-sized
1321         object sections.
1322         (BYTES_ZFILL): Define.
1323         (darwin_emit_weak_or_comdat): New.
1324         (darwin_emit_local_bss): New.
1325         (darwin_emit_common): New.
1326         (darwin_output_aligned_bss): New.
1327         (darwin_asm_output_aligned_decl_common): New.
1328         (darwin_asm_output_aligned_decl_local): New.
1329         (darwin_file_end): Disable subsections_via_symbols when section
1330         anchoring is active.
1331         (darwin_asm_output_anchor): Re-enable.
1332         (darwin_use_anchors_for_symbol_p): New.
1333         (darwin_override_options): Check for versions that can emit
1334         aligned common.  Update usage of flags to current.
1335         * config/darwin-sections.def: Update comments and flags for
1336         non-anchor sections.  zobj_const_section, zobj_data_section,
1337         zobj_bss_section, zobj_const_data_section: New.
1338         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
1339         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
1340         (L2_MAX_OFILE_ALIGNMENT): Define.
1341         (ASM_OUTPUT_ALIGNED_BSS): Define.
1342         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
1343         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
1344         (SECTION_NO_ANCHOR): Define.
1345         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
1346         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
1347
1348 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
1349
1350         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
1351         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
1352         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
1353         Conditionally define.
1354         (GET_ENVIRONMENT): Poison.
1355         * configure.ac: Don't test for mincore.
1356         * configure: Regenerate.
1357         * config.in: Regenerate.
1358         * collect2-aix.c: Don't include <sys/mman.h>.
1359         * collect2.c: Don't include <signal.h>.
1360         (SIGCHLD): Don't define.
1361         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
1362         * config/alpha/alpha.c: Include "splay-tree.h" instead of
1363         <splay-tree.h>.
1364         * config/arm/arm.c (arm_target_help): Use getenv instead of
1365         GET_ENVIRONMENT.
1366         * config/avr/driver-avr.c: Don't include <stdlib.h>.
1367         * config/frv/frv.c: Don't include <ctype.h>.
1368         * config/host-darwin.c: Don't include <sys/mman.h>.
1369         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
1370         (MAP_FAILED): Don't define.
1371         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
1372         * config/host-solaris.c: Don't include <sys/mman.h>.
1373         * config/i386/cygming.h: Don't include <stdio.h>.
1374         * config/i386/driver-i386.c: Don't include <stdlib.h>.
1375         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
1376         * config/iq2000/iq2000.c: Don't include <signal.h>.
1377         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
1378         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
1379         * config/mep/mep-pragma.c: Don't include <stdio.h>.
1380         * config/microblaze/microblaze.c: Don't include <signal.h>.
1381         * config/mips/mips.c: Don't include <signal.h>.
1382         * config/rs6000/host-darwin.c: Don't include <signal.h>.
1383         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
1384         * defaults.h (GET_ENVIRONMENT): Don't define.
1385         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
1386         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
1387         (SIGCHLD, MAP_FAILED, kill): Don't define.
1388         (process_command): Use getenv instead of GET_ENVIRONMENT.
1389         * genhooks.c: Don't include <string.h>.
1390         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
1391         <sys/types.h>.
1392         (MAP_FAILED): Don't define.
1393         * ggc-page.c Don't include <sys/mman.h>.
1394         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
1395         * ggc-zone.c: Don't include <sys/mman.h>.
1396         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
1397         * graph.c: Include "config.h" instead of <config.h>.
1398         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
1399         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
1400         (SIGCHLD, kill): Don't define.
1401         * mips-tfile.c: Don't include <signal.h>.
1402         * opts.c: Don't include <signal.h> or <sys/resource.h>.
1403         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
1404         * passes.c: Don't include <signal.h>, <sys/resource.h> or
1405         <sys/times.h>.
1406         * sparseset.h: Don't include <assert.h>.
1407         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
1408         * tlink.c: Don't include "libiberty.h".
1409         * toplev.c: Don't include <signal.h> or <sys/times.h>.
1410         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
1411         * tree-switch-conversion.c: Don't include <signal.h>.
1412         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
1413
1414 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1415
1416         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
1417         c_parser_objc_try_catch_finally_statement for consistency with the
1418         C++ parser.  Parse @catch(...) and pass NULL_TREE to
1419         objc_begin_catch_clause() in that case.  Improved error recovery.
1420         Reorganized code to be almost identical to
1421         cp_parser_objc_try_catch_finally_statement.
1422
1423 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
1424
1425         PR tree-optimization/46621
1426         * gimple.h: Don't include tm.h or hard-reg-set.h .
1427         * Makefile.in (GIMPLE_H): Remove $(TM_H).
1428
1429         PR bootstrap/44756
1430         * cppbuiltin.c: Include target.h .
1431         (define_builtin_macros_for_type_sizes):
1432         Use targetm.float_words_big_endian.
1433
1434 2010-11-27  Jan Hubicka  <jh@suse.cz>
1435
1436         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
1437         and output cold_text_section_label.
1438         (dwarf2out_init): Don't do that there.
1439         (dwarf2out_finish): Handle cold section end label only if cold
1440         section was used.
1441
1442 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1443
1444         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
1445         VLA variables.
1446
1447 2010-11-27  Richard Guenther  <rguenther@suse.de>
1448
1449         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
1450         (gimple_assign_ssa_name_copy_p): Likewise.
1451         (gimple_assign_unary_nop_p): Use is_gimple_assign.
1452         (is_gimple_cast): Remove.
1453         (gimple_assign_single_p): Move ...
1454         * gimple.h (gimple_assign_single_p): ... here.
1455         (is_gimple_cast): Remove.
1456         (gimple_assign_rhs_code): Simplify.
1457         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
1458         instead of is_gimple_cast.
1459         * ipa-type-escape.c (look_for_casts): Likewise.
1460
1461 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
1462
1463         * doc/options.texi (Enum, EnumValue): Document new record types.
1464         (Enum): Document new option flag.
1465         * opt-functions.awk
1466         * optc-gen.awk: Handle enumerated option arguments.
1467         * opth-gen.awk: Handle enumerated option arguments.
1468         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
1469         enum_value_to_arg): New.
1470         (decode_cmdline_option): Handle enumerated arguments.
1471         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
1472         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
1473         * opts.c (print_filtered_help, print_specific_help): Take
1474         lang_mask arguments.
1475         (print_filtered_help): Handle printing values of enumerated
1476         options.  Print possible arguments for enumerated options.
1477         (print_specific_help): Update call to print_filtered_help.
1478         (common_handle_option): Update calls to print_specific_help.  Use
1479         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
1480         handle OPT_ffp_contract_, OPT_fexcess_precision_,
1481         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
1482         OPT_fira_region_ here.
1483         * opts.h (enum cl_var_type): Add CLVC_ENUM.
1484         (struct cl_option): Add var_enum.
1485         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
1486         struct cl_enum, cl_enums, cl_enums_count): New.
1487         (CL_ERR_ENUM_ARG): Define.
1488         (CL_ERR_NEGATIVE): Update value.
1489         (enum_value_to_arg): Declare.
1490         * common.opt (flag_ira_algorithm, flag_ira_region,
1491         flag_fp_contract_mode, flag_excess_precision_cmdline,
1492         default_visibility, flag_tls_default): Remove Variable entries.
1493         (help_enum_printed): New Variable.
1494         (fdiagnostics-show-location=): Use Enum.  Add associated
1495         SourceInclude, Enum and EnumValue entries.
1496         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
1497         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
1498         associated Enum and EnumValue entries.
1499
1500 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
1501
1502         PR target/46623
1503         * config/microblaze/microblaze.c (microblaze_block_move_straight):
1504         Use XALLOCAVEC.
1505         (microblaze_option_override): Don't use C++ style comments.
1506         (save_restore_insns): Remove unused variable base_offset.
1507         (microblaze_expand_prologue): Remove unused variable insn.
1508         (microblaze_secondary_reload): Adjust type to match target.h .
1509         (microblaze_elf_in_small_data_p): Move declarations to start of block.
1510         (microblaze_expand_move): Likewise.
1511         * config/microblaze/microblaze.h (LARGE_INT):
1512         Avoid signed / unsigned comparisons.
1513         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1514         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
1515         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
1516
1517 2010-11-26  Michael Matz  <matz@suse.de>
1518
1519         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
1520
1521         * passes.c (init_optimization_passes): Remove superfluous
1522         copy-prop pass.
1523
1524 2010-11-26  Richard Guenther  <rguenther@suse.de>
1525
1526         PR lto/46648
1527         * gimple.c (gtc_visit): Do not return true for members of an
1528         SCC still being processed but the current lattice value of
1529         the member.  Treat SCC members comparison state as lattice,
1530         starting at equal, eventually dropping to unequal.
1531         (gimple_types_compatible_p_1): Likewise.
1532
1533 2010-11-26  Richard Guenther  <rguenther@suse.de>
1534
1535         PR middle-end/46559
1536         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
1537         for location list processing.
1538
1539 2010-11-26  Richard Guenther  <rguenther@suse.de>
1540
1541         PR lto/46560
1542         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
1543         flags manually.
1544
1545 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1546
1547         * config/s390/s390.c (print_operand_address): Replace assert with
1548         error message.
1549         (print_operand): Replace assertions, gcc_unreachable and
1550         fatal_insn with error messages.
1551
1552 2010-11-26  Richard Guenther  <rguenther@suse.de>
1553
1554         PR tree-optimization/46665
1555         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
1556
1557 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
1558
1559         * config/arm/arm.c (arm_option_override): enable loop array
1560         prefetching at -O3 for suitable targets, and configure params.
1561         * config/arm/arm-protos.h (struct tune_params): Add fields for
1562         configuring loop array prefetching.
1563
1564 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
1565
1566         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
1567
1568 2010-11-26  Richard Guenther  <rguenther@suse.de>
1569
1570         PR tree-optimization/46664
1571         * tree-affine.c (aff_combination_to_tree): Add rest last.
1572
1573 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
1574
1575         PR target/33637
1576         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
1577         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
1578         * configure: Regenerated.
1579         * exec-tool.in: Not quoting command, may have extra arguments.
1580
1581 2010-11-26  Richard Guenther  <rguenther@suse.de>
1582
1583         PR tree-optimization/46528
1584         PR debug/46338
1585         * profile.c (branch_prob): Do not split blocks based on locations
1586         from debug statements.
1587
1588 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
1589
1590         PR middle-end/46647
1591         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
1592         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
1593
1594         PR bootstrap/45700
1595         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
1596         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
1597         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
1598         build6_loc): Define.
1599         * fold-const.c (protected_set_expr_location_unshare): New inline.
1600         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
1601         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
1602         pedantic_omit_one_operand_loc, omit_two_operands_loc,
1603         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
1604         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
1605         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
1606         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
1607         instead of buildN followed by SET_EXPR_LOCATION or
1608         protected_set_expr_location.
1609         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
1610         Use buildN_stat_loc instead of buildN_stat followed by
1611         SET_EXPR_LOCATION.
1612
1613 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
1614
1615         * Makefile.in (s-tm-texi): Remove spurous tab.
1616
1617 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
1618
1619         PR debug/46258
1620         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
1621         debug stmts.
1622
1623 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
1624
1625         * toplev.c (finalize): Add no_backend parameter.  Don't finish
1626         passes when preprocessing only.  Adjust...
1627         (do_compile): ... caller.
1628
1629 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1630
1631         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
1632         flag_unsafe_math_optimizations.
1633         (negsf2): Likewise.
1634         Move fnegabs related patterns together.  Only use fmpynfadd instruction
1635         to negate a multiply if !flag_signed_zeros is true.
1636
1637 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
1638
1639         * gengtype-state.c (read_state_structures): Initialize "previous".
1640
1641 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
1642             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1643
1644         * gengtype-state.c: Add new file.
1645
1646         * gengtype.c (type count): New variable.
1647         (new_structure, find_param_structure, create_pointer)
1648         (create_array): Use it to set state_number in types.
1649         (dump_everything): Improve comment.
1650         (main): Call read_state and write_state. Print type_count.
1651
1652         * gengtype.h (type_lineloc): New function.
1653         (read_state, write_state): New declarations.
1654
1655         * Makefile.in (GENGTYPE_FLAGS): New variable.
1656         (s-gtype): Run gengtype twice and generate gtype.state.
1657         (build/gengtype-state.o): New rule.
1658         (build/gengtype$(build_exeext)): Link gengtype-state.o.
1659         (mostlyclean): Update comment.  Remove gtype.state.
1660
1661 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
1662
1663         PR middle-end/46637
1664         * combine.c (try_combine): When substing i2dest for i2src, pass
1665         1 as last argument even if
1666         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
1667
1668 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
1669
1670         PR middle-end/46647
1671         * builtins.c (target_char_cast): Check INTEGER_CST instead of
1672         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
1673
1674 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
1675
1676         * target.def (supports_split_stack, except_unwind_info): Take
1677         gcc_options parameters.
1678         * targhooks.c (default_except_unwind_info,
1679         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
1680         gcc_options parameters.
1681         * targhooks.h (default_except_unwind_info,
1682         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
1683         prototypes.
1684         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
1685         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
1686         Document that hooks must not be modified.
1687         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
1688         * doc/tm.texi: Regenerate.
1689         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
1690         &global_options to targetm.except_unwind_info.
1691         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
1692         dwarf2out_begin_prologue, dwarf2out_frame_init,
1693         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
1694         &global_options to targetm.except_unwind_info.
1695         * except.c (init_eh, finish_eh_generation,
1696         gate_convert_to_eh_region_ranges,
1697         output_one_function_exception_table): Pass &global_options to
1698         targetm.except_unwind_info.
1699         * expr.c (build_personality_function): Pass &global_options to
1700         targetm.except_unwind_info.
1701         * function.c (expand_function_end): Pass &global_options to
1702         targetm.except_unwind_info.
1703         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
1704         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
1705         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
1706         and targetm.supports_split_stack.  Remove assertions about opts
1707         and opts_set.
1708         (common_handle_option): Remove assertions about opts, opts_set and dc.
1709         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
1710         &global_options to targetm.except_unwind_info.
1711         * tree.c (build_common_builtin_nodes: Pass &global_options to
1712         targetm.except_unwind_info.
1713         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
1714         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
1715         thumb1_expand_prologue, thumb1_output_function_prologue,
1716         arm_unwind_emit, arm_output_fn_unwind): Update calls to
1717         arm_except_unwind_info.
1718         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
1719         parameter.
1720         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
1721         parameter.
1722         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
1723         ia64_reorg, ia64_asm_unwind_emit): Update calls to
1724         ia64_except_unwind_info.
1725         * config/pa/pa.c (pa_option_override): Pass &global_options to
1726         targetm.except_unwind_info.
1727         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
1728         Remove prototype.
1729
1730 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
1731
1732         * cgraphunit.c (process_function_and_variable_attributes):
1733         Mark dllexport-ed function/variables as needed.
1734         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
1735         as externally visible.
1736
1737 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1738
1739         PR rtl-optimization/46585
1740         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
1741         (vinsn_init): Skip computation of dependencies for local NOPs.
1742         (vinsn_delete): Don't try to free regsets for local NOPs.
1743         (setup_nop_and_exit_insns): Change definition of nop_pattern.
1744
1745 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1746
1747         PR rtl-optimization/46602
1748         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
1749         (tidy_control_flow): Here.
1750
1751 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
1752             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1753
1754         PR bootstrap/45888
1755         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
1756         Fix target.def pathname in timestamp comparison.
1757
1758 2010-11-24  Richard Henderson  <rth@redhat.com>
1759
1760         * config/ia64/predicates.md (pmpyshr_operand): New.
1761         * config/ia64/ia64.c (ia64_expand_unpack): New.
1762         (ia64_expand_widen_mul_v4hi): New.
1763         (ia64_expand_widen_sum): Update for pattern renames.
1764         (ia64_expand_dot_prod_v8qi): Likewise.
1765         * config/ia64/ia64-protos.h: Update.
1766         * config/ia64/vect.md (vecwider): New mode attribute.
1767         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
1768         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
1769         (pmpyshr2, pmpyshr2_u): New.
1770         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
1771         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
1772         (mulv2si3): New.
1773         (vec_pack_ssat_v4hi): Rename from pack2_sss.
1774         (vec_pack_usat_v4hi): Rename from *pack2_uss.
1775         (vec_pack_ssat_v2si): Rename from pack4_sss.
1776         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
1777         vec_select operation.
1778         (vec_interleave_highv8qi): Similarly.
1779         (mux1_alt): Rename from *mux1_alt.
1780         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
1781         (vec_interleave_lowv4hi): Rename from unpack2_l.
1782         (vec_interleave_highv4hi): Rename from unpack2_h.
1783         (mix2_r): Rename from *mix2_r.
1784         (mix2_l): Similarly.
1785         (vec_extract_evenodd_helper): New.
1786         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
1787         (vec_interleave_lowv2si): Rename from *unpack4_l.
1788         (vec_interleave_highv2si): Rename from *unpack4_h.
1789         (vec_extract_evenv2si, vec_extract_oddv2si): New.
1790         (vec_interleave_lowv2sf): Rename from fmix_r.
1791         (vec_interleave_highv2sf): Rename from *fmix_l.
1792         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
1793         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
1794         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
1795         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
1796
1797 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1798
1799         * targhooks.c (default_except_unwind_info): Remove
1800         MUST_USE_SJLJ_EXCEPTIONS case.
1801         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1802         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1803         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1804         * doc/tm.texi: Regenerate.
1805         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
1806
1807 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1808
1809         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1810         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
1811         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
1812         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
1813         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
1814
1815 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1816
1817         PR target/46519
1818         * config/i386/i386.c (ix86_expand_call): Don't check
1819         TREE_THIS_VOLATILE.
1820
1821 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1822
1823         PR target/46519
1824         * config/i386/i386.c (upper_128bits_state): New.
1825         (block_info_def): Remove upper_128bits_set and done.  Add state,
1826         referenced, count, processed and rescanned.
1827         (check_avx256_stores): Updated.
1828         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1829         Call note_stores only if needed.  Set referenced and count.
1830         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1831         (rescan_move_or_delete_vzeroupper): New.
1832         (move_or_delete_vzeroupper):  Process and rescan all all basic
1833         blocks instead of predecessor blocks of all exit points.
1834         (ix86_option_override_internal): Enable vzeroupper optimization
1835         only for -fexpensive-optimizations and not optimizing for size.
1836         (use_avx256_p): Removed.
1837         (init_cumulative_args): Don't set use_avx256_p.
1838         (ix86_function_arg): Likewise.
1839         (ix86_expand_move): Likewise.
1840         (ix86_expand_vector_move_misalign): Likewise.
1841         (ix86_local_alignment): Likewise.
1842         (ix86_minimum_alignment): Likewise.
1843         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1844         vzeroupper.
1845         (ix86_expand_call): Likewise.
1846
1847         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1848         and use_avx256_p.  Add rescan_vzeroupper_p.
1849
1850 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1851
1852         * toplev.c: Include <signal.h>.
1853
1854 2010-11-24  Richard Guenther  <rguenther@suse.de>
1855
1856         PR lto/43218
1857         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1858         conflicting function signatures as non-inlineable.
1859
1860 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1861
1862         PR rtl-optimization/46614
1863         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1864          (deps_analyze_insn): Mark JUMP_INSNs in
1865         last_pending_memory_flush that weren't added through
1866         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1867         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1868         on INSN_LIST instead of JUMP_P check on its operand.
1869         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1870
1871 2010-11-24  Richard Guenther  <rguenther@suse.de>
1872
1873         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1874
1875 2010-11-24  Richard Guenther  <rguenther@suse.de>
1876
1877         PR lto/46606
1878         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1879         a FIELD_DECL that is type correct issue a warning and fixup
1880         with a VIEW_CONVERT_EXPR.
1881
1882 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1883
1884         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1885         Explain static numbering of dump files.
1886
1887 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1888
1889         * common.opt (user_vect_verbosity_level): New Variable entry.
1890         (ftree-vectorizer-verbose=): Mark as UInteger.
1891         * flag-types.h (enum vect_verbosity_levels): Move from enum
1892         verbosity_levels in tree-vectorizer.h.
1893         * opts.c: Don't include tree.h.
1894         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1895         gcc_options parameter; take integer option argument.
1896         (common_handle_option): Update call to vect_set_verbosity_level.
1897         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1898         (vect_set_verbosity_level): Move to opts.c.
1899         (vect_verbosity_level, vect_print_dump_info): Update for change of
1900         enum name.
1901         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1902         (vect_print_dump_info): Update for change of enum name.
1903         * tree.h (vect_set_verbosity_level): Remove.
1904         * Makefile.in (opts.o): Update dependencies.
1905
1906 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1907
1908         PR middle-end/46629
1909         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1910         instead of insn with any_condjump_p.
1911
1912 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1913
1914         * config/mips/loongson.md: Change the description comment of the file
1915         and update the copyright years.
1916         (define_insn "<u>div<mode>3): Add loongson3a support.
1917         (define_insn "<u>mod<mode>3"): Likewise.
1918         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1919         mul<mode>3_mul3_loongson.
1920         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1921         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1922
1923 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1924
1925         * common.opt (initial_max_fld_align, flag_debug_asm,
1926         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1927         flag_print_asm_name, graph_dump_format, help_printed,
1928         help_columns, flag_opts_finished): New Variable entries.
1929         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1930         frandom-seed=): Mark deferred.
1931         (fsched-verbose=): Use UInteger and Var.
1932         * flags.h (set_struct_debug_option, flag_print_asm_name,
1933         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1934         graph_dump_format): Don't declare here.
1935         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1936         * opts-global.c: Include dbgcnt.h and debug.h.
1937         (decode_options): Pass location to finish_options.
1938         (handle_common_deferred_options): Check flag_dump_all_passed.
1939         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1940         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1941         OPT_fstack_limit.
1942         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1943         (set_struct_debug_option): Add location_t parameter.  Update
1944         recursive call.  Use error_at.
1945         (default_options_optimization): Use error_at.
1946         (finish_options): Add location_t parameter.  Use
1947         opts->x_flag_opts_finished instead of first_time_p.  Use
1948         opts->x_optimize instead of optimize.  Use error_at.  Pass
1949         location to inform.
1950         (print_filtered_help): Use opts->x_help_printed to track what
1951         options have been printed.
1952         (print_specific_help): Use opts->x_help_columns to track number of
1953         columns.
1954         (common_handle_option): Pass locations and gcc_options pointers to
1955         more functions.  Use warning_at instead of fnotice and warning.
1956         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1957         OPT_fdebug_prefix_map_.  Use error_at.  Set
1958         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1959         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1960         OPT_fsched_verbose_.
1961         (handle_param): Add location_r parameter.  Use error_at.
1962         (set_debug_level): Add location_r parameter.  Use error_at and
1963         warning_at.
1964         (setup_core_dumping): Add diagnostic_context parameter.
1965         (decode_d_option): Add gcc_options, location_t and
1966         diagnostic_context parameters and use them instead of global
1967         state.  Use warning_at.
1968         (enable_warning_as_error): Use error_at.
1969         * opts.h (finish_options): Update prototype.
1970         (set_struct_debug_option): Declare here.
1971         * rtl.h (fix_sched_param): Remove.
1972         * stor-layout.c (initial_max_fld_align): Remove.
1973         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1974         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1975         (process_options): Set maximum_field_alignment.
1976         * tree.h (initial_max_fld_align) Don't declare here.
1977         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1978
1979 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1980
1981         * flag-types.h (struct visibility_flags): Don't declare here.
1982         * flags.h (strip_off_ending, fast_math_flags_set_p,
1983         fast_math_flags_struct_set_p): Declare here.
1984         (visibility_options): Don't declare here.
1985         * opts-common.c (option_enabled, get_option_state): Move from
1986         opts.c.
1987         * opts-global.c: Include diagnostic.h instead of
1988         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1989         and toplev.h.
1990         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1991         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1992         print_ignored_options, unknown_option_callback,
1993         post_handling_callback, lang_handle_option, add_input_filename,
1994         read_cmdline_options, initial_lang_mask, init_options_once,
1995         decode_cmdline_options_to_array_default_mask,
1996         set_default_handlers, decode_options): Move from opts.c.
1997         (print_ignored_options): Use warning_at instead of saving and
1998         restoring input_location.
1999         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
2000         instead of expr.h.  Don't include langhooks.h, except.h or
2001         lto-streamer.h.  Add more comments on includes.
2002         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
2003         toplev.c.
2004         (visibility_options): Move to c-family/c-common.c.
2005         (const_char_p, ignored_options, in_fnames, num_in_fnames,
2006         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
2007         print_ignored_options, unknown_option_callback,
2008         post_handling_callback, lang_handle_option, add_input_filename,
2009         read_cmdline_options, initial_lang_mask, init_options_once,
2010         decode_cmdline_options_to_array_default_mask,
2011         set_default_handlers, decode_options): Move to opts-global.c.
2012         (target_handle_option, default_options_optimization,
2013         finish_options, common_handle_option): Remove static.
2014         (option_enabled, get_option_state): Move to opts-common.c.
2015         * opts.h (common_handle_option, target_handle_option,
2016         finish_options, default_options_optimization): Declare.
2017         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
2018         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
2019         opts.c.
2020         * toplev.h (strip_off_ending, decode_d_option,
2021         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
2022         declare here.
2023         * Makefile.in (opts.o, opts-global.o): Update dependencies.
2024
2025 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
2026
2027         PR driver/42690
2028         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
2029         options, replace by call of pass-through-libs spec function to process
2030         link_gcc_c_sequence spec.
2031         (lto_libgcc_spec): Delete variable.
2032         (static_specs[]): Remove related entry.
2033         (static_spec_functions[]): Add new entry for pass-through-libs.
2034         (main): Don't generate deleted lto_libgcc_spec.
2035         (pass_through_libs_spec_func): New function to implement the new
2036         pass-through-libs spec function.
2037         * doc/invoke.texi (pass-through-libs): Document new spec function.
2038
2039 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2040
2041         * doc/options.texi (Warning, Optimization): Document.
2042
2043 2010-11-23  Jan Hubicka  <jh@suse.cz>
2044
2045         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
2046         (tree_decl_with_vis): Add implicit_section_name_p.
2047         * targhooks.h (default_function_section): Declare.
2048         * target.def (function_section): New hook.
2049         * defaults.h (HOT_TEXT_SECTION_NAME,
2050         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2051         * predict.c (choose_function_section): Remove.
2052         (estimate_bb_frequencies): Do not use choose_function_section.
2053         * coretypes.h (enum node_frequency): Move here from cgraph.h
2054         * cgraph.h (enum node_frequency): Remove.
2055         * varasm.c (initialize_cold_section_name, unlikely_text_section,
2056         unlikely_text_section_p): Remove.
2057         (named_subsection_entry): New structure.
2058         (get_text_section): New function.
2059         (default_function_section): New function.
2060         (function_section_1): Break out from ...; handle profile info.
2061         (function_section): ... here.
2062         (unlikely_text_section): Remove.
2063         (unlikely_text_section_p): Use function_section_1.
2064         (assemble_start_function): Do not initialize cold section.
2065         (default_section_type_flags): Do not special case cold subsection.
2066         (switch_to_section): Likewise.
2067         * output.h (get_text_section): Define.
2068         * config/i386/winnt.c: Do not special case cold section.
2069         * config/darwin-protos.h (darwin_function_section): Declare.
2070         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
2071         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2072         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
2073         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2074         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
2075         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
2076         * config/darwin.c (machopic_select_section): Use
2077         darwin_function_section.
2078         (darwin_function_section): New function.
2079         * config/darwin.h (HOT_TEXT_SECTION_NAME,
2080         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2081         (TARGET_ASM_FUNCTION_SECTION): Define.
2082         * system.h (HOT_TEXT_SECTION_NAME,
2083         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
2084
2085 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
2086
2087         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
2088         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
2089
2090 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
2091
2092         PR middle-end/46499
2093         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
2094         following unconditional jumps.
2095
2096 2010-11-23  Richard Guenther  <rguenther@suse.de>
2097
2098         * doc/md.texi (386 constraints): Clarify A constraint documentation.
2099
2100 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
2101             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2102
2103         * gengtype.c (enum typekind, struct options)
2104         (struct nested_ptr_data, struct pair, NUM_PARAM)
2105         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
2106         Move to gengtype.h.
2107         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
2108         Remove static, add zero state_number.
2109         (typedefs, structures, param_structs, variables): Remove static.
2110         (create_option): Remove.
2111         (create_string_option, create_type_option, create_nested_option):
2112         New functions.
2113         (create_nested_ptr_option): Use create_nested_option.
2114         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
2115         new create*option functions.
2116         (process_gc_options): Adjust for discriminated option.
2117         (output_mangled_typename): Handle TYPE_NONE.
2118         (walk_type): Test option kinds.
2119         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
2120         (write_func_for_structure, write_type, write_local, write_root)
2121         (write_roots, note_def_vec, dump_options): Adjust for
2122         discriminated option.
2123
2124         * gengtype.h (typedefs, structures, param_structs, variables
2125         enum typekind): Move from gengtype.c
2126         (enum option_kind): New discriminating enumeration.
2127         (struct options): Becomes discriminated.
2128         (struct nested_ptr_data): Nove from gengtype.c
2129         (create_string_option, create_type_option, create_nested_option)
2130         (create_nested_ptr_option): New functions
2131         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
2132         (UNION_OR_STRUCT_P): Move from gengtype.c
2133
2134         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
2135         discriminated options.
2136
2137 2010-11-23  Richard Guenther  <rguenther@suse.de>
2138
2139         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
2140         twice.  Avoid re-allocating the ops vector all the time.
2141
2142 2010-11-23  Richard Guenther  <rguenther@suse.de>
2143
2144         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
2145         is_gimple_min_invariant, group tree code checks to allow
2146         combining them.
2147         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
2148         of is_gimple_reg.
2149
2150 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
2151
2152         * config.gcc (sparc*-*-*): Reorder.
2153
2154 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
2155
2156         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
2157         Remove ENABLE_CHECKING around DBGPRINTF.
2158
2159 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
2160
2161         * common.opt (exit_after_options, write_symbols, debug_info_level,
2162         use_gnu_debug_info_extensions): New Variable entries.
2163         (fprofile-dir=): Use Var.
2164         * flag-types.h (enum debug_info_level): Rename to enum
2165         debug_info_levels.
2166         * flags.h (write_symbols, debug_info_level,
2167         use_gnu_debug_info_extensions): Remove declarations.
2168         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
2169         (set_struct_debug_option): Make static variables const.
2170         (use_gnu_debug_info_extensions): Remove.
2171         (set_debug_level, print_filtered_help, print_specific_help,
2172         fast_math_flags_set_p): Take gcc_options parameters and use them
2173         in place of global variables.
2174         (print_filtered_help): Make new_help non-static.
2175         (print_specific_help): Update call to print_filtered_help.
2176         (common_handle_option): Update calls to print_specific_help.  Use
2177         gcc_options structure for more settings.  Make --help table
2178         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
2179         set_debug_level.
2180         * toplev.c (profile_data_prefix): Remove.
2181         * toplev.h (profile_data_prefix, exit_after_options): Remove
2182         declarations.
2183         (fast_math_flags_set_p): Update prototype.
2184         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
2185         Update call to fast_math_flags_set_p.
2186
2187 2010-11-22  Richard Henderson  <rth@redhat.com>
2188
2189         PR target/46434
2190         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
2191         return the address register extracted.
2192         (crx_decompose_address): Update the extracted address register.
2193
2194 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
2195
2196         PR driver/43335
2197         * gcc.c (main): Don't crash when lto-wrapper program is not found.
2198
2199 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
2200
2201         PR target/46608
2202         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
2203         * config/picochip/picochip-protos.h: Don't include "target.h" .
2204         (picochip_secondary_reload): Don't declare.
2205
2206         PR target/46613
2207         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
2208         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
2209         static.
2210
2211 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
2212
2213         PR bootstrap/46609
2214         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
2215         (source_dot_c_frul): Likewise.
2216
2217 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
2218
2219         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
2220
2221 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
2222
2223         PR bootstrap/44970
2224         * Makefile.in (fwprop.o) Add sparseset.h.
2225         * fwprop.c: Include sparseset.h
2226         (struct find_occurrence_data, find_occurrence_callback,
2227         find_occurrence): Remove.
2228         (active_defs, active_defs_check, register_active_defs,
2229         update_df_init, update_uses): New.
2230         (update_df): Rewrite.
2231         (try_fwprop_subst, forward_propagate_asm): Add calls to
2232         update_df_init and update_df.
2233         (fwprop_init): Allocate active_defs and active_defs_check.
2234         (fwprop_done): Free them.
2235         (fwprop, fwprop_addr): Adjust comments.
2236         * df.h (df_uses_create): Declare.
2237         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
2238         (df_ref_create): Return result of df_ref_create_structure directly.
2239         (df_ref_create_structure): Call df_install_ref_incremental when
2240         no collection_rec is passed.
2241         (df_ref_record): Do not create multiword hard reg info when no
2242         collection_rec is passed.
2243         (df_uses_create): New.
2244
2245 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
2246
2247         PR middle-end/43057
2248         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
2249         setting location.
2250
2251 2010-11-22  Richard Guenther  <rguenther@suse.de>
2252
2253         * gimple-fold.c (maybe_fold_reference): When canonicalizing
2254         MEM_REFs, preserve volatileness.
2255         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
2256         addresses.
2257
2258 2010-11-22  Richard Guenther  <rguenther@suse.de>
2259
2260         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
2261
2262 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
2263
2264         PR rtl-optimization/45652
2265         * alias.c (get_reg_base_value): New.
2266         * rtl.h (get_reg_base_value): Add prototype.
2267         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
2268         non-null REG_BASE_VALUE for renaming.
2269
2270 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
2271             Basile Starynkevitch  <basile@starynkevitch.net>
2272
2273         * gengtype.c: Include xregex.h and obstack.h
2274         Added comments about role of get_output_file_with_visibility and
2275         our regexpr machinery.
2276         (frul_actionrout_t, struct file_rule_st): New.
2277         (hader_dot_h_frul, source_dot_c_frul): New functions.
2278         (NULL_REGEX,  NULL_FRULACT): New.
2279         (files_rules): New.
2280         (matching_file_name_substitute): New function.
2281         (get_output_file_with_visibility): Updated comments and rewritten
2282         to use the new files_rules machinery.
2283
2284         * Makefile.in (XREGEX_H): Added variable.
2285         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
2286
2287 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
2288
2289         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
2290
2291 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
2292
2293         * target.def (conditional_register_usage): Define.
2294         * reginfo.c (init_reg_sets_1): Call
2295         targetm.conditional_register_usage.
2296         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
2297         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
2298         for making it a hook.
2299         * doc/tm.texi: Regenerate.
2300         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2301         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
2302         New function.
2303         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2304         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2305         * config/arc/arc.c (arc_conditional_register_usage): ...here.
2306         New function.
2307         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2308         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2309         * config/arm/arm.c (arm_conditional_register_usage): ...here.
2310         New function.
2311         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2312         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
2313         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
2314         * config/bfin/bfin.c (conditional_register_usage): Move code into...
2315         (bfin_conditional_register_usage): ...here.  New function.
2316         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2317         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
2318         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
2319         * config/cris/cris.c (cris_conditional_register_usage): Make static.
2320         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2321         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
2322         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
2323         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
2324         * config/frv/frv.c (frv_conditional_register_usage): Make static.
2325         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2326         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2327         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
2328         New function.
2329         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2330         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
2331         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
2332         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
2333         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2334         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
2335         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
2336         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
2337         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2338         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2339         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
2340         New function.
2341         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2342         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
2343         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
2344         Delete.
2345         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
2346         static.
2347         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2348         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
2349         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
2350         * config/mep/mep.c (mep_conditional_register_usage): Make static.
2351         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2352         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
2353         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
2354         * config/mips/mips.c (mips_conditional_register_usage): Make static.
2355         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2356         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
2357         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
2358         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
2359         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2360         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2361         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
2362         ...here.  New function.
2363         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2364         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2365         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
2366         * config/pa/pa.c (pa_conditional_register_usage): ...here.
2367         New function.
2368         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2369         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2370         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
2371         New function.
2372         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2373         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
2374         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
2375         Delete.
2376         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
2377         static.
2378         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2379         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
2380         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
2381         * config/rx/rx.c (rx_conditional_register_usage): Make static.
2382         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2383         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
2384         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
2385         * config/s390/s390.c (s390_conditional_register_usage): Make static.
2386         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2387         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2388         * config/score/score.c (score_conditional_register_usage): ...here.
2389         New function.
2390         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2391         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2392         * config/sh/sh.c (sh_conditional_register_usage): ...here.
2393         New function.
2394         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2395         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2396         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
2397         New function.
2398         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2399         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
2400         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
2401         * config/spu/spu.c (spu_conditional_register_usage): Make static.
2402         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2403         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2404         * config/v850/v850.c (v850_conditional_register_usage): ...here.
2405         New function.
2406         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2407
2408 2010-11-21  Jan Hubicka  <jh@suse.cz>
2409             Dominique d'Humieres <dominiq@lps.ens.ft>
2410
2411         PR target/46510
2412         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
2413         finalize external decls.
2414
2415 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
2416
2417         * system.h (strerror): Poison.
2418
2419 2010-11-21  Richard Henderson  <rth@redhat.com>
2420
2421         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
2422         for infq/huge_valq.
2423
2424 2010-11-21  Richard Henderson  <rth@redhat.com>
2425
2426         PR rtl-optimization/46571
2427         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
2428         (compute_hash_table_work): Use NONDEBUG_INSN_P.
2429
2430 2010-11-21  Paul Koning  <ni1d@arrl.net>
2431
2432         * config/mips/pdp11.md (negsi2): Fix wrong code.
2433
2434 2010-11-21  Paul Koning  <ni1d@arrl.net>
2435
2436         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
2437         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2438
2439 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
2440
2441         * config/mips/mips.c (machine_function): Rename load_label_length to
2442         load_label_num_insns.
2443         (mips_load_label_length): Rename to...
2444         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
2445         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
2446
2447 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
2448
2449         PR target/46533
2450         * config/alpha/predicates.md (direct_call_operand): Return false
2451         for !TARGET_SMALL_TEXT targets.
2452
2453 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
2454
2455         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
2456         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
2457         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
2458         * doc/tm.texi: Regenerate.
2459         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
2460         HANDLE_PRAGMA_WEAK): Poison.
2461         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2462         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2463         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
2464         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
2465         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2466         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2467         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2468         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
2469         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2470         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
2471         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2472         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
2473         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2474         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2475         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2476         (HANDLE_PRAGMA_WEAK): Don't undefine.
2477         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2478         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
2479         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2480         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
2481         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2482         (HANDLE_PRAGMA_WEAK): Don't undefine.
2483         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2484         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
2485         (HANDLE_PRAGMA_PACK): Don't undefine.
2486         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
2487         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2488         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2489         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2490         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
2491         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2492         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2493         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2494         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
2495         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2496         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
2497         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2498         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2499         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2500         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2501         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
2502         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2503
2504 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
2505
2506         PR target/31100
2507         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
2508         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
2509         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
2510
2511 2010-11-20  Jan Hubicka  <jh@suse.cz>
2512
2513         * cgraph.c (ld_plugin_symbol_resolution_names): New.
2514         (dump_cgraph_node): Dump resolution.
2515         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
2516         (cgraph_comdat_can_be_unshared_p): Dclare.
2517         * lto-streamer-out.c (produce_symtab): Use
2518         cgraph_comdat_can_be_unshared_p.
2519         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
2520         (cgraph_comdat_can_be_unshared_p): New function based on logic
2521         in cgraph_externally_visible_p.
2522         (cgraph_externally_visible_p): Use it.
2523         (varpool_externally_visible_p): Virtual tables can be unshared.
2524         * varpool.c (dump_varpool_node): Dump resolution.
2525
2526 2010-11-20  Jan Hubicka  <jh@suse.cz>
2527
2528         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
2529
2530 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2531
2532         PR other/46202
2533         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
2534         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
2535         shell quoting.
2536         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
2537         (install-strip): New target.
2538         (STRIPPROG): New variable, exported if STRIP is set.
2539         * doc/install.texi (Final install): Minor markup and code style
2540         fixes.  Document install-strip target.
2541
2542 2010-11-20  Paul Koning  <ni1d@arrl.net>
2543
2544         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
2545         pdp11_regno_reg_class): New functions.
2546         * config/pdp11/pdp11.md (define_constants): Add register numbers.
2547         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
2548         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
2549         functions.
2550         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
2551         frame pointer and argument pointer pseudo-registers.
2552         (ARG_POINTER_REGNUM): Define.
2553         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
2554         argument pointer.
2555         (FIRST_PARM_OFFSET): Update for argument pointer.
2556         (INITIAL_FRAME_POINTER_OFFSET): Delete.
2557         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
2558         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
2559         frame pointer and argument pointer.
2560
2561 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
2562
2563         PR debug/46561
2564         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
2565         when looking for immediate uses.
2566
2567         PR tree-optimization/45830
2568         * stmt.c (expand_switch_using_bit_tests_p): New function.
2569         (expand_case): Use it.
2570         * tree.h (expand_switch_using_bit_tests_p): New prototype.
2571         * tree-switch-conversion.c (struct switch_conv_info): Add
2572         bit_test_uniq, bit_test_count and bit_test_bb fields.
2573         (check_range): Fix a comment.
2574         (check_process_case): Compute bit_test_uniq and bit_test_count.
2575         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
2576         allocation.
2577         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
2578         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
2579         (array_value_type): New function.
2580         (build_one_array): Use it, if it returned different type,
2581         fold_convert all constructor fields and convert back to the
2582         wider type in the generated code.
2583         (process_switch): Initialize bit_test_uniq, bit_test_count and
2584         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
2585         returned true.
2586
2587 2010-11-19  Michael Matz  <matz@suse.de>
2588
2589         PR tree-optimization/46077
2590         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
2591
2592 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
2593
2594         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2595         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
2596         function.
2597         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2598
2599 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2600
2601         * mode-switching.c (optimize_mode_switching): Use
2602         FOR_BB_INSNS instead of open-coded loop.
2603         * cfgrtl.c (redirect_branch_edge): Ditto.
2604
2605 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
2606
2607         PR target/46436
2608         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
2609         to accomodate 32 bit HOST_WIDE_INT.
2610         (m68hc11_emit_logical): Remove unused variable insn.
2611         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
2612         this_insn_uses_iy before use.
2613
2614         PR target/46434
2615         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
2616
2617 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2618
2619         PR c/46547
2620         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
2621         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
2622
2623 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2624
2625         * doc/extend.texi (Function attributes): Document PowerPC target
2626         attributes that are supported.
2627         (Pragmas): Document that PowerPC now supports target pragmas.
2628
2629         * doc/options.texi (TargetVariable): Document TargetVariable,
2630         HeaderInclude, and SourceInclude.
2631
2632         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
2633         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
2634         -ffp-contract=off.
2635
2636         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
2637         SourceInclude directives.  Fix a cut+paste error with target save
2638         enum variables.  Sort enums in the structures after ints and
2639         before shorts.
2640         * opth-gen.awk: Ditto.
2641
2642         * configure.ac: Add support for HeaderInclude and SourceInclude option
2643         directives to add the appropriate files to the dependency lists.
2644         * configure: Regenerate.
2645         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
2646         (OPTIONS_C_EXTRA): New variable for SourceInclude.
2647         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
2648         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
2649         (gcc-options.o): Ditto.
2650         * opt-include.awk: New awk script to handle HeaderInclude and
2651         TargetInclude.
2652
2653         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
2654         gets saved in the target options.
2655         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
2656         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
2657         (-mprototype): Ditto.
2658         (-mbit-word): ditto.
2659         (-mregnames): Ditto.
2660         (-msecure-plt): Ditto.
2661         (-mbss-plt): Ditto.
2662         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
2663         (-mpowerpc-gfxopt): Ditto.
2664         (-mmfcrf): Ditto.
2665         (-mpopcntb): Ditto.
2666         (-mfprnd): Ditto.
2667         (-mcmpb): Ditto.
2668         (-mmmfpgpr): Ditto.
2669         (-maltivec): Ditto.
2670         (-mhard-dfp): Ditto.
2671         (-mmulhw): Ditto.
2672         (-mdlmzb): Ditto.
2673         (-mmultiple): Ditto.
2674         (-mstring): Ditto.
2675         (-mpopcntd): Ditto.
2676         (-mfriz): Ditto.
2677         (-mvsx): Ditto.
2678         (-mno-update): Ditto.
2679         (-mavoid-indexed-addresses): Ditto.
2680         (-mtls-markers): Ditto.
2681         (-msched-epilog): Ditto.
2682         (-msched-prolog): Ditto.
2683         (-maix-struct-return): Ditto.
2684         (-msvr4-struct-return): Ditto.
2685         (-mxl-compat): Ditto.
2686         (-mrecip-precision): Ditto.
2687         (-mfp-in-toc): Ditto.
2688         (-msum-in-toc): Ditto.
2689         (-mvrsave): Ditto.
2690         (-mblock-move-inline-limit=): Ditto.
2691         (-misel): Ditto.
2692         (-mpaired): Ditto.
2693         (-mlongcall): Ditto.
2694         (-mgen-cell-microcode): Ditto.
2695         (-mwarn-cell-microcode): Ditto.
2696         (-mwarn-altivec-long): Ditto.
2697         (-mprioritize-restricted-insns=): Ditto.
2698         (-msingle-float): Ditto.
2699         (-mdouble-float): Ditto.
2700         (-msimple-fpu): Ditto.
2701         (-mxilinx-fpu): Ditto.
2702         * config/rs6000/aix64.opt (-mpe): Ditto.
2703
2704         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
2705         (rs6000_cpu): Move variable to be a target variable.  Rename
2706         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
2707         -mdebug=<xxx> variables into a single int.
2708         (rs6000_always_hint): Ditto.
2709         (rs6000_sched_groups): Ditto.
2710         (rs6000_align_branch_targets): Ditto.
2711         (rs6000_sched_costly_dep): Ditto.
2712         (rs6000_sched_insert_nops): Ditto.
2713         (rs6000_long_double_type_size): Ditto.
2714         (rs6000_ieeequad): Ditto.
2715         (rs6000_altivec_abi): Ditto.
2716         (rs6000_spe): Ditto.
2717         (rs6000_spe_abi): Ditto.
2718         (rs6000_float_gprs): Ditto.
2719         (rs6000_darwin64_abi): Ditto.
2720         (can_override_loop_align): Ditto.
2721         (rs6000_sdata): Ditto.
2722         (rs6000_tls_size): Ditto.
2723         (rs6000_current_abi): Ditto.
2724         (rs6000_traceback): Ditto.
2725         (rs6000_alignment_flags): Ditto.
2726         (rs6000_current_cmodel): Ditto.
2727         (rs6000_recip_control): Ditto.
2728         (rs6000_cpu_index): Ditto.
2729         (rs6000_tune_index): Ditto.
2730         (rs6000_debug): Ditto.
2731         (rs6000_target_flags_explict): Ditto.
2732
2733         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
2734         declaration.
2735
2736         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
2737         cmodel.  Change all uses.
2738
2739         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
2740         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
2741         Rename cmodel to rs6000_current_cmodel.
2742         (rs6000_sched_groups): Ditto.
2743         (rs6000_align_branch_targets): Ditto.
2744         (rs6000_sched_costly_dep): Ditto.
2745         (rs6000_sched_insert_nops): Ditto.
2746         (rs6000_long_double_type_size): Ditto.
2747         (rs6000_ieeequad): Ditto.
2748         (rs6000_altivec_abi): Ditto.
2749         (rs6000_spe): Ditto.
2750         (rs6000_spe_abi): Ditto.
2751         (rs6000_float_gprs): Ditto.
2752         (rs6000_darwin64_abi): Ditto.
2753         (can_override_loop_align): Ditto.
2754         (rs6000_sdata): Ditto.
2755         (rs6000_tls_size): Ditto.
2756         (rs6000_current_abi): Ditto.
2757         (rs6000_traceback): Ditto.
2758         (rs6000_alignment_flags): Ditto.
2759         (rs6000_current_cmodel): Ditto.
2760         (rs6000_recip_control): Ditto.
2761         (rs6000_cpu_index): Ditto.
2762         (rs6000_tune_index): Ditto.
2763         (rs6000_debug): Ditto.
2764         (rs6000_target_flags_explict): Ditto.
2765         (rs6000_sched_insert_nops_str): Make static.
2766         (rs6000_sched_costly_dep_str): Ditto.
2767         (rs6000_recip_name): Ditto.
2768         (rs6000_abi_name): Ditto.
2769         (rs6000_sdata_name): Ditto.
2770         (enum rs6000_traceback_name): Move to rs6000-opts.h.
2771         (rs6000_parse_tls_size_option): Delete.
2772         (rs6000_valid_attribute_p): New function for target attributes and
2773         pragmas.
2774         (rs6000_function_specific_save): Ditto.
2775         (rs6000_function_specific_restore): Ditto.
2776         (rs6000_function_specific_print): Ditto.
2777         (rs6000_can_inline_p): Ditto.
2778         (rs6000_set_current_function): Ditto.
2779         (rs6000_inner_target_options): Ditto.
2780         (rs6000_debug_target_options): Ditto.
2781         (rs6000_pragma_target_parse): Ditto.
2782         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
2783         attributes and pragmas.
2784         (TARGET_OPTION_SAVE): Ditto.
2785         (TARGET_OPTION_RESTORE): Ditto.
2786         (TARGET_OPTION_PRINT): Ditto.
2787         (TARGET_CAN_INLINE_P): Ditto.
2788         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2789         (POWER_MASKS): Move to file level scope from the
2790         rs6000_option_override_internal function.
2791         (POWERPC_MASKS): Ditto.
2792         (ISA_*_MASKS): Ditto.
2793         (struct rs6000_ptt): Ditto.
2794         (processor_target_table): Ditto.
2795         (rs6000_cpu_name_lookup): Map cpu name to an index in
2796         processor_target_table.
2797         (rs6000_debug_reg_global): Print more information on processor
2798         options for -mdebug=reg.
2799         (rs6000_init_hard_regno_mode_ok): Add support for target
2800         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
2801         Allow -mdebug=val1,val2.  Rename cmodel variable.
2802         (rs6000_option_override_internal): Ditto.
2803         (rs6000_option_override): Ditto.
2804         (rs6000_handle_option): Ditto.
2805         (rs6000_conditional_register_usage): Add debug trace message.
2806         (struct rs6000_opt_mask): New for target attribute/pragma support.
2807         (rs6000_opt_masks): Ditto.
2808         (struct rs6000_opt_var): Ditto.
2809         (rs6000_opt_vars): Ditto.
2810         (rs6000_previous_function): Ditto.
2811
2812         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
2813         wasn't already included.
2814         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2815         (enum processor_type): Ditto.
2816         (rs6000_cpu): Ditto.
2817         (enum fpu_type_t): Ditto.
2818         (fpu_type): Ditto.
2819         (enum rs6000_dependence_cost): Ditto.
2820         (enum rs6000_nop_insertion): Ditto.
2821         (enum group_termination): Ditto.
2822         (rs6000_long_double_type_size): Ditto.
2823         (rs6000_ieeequad): Ditto.
2824         (rs6000_altivec_abi): Ditto.
2825         (rs6000_spe_abi): Ditto.
2826         (rs6000_spe): Ditto.
2827         (rs6000_float_gprs): Ditto.
2828         (rs6000_alignment_flags): Ditto.
2829         (rs6000_sched_insert_nops): Ditto.
2830         (enum rs6000_vector): Ditto.
2831         (enum rs6000_abi): Ditto.
2832         (rs6000_current_opt): Ditto.
2833         (rs6000_debug_*): Delete.
2834         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2835         (TARGET_DEBUG*): Ditto.
2836
2837         * config/rs6000/rs6000-opts.h: New header file to define the enums
2838         that are used in target variables that are now defined in rs6000.opt.
2839
2840         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2841         rs6000-opts.h.
2842         (rs6000_sdata): Ditto.
2843         (rs6000_abi_name): Delete.
2844         (rs6000_sdata_name): Ditto.
2845         (rs6000_tls_size_string): Ditto.
2846
2847 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2848
2849         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2850         Variable entries.
2851         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2852         should_emit_struct_debug): Move from opts.c.
2853         * flag-types.h (enum debug_struct_file): Move from opts.c.
2854         * flags.h (should_emit_struct_debug): Remove.
2855         (base_of_path): Declare.
2856         (set_struct_debug_option): Add gcc_options parameter.
2857         * optc-gen.awk, opth-gen.awk: Handle array variables.
2858         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2859         debug_struct_generic): Remove.
2860         (set_struct_debug_option): Add gcc_options parameter.
2861         (base_of_path): Remove static.
2862         (main_input_basename, main_input_baselength, matches_main_base,
2863         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2864         Remove.
2865         * toplev.c (main_input_basename, main_input_baselength): Define
2866         here.
2867         * toplev.h (main_input_basename, main_input_baselength): Declare
2868         here.
2869
2870 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2871
2872         * common.opt (flag_instrument_functions_exclude_functions,
2873         flag_instrument_functions_exclude_files): New Variable definitions.
2874         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2875         * gimplify.c (char_p): Declare type and vectors.
2876         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2877         * opts.c (flag_instrument_functions_exclude_functions,
2878         flag_instrument_functions_exclude_files): Remove.
2879         (add_comma_separated_to_vector): Take void **.
2880         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2881         (common_handle_option): Use options structure for
2882         -finstrument-functions-exclude- options.
2883
2884 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2885
2886         * doc/options.texi (Var): Document effects of Defer.
2887         (Defer): Document.
2888         * opt-functions.awk (var_type, var_set): Handle deferred options.
2889         * opts-common.c (set_option): Handle CLVC_DEFER.
2890         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2891         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2892         fstack-limit-symbol=): Mark as deferred.
2893         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2894         plugin.h.
2895         (print_filtered_help): Don't report state of CLVC_DEFER options.
2896         (common_handle_option): Move code for OPT_fcall_used_,
2897         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2898         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2899         OPT_fstack_limit_symbol_ to opts-global.c.
2900         (option_enabled, get_option_state): Handle CLVC_DEFER.
2901         * opts.h: Include vec.h.
2902         (enum cl_var_type): Add CLVC_DEFER.
2903         (cl_deferred_option): Define type and vectors.
2904         (handle_common_deferred_options): Declare.
2905         * opts-global.c: New.
2906         * toplev.c (toplev_main): Call handle_common_deferred_options
2907         * Makefile.in (OPTS_H): Include $(VEC_H).
2908         (OBJS-common): Include opts-global.o.
2909         (opts.o): Update dependencies.
2910         (opts-global.o): Add dependencies.
2911
2912 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2913
2914         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2915         to objc_declare_protocols.
2916
2917 2010-11-19  Richard Guenther  <rguenther@suse.de>
2918
2919         PR lto/45789
2920         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2921         IDENTIFIERs do not stream TREE_TYPE.
2922         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2923
2924 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2925
2926         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2927
2928 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2929
2930         PR target/45870
2931         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2932         non-delegitimized TLS UNSPECs.
2933
2934 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2935             Ian Lance Taylor  <iant@google.com>
2936
2937         * config/darwin-c.c (darwin_additional_format_types): Export.
2938
2939 2010-11-18  Paul Koning  <ni1d@arrl.net>
2940
2941         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2942         pointer.
2943
2944 2010-11-18  Paul Koning  <ni1d@arrl.net>
2945
2946         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2947         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2948         * config/pdp11/pdp11.opt (-mabshi): Delete.
2949
2950 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2951
2952         * resource.h (struct resources): Fix typo in the comment.
2953
2954 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2955
2956         PR target/46546
2957         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2958
2959 2010-11-18  Richard Henderson  <rth@redhat.com>
2960
2961         PR middle-end/46515
2962         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2963         maybe_copy_epilogue_insn; handle prologue insns as well.
2964         * rtl.h, cfglayout.c: Update for rename.
2965         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2966         RTX_FRAME_RELATED_P insns.
2967
2968 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2969
2970         PR middle-end/46534
2971         * builtins.c (fold_builtin_printf): Don't copy and modify string
2972         before build_string_literal, instead modify what
2973         build_string_literal returned.
2974
2975 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2976
2977         PR c/33193
2978         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2979         REALPART_EXPR and IMAGPART_EXPR.
2980
2981 2010-11-18  Richard Guenther  <rguenther@suse.de>
2982
2983         PR tree-optimization/46172
2984         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2985         function.
2986         (slpeel_tree_peel_loop_to_edge): Call it.
2987
2988 2010-11-18  Jeff Law  <law@redhat.com>
2989
2990         PR middle-end-optimization/46297
2991         * postreload.c (reload_combine_note_store): Deal with embedded
2992         side effects in MEM expressions.
2993
2994 2010-11-18  Richard Guenther  <rguenther@suse.de>
2995
2996         PR lto/45089
2997         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2998         when checking is not enabled.
2999
3000 2010-11-18  Richard Guenther  <rguenther@suse.de>
3001
3002         PR lto/46525
3003         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
3004         type leaders.
3005         (gimple_register_canonical_type): Also cache the canoncial type
3006         for non type leaders.
3007
3008 2010-11-18  Richard Guenther  <rguenther@suse.de>
3009
3010         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
3011
3012 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
3013
3014         PR middle-end/46518
3015         * sel-sched-ir.c (init_expr): Use the correct type for
3016         target_available.
3017         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
3018
3019 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
3020
3021         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
3022         as well as -mrelocatable at the same time.
3023
3024 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
3025
3026         PR target/46422
3027         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
3028         Call the clz builtin.
3029
3030 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
3031             Steve Ellcey  <sje@cup.hp.com>
3032
3033         PR middle-end/31490
3034         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
3035         if section attribute used.
3036
3037 2010-11-17  Jan Hubicka  <jh@suse.cz>
3038
3039         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
3040         expand errno setting variant when optimizing for size.
3041
3042 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
3043
3044         * postreload.c (reload_combine): Call control_flow_insn_p only once.
3045         Reverse backward loop.  Fix formatting issues.
3046
3047 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
3048
3049         * c-parser.c (c_token_is_qualifier,
3050         c_parser_next_token_is_qualifier): New.
3051         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
3052         Improve error message on specs->tagdef_seen_p.
3053         (c_parser_struct_or_union_specifier): Improve error recovery.
3054         (c_parser_declspecs): Move exit condition on C_ID_ID early.
3055         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
3056         using c_parser_next_token_is_qualifier; extend it to cover
3057         a ctsk_tagdef typespec and !typespec_ok in general.
3058
3059 2010-11-17  Richard Guenther  <rguenther@suse.de>
3060
3061         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
3062         (gimple_mod_pow2_value_transform): Likewise.
3063         (gimple_mod_subtract_transform): Likewise.
3064
3065 2010-11-17  Richard Guenther  <rguenther@suse.de>
3066
3067         PR lto/46504
3068         * gimple.c (gimple_register_canonical_type): Make sure to only
3069         make type leaders canonical types.
3070
3071 2010-11-17  Michael Matz  <matz@suse.de>
3072
3073         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
3074         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
3075         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
3076         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
3077         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
3078         (pass_build_ssa): ... but here.
3079         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
3080         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
3081         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
3082         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
3083         * predict.c (rebuild_frequencies): Ditto.
3084         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
3085         * emit-rtl.c (verify_rtl_sharing): Ditto.
3086         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
3087         * tree-ssa-live.c (remove_unused_locals): Ditto.
3088         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
3089         * tree-ssa.c (pass_early_warn_uninitialized,
3090         execute_update_addresses_taken, pass_update_address_taken): Ditto.
3091         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
3092         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
3093         * passes.c (pass_postreload, execute_todo): Ditto.
3094         * tree-ssanames.c (pass_release_ssa_names): Ditto.
3095
3096 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
3097
3098         * doc/invoke.texi (-dy): Remove.
3099         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
3100         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
3101         * langhooks.c (lhd_do_nothing_i): Remove.
3102         * langhooks.h (lang_hooks.parse_file): Take no arguments.
3103         * toplev.c (set_yydebug): Remove.
3104         (compile_file): Update call to lang_hooks.parse_file.
3105         (decode_d_option): Don't handle -dy.
3106
3107 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
3108
3109         PR rtl-optimization/46440
3110         * combine.c (update_cfg_for_uncondjump): When changing
3111         an indirect jump into unconditional jump, remove BARRIERs
3112         from bb's footer.
3113
3114 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
3115
3116         * opts.c (target_handle_option): Do not assert that loc ==
3117         UNKNOWN_LOCATION.
3118
3119 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
3120             Richard Guenther  <rguenther@suse.de>
3121
3122         PR middle-end/45838
3123         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
3124         call_may_clobber_ref_p_1): Return true for __sync_* and some
3125         OpenMP builtins that act as threading barriers.
3126
3127 2010-11-17  Richard Guenther  <rguenther@suse.de>
3128
3129         PR tree-optimization/46498
3130         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
3131
3132 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3133
3134         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
3135         (xtensa_function_arg_boundary): ...this.
3136         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
3137         thinko in declaration.
3138         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
3139         number of parameters to picochip_function_arg_boundary.
3140         (picochip_arg_advance): Likewise.
3141
3142 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3143
3144         PR target/46512
3145         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
3146         under check for type.
3147
3148 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3149
3150         * ifcvt.c (dead_or_predicable): Fix typo.
3151
3152 2010-11-16  Richard Henderson  <rth@redhat.com>
3153
3154         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
3155         * config/s390/s390.opt (mfused-madd): Remove.
3156         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
3157         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3158         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
3159         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
3160
3161 2010-11-16  Richard Henderson  <rth@redhat.com>
3162
3163         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
3164         * config/rs6000/rs6000.opt (mfused-madd): Remove.
3165         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
3166         (*altivec_vmaddfp_1): Remove.
3167         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
3168         (altivec_mulv4sf3): Expand to FMA directly.
3169         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
3170         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
3171         * config/rs6000/paired.md (paired_madds0): Use FMA.
3172         (paired_madds1): Likewise.
3173         (*paired_madd): Rename from paired_madd; use FMA.
3174         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
3175         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
3176         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
3177         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
3178         (rs6000_emit_madd): Use fma_optab.
3179         (rs6000_emit_msub): Use fms_optab.
3180         (rs6000_emit_nmsub): Expand the FMA pattern directly.
3181         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
3182         (*fmasf4_fpr): Rename from fmasf4_fpr.
3183         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
3184         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
3185         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
3186         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
3187         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
3188         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
3189         (*fmadf4_fpr): Rename from fmadf4_fpr.
3190         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
3191         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
3192         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
3193         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
3194         (fmasf4, fmadf4): Macroize into...
3195         (fma<FMA_F>4): ... here.
3196         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
3197         (nfma<FMA_F>4, nfms<FMA_F>4): New.
3198         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
3199         TARGET_FUSED_MADD.
3200         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
3201         (*vsx_fmadd<mode>4_1): Remove.
3202         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
3203         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
3204         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
3205         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
3206         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
3207         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
3208         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
3209
3210 2010-11-16  Richard Henderson  <rth@redhat.com>
3211
3212         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
3213         (fmasf4, fnmadf4, fnmasf4): Likewise.
3214         (unnamed plus+mult insns and splitters): Delete.
3215
3216 2010-11-16  Richard Henderson  <rth@redhat.com>
3217
3218         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
3219         (fnma<VSF>4): Rename from fnms_<VSF>.
3220         (fms<VSF>4): Rename from fms_<VSF>.
3221         (fma<VDF>4): Rename from fma_<VDF>.
3222         (fms<VDF>4): Rename from fms_<VDF>.
3223         (nfma<VDF>4): Rename from fnma_<VDF>.
3224         (nfms<VDF>4): Rename from fnms_<VDF>.
3225         (fnma<VDF>4, fnms<VDF>4): New expanders.
3226         (floatunsdisf2): Update for the renames.
3227         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
3228         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
3229
3230 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3231
3232         PR rtl-optimization/46490
3233         * combine.c (expand_compound_operation): Fix thinko.
3234
3235 2010-11-16  Richard Henderson  <rth@redhat.com>
3236
3237         PR target/46470
3238         * recog.c (peep2_attempt): Convert frame-related info when possible.
3239         (peep2_fill_buffer): Allow frame-related insns into the buffer.
3240         (peephole2_optimize): Allow peep2_attempt to fail.
3241
3242 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3243
3244         PR rtl-optimization/46315
3245         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
3246         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
3247         extracted from...
3248         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
3249         (remove_reg_equal_equiv_notes_for_defs): ...this.
3250         (delete_unmarked_insns): Adjust to above renaming.
3251         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
3252         referring to registers set in the insns being moved, if any.
3253
3254         * df-core.c (df_ref_dump): New function extracted from...
3255         (df_refs_chain_dump): ...here.  Call it.
3256         (df_regs_chain_dump): Likewise.
3257         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
3258         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
3259
3260 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
3261
3262         PR rtl-optimization/46395
3263         * postreload.c (reload_combine): Invalidate register use
3264         information on all control flow insns.
3265
3266         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
3267         LABEL_REF in UNSPEC operand.
3268
3269 2010-11-16  Jan Hubicka  <jh@suse.cz>
3270
3271         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
3272         when !flag_toplevel_reorder do not remove unless variable is
3273         COMDAT or ARTIFICIAL.
3274         * ipa.c (varpool_can_remove_if_no_refs): ... here.
3275         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
3276         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
3277         * varpool.c (decide_is_variable_needed): Do not handle visibility
3278         issues.
3279         (varpool_finalize_decl): Likewise.
3280         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
3281         update outdated comment on DECL_RTL_SET_P check.
3282
3283 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3284
3285         * config/sol2.h (NM_FLAGS): Define.
3286         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
3287         * doc/tm.texi: Update.
3288
3289 2010-11-16  Nick Clifton  <nickc@redhat.com>
3290
3291         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
3292         (msubsf4): Rename to fmssf4, and use fma.
3293         (nmaddsf4): Rename to fnmasf4 and use fma.
3294         (nmsubsf4): Rename to fnmssf4 and use fma.
3295
3296 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
3297
3298         PR target/44762
3299         * config/score/score3.c (score3_return_in_memory): Constify arguments.
3300         (score3_in_small_data_p, score3_function_value): Likewise.
3301         (score3_trampoline_init): Use LCT_NORMAL.
3302         (score3_print_operand): Initialize code as UNKNOWN.
3303         * config/score/predicates.md (score_load_multiple_operation):
3304         Remove unused variable.
3305         (score_store_multiple_operation): Likewise.
3306         * config/score/score7.c (score7_return_in_memory): Constify arguments.
3307         (score7_in_small_data_p, score7_function_value): Likewise.
3308         (score7_trampoline_init): Use LCT_NORMAL.
3309         (score7_print_operand): Initialize code as UNKNOWN.
3310         * config/score/score3.h (score3_return_in_memory): Update prototype.
3311         (score3_in_small_data_p, score3_function_value): Likewise.
3312         * config/score/score-protos.h (score_function_value): Likewise.
3313         * config/score/score7.h (score7_return_in_memory): Update prototype.
3314         (score7_in_small_data_p, score7_function_value): Likewise.
3315         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
3316         (score_return_in_memory, score_pass_by_reference): Constify arguments.
3317         (score_output_mi_thunk, score_function_prologue): Don't return a value.
3318         (score_function_epilogue, score_in_small_data_p): Likewise.
3319         (score_option_override, score_asm_trampoline_template): Likewise.
3320         (score_trampoline_init, score_print_operand): Likewise.
3321         (score_print_operand_address, score_prologue): Likewise.
3322         (score_epilogue, score_call, score_call_value): Likewise.
3323         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
3324         (score_function_arg_advance): Likewise. Make static.
3325         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
3326         (score_function_arg, score_legitimate_address_p): Make static.
3327         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
3328         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
3329         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
3330         Allow (W) == HOST_BITS_PER_WIDE_INT.
3331
3332         PR java/46386
3333         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
3334         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
3335
3336 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3337
3338         * config/arc/arc.c: Delete pasto.
3339         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
3340
3341 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
3342
3343         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
3344         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
3345         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
3346         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3347         (mn10300_preferred_reload_class,
3348         mn10300_preferred_output_reload_class): New functions.
3349
3350 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3351
3352         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
3353         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
3354         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
3355         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
3356
3357 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3358
3359         * builtins.c (std_gimplify_va_arg_expr): Use
3360         targetm.calls.function_arg_boundary.
3361         * function.c (assign_parms, locate_and_pad_parm): Likewise.
3362         * calls.c (struct arg_data): Update comment.
3363         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
3364         * target.def (function_arg_boundary): Define.
3365         * targhooks.h (default_function_arg_boundary): Declare.
3366         * targhooks.c (default_function_arg_boundary): Define.
3367         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
3368         TARGET_FUNCTION_ARG_BOUNDARY.
3369         (FUNCTION_ARG_BOUNDARY): Delete.
3370         (TARGET_FUNCTION_ARG_BOUNDARY): New.
3371         * doc/tm.texi: Regenerate.
3372         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
3373         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
3374         * config/arc/arc.c (arc_function_arg_boundary): Define.
3375         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3376         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
3377         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
3378         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
3379         (arm_function_arg_boundary): Define.
3380         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3381         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
3382         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
3383         * config/frv/frv.c (frv_function_arg_boundary): Make static.
3384         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3385         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
3386         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
3387         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
3388         (ix86_compat_function_arg_boundary): Take and return unsigned int.
3389         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3390         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
3391         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
3392         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
3393         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3394         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
3395         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
3396         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3397         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
3398         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
3399         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
3400         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3401         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
3402         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
3403         * config/mips/mips.c (mips_function_arg_boundary): Make static.
3404         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3405         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
3406         * config/pa/pa.c (pa_function_arg_boundary): Define.
3407         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3408         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
3409         * config/picochip/picochip-protos.h
3410         (picochip_get_function_arg_boundary): Delete.
3411         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
3412         Rename to...
3413         (picochip_function_arg_boundary): ...this.  Make static.
3414         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
3415         (picochip_arg_advance): Adjust.
3416         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3417         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
3418         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
3419         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
3420         (rs6000_function_arg_boundary): ...this.  Make static.
3421         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
3422         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3423         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
3424         * config/rx/rx.c (rx_function_arg_boundary): Define.
3425         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3426         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
3427         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
3428         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3429         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
3430         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
3431         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
3432         (xtensa_function_arg_boundary): ...this.  Make static.
3433         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3434
3435 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3436
3437         * expr.c (alignment_for_piecewise_move): New function.
3438         (widest_int_mode_for_size): New function.
3439         (move_by_pieces, move_by_pieces_ninsns): Call them.
3440         (can_store_by_pieces, store_by_pieces_1): Likewise.
3441
3442 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3443
3444         * gcc.c (char_p): Define.  Define a VEC of it.
3445         (n_linker_options, n_assembler_options, n_preprocessor_options):
3446         Delete.
3447         (linker_options, assembler_options, preprocessor_options): Convert
3448         to a VEC.
3449         (add_preprocessor_option): Adjust.
3450         (add_assembler_option): Adjust.
3451         (add_linker_option): Adjust.
3452         (do_specs_vec): New function.
3453         (do_spec_1): Call it.  Adjust for new types.
3454
3455 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3456
3457         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
3458         (sreal.o, statistics.o, stringpool.o): Likewise.
3459
3460 2010-11-16  Richard Guenther  <rguenther@suse.de>
3461
3462         PR tree-optimization/44545
3463         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
3464         statements are not reassociatable.
3465         (reassociate_bb): Likewise.
3466
3467 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3468
3469         * bitmap.c: Delete unnecessary includes.
3470         * ebitmap.c: Likewise.
3471         * et-forest.c: Likewise.
3472         * sreal.c: Likewise.
3473         * statistics.c: Likewise.
3474         * stringpool.c: Likewise.
3475         * double-int.c: Add comment for inclusion of tm.h.
3476
3477 2010-11-16  Richard Guenther  <rguenther@suse.de>
3478
3479         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
3480         (visit_nary_op): ... this.
3481         (visit_binary_op): Remove.
3482         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
3483
3484 2010-11-16  Richard Guenther  <rguenther@suse.de>
3485
3486         PR middle-end/45172
3487         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
3488
3489 2010-11-16  Nick Clifton  <nickc@redhat.com>
3490
3491         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
3492         record is packed.
3493
3494 2010-11-15  Richard Henderson  <rth@redhat.com>
3495
3496         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
3497         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
3498         DOT_PROD_EXPR.
3499
3500 2010-11-15  Richard Henderson  <rth@redhat.com>
3501
3502         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
3503         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
3504         fma rtx_code.
3505
3506 2010-11-15  Richard Henderson  <rth@redhat.com>
3507
3508         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
3509         and *mulsubsf4 respectively.  Use fma rtx_code.
3510
3511 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
3512
3513         * gcc.c: Include "vec.h".
3514         (argbuf): Make into a VEC.
3515         (argbuf_length, argbuf_index): Remove.
3516         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
3517         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
3518         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
3519         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
3520         (gcc.o): Depend on $(VEC_H).
3521
3522 2010-11-15  Richard Henderson  <rth@redhat.com>
3523
3524         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
3525         via FMA if unsafe math.
3526         (insert_var_expansion_initialization): Handle FMA.
3527         (combine_var_copies_in_loop_exit): Likewise.
3528
3529 2010-11-15  Richard Henderson  <rth@redhat.com>
3530
3531         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
3532         * config/ia64/ia64.opt: Remove mfused-madd.
3533         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
3534         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
3535         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
3536         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
3537         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
3538         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
3539         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
3540         (fmav2sf4): Rename from fpma; use FMA code.
3541         (fmsv2sf4): Rename from fpms; use FMA code.
3542         (fnmav2sf4): Rename from *fpnma; use FMA code.
3543         * config/ia64/ia64.md (MODE_SDF): New iterator.
3544         (suffix): New mode attribute.
3545         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
3546         (fmssf4): Rename from *fmssf4.
3547         (fnmasf4): Rename from *nfmasf4.
3548         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
3549         (*nmadddf4, *nmadddf4_truncsf): Remove.
3550         (fmsdf4): Rename from *fmsdf4.
3551         (fnmadf4): Rename from *nfmadf4.
3552         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
3553         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
3554         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
3555         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
3556         (fmsxf4): Rename from *fmsxf4.
3557         (fnmaxf4): Rename from *nfmaxf4.
3558         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
3559         (*fnmaxf_trunc_<MODE_SDF>): New.
3560
3561 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
3562
3563         PR tree-optimization/46461
3564         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
3565         a gimple val.
3566
3567 2010-11-15  Ian Lance Taylor  <iant@google.com>
3568
3569         * godump.c: New file.
3570         * common.opt (fdump-go-spec=): New option.
3571         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
3572         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
3573         (TYPE_SYMTAB_IS_DIE): Define.
3574         (struct tree_type): Change GTY for symtab field to use
3575         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
3576         to pick the union field.
3577         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
3578         (dump_go_spec_init): Declare.
3579         * toplev.c (process_options): Handle flag_dump_go_spec.
3580         * debug.c: Include "tree.h".
3581         (do_nothing_debug_hooks): Set tree_type_symtab_field.
3582         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3583         * dbxout.c (dbx_debug_hooks): Likewise.
3584         (xcoff_debug_hooks): Likewise.
3585         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3586         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
3587         SDB_DEBUGGING_INFO is not defined.
3588         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
3589         (Overall Options): Document -fdump-go-spec.
3590         * Makefile.in (OBJS-common): Add godump.o.
3591         (debug.o): Add dependency on $(TREE_H).
3592         (godump.o): New target.
3593         (GTFILES): Add $(srcdir)/godump.c.
3594
3595 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
3596
3597         PR debug/46095
3598         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
3599         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
3600         style < 0, add REG_FRAME_RELATED_EXPR.
3601
3602         PR debug/46387
3603         * rtl.h (vt_equate_reg_base_value): New prototype.
3604         * alias.c (vt_equate_reg_base_value): New function.
3605         * var-tracking.c (vt_init_cfa_base): Use it.
3606
3607 2010-11-15  Jan Hubicka  <jh@suse.cz>
3608             Diego Novillo  <dnovillo@google.com>
3609
3610         PR lto/41528
3611         * doc/lto.texi: Add.
3612         * doc/gccint.texi: Add reference to lto.texi.
3613         * doc/invoke.texi: Update user documentation for LTO.
3614         Move internal flags to lto.texi
3615
3616 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
3617
3618         * c-typeck.c (build_unary_op): Use
3619         objc_build_incr_expr_for_property_ref to build the pre/post
3620         increment/decrement of an Objective-C property ref, and skip the
3621         lvalue_or_else check in that case.
3622
3623 2010-11-15  Martin Jambor  <mjambor@suse.cz>
3624
3625         PR tree-optimization/46349
3626         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
3627         (contains_vce_or_bfcref_p): Likewise.
3628         (sra_modify_assign): Use them.
3629
3630 2010-11-15  Richard Guenther  <rguenther@suse.de>
3631
3632         PR tree-optimization/46467
3633         * tree-ssa-structalias.c (do_structure_copy): Properly treat
3634         variables without subvars.
3635
3636 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
3637
3638         * config/picochip/picochip.c (file header): Picochip name change.
3639         * config/picochip/picochip.md (file header): Likewise.
3640         * config/picochip/predicates.md (file header): Likewise.
3641         * config/picochip/dfa_space.md (file header): Likewise.
3642         * config/picochip/dfa_speed.md (file header): Likewise.
3643         * config/picochip/picochip.h(file header): Likewise.
3644         * config/picochip/constraints.md (file header): Likewise.
3645         * config/picochip/picochip-protos.h (file header): Likewise.
3646         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
3647         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
3648         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
3649         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
3650         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
3651         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
3652         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
3653         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
3654         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
3655         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
3656         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
3657         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
3658         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
3659         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
3660
3661 2010-11-15  Richard Guenther  <rguenther@suse.de>
3662
3663         PR bootstrap/46474
3664         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
3665
3666 2010-11-15  Nick Clifton  <nickc@redhat.com>
3667
3668         * config/stormy16/stormy16.c (direct_return): Do not generate a
3669         direct return for interrupt handlers.
3670
3671 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
3672
3673         * Makefile.in (tm.texi): Replace with rule for:
3674         ($(srcdir)/doc/tm.texi).
3675         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
3676         $(srcdir)/doc/tm.texi .
3677         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
3678         tm.texi .
3679
3680         PR target/46427
3681         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
3682
3683         PR bootstrap/45444
3684         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
3685         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
3686
3687         PR target/46432
3688         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
3689
3690 2010-11-15  Richard Guenther  <rguenther@suse.de>
3691
3692         PR lto/44150
3693         * lto-opts.c (lto_write_options): Write -fexceptions even if
3694         not set by the user.
3695
3696 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3697
3698         PR c/46462
3699         * c-decl.c (declspecs_add_type): Make variables with error types
3700         integers.
3701         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
3702         do not start a declaration before an Objective-C foreach.
3703         (c_parser_declaration_or_fndef): Improve recovery after unknown
3704         type name.
3705         (c_parser_for_statement): Hoist entrance of "foreach context"
3706         before ifs, add corresponding reset where it was missing.  Do
3707         not set objc_could_be_foreach_context for C.
3708
3709 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
3710
3711         PR tree-optimization/45722
3712         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
3713         this is a reference to a component.
3714         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
3715         (ipa_note_param_call): Adjust comment.
3716
3717 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
3718
3719         * config/mips/mips.c (machine_function): Remove
3720         initialized_mips16_gp_pseudo_p.
3721         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
3722         detect whether a pseudo has already been created.  Unconditionally
3723         create a new one if not.
3724         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
3725         expanding to rtl.  Create a new pseudo otherwise, if allowed.
3726
3727 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
3728
3729         PR target/43440
3730         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
3731         * tm.texi: Regenerated.
3732         * output.h (decode_reg_name_and_count): Declare.
3733         * varasm.c (decode_reg_name_and_count): New function.
3734         (decode_reg_name): Reimplement using decode_reg_name_and_count.
3735         * reginfo.c (fix_register): Use decode_reg_name_and_count and
3736         iterate over all regs used.
3737         * stmt.c (expand_asm_operands): Likewise.
3738         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
3739         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
3740         multiple machine registers.
3741
3742 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
3743
3744         * stor-layout.c (place_union_field): Do not put location information
3745         on offset expressions.
3746         (place_field): Likewise.
3747         (finalize_record_size): Likewise on size expressions.
3748         (finalize_type_size): Likewise.
3749         (layout_type): Likewise.
3750
3751 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
3752
3753         PR debug/42889
3754         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
3755         * df-core.c (df_set_bb_dirty_nonrl): Remove.
3756         * df.h (df_set_bb_dirty_nonlr): Likewise.
3757
3758 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
3759
3760         * config/mips/mips.md (call_internal): Pass curr_insn to
3761         mips_split_call.
3762         (call_internal_direct): Ditto.
3763         (call_value_internal): Ditto.
3764         (call_value_internal_direct): Ditto.
3765         (call_value_multiple_internal): Ditto.
3766         * config/mips/mips.c (mips_split_call): Do not copy
3767         CALL_INSN_FUNCTION_USAGE here.
3768
3769 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
3770
3771         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
3772         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
3773         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
3774         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
3775         (TUNE_LOONGSON_3A): Define.
3776         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
3777         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
3778         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
3779         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
3780         (mips_rtx_cost_data): Add Loongson-3A.
3781
3782 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3783
3784         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
3785         switches.
3786
3787 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3788
3789         * dwarf2out.c (macinfo_entry): New struct.
3790         (output_comp_unit): Emit the section start label here and flag that we
3791         will emit an info section.
3792         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
3793         emitting directly.
3794         (dwarf2out_end_source_file): Likewise.
3795         (dwarf2out_define): Likewise.
3796         (dwarf2out_undef): Likewise.
3797         (output_macinfo): New.
3798         (dwarf2out_init): Do not emit debug section switches here, allocate a
3799         vec for macinfo, when required.
3800         (dwarf2out_finish): First switch to debug_abbrev_section here.
3801         debug_line_section,  debug_macinfo_section, Likewise.
3802         Check that the pubtypes table has at least one unpruned entry before
3803         trying to emit it.
3804
3805 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3806
3807         PR c/20385
3808         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
3809         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
3810         token lookahead.
3811         (c_parser_compound_statement_nostart, c_parser_label,
3812         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
3813         (c_parser_declaration_or_fndef): Detect the case now matched by
3814         c_parser_next_tokens_start_declaration, give error and correct it.
3815
3816 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3817
3818         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
3819         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
3820         with typespec_kind.
3821         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
3822         (shadow_tag_warned, check_compound_literal_type): Adjust
3823         uses of tag_defined_p.
3824         (declspecs_add_type): Set typespec_kind.
3825         * c-parser.c (c_parser_declaration_or_fndef,
3826         c_parser_declspecs, c_parser_struct_declaration,
3827         c_parser_parameter_declaration, c_parser_type_name,
3828         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
3829         of type_seen_p.
3830         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
3831         tag_defined_p, pass ctsk_firstref through.
3832
3833 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3834
3835         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
3836         (struct format_wanted_type): Replace field "name" with "kind", add
3837         "format_start" and "format_length".
3838         (check_format_info_main): Fill in new fields.  Fill in
3839         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
3840         after the final NUL outside the while loop.  Do not include
3841         width and precision modifiers in the format_start/format_length
3842         of the main format.
3843         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
3844         arguments.  Compute WANTED_TYPE first so that format_type_warning
3845         can be called for missing arguments.  Adjust calls to
3846         format_type_warning.
3847         (format_type_warning): Fetch as much information as possible
3848         from format_wanted_type.  Adjust printing now that every
3849         warning has a "descr", as well as for missing argument warnings
3850         and to include % sign for format specifiers.
3851
3852 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
3853
3854         PR rtl-optimization/46204
3855         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
3856         Update all callers.  Do not recompute topological order.  Adjust
3857         fallthrough edges following a degenerate conditional jump.
3858
3859 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3860
3861         * opts-common.c (control_warning_option): New.
3862         * opts.c (set_default_handlers): New.
3863         (decode_options): Use set_default_handlers and
3864         control_warning_option.
3865         (common_handle_option): Update call to enable_warning_as_error.
3866         (enable_warning_as_error): Take gcc_options parameters.  Use
3867         control_warning_option.
3868         * opts.h (set_default_handlers, control_warning_option): Declare.
3869
3870 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3871
3872         * Makefile.in (OPTS_H): Define.
3873         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3874         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3875         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3876         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3877         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3878         * gcc.c (driver_handle_option): Take location_t parameter.
3879         (process_command, do_self_spec): Update calls to
3880         read_cmdline_option.
3881         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3882         * langhooks.c (lhd_handle_option): Take location_t parameter.
3883         * langhooks.h (handle_option): Take location_t parameter.
3884         * lto-opts.c (lto_reissue_options): Update call to set_option.
3885         * opts-common.c (handle_option): Make static.  Take location_t
3886         parameter and pass it to other functions.
3887         (handle_generated_option): Take location_t parameter and pass it
3888         to other functions.
3889         (read_cmdline_option): Take location_t parameter and pass it to
3890         other functions.  Use warning_at and error_at.
3891         (set_option): Take location_t parameter and pass it to other
3892         functions.
3893         * opts.c (common_handle_option): Take location_t parameter and
3894         pass it to other functions.
3895         (enable_warning_as_error): Make static.  Take location_t parameter
3896         and pass it to other functions.
3897         (lang_handle_option): Take location_t parameter and pass it to
3898         other functions.
3899         (target_handle_option): Take location_t parameter.
3900         (read_cmdline_options, maybe_default_option,
3901         maybe_default_options, default_options_optimization,
3902         decode_options): Take location_t parameter and pass it to other
3903         functions.
3904         * opts.h: Include input.h.
3905         (struct cl_option_handler_func, decode_options, set_option,
3906         handle_generated_option, read_cmdline_option): Take location_t
3907         parameters.
3908         (handle_option, enable_warning_as_error): Remove.
3909         * toplev.c (toplev_main): Update call to decode_options.
3910
3911 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3912
3913         * graphite-cloog-util.c (oppose_constraint,
3914         cloog_matrix_to_ppl_constraint,
3915         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3916         CLooG isl uses unsigned integers.  This triggered a warning.
3917
3918 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3919
3920         PR target/46438
3921         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3922         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3923         (xtensa_function_arg_1): De-constify cum.
3924         (xtensa_expand_prologue): Use add_reg_note.
3925
3926         PR target/46435
3927         * config/cris/cris.c (saved_regs_mentioned): Delete.
3928         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3929         Remove unused variable op0p.
3930         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3931         (cris_emit_movem_store): Use add_reg_note.
3932
3933         PR bootstrap/46456
3934         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3935
3936 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3937
3938         * function.c (expand_function_end): Set the locator of the prologue on
3939         the stack checking insns.
3940
3941 2010-11-12  Richard Henderson  <rth@redhat.com>
3942
3943         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3944         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3945         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3946         MASK_FUSED_MADD.
3947         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3948         (fnmasf4): Rename from mulsubsf3; use fma.
3949
3950 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3951             Richard Henderson  <rth@redhat.com>
3952
3953         PR target/46428
3954         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3955         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3956         comparison.
3957
3958 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3959
3960         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3961
3962 2010-11-12  Jan Hubicka  <jh@suse.cz>
3963
3964         * doc/invoke.texi (early-inlining-insns): Update default.
3965         * params.def (early-inlining-insns): Default to 10.
3966
3967 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3968
3969         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3970
3971 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3972
3973         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3974         (SUPPORTS_INIT_PRIORITY): Define.
3975
3976 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3977
3978         PR target/46430
3979         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3980         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3981         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3982         (avr_device_to_devicelib): Likewise.
3983         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3984         into block.
3985         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3986         (zero_extendhidi2, zero_extendsidi2): Likewise.
3987         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3988         (avr_return_addr_rtx): De-constify tem.
3989         (avr_rotate_bytes): Move declarations to start of block.
3990         Don't use variable length array.  Put nested if/else into block.
3991
3992         PR rtl-optimization/46433
3993         * var-tracking.c: Include tm_p.h .
3994
3995         PR bootstrap/44756
3996         PR build/44767
3997         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3998         should be unsigned.
3999         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
4000         * doc/tm.texi: Regenerate.
4001
4002         PR target/46412
4003         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
4004         * config/bfin/bfin.c: Include sel-sched.h .
4005         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
4006         (expand_interrupt_handler_prologue): Remove unused variable insn.
4007         (bfin_load_pic_reg): Likewise.
4008         (bfin_rtx_costs): Make code / outer_code variables of type
4009         enum rtx_code, copied from re-named parameters.
4010         (bfin_local_alignment): Change align argument and return type
4011         to unsigned.
4012         (bfin_adjust_cost): Remove unused variable insn_type.
4013         Declare variables at start of block.
4014         (struct loop_info): Rename to...
4015         (struct loop_info_d).
4016         (workaround_rts_anomaly): Change type of icode to int.
4017         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
4018         with int-typed variable.
4019         (note_np_check_stores): Likewise.
4020         (trapping_loads_p): Remove unused variable pat.
4021         (bfin_expand_binop_builtin): Use expand_normal.
4022         (bfin_expand_unop_builtin): Likewise.
4023         (bfin_expand_builtin): Likewise.  Set tmode before use.
4024
4025         PR middle-end/44769
4026         * final.c (split_double): Don't use BITS_PER_WORD directly in
4027         shift count.
4028
4029         PR target/46431
4030         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
4031         assignment.
4032
4033         PR target/46450
4034         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
4035         Use add_reg_note.
4036         (xstormy16_function_arg): Dereference cum.
4037         (xstormy16_expand_builtin): Use expand_normal.
4038         Change type of omode to enum machine_mode.
4039         (combine_bnp): Rename and to and_insn.
4040
4041         PR target/46437
4042         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
4043         localreg.
4044
4045 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
4046
4047         PR debug/46375
4048         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
4049
4050 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
4051
4052         PR lto/46376
4053         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
4054
4055 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
4056
4057         PR c/44782
4058         * common.opt (fmax-errors=): New option.
4059         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
4060         * diagnostic.h (struct diagnostic_context): Add max_errors field.
4061         * diagnostic.c (diagnostic_initialize): Initialize it.
4062         (diagnostic_action_after_output): Exit if more than max_errors
4063         have been output.
4064         * doc/invoke.texi (Warning Options): Add -fmax-errors.
4065         (-fmax-errors): Document.
4066
4067 2010-11-11  Richard Henderson  <rth@redhat.com>
4068
4069         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
4070
4071 2010-11-11  Richard Henderson  <rth@redhat.com>
4072
4073         * config/fused-madd.opt: New file.
4074         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
4075         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
4076         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
4077         * config/i386/i386.opt (mfused-madd): Remove.
4078         * config/i386/sse.md (split_fma): Remove.
4079         (split_fms, split_fnma, split_fnms): Remove.
4080
4081 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
4082
4083         PR target/46088
4084         * config/i386/i386.md (*ashl<mode>3_cconly,
4085         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
4086         change nonimmediate_operand predicate to register_operand.
4087
4088 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
4089
4090         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
4091
4092 2010-11-11  Jan Hubicka  <jh@suse.cz>
4093
4094         * opts.c (finish_options): Do not error on -flto-partition alone.
4095
4096         * doc/invoke.texi (-fwhopr): Merge into -flto section.
4097         (-flto-partition): Document none.
4098         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
4099         * lto-wrapper.c: Update comment.
4100         (run_gcc): Update LTO option parsing.
4101         * opts.c (finish_options): add support -flto-partition=none
4102         (common_handle_option): Remove fwhopr.
4103         * common.opt: Turn fwhopr into flto.
4104         * collect2.c (main): Update option handling.
4105         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
4106         * ipa-split.c (execute_split_functions): Remove flag_whopr.
4107         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
4108         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
4109         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
4110
4111 2010-11-11  Jan Hubicka  <jh@suse.cz>
4112
4113         PR tree-optimize/40436
4114         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
4115         (eliminated_by_inlining_prob): ... this one; return 50% probability
4116         for SRA.
4117         (estimate_function_body_sizes): Update use of
4118         eliminated_by_inlining_prob; estimate static function size
4119         for 2 instructions.
4120
4121 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
4122
4123         PR target/44749
4124         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
4125         declare.  Change type of argument four to type int.
4126         (mep_secondary_input_reload_class): Returns enum reg_class.
4127         (mep_secondary_output_reload_class): Likewise.
4128         (mep_function_value): Change types of arguments to cont_tree.
4129         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
4130         argument four to type int.
4131         (mep_secondary_input_reload_class): Returns enum reg_class.
4132         (mep_secondary_output_reload_class): Likewise.
4133         (mep_function_value): Change types of arguments to cont_tree.
4134         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
4135         mep_regno_reg_class to enum reg_class.
4136
4137 2010-11-11  Richard Henderson  <rth@redhat.com>
4138
4139         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
4140         that the target has the exact fma operation that we matched.
4141
4142 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
4143
4144         * reginfo.c (fix_register): Avoid inserting English word in
4145         diagnostic sentence.  Use %qs for quoting and %'.
4146
4147 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
4148
4149         * config/i386/driver-i386.c (host_detect_local_cpu): Support
4150         Intel processor family 6, model 0x2c.
4151
4152 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
4153
4154         * opts.c (warning_as_error_callback,
4155         register_warning_as_error_callback): Remove.
4156         (enable_warning_as_error): Don't use warning_as_error_callback.
4157         * opts.h (register_warning_as_error_callback): Remove.
4158
4159 2010-11-11  Richard Henderson  <rth@redhat.com>
4160
4161         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
4162         in between the MULT and the PLUS/MINUS.
4163
4164 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
4165
4166         PR middle-end/46388
4167         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
4168         BLKmode mode for it.
4169         (expand_expr_real_1): Similarly for op0.
4170
4171 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4172
4173         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
4174         Document optional target selector.
4175
4176 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
4177
4178         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
4179         assembling high and low parts of size if not using 32-bit HWINT; else
4180         use DECL_SIZE_UNITS, not DECL_SIZE.
4181
4182 2010-11-11  Martin Jambor  <mjambor@suse.cz>
4183
4184         PR tree-optimization/46383
4185         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
4186         offsets.
4187         (compute_complex_ancestor_jump_func): Likewise.
4188         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
4189
4190 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
4191
4192         PR debug/46150
4193         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
4194         true if expr1->hash != expr2->hash.
4195
4196 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4197
4198         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
4199         diagnostics with lowercase letters.
4200         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
4201         lowercase letters.
4202         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
4203         diagnostic.
4204         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4205         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
4206         lowercase letters.
4207         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4208         Remove trailing ' ' from diagnostic.
4209         * config/avr/avr.c (print_operand_address): Start diagnostic with
4210         a lowercase letter and remove trailing '.'.
4211         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
4212         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
4213         with lowercase letters.  Use %' in diagnostics.  Remove trailing
4214         '.' from diagnostics.
4215         (bfin_handle_longcall_attribute): Use %' in diagnostic.
4216         * config/cris/cris.c (cris_split_movdx,
4217         cris_expand_pic_call_address): Start diagnostics with lowercase
4218         letters.
4219         (cris_asm_output_label_ref): Use %' in diagnostic.
4220         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
4221         letter.
4222         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
4223         lowercase letter.
4224         * config/darwin-c.c (version_as_macro): Start diagnostic with a
4225         lowercase letter.
4226         * config/darwin-driver.c (darwin_default_min_version): Use %' in
4227         diagnostic.
4228         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
4229         diagnostic.
4230         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4231         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
4232         diagnostics.
4233         * config/i386/i386.c (ix86_option_override_internal): Write
4234         diagnostic as a single sentence without trailing '.'.  Use %' in
4235         diagnostics.
4236         (ix86_function_sseregparm, classify_argument): Start diagnostics
4237         with lowercase letters.
4238         (ix86_expand_prologue): Use %' in diagnostic.
4239         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
4240         diagnostic.
4241         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
4242         lowercase letter.
4243         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
4244         diagnostic.
4245         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4246         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
4247         '`' in help text.
4248         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
4249         lowercase letter.
4250         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
4251         lowercase letters.
4252         * config/microblaze/microblaze.c (microblaze_handle_option):
4253         Remove trailing '.' from diagnostic.
4254         (print_operand): Start diagnostic with a lowercase letter.
4255         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
4256         lowercase letters.  Avoid '`' in diagnostics.
4257         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
4258         lowercase letters.  Avoid '`' in diagnostics.
4259         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
4260         lowercase letters.  Avoid '`' in diagnostics.
4261         * config/picochip/picochip.c (picochip_option_override,
4262         picochip_emit_save_register, picochip_function_arg,
4263         picochip_output_label, picochip_output_internal_label,
4264         picochip_asm_output_opcode, picochip_output_cbranch,
4265         picochip_output_compare, picochip_output_branch,
4266         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
4267         diagnostics. Start diagnostics with lowercase letters.  Use %' in
4268         diagnostics.
4269         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
4270         "SPE" capitalization.  Start diagnostic with a lowercase letter.
4271         (rs6000_handle_option): Start diagnostics with lowercase letters.
4272         (def_builtin): Remove trailing '.' from diagnostic.
4273         (rs6000_savres_routine_name): Start diagnostic with a lowercase
4274         letter.
4275         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
4276         diagnostic.
4277         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
4278         lowercase letter.
4279         * config/s390/s390.c (s390_option_override) Start diagnostics with
4280         lowercase letters.  Use %' in diagnostic.
4281         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
4282         lowercase letters.
4283         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
4284         diagnostic.
4285         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
4286         diagnostic.
4287         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
4288         diagnostic.
4289         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4290         * config/spu/spu.c (spu_option_override): Start diagnostics with
4291         lowercase letters.  Use %qs for quoting in diagnostics.
4292         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
4293         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
4294         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
4295         from diagnostic.
4296         * convert.c (convert_to_integer, convert_to_vector): Use %' in
4297         diagnostics.
4298         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
4299         letter and use "cannot" spelling.
4300         * expmed.c (extract_fixed_bit_field): Start diagnostic with
4301         lowercase letter and format as a single sentence without '.'.
4302         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
4303         Use %' in diagnostics.
4304         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
4305         Use %' in diagnostics.
4306         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
4307         Use %' in diagnostics.
4308         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
4309         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
4310         with lowercase letters and remove tailing '.' and '\n'.
4311         * lto-cgraph.c (input_profile_summary): Start diagnostic with
4312         lowercase letter and remove trailing '.'.
4313         (input_cgraph): Start diagnostics with lowercase letters and
4314         remove trailing '\n'.
4315         * opts.c (finish_options, common_handle_option): Start diagnostics
4316         with lowercase letters and remove trailing '.'.  Fix typo in
4317         diagnostic.
4318         * passes.c (position_pass): Start diagnostic with lowercase letter.
4319         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
4320         register_callback, try_init_one_plugin): Start diagnostics with
4321         lowercase letters.
4322         * reload1.c (spill_failure): Use %' in diagnostic.
4323         (gen_reload): Start diagnostic with a lowercase letter.
4324         * stor-layout.c (place_field): Start diagnostic with a lowercase
4325         letter.
4326         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
4327         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
4328         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
4329         Start diagnostics with lowercase letters, remove trailing '.' and
4330         use %' in diagnostics.
4331         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
4332         (verify_ssa): Don't split diagnostic across two error calls.
4333         Spell out "number" and use %' in diagnostic.
4334         * value-prof.c (visit_hist, check_counter): Start diagnostics with
4335         lowercase letters.
4336
4337 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
4338
4339         PR middle-end/46419
4340         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
4341         (_mm_cvtpu16_ps): Ditto.
4342
4343 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4344
4345         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
4346         warn_larger_than, larger_than_size, warn_frame_larger_than,
4347         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
4348         default_visibility, flag_tls_default): New Variable declarations.
4349         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
4350         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
4351         (v): Declare as Common and document here.
4352         * flags.h (default_visibility, flag_generate_lto,
4353         warn_larger_than, larger_than_size, warn_frame_larger_than,
4354         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
4355         flag_shlib, flag_excess_precision_cmdline): Remove.
4356         (set_Wstrict_aliasing): Update prototype.
4357         * gcc.c (verbose_flag): Remove.
4358         (driver_handle_option): Add diagnostic_context parameter.  Don't
4359         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
4360         incrementing it.
4361         * opts-common.c (handle_option): Pass dc to handler.
4362         * opts.c (warn_larger_than, larger_than_size,
4363         warn_frame_larger_than, frame_larger_than_size,
4364         default_visibility): Remove.
4365         (common_handle_option): Add diagnostic_context parameter.
4366         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
4367         gcc_options parameters.
4368         (lang_handle_option, target_handle_option, read_cmdline_options,
4369         decode_options): Add diagnostic_context parameters.
4370         (finish_options): Access option state through opts pointer where
4371         possible.
4372         (common_handle_option): Access option state through opts pointer
4373         where possible.  Do not set local static variable verbose.  Do not
4374         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
4375         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
4376         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
4377         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
4378         OPT_fwhopr_.  Do not explicitly set .opt file variables for
4379         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
4380         (set_Wstrict_aliasing): Add gcc_options parameter.
4381         * opts.h (struct cl_option_handler_func): Add diagnostic_context
4382         parameter to handler.
4383         (decode_options): Add diagnostic_context parameter.
4384         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
4385         asm_file_name, flag_generate_lto, flag_gen_aux_info,
4386         aux_info_file_name, flag_shlib, flag_tls_default,
4387         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
4388         (toplev_main): Pass global_dc to decode_options.
4389         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
4390         aux_info_file_name, asm_file_name): Remove.
4391         * tree.h (flag_tls_default): Remove.
4392
4393 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
4394
4395         PR target/45986
4396         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
4397         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
4398
4399 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
4400
4401         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
4402         (x86_64-*-*): Likewise.
4403         * config/i386/cpuid.h: Define TBM bit.
4404         * config/i386/driver-i386.c (host_detect_local_cpu): Define
4405         and set has_tbm.
4406         * config/i386/i386-c.c (ix86_target_macros_internal): Check
4407         isa_flag for TBM.
4408         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
4409         (OPTION_MASK_ISA_TBM_UNSET): New.
4410         (ix86_handle_option): Handle -mtbm.
4411         (isa_opts): Add -mtbm.
4412         (enum pta_flags): Add PTA_TBM.
4413         (ix86_option_override_internal): Add TBM support.
4414         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
4415         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
4416         (IX86_BUILTIN_BEXTRI64): Likewise.
4417         (bdesc_args): Add TBM intrinsics.
4418         (ix86_expand_builtin): Add TBM specific case.
4419         * config/i386/i386.h (TARGET_TBM): New for TBM.
4420         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
4421         (tbm_bextri_<mode>): Likewise.
4422         (*tbm_blcfill_<mode>): Likewise.
4423         (*tbm_blci_<mode>): Likewise.
4424         (*tbm_blcic_<mode>): Likewise.
4425         (*tbm_blcmsk_<mode>): Likewise.
4426         (*tbm_blcs_<mode>): Likewise.
4427         (*tbm_blsfill_<mode>): Likewise.
4428         (*tbm_blsic_<mode>): Likewise.
4429         (*tbm_t1mskc_<mode>): Likewise.
4430         (*tbm_tzmsk_<mode>): Likewise.
4431         * config/i386/i386.opt: Add -mtbm.
4432         * config/i386/tbmintrin.h (__bextri_u32): New.
4433         (__blcfill_u32): Likewise.
4434         (__blci_u32): Likewise.
4435         (__blcic_u32): Likewise.
4436         (__blcmsk_u32): Likewise.
4437         (__blcs_u32): Likewise.
4438         (__blsfill_u32): Likewise.
4439         (__blsic_u32): Likewise.
4440         (__t1mskc_u32): Likewise.
4441         (__tzmsk_u32): Likewise.
4442         (__bextri_u64): Likewise.
4443         (__blcfill_u64): Likewise.
4444         (__blci_u64): Likewise.
4445         (__blcic_u64): Likewise.
4446         (__blcmsk_u64): Likewise.
4447         (__blcs_u64): Likewise.
4448         (__blsfill_u64): Likewise.
4449         (__blsic_u64): Likewise.
4450         (__t1mskc_u64): Likewise.
4451         (__tzmsk_u64): Likewise.
4452         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
4453         * doc/invoke.texi: Document -mtbm.
4454         * doc/extend.texi: Document TBM built-in functions.
4455
4456 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
4457
4458         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
4459         (x86_64-*-*): Likewise.
4460         * config/i386/cpuid.h: Define BMI bit.
4461         * config/i386/driver-i386.c (host_detect_local_cpu): Define
4462         and set has_bmi.
4463         * config/i386/i386-c.c (ix86_target_macros_internal): Check
4464         isa_flag for BMI.
4465         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
4466         (OPTION_MASK_ISA_BMI_UNSET): New.
4467         (ix86_handle_option): Handle -mbmi.
4468         (isa_opts): Add -mbmi.
4469         (enum pta_flags): Add PTA_BMI.
4470         (ix86_option_override_internal): Add BMI support.
4471         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
4472         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
4473         (IX86_BUILTIN_BEXTR64): Likewise.
4474         (IX86_BUILTIN_CTZS): Likewise.
4475         (bdesc_args): Add BMI intrinsics.
4476         (ix86_expand_args_builtin): Add BMI specific cases.
4477         * config/i386/i386.h (TARGET_BMI): New for BMI.
4478         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
4479         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
4480         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
4481         (UNSPEC_TZCNT): Likewise.
4482         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
4483         (bmi_andn_<mode>): New for BMI.
4484         (bmi_bextr_<mode>): Likewise.
4485         (bmi_blsi_<mode>): Likewise.
4486         (bmi_blsmsk_<mode>): Likewise.
4487         (bmi_blsr_<mode>): Likewise.
4488         * config/i386/i386.opt: Add -mbmi.
4489         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
4490         * config/i386/bmiintrin.h (__lzcnt_u16): New.
4491         (__tzcnt_u16): Likewise.
4492         (__andn_u32): Likewise.
4493         (__bextr_u32): Likewise.
4494         (__blsi_u32): Likewise.
4495         (__blsmsk_u32): Likewise.
4496         (__blsr_u32): Likewise.
4497         (__lzcnt_u32): Likewise.
4498         (__tzcnt_u32): Likewise.
4499         (__andn_u64): Likewise.
4500         (__bextr_u64): Likewise.
4501         (__blsi_u64): Likewise.
4502         (__blsmsk_u64): Likewise.
4503         (__blsr_u64): Likewise.
4504         (__lzcnt_u64): Likewise.
4505         (__tzcnt_u64): Likewise.
4506         * doc/invoke.texi: Document -mbmi and -mno-bmi.
4507         * doc/extend.texi: Document BMI built-in functions.
4508
4509 2010-11-10  Jan Hubicka  <jh@suse.cz>
4510
4511         PR tree-optimize/46228
4512         * doc/invoke.texi (comdat-sharing-probability): Document.
4513         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
4514         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
4515
4516 2010-11-10  Jan Hubicka  <jh@suse.cz>
4517
4518         PR tree-optimize/46228
4519         * cgraph.c (cgraph_propagate_frequency): Fix typo.
4520
4521 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
4522
4523         PR tree-optimization/46414
4524         * tree-inline.c (estimate_move_cost): Check preferred vector
4525         mode for vector type.
4526
4527 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4528
4529         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
4530
4531 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
4532
4533         PR tree-optimization/45971
4534         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
4535         for phi nodes analyzable by scev.
4536
4537 2010-11-10  Richard Guenther  <rguenther@suse.de>
4538
4539         PR tree-optimization/44964
4540         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
4541
4542 2010-11-10  Martin Jambor  <mjambor@suse.cz>
4543
4544         PR tree-optimization/46351
4545         PR tree-optimization/46377
4546         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
4547         aggregate bit-fields.
4548
4549 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4550
4551         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4552         * doc/tm.texi: Regenerate.
4553         * opts-common.c (tm.h): Don't include.
4554         (target_option_translations): Remove.
4555         (decode_cmdline_options_to_array): Don't handle translating options.
4556         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
4557         * config/darwin-driver.c: Don't condition includes on
4558         CROSS_DIRECTORY_STRUCTURE.
4559         (darwin_default_min_version): Make static.
4560         (darwin_driver_init): New.  Call darwin_default_min_version if not
4561         CROSS_DIRECTORY_STRUCTURE.
4562         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4563         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
4564         (ASM_SPEC): Add %{static}.
4565         (darwin_default_min_version): Don't declare.
4566         (darwin_driver_init): Declare.
4567         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
4568         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
4569         * config/darwin.opt (all_load, allowable_client,
4570         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
4571         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
4572         exported_symbols_list, filelist, findirect-virtual-calls,
4573         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
4574         framework, fterminated-vtables, gfull, gused, image_base, init,
4575         install_name, multi_module, multiply_defined,
4576         multiply_defined_unused, no_dead_strip_inits_and_terms,
4577         seg_addr_table, seg_addr_table_filename, segaddr,
4578         segs_read_only_addr, segs_read_write_addr, single_module,
4579         umbrella, unexported_symbols_list, weak_reference_mismatches,
4580         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
4581         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
4582         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
4583         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
4584         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
4585         (ASM_SPEC): Add %{static}.
4586         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
4587         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4588         (DRIVER_SELF_SPECS): Handle options formerly in
4589         TARGET_OPTION_TRANSLATE_TABLE.
4590         * config/mep/mep.opt (mfar): New.
4591         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4592         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
4593         TARGET_OPTION_TRANSLATE_TABLE.
4594         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
4595         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
4596         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
4597         ffix-and-continue, findirect-data): New.
4598         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4599         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
4600         (mnofpu): Define mask and use Report here.
4601
4602 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4603
4604         * config/s390/s390.c (s390_emit_prologue): Report the stack
4605         size if -fstack-usage is used.
4606
4607 2010-11-10  Richard Guenther  <rguenther@suse.de>
4608
4609         PR tree-optimization/46398
4610         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
4611
4612 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
4613
4614         PR target/44760
4615         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
4616         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
4617         GP_REG_OR_PSEUDO_STRICT_P.
4618         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
4619         unexpected alternative.
4620         (*movsf_internal): Likewise.
4621         (indirect_jump): Replace call to non-existant function with call to
4622         internal_error.
4623         (tablejump): Likewise.
4624         * config/iq2000/iq2000.c: Include df.h .
4625         (iq2000_function_arg_advance): Use CONST_CAST2.
4626         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
4627         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
4628         a non-zero function address.
4629         (iq2000_initial_elimination_offset): Add gcc_unreachable for
4630         unexpected value of FROM.
4631         (symbolic_expression_p): Delete.
4632         (iq2000_function_value): Constify func.
4633         (expand_one_builtin): Use expand_normal.
4634         (iq2000_print_operand): Don't print VALUE if calculating it failed.
4635
4636         PR rtl-optimization/44764
4637         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
4638
4639         PR target/46407
4640         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
4641         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
4642         with ATTRIBUTE_UNUSED.
4643         (valid_psw_flag): Constify parameter which.
4644         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
4645
4646         PR target/46415
4647         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
4648         (mmix_dbx_register_number): Likewise.
4649         * config/mmix/mmix.c: Include df.h .
4650         (mmix_local_alignment): Change argument basic_align and return type
4651         to unsigned.
4652         (mmix_dbx_register_number): Change argument and return type to
4653         unsigned.
4654         (mmix_expand_prologue): Use add_reg_note.
4655
4656         PR target/46417
4657         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
4658         (spu_split_store): Use aform.
4659         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
4660
4661 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4662
4663         PR/46268
4664         * doc/gty.texi (GTY Options): Clarify that variable_size produces
4665         allocators taking size in bytes, compare with length option.  Add
4666         size calculation example.
4667         (Invoking the garbage collector): Ensure that sentences are
4668         followed by two spaces.  Describe that pointer fields must be
4669         initialized at ggc_collect call.
4670         (Troubleshooting): New section.
4671
4672 2010-11-09  Jan Hubicka  <jh@suse.cz>
4673
4674         PR tree-optimization/40436
4675         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
4676         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
4677         normal instructions; be sure bultin is not implemented in this file;
4678         compute non-zero return cost.
4679         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
4680         * tree-inline.h (eni_weights_d): Add return cost.
4681
4682 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
4683
4684         * c-parser.c (c_parser_struct_declaration): Handle declaration
4685         specifiers followed by CPP_CLOSE_BRACE.
4686
4687 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
4688
4689         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
4690         split occurs before reload, and we allocate memory at the time of
4691         the split, not during expansion.  Add attributes.
4692         (floatsi<mode>2_lfiwax_mem): Ditto.
4693         (floatunssi<mode>2_lfiwzx): Ditto.
4694         (floatunssi<mode>2_lfiwzx_mem): Ditto.
4695         (floatsidf2): Ditto.
4696         (floatunssisf2): Ditto.
4697         (floatunssidf2): Ditto.
4698         (fix_trunc<mode>si2): Ditto.
4699         (fix_trunc<mode>si2_stfiwx): Ditto.
4700         (fix_trunc<mode>si2_internal): Ditto.
4701         (fix_trunc<mode>si2): Ditto.
4702         (fix_trunc<mode>di2): Ditto.
4703         (fixuns_trunc<mode>si2_stfiwx): Ditto.
4704         (floatsisf2): Ditto.
4705         (floatdidf2_mem): Ditto.
4706         (floatunsdidf2_mem): Ditto.
4707         (floatunsdidf2): Ditto.
4708         (floatdisf2_internal1): Ditto.
4709         (floatdisf2_mem): Ditto.
4710         (floatunsdisf2_mem): Ditto.
4711         (floatsi<mode>2_lfiwax_mem2): Delete.
4712         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
4713         (fix_trunc<mode>si2_mem): Ditto.
4714         (fixuns_trunc<mode>si2_mem): Ditto.
4715         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
4716         type operations to reduce copying the values to multiple memory slots.
4717         (roundu32<mode>2_fprs): Ditto.
4718
4719         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
4720         PRE_INC, PRE_DEC, PRE_MODIFY.
4721         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
4722
4723         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
4724         Delete prototype.
4725
4726 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4727
4728         PR target/43808
4729         * cfgexpand.c (partition_stack_vars): Call
4730         update_alias_info_with_stack_vars unconditionally.
4731         (update_alias_info_with_stack_vars): Allow unused
4732         unreferenced vars when not optimizing.
4733
4734 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
4735
4736         PR tree-optimization/46036
4737         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
4738         add_to_dst_predicate_list.
4739
4740 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4741
4742         PR debug/46171
4743         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
4744         earlier.
4745         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
4746         argument, call dead_debug_reset when adding REG_UNUSED note.
4747         (dead_debug_reset): New function.
4748         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
4749         df_create_unused_note callers.
4750
4751 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
4752
4753         * config/fr30/fr30.c: Include "df.h".
4754
4755 2010-11-09  Richard Guenther  <rguenther@suse.de>
4756
4757         PR tree-optimization/46355
4758         * tree-loop-distribution.c (tree_loop_distribution): Do not
4759         distribute loops without a single exit.
4760
4761 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4762
4763         PR rtl-optimization/46237
4764         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
4765         saved hard regs if they might get partially clobbered.
4766
4767 2010-11-09  Paul Koning  <ni1d@arrl.net>
4768
4769         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
4770
4771 2010-11-09  Richard Guenther  <rguenther@suse.de>
4772
4773         PR tree-optimization/46177
4774         * tree-loop-distribution.c (prop_phis): Remove.
4775         (generate_builtin): Re-use the old loop exit edge to avoid
4776         needing to update PHI nodes.
4777
4778 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
4779
4780         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
4781         type of args_size to unsigned HOST_WIDE_INT.
4782
4783         PR target/44755
4784         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
4785         * config/t-pnt16-warn: New file.
4786         * config/picochip/picochip.c (picochip_emit_stack_allocate):
4787         Use add_reg_note.
4788         (picochip_emit_save_register): Likewise.
4789         (picochip_emit_restore_register): Remove variable insn.
4790         (picochip_legitimize_address): Don't use C++ style comments.
4791         (picochip_legitimize_reload_address): Likewise.
4792         (reorder_var_tracking_notes): Remove variable vliw_start.
4793         (picochip_reorg): Cast first arguemnt to emit_note_after to
4794         enum insn_note.
4795         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
4796         (picochip_expand_builtin_3op): Likewise.
4797         (picochip_expand_builtin_2opvoid): Likewise.
4798         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
4799         (picochip_expand_array_testport): Likewise.
4800         (picochip_init_builtins): Remove unused variables.
4801         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
4802         to unsigned long, and output it as such.
4803         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
4804         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
4805         (schedType): Cast result of picochip_schedule_type to
4806         enum attr_schedType.
4807
4808         PR target/44759
4809         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
4810         conditional to type of S.
4811         (mn10300_function_arg): Remove unused variable align.
4812         (mn10300_arg_partial_bytes): Likewise.
4813         * config/mn10300/mn10300.md (attribute cpu): Cast value to
4814         enum attr_cpu.
4815
4816 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4817
4818         PR bootstrap/46392
4819         * gengtype-parse.c (type): Call get_input_file_name to get file name.
4820
4821 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4822
4823         * tree.h (contains_placeholder_p): Fix comment.
4824         (type_contains_placeholder_p): Adjust comment.
4825         * tree.c (contains_placeholder_p): Fix comment.
4826         (type_contains_placeholder_1): Do not recurse on pointed-to types and
4827         adjust comment.
4828         (type_contains_placeholder_p): Add comment.
4829
4830 2010-11-09  Paul Koning  <ni1d@arrl.net>
4831
4832         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
4833         output of byte values.
4834
4835 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4836
4837         PR middle-end/46360
4838         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
4839         not in SSA mode.
4840
4841 2010-11-09  Richard Guenther  <rguenther@suse.de>
4842
4843         PR middle-end/46221
4844         * varasm.c (compute_visible_aliases): New function.
4845         (remove_unreachable_alias_pairs): Aliases make a target available
4846         even though we reclaimed the cgraph node.
4847         (finish_aliases_1): Likewise.
4848         * Makefile.in (varasm.o): Add pointer-set.h dependency.
4849
4850 2010-11-09  Nick Clifton  <nickc@redhat.com>
4851
4852         * config/mn10300/mn10300-modes.def: New file.
4853
4854 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
4855             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4856
4857         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
4858         (plugin_files, get_file_basename, get_file_realbasename)
4859         (get_file_langdir, error_at_line, gt_files, this_file)
4860         (system_h_file, read_input_list, create_field_all)
4861         (get_file_srcdir_relative_path, get_file_basename)
4862         (get_file_langdir, get_file_gtfilename)
4863         (get_output_file_with_visibility, get_output_file_name)
4864         (struct flist, put_mangled_filename, walk_type)
4865         (put_mangled_filename, finish_root_table, write_roots): Use
4866         input_file-s.
4867         (lang_dir_names, num_lang_dirs): Remove static.
4868         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
4869         (main): Use input_file-s.
4870
4871         * gengtype.h: (struct input_file_st, input_file): New type.
4872         (struct fileloc): Use it.
4873         (gt_files, num_gt_files, this_file, system_h_file)
4874         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4875         (get_input_file_name): New function.
4876         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4877         use input_file.
4878         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4879         (get_output_file_name): Ditto.
4880
4881         * gengtype-lex.l (yybegin): Use input_file.
4882
4883         * gengtype-parse.c (parse_error): Use input_file.
4884
4885 2010-11-08  Xinliang David Li  <davidxl@google.com>
4886
4887         PR tree-optimization/46316
4888         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4889         * double-int.h (double_int_mul_with_sign): New function.
4890         * double-int.c (double_int_mul_with_sign): New function.
4891
4892 2010-11-08  Paul Koning  <ni1d@arrl.net>
4893
4894         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4895
4896 2010-11-08  Paul Koning  <ni1d@arrl.net>
4897
4898         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4899
4900 2010-11-08  Paul Koning  <ni1d@arrl.net>
4901
4902         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4903         to 8 bits.
4904
4905 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4906
4907         PR target/46378
4908         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4909         turn on ISA 2.04 rounding instructions for power5.
4910
4911         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
4912         not ISA 2.02.
4913
4914         PR target/45585
4915         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
4916         in FPR registers.
4917         (movdi_low_st): Ditto.
4918
4919 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4920             Richard Henderson  <rth@redhat.com>
4921
4922         PR target/44758
4923         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
4924         (attribute acc_group): Cast value to enum attr_acc_group.
4925         (*movdi_nodouble+6): Use gen_int_mode.
4926         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
4927         if RTX_CODE is defined or not.
4928         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
4929         struct frv_io.
4930         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
4931         (frv_frame_access, frv_expand_prologue): Remove unused variables.
4932         (frv_expand_block_clear): Likewise.
4933         (frv_trampoline_init): Use LCT_NORMAL.
4934         (struct frv_packet_group): New struct, broken out of type of
4935         frv_packet.
4936         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
4937         use cast in loop counter increment.
4938         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
4939         assigning to io->type.
4940         (bdesc_set): Use rtx_code UNKNOWN in initializer.
4941         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
4942         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
4943         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
4944         (frv_read_argument): Use expand_normal.
4945
4946         PR target/44757
4947         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
4948         lm32_legitimate_constant_p.
4949         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4950         * config/lm32/lm32.c (gen_int_relational): Make new block for
4951         LE / LT / LEU / LTU case.  Declare variables at start of block.
4952         (lm32_block_move_inline): Use XALLOCAVEC.
4953
4954 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4955
4956         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
4957
4958 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4959
4960         * gengtype (get_output_file_for_structure): Ensure type is union
4961         or struct.
4962         (write_splay_tree_allocator_def): Use
4963         get_output_file_with_visibility.
4964
4965 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4966
4967         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
4968         to defined values in case of an error.
4969         (s390_option_override): Skip further processing if the -march
4970         parameter wasn't recognized.
4971
4972 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4973
4974         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
4975         assert that REG is a hard register number before using it as an index.
4976
4977         PR bootstrap/46358
4978         * config/i386/i386.c (ix86_expand_split_stack_prologue):
4979         Avoid warnings when HOST_WIDE_INT is 32 bit.
4980
4981 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4982
4983         PR target/46208
4984         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
4985         (sparc_promote_prototypes): Likewise.
4986         (sparc_promote_function_mode): Promote in 32-bit mode as well.
4987         (sparc_return_in_memory): Remove superfluous parentheses.
4988         (sparc_struct_value_rtx): Fix long lines.
4989         (sparc_function_value_1): Promote in 32-bit mode as well.
4990
4991 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
4992
4993         PR rtl-optimization/45352
4994         * sel-sched.c (find_best_expr): Do not set pneed_stall when
4995         the variable_issue hook is not implemented.
4996         (fill_insns): Remove dead variable stall_iterations.
4997         (init_seqno_1): Force EBB start for resetting sched cycles on any
4998         successor blocks of the rescheduled region.
4999         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
5000         (reset_sched_cycles_in_current_ebb): Add debug printing.
5001         New variable issued_insns.  Advance state when we have issued
5002         issue_rate insns.
5003
5004 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
5005
5006         * gengtype (main): Get here's position using POS_HERE macro for
5007         do*typedef calls.
5008
5009 2010-11-07  Ian Lance Taylor  <iant@google.com>
5010
5011         PR target/46089
5012         * config/i386/i386.c (split_stack_fn_large): New static variable.
5013         (ix86_expand_split_stack_prologue): Handle large model.
5014
5015 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
5016
5017         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
5018         all possible addressing modes.
5019
5020 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
5021
5022         PR tree-optimization/46346
5023         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
5024
5025 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
5026
5027         * config/mips/mips.c: Revert previous patch.
5028         * config/mips/mips.md: Likewise.
5029
5030 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
5031
5032         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
5033         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
5034         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
5035         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
5036         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
5037         to use FMA.
5038         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
5039         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
5040         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
5041         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
5042
5043 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
5044
5045         PR c/43384
5046         * c-decl.c (lookup_label): Labels can only be referenced in a
5047         function's scope.
5048         (store_parm_decls_oldstyle): Skip erroneous parameters.
5049
5050 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
5051
5052         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
5053         LIBCALL_VALUE): Remove macros.
5054         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5055         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5056         (fr30_function_value_regno_p, fr30_function_value,
5057         fr30_libcall_value): New functions.
5058
5059 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
5060
5061         PR middle-end/46314
5062         * target.def (generate_internal_label): New asm_out hook.
5063         * output.h (default_generate_internal_label): Declare.
5064         * varasm.c (default_generate_internal_label): Define.
5065
5066 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
5067
5068         PR target/44981
5069         * doc/extend.tex (format): Document NSString extension.
5070         (format_arg): Likewise.
5071         (Darwin Format Checks): New section.
5072         * doc/tm.texi: Document string object hooks (generated).
5073         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
5074         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
5075         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
5076         * target.def (objc_construct_string_object): Rename, amend
5077         documentation.
5078         (string_object_ref_type_p): New hook.
5079         (check_string_object_format_arg): New hook.
5080         * c-parser.c (c_parser_attributes): Allow objective-c class names as
5081         attribute identifiers.
5082         * config/darwin-c.c (darwin_cfstring_ref_p): New.
5083         (darwin_check_cfstring_format_arg): New.
5084         (darwin_additional_format_types): New.
5085         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
5086         (darwin_check_cfstring_format_arg): New.
5087         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
5088         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
5089         (TARGET_N_FORMAT_TYPES): New.
5090         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
5091
5092 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
5093             Pascal Obry  <obry@adacore.com>
5094
5095         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
5096         in 64-bit mode and 17 otherwise.
5097
5098 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5099
5100         PR debug/45939
5101         * var-tracking.c (emit_note_insn_var_location): Make sure that
5102         call related var location notes come before the normal ones.
5103
5104 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
5105
5106         PR target/46326
5107         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
5108         in the last change.
5109
5110 2010-11-05  Ian Lance Taylor  <iant@google.com>
5111
5112         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
5113
5114 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
5115
5116         PR c/44772
5117         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
5118         pointer_set_contains if DECL_NAME is NULL.
5119
5120 2010-11-05  Ian Lance Taylor  <iant@google.com>
5121
5122         PR target/46084
5123         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
5124         request enough additional space for alignment, and force alignment.
5125
5126 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
5127
5128         * config/i386/i386.c (legitimate_pic_address_disp_p):
5129         Handle UNSPEC_PCREL.
5130         (ix86_legitimate_address_p): Likewise.
5131         (legitimize_pic_address): Likewise.
5132         (output_pic_addr_const): Likewise.
5133         (ix86_delegitimize_address): Likewise.
5134         (ix86_find_base_term): Likewise.
5135         (memory_address_length): Likewise.
5136         (x86_output_mi_thunk): Handle special case x64
5137         for non local binding.
5138         * config/i386/i386.md (UNSPEC_PCREL): New.
5139         * config/i386/winnt.c (i386_pe_binds_local_p):
5140         Allow weak symbol for x64 windows with non-local binding.
5141
5142 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
5143
5144         PR target/45670
5145         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
5146         instead of EXPAND_NORMAL for base expansion.
5147
5148 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
5149
5150         * config.gcc: Support --with-fpmath=avx for x86.
5151         * config/i386/avxmath.h: New.
5152         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
5153
5154 2010-11-05  Ian Lance Taylor  <iant@google.com>
5155
5156         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
5157         * gengtype.c (walk_type): Don't recognize descbits option.
5158
5159 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
5160
5161         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
5162         WORD_SWITCH_TAKES_ARG): Remove.
5163         * doc/options.texi (Args): Document.
5164         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
5165         * doc/tm.texi: Regenerate.
5166         * opt-functions.awk (switch_flags): Handle Args.
5167         * opts-common.c: Update comment on tm.h include.
5168         (decode_cmdline_option): Handle options with multiple arguments.
5169         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
5170         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
5171         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
5172         CL_COMMON): Update values.
5173         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
5174         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
5175         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
5176         sectobjectsymbols, sectorder, segcreate, segprot): New.
5177
5178 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
5179             Uros Bizjak  <ubizjak@gmail.com>
5180
5181         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
5182         256bit AVX register is used.
5183         (ix86_expand_vector_move_misalign): Likewise.
5184         (ix86_expand_vector_move): Replace use_avx256_p with
5185         VALID_AVX256_REG_MODE.
5186
5187 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
5188
5189          PR target/44750
5190         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
5191         change.  Set $@-warn.o to -Wno-error.
5192
5193         PR bootstrap/44756
5194         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
5195         comparing it to a signed value.
5196
5197         PR middle-end/44766
5198         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
5199         PR bootstrap/44770
5200         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
5201         to i.
5202
5203         PR target/44754
5204         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
5205         (m32c_function_arg).  Add comma between arguments two and three.
5206         (m32c_promote_prototypes): Remove declaration.
5207         (current_function_special_page_vector): Likewise.
5208         (m32c_regno_reg_class): Change return type to enum reg_class.
5209         (m32c_pushm_popm): Use add_reg_note.
5210         (m32c_push_rounding): Change return type to unsigned int.
5211         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
5212         enum reload_type.
5213         (m32c_insert_attributes): Constify variable name.
5214         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
5215         (m32c_prepare_shift): Remove variable lref.
5216         (m32c_expand_movcc): Remove variable cmp.
5217         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
5218         (m32c_compare_redundant): Remove variable op2.
5219         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
5220         (m32c_pragma_memregs): Assign the number to target_memregs.
5221         (m32c_pragma_address): Remove variable var_str.
5222         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
5223         enum reg_class.
5224         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
5225         * config/m32c/bitops.md (andsi3): Add default case to switch.
5226         (iorsi3, xorsi3): Likewise.
5227         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
5228         * config/m32c/jump.md (call, call_value): Likewise.
5229         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
5230         (m32c_regno_reg_class): Likewise.
5231         (current_function_special_page_vector): Declare.
5232
5233 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
5234
5235         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
5236
5237         PR tree-optimization/46099
5238         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
5239         if it is NULL and uid wasn't found in the hash table.  Just fold the
5240         result if it is NULL otherwise.  Insert other potentially needed
5241         stmts right before current stmt instead of on the entry edge.
5242         (struct elv_data): Add gsi and reset fields.
5243         (eliminate_local_variables_1): Adjust caller.  If take_address_of
5244         failed for debug stmt, set dta->reset and return.
5245         (eliminate_local_variables_stmt): Change STMT argument for GSI,
5246         pass GSI through to the callback, handle resetting of debug stmts.
5247         (eliminate_local_variables): Adjust caller.  Process debug stmts
5248         in second phase.
5249
5250         PR middle-end/43690
5251         * gimplify.c (gimplify_asm_expr): If a "m" input is a
5252         {pre,post}{in,de}crement, fail.
5253
5254         PR debug/46307
5255         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
5256         * tree-pretty-print.c (dump_generic_node): Likewise.
5257         (op_code_prio): Likewise.
5258         * cfgexpand.c (expand_debug_expr): Likewise.
5259
5260 2010-11-04  Paul Koning  <ni1d@arrl.net>
5261
5262         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
5263         constraints.
5264
5265 2010-11-04  Chao-ying Fu  <fu@mips.com>
5266
5267         * configure.ac: Test assembler support for DSP Rev1 mult.
5268         * configure: Regenerate.
5269         * config.in: Regenerate.
5270         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
5271         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
5272         (CODE_FOR_mips_multu): New define.
5273         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
5274         dspr2_32 to dsp_32.
5275         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
5276         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
5277         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
5278         New define_expand patterns.
5279         * config/mips/constraints.md (ka): Update the constraint to test
5280         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
5281         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
5282         mips_multu): Delete.
5283         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
5284         Change target constraint to "ka".
5285         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
5286         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
5287         Emit the accumulator destination when ISA_HAS_DSP_MULT.
5288         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
5289         Emit the accumulator destination when ISA_HAS_DSP_MULT.
5290         (<u>maddsidi4): Likewise.
5291         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
5292         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
5293
5294 2010-11-04  Paul Koning  <ni1d@arrl.net>
5295
5296         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
5297
5298 2010-11-04  Paul Koning  <ni1d@arrl.net>
5299
5300         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
5301
5302 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
5303
5304         Fixed using the Objective-C 2.0 dot-syntax with class names.
5305         * c-parser.c (c_parser_next_token_starts_declspecs): In
5306         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
5307         (c_parser_next_token_starts_declaration): Same.
5308         (c_parser_postfix_expression): Parse the Objective-C 2.0
5309         dot-syntax with a class name.
5310
5311 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
5312
5313         * final.c (compute_alignments): Compute/free loop info all the time.
5314         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
5315         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
5316         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
5317         * config/rs6000/rs6000.c (cfgloop.h): Include.
5318         (can_override_loop_align): New.
5319         (rs6000_option_override_internal): Set it.
5320         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
5321         (rs6000_loop_align): New function.
5322         (rs6000_loop_align_max_skip): Likewise.
5323
5324 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5325
5326         PR driver/45703
5327         * collect2.c (main): Print --help output to stdout.  Do not
5328         exit right away, so ld --help is appended.  Add empty lines
5329         to separate output suitably.
5330
5331 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
5332
5333         PR tree-optimization/46233
5334         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
5335         after calling analyze_function, not before.
5336
5337         PR target/46234
5338         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
5339         instead of build_va_arg_indirect_ref.
5340         * config/spu/spu.c (spu_va_start): Likewise.
5341         * config/s390/s390.c (s390_va_start): Likewise.
5342
5343 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
5344
5345         PR middle-end/46292
5346         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
5347         if the innermode is not vector mode, determine the mode of a subreg
5348         by using mode_for_size of inner_size.
5349
5350 2010-11-04  Richard Guenther  <rguenther@suse.de>
5351
5352         PR rtl-optimization/46183
5353         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
5354         (execute_rtl_pre): Likewise.
5355         (execute_rtl_hoist): Likewise.
5356
5357 2010-11-04  Richard Guenther  <rguenther@suse.de>
5358
5359         PR tree-optimization/46068
5360         * ipa-split.c (consider_split): Remove gcc_unreachable.
5361
5362 2010-11-04  Richard Guenther  <rguenther@suse.de>
5363
5364         * tree-nested.c (build_addr): Use build_fold_addr_expr.
5365
5366 2010-11-04  Richard Guenther  <rguenther@suse.de>
5367
5368         PR tree-optimization/45991
5369         * gimplify.c (force_gimple_operand_1): Use the provded test
5370         function in the initial test.
5371
5372 2010-11-04  Jeff Law  <law@redhat.com>
5373
5374         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
5375         of readonly memory equivalances for const/pure calls.
5376
5377 2010-11-04  Richard Guenther  <rguenther@suse.de>
5378
5379         PR tree-optimization/45733
5380         * tree-vect-stmts.c (reverse_vec_elements): Honor the
5381         permute builtins function return type.
5382
5383 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
5384
5385         PR middle-end/44765
5386         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
5387         as an index, check it is not INVALID_REGNUM.
5388
5389         PR bootstrap/44756
5390         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
5391         unsignedp.
5392         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
5393
5394         PR bootstrap/44756
5395         * function.c (thread_prologue_and_epilogue_insns): Add
5396         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
5397
5398         PR bootstrap/44756
5399         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
5400
5401         PR target/44750
5402         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
5403         (pdp11_preferred_reload_class): Rename class to rclass.
5404         (pdp11_preferred_output_reload_class): Likewise.
5405         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
5406         ALL_COMPILERFLAGS .
5407         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
5408
5409         PR bootstrap/44756
5410         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
5411         iteration variables to enum machine_mode.
5412
5413         PR target/44751
5414         * config/h8300/h8300.c: Include df.h.
5415         (push, pop): Use add_reg_note.
5416         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
5417         (compute_a_shift_cc): Likewise.
5418         (expand_a_shift): Argument code has type enum rtx_code.
5419         (struct shift_insn): Member cc_valid has type enum attr_cc.
5420         (struct shift_info) <cc_inline, cc_special>: Likewise.
5421         enum attr_cc.
5422         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
5423         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
5424
5425 2010-11-04  Ira Rosen  <irar@il.ibm.com>
5426
5427         PR tree-optimization/46213
5428         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
5429         MINUS_EXPR only if the first operand is reduction operand.
5430
5431 2010-11-04  Richard Guenther  <rguenther@suse.de>
5432             Richard Henderson  <rth@redhat.com>
5433
5434         * tree.def (FMA_EXPR): New tree code.
5435         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
5436         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
5437         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
5438         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
5439         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
5440         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
5441         (execute_optimize_widening_mul): Call it.  Reorganize to allow
5442         dead stmt removal.  Move TODO flags ...
5443         (pass_optimize_widening_mul): ... here.
5444         * flag-types.h (enum fp_contract_mode): New enum.
5445         * common.opt (flag_fp_contract_mode): New variable.
5446         (-ffp-contract): New option.
5447         * opts.c (common_handle_option): Handle it.
5448         * doc/invoke.texi (-ffp-contract): Document.
5449         * tree.h (fold_fma): Declare.
5450         * builtins.c (fold_fma): New function.
5451         (fold_builtin_fma): Likewise.
5452         (fold_builtin_3): Call it for fma.
5453         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
5454         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
5455         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
5456         New expanders.
5457         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
5458         named patterns.
5459         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
5460         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
5461         (fms_optab, fnma_optab, fnms_optab): New defines.
5462         * gimplify.c (gimplify_expr): Handle binary truth expressions
5463         explicitly.  Handle FMA_EXPR.
5464         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
5465         operations.
5466
5467 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5468             Richard Guenther  <rguenther@suse.de>
5469
5470         * passes.c (init_optimization_passes): Move veclower after SSA.
5471         * tree-vect-generic.c (uniform_vector_p): New function.
5472         (expand_vector_operations_1): Handle conversion.
5473         (pass_lower_vector): Update SSA form.
5474
5475 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
5476
5477         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
5478         plugin capabilities.
5479         * configure: Regenerate.
5480
5481 2010-11-03  Xinliang David Li  <davidxl@google.com>
5482
5483         PR target/46200
5484         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
5485         Adjust cbase if the use stmt is after iv update.
5486
5487 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5488
5489         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
5490
5491 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5492
5493         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
5494         comment.  Pass true to the last argument of output_stack_adjust.
5495
5496 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5497
5498         PR target/46295
5499         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
5500         if 256bit AVX register is used.
5501
5502 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
5503
5504         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
5505         xsmindp/xsmaxdp on VSX for single precision min/max.
5506         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
5507         (vsx_sminsf3): Ditto.
5508
5509 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5510
5511         * combine.c (try_combine): Fix formatting issues, improve comments and
5512         fix a pasto.
5513
5514 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5515
5516         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
5517         of the result before building binary expressions.
5518
5519 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5520
5521         PR rtl-optimization/45865
5522         * Makefile.in (df-problems.o): Revert revision 164552.
5523         * basic-block.h (enum bb_flags): Likewise.
5524         * cfgcleanup.c (block_was_dirty): Likewise.
5525         (try_forward_edges): Likewise.
5526         (try_crossjump_bb): Likewise.
5527         (try_head_merge_bb): Likewise.
5528         (try_optimize_cfg): Likewise.
5529         (cleanup_cfg): Likewise.
5530         * df-core.c (df_set_bb_dirty): Likewise.
5531         * df-problems.c: Likewise.
5532         (df_simulate_find_uses): Likewise.
5533         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
5534         (find_memory, find_memory_store): Likewise.
5535         (can_move_insns_across): Likewise.
5536         * df.h (can_move_insns_across): Likewise.
5537         * ifcvt.c (find_memory): Likewise.
5538         (dead_or_predicable): Likewise.
5539
5540 2010-11-03  Richard Guenther  <rguenther@suse.de>
5541
5542         PR middle-end/46288
5543         * predict.c (strip_predict_hints): Simply DCE builtin expect if
5544         the result is unused.
5545
5546 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5547
5548         PR tree-optimization/46009
5549         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
5550         cond_if_else_store_replacement if bb1 and bb2 have the same
5551         single successor.
5552         (cond_store_replacement): Use gimple_assign_single_p, don't
5553         check if rhs is SSA_NAME or invariant.  Call release_defs for
5554         assign.
5555         (cond_if_else_store_replacement): New function.
5556
5557 2010-11-03  Richard Guenther  <rguenther@suse.de>
5558
5559         * opts.c (finish_options): Properly check for all WHOPR
5560         flags before complaining about -flto-partition.
5561
5562 2010-11-04  Alan Modra  <amodra@gmail.com>
5563
5564         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
5565         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
5566         TARGET_SECURE_PLT.
5567         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
5568         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
5569         on input, "r" on output.
5570
5571 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
5572
5573         Implemented -fobjc-std=objc1 flag.
5574         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
5575         option.
5576         * doc/standards.texi (Standards): Updated the section on
5577         Objective-C; mention support for Objective-C 2.0 features and the
5578         new -fstd-objc=objc1 flag to disable them.
5579
5580 2010-11-03  Richard Guenther  <rguenther@suse.de>
5581
5582         PR middle-end/46241
5583         * dwarf2out.c (scope_die_for): Properly detect global scope.
5584
5585 2010-11-03  Richard Guenther  <rguenther@suse.de>
5586
5587         PR tree-optimization/46190
5588         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5589         Properly compute peel iterations.
5590
5591 2010-11-03  Richard Guenther  <rguenther@suse.de>
5592
5593         PR tree-optimization/46286
5594         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
5595         re-allocated vector data.
5596
5597 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5598
5599         PR target/46285
5600         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
5601         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
5602         is completed.
5603
5604 2010-11-03  Richard Guenther  <rguenther@suse.de>
5605
5606         PR tree-optimization/46217
5607         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
5608         flag matches.
5609         (execute_update_addresses_taken): Likewise.
5610
5611 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
5612
5613         PR bootstrap/44335
5614         * targhooks.c (targhook_words_big_endian): New function.
5615         (targhook_float_words_big_endian): Likewise.
5616         * targhooks.h (targhook_words_big_endian): Declare.
5617         (targhook_float_words_big_endian): Likewise.
5618         * target.def (words_big_endian, float_words_big_endian): New hooks.
5619
5620 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5621
5622         PR tree-optimization/46165
5623         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
5624         a normal call into noreturn call.
5625
5626 2010-11-03  Richard Guenther  <rguenther@suse.de>
5627
5628         PR middle-end/46251
5629         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
5630         not INDIRECT_REFs.
5631
5632 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5633
5634         PR tree-optimization/46107
5635         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
5636         if cfg_hook_duplicate_loop_to_header_edge failed.
5637
5638 2010-11-03  Ian Lance Taylor  <iant@google.com>
5639
5640         PR lto/46273
5641         * config.gcc: Don't set lto_binary_reader.
5642         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5643         (Configuration): Mention --disable-lto.  Remove --with-libelf
5644         paragraph.
5645
5646 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5647
5648         PR debug/46252
5649         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
5650         prev_real_insn.
5651         * gcse.c (insert_insn_end_basic_block): Likewise.
5652
5653         PR rtl-optimization/46034
5654         PR rtl-optimization/46212
5655         PR rtl-optimization/46248
5656         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
5657         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
5658         before i0dest -> i0src substitution and pass 1 instead of 0 as last
5659         argument to subst on i2pat.
5660
5661 2010-11-02  Ian Lance Taylor  <iant@google.com>
5662
5663         * configure.ac: Use AC_SYS_LARGEFILE.
5664         * configure: Rebuild.
5665         * config.in: Rebuild.
5666
5667 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5668
5669         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
5670         fold_convert.
5671         * c-typeck.c (build_function_call_vec): Likewise.
5672         * cfgexpand.c (expand_debug_expr): Likewise.
5673         * cgraphunit.c (assemble_thunk): Likewise.
5674         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
5675         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
5676         (fold_binary_loc, fold_ternary_loc): Likewise.
5677         * gimple-fold.c (get_symbol_constant_value): Likewise.
5678         * gimple-low.c (lower_builtin_setjmp): Likewise.
5679         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
5680         * gimplify.c (gimplify_init_constructor): Likewise.
5681         * lambda.h (build_linear_expr): Likewise.
5682         * omp-low.c (omp_reduction_init): Likewise.
5683         * tree-inline.c (remap_ssa_name): Likewise.
5684         * tree-object-size.c (compute_object_sizes): Likewise.
5685         * tree-sra.c (init_subtree_with_zero): Likewise.
5686         (sra_ipa_modify_assign): Likewise.
5687         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
5688         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
5689         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
5690         (undistribute_ops_list): Likewise.
5691         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
5692         * tree-vect-stmts.c (vectorizable_call): Likewise.
5693         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
5694         (build_zero_cst): Handle more cases directly.  Update comment.
5695
5696 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5697
5698         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
5699         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
5700
5701         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
5702         and call ix86_split_call_vzeroupper instead of
5703         ix86_split_call_pop_vzeroupper.
5704         (*call_pop_1_vzeroupper): Likewise.
5705         (*sibcall_pop_1_vzeroupper): Likewise.
5706         (*call_value_pop_0_vzeroupper): Likewise.
5707         (*call_value_pop_1_vzeroupper): Likewise.
5708         (*sibcall_value_pop_1_vzeroupper): Likewise.
5709
5710 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5711
5712         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
5713
5714 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
5715
5716         * basic-block.h (insert_insn_end_bb_new): Delete.
5717         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
5718
5719 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
5720             H.J. Lu  <hongjiu.lu@intel.com>
5721
5722         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
5723         (ix86_split_call_pop_vzeroupper): Likewise.
5724
5725         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
5726         (ix86_expand_call): Conditionally decorate calls with
5727         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
5728         (ix86_split_call_vzeroupper): New.
5729         (ix86_split_call_pop_vzeroupper): Likewise.
5730
5731         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
5732         (*call_pop_0_vzeroupper): New insn_and_split pattern.
5733         (*call_pop_1_vzeroupper): Likewise.
5734         (*sibcall_pop_1_vzeroupper): Likewise.
5735         (*call_0_vzeroupper): Likewise.
5736         (*call_1_vzeroupper): Likewise.
5737         (*sibcall_1_vzeroupper): Likewise.
5738         (*call_1_rex64_vzeroupper): Likewise.
5739         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
5740         (*call_1_rex64_large_vzeroupper): Likewise.
5741         (*sibcall_1_rex64_vzeroupper): Likewise.
5742         (*call_value_pop_0_vzeroupper): Likewise.
5743         (*call_value_pop_1_vzeroupper): Likewise.
5744         (*sibcall_value_pop_1_vzeroupper): Likewise.
5745         (*call_value_0_vzeroupper): Likewise.
5746         (*call_value_0_rex64_vzeroupper): Likewise.
5747         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
5748         (*call_value_1_vzeroupper): Likewise.
5749         (*sibcall_value_1_vzeroupper): Likewise.
5750         (*call_value_1_rex64_vzeroupper): Likewise.
5751         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
5752         (*call_value_1_rex64_large_vzeroupper): Likewise.
5753         (*sibcall_value_1_rex64_vzeroupper): Likewise.
5754
5755 2010-11-02  Ian Lance Taylor  <iant@google.com>
5756
5757         PR lto/46273
5758         * config.gcc: Revert last patch: set lto_binary_reader.
5759
5760 2010-11-02  Richard Guenther  <rguenther@suse.de>
5761
5762         PR tree-optimization/46149
5763         * tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
5764         non-indirect MEM_REF variants.
5765
5766 2010-11-02  Richard Guenther  <rguenther@suse.de>
5767
5768         PR tree-optimization/46216
5769         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5770         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
5771
5772 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5773
5774         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
5775         (*-*-osf*): Likewise.
5776         * configure: Regenerate.
5777
5778 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5779
5780         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
5781         for Intel Core 2 and Core i7.
5782
5783 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
5784
5785         Model decoder of Core 2/i7 for multipass scheduling.
5786
5787         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
5788         New type to hold target-specific data for multipass scheduling.
5789         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5790         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
5791         Core 2/i7.
5792         (core2i7_secondary_decoder_max_insn_size,)
5793         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
5794         New static variables.
5795         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
5796         ([_]ix86_first_cycle_multipass_data): New static variable.
5797         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
5798         Implement targetm.sched hooks.
5799         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
5800         of ...
5801         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
5802         Implement new targetm.sched hooks.
5803         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
5804         targetm.sched hook to install multipass scheduling hooks on demand.
5805
5806         * doc/tm.texi.in: Document new targetm.sched hooks.
5807         * doc/tm.texi: Regenerate.
5808
5809         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5810         (first_cycle_multipass_data_t): New typedef.
5811         (struct choice_entry: target_data): New field.
5812         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
5813         to allow target model restrictions not represented in DFA.
5814         (choose_ready, schedule_block): Update.
5815         (sched_extend_ready_list, sched_finish_ready_list): Call new target
5816         hooks to initialize target-specific data for multipass scheduling.
5817         * sched-int.h (max_issue): Update declaration.
5818         * sel-sched.c (choose_best_insn): Update.
5819         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
5820         (first_cycle_multipass_{init, fini}): Define and document new
5821         targetm.sched hooks.
5822
5823 2010-11-02  Richard Guenther  <rguenther@suse.de>
5824
5825         PR tree-optimization/46184
5826         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
5827         input vector type from the reduction operand as well.
5828
5829 2010-11-02  Richard Guenther  <rguenther@suse.de>
5830
5831         PR tree-optimization/46177
5832         * tree-loop-distribution.c (prop_phis): Use
5833         mark_virtual_phi_result_for_renaming.
5834
5835 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5836
5837         PR middle-end/46120
5838         * tree.c (get_binfo_at_offset): Bail out on artificial
5839         fields.  Identify primary bases according to their offsets.
5840
5841 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5842
5843         PR tree-optimization/45875
5844         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
5845         (gimple_get_relevant_ref_binfo): Detect primary bases according to
5846         their field offset.
5847
5848 2010-11-02  Ian Lance Taylor  <iant@google.com>
5849
5850         * doc/install.texi (Configuration): Note in two places that Java
5851         is not enabled by default.
5852
5853 2010-11-02  Ian Lance Taylor  <iant@google.com>
5854
5855         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5856         (Configuration): Mention --disable-lto.  Remove --with-libelf
5857         paragraph.
5858
5859 2010-11-02  Ian Lance Taylor  <iant@google.com>
5860
5861         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
5862         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
5863         LIBELFINC.  Remove HAVE_libelf.
5864         * config.gcc: Don't set lto_binary_reader.
5865         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
5866         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
5867         (LIBS): Remove $(LIBELFLIBS).
5868         (INCLUDES): Remove $(LIBELFINC).
5869         * configure: Rebuild.
5870         * config.in: Rebuild.
5871
5872 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5873
5874         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5875         (function_arg_advance): Delete.
5876         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5877         (FUNCTION_ARG): Delete.
5878         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5879         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5880         const_tree and a bool.
5881         (function-arg): Rename to...
5882         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5883         and a bool.
5884         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5885         targetm.calls.function_arg_advance.
5886         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5887
5888 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5889
5890         Merge from FSF "apple/trunk" branch.
5891
5892         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5893         * config/darwin.opt: .. to here.
5894         (matt-stubs): New option.
5895         * config/i386/darwin.opt: Delete.
5896         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5897         (MACHO_DYNAMIC_NO_PIC_P): New.
5898         (MACHOPIC_INDIRECT): New.
5899         (MACHOPIC_PURE): New.
5900         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5901         (MACHOPIC_ATT_STUB): New.
5902         (CC1_SPEC): Do not remove mdynamic-no-pic.
5903         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5904         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5905         (FUNCTION_PROFILER): Correct over-length line.
5906         (SUBTARGET_OVERRIDE_OPTIONS): New.
5907         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5908         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
5909         (legitimate_constant_p): Handle mdynamic-no-pic.
5910         (ix86_legitimate_address_p): Likewise.
5911         (ix86_legitimize_address): Likewise.
5912         (ix86_expand_move): Likewise.
5913         (machopic_output_stub): Update for ATT-style stubs and
5914         mdynamic-no-pic.
5915         * config/darwin-protos.h (machopic_symbol_defined_p): New.
5916         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
5917         TARGET_DYNAMIC_NO_PIC: Remove.
5918         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5919         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5920         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
5921         Remove handling of mdynamic-no-pic.
5922         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
5923         Define if required.
5924         (machopic_symbol_defined_p): Do not try to use current_function_decl
5925         when generating _get_pc thunks within stubs.
5926         (machopic_indirect_data_reference): Rework for direct conditionals
5927         rather than #ifdefs, add x86 mdynamic-no-pic
5928         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
5929         defined value.
5930         (darwin_override_options): Handle mdynamic-no-pic here.
5931         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
5932         (machopic_lazy_symbol_ptr3_section): New.
5933         (machopic_picsymbol_stub2_section): New.
5934         (machopic_picsymbol_stub3_section): New.
5935         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
5936         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5937         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5938         Moved common definition from x86 and rs6000.
5939         (MACHO_DYNAMIC_NO_PIC_P): Override value.
5940         (MACHOPIC_INDIRECT): Likewise.
5941         (MACHOPIC_PURE): Likewise.
5942         * config.gcc (x86-darwin-*): Remove darwin.opt.
5943
5944 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
5945
5946         PR debug/46255
5947         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
5948         instead of gsi_last_bb.
5949
5950 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5951             Maxim Kuvyrkov  <maxim@codesourcery.com>
5952
5953         * config/i386/i386.c (cpu_names): Add "corei7".
5954         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
5955
5956 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5957             Maxim Kuvyrkov  <maxim@codesourcery.com>
5958
5959         Tune alignment for Intel Core i7
5960
5961         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
5962         (enum processor_type): Update comment.  Add entries for Core i7.
5963         * config/i386-c.c (ix86_target_macros_internal): Update.
5964         * config/i386.c (m_COREI7{_32,_64}): New macros.
5965         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
5966         (processor_target_table): Tune alignment for Core i7.
5967         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
5968
5969         * doc/invoke.texi: Document "corei7" option value.
5970
5971 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5972             Maxim Kuvyrkov  <maxim@codesourcery.com>
5973             H.J. Lu  <hjl.tools@gmail.com>
5974
5975         Basic support for Intel Core i7
5976
5977         * i386.c (ix86_option_override_internal): Add entry for corei7, use
5978         generic tuning.  Use generic32 when compiling for 32-bit ABI.
5979
5980 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5981
5982         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
5983         sections and call darwin_asm_dwarf_section() to handle them.
5984         (darwin_asm_dwarf_section): New.
5985         (darwin_file_start): Remove code emitting dwarf section symbols.
5986
5987 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
5988
5989         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
5990         explicitly disable stack protection when building libgcc.
5991         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
5992
5993 2010-11-01  Jason Merrill  <jason@redhat.com>
5994
5995         * fold-const.c (fold_indirect_ref_1): Handle folding
5996         POINTER_PLUS_EXPR to ARRAY_REF.
5997
5998 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5999
6000         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
6001         (sh_delegitimize_address): New function.
6002
6003 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
6004
6005         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
6006         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
6007         (CC1_SPEC): Don't handle -target.
6008         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
6009         options.
6010         * config/darwin.opt (Zallowable_client, Zbundle_loader,
6011         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
6012         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
6013         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
6014         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
6015         Zweak_reference_mismatches, client_name, compatibility_version,
6016         current_version, dylinker_install_name, pagezero_size,
6017         read_only_relocs, seg1addr, segs_read_only_addr,
6018         segs_read_write_addr, sub_library, sub_umbrella): New.
6019         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
6020         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
6021         * config/freebsd.opt: New.
6022         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
6023         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
6024         * config/rpath.opt: New.
6025         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
6026         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
6027         Use rpath.opt.
6028
6029 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
6030
6031         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
6032         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
6033         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
6034         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
6035         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
6036         Document that options in .opt files do not need to be included.
6037         * doc/tm.texi: Regenerate.
6038         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
6039         * opts-common.c: Update comment on tm.h include.
6040         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
6041         * system.h (SWITCH_TAKES_ARG): Poison.
6042         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
6043         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
6044         in darwin.opt.
6045         (LINK_COMMAND_SPEC_A): Don't include %{x}.
6046         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6047         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
6048         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
6049         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6050         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
6051         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
6052         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
6053         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
6054         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6055         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
6056         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
6057         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
6058         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
6059         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
6060         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
6061         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
6062         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
6063         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
6064         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
6065         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
6066         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
6067         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
6068         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6069
6070 2010-11-01  Paul Koning  <ni1d@arrl.net>
6071
6072         * config/pdp11/pdp11.md: Use iterators.
6073         (addqi3, subqi3, iorsi3, xorsi3): Delete.
6074
6075 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
6076
6077         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
6078         GCC_INSN_FLAGS_H.
6079         * libgcov.c (__gcov_indirect_call_profiler): Set
6080         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
6081         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
6082
6083 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
6084
6085         PR tree-optimization/46259
6086
6087         Revert:
6088         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6089         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
6090         build_vector_from_val.
6091
6092 2010-11-01  DJ Delorie  <dj@redhat.com>
6093
6094         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
6095         as well as an assertion.
6096
6097 2010-11-01  Paul Koning  <ni1d@arrl.net>
6098
6099         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
6100         complex modes in memory.
6101
6102 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
6103
6104         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
6105
6106 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
6107
6108         PR target/45250
6109         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
6110         (cfa_base_offset): New variable.
6111         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
6112         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
6113         is NULL.
6114         (vt_init_cfa_base): Initialize cfa_base_offset.
6115
6116 2010-11-01  Alan Modra  <amodra@gmail.com>
6117
6118         PR target/46030
6119         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
6120         and savres_strategy.
6121         (stack_info): New file scope var.
6122         (rs6000_init_machine_status): Init stack_info.
6123         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
6124         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
6125         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
6126         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
6127         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
6128         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
6129         (rs6000_savres_strategy): Rewrite.
6130         (rs6000_stack_info): Use "stack_info" in place of local "info".
6131         Return cached stack info when reload_completed unless ENABLE_CHECKING
6132         in which case confirm newly calculated stack info matches old info.
6133         Delay calculation of lr_save_p, set it for out of line gp save/restore
6134         as well as fp.  Call rs6000_savres_strategy from here..
6135         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
6136         (rs6000_output_function_prologue): Use info->savres_strategy to
6137         determine whether fp save/restore externs need to be emitted.
6138
6139 2010-10-31  Jason Merrill  <jason@redhat.com>
6140
6141         * tree.h (EXPR_LOC_OR_HERE): New macro.
6142         * builtins.c (c_strlen): Use it.
6143         * c-decl.c (build_enumerator): Likewise.
6144         * gimplify.c (internal_get_tmp_var): Likewise.
6145         (shortcut_cond_expr): Likewise.
6146         (gimplify_one_sizepos): Likewise.
6147
6148 2010-10-31  Richard Henderson  <rth@redhat.com>
6149
6150         * config/i386/cygming.h (TARGET_SEH): New.
6151         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
6152         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
6153         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
6154         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
6155         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
6156         (ASM_DECLARE_FUNCTION_SIZE): New.
6157         * config/i386/i386-protos.h: Update.
6158         * config/i386/i386.c (ix86_option_override_internal): Enable
6159         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
6160         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
6161         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
6162         (ix86_compute_frame_layout): For SEH, disable
6163         use_fast_prologue_epilogue, move frame pointer to the end of
6164         the frame.  Initialize hfp_save_offset.
6165         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
6166         at end of prologue for SEH.
6167         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
6168         emit blockage at beginning of epilogue.
6169         (ix86_expand_binary_operator): After reload, emit LEA if needed.
6170         (ix86_output_call_insn): New.
6171         * config/i386/i386.h (TARGET_SEH): New.
6172         (struct machine_function): Add member seh.
6173         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
6174         * config/i386/winnt.c (struct seh_frame_state): New.
6175         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
6176         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
6177         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
6178         i386_pe_start_function, i386_pe_end_function): New.
6179
6180         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
6181         as CFA_STORE in rules 12 and 13.
6182
6183 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
6184
6185         PR tree-optimization/46142
6186         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
6187         accommodate third function argument.
6188
6189 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6190
6191         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
6192
6193 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6194
6195         * fold-const.c (build_zero_vector): Use build_vector_from_val.
6196         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
6197         (get_initial_def_for_reduction): Likewise.
6198         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
6199         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
6200         * tree.c (build_one_cst): Likewise.
6201         (build_vector_from_val): Use types_compatible_p for assert.
6202
6203 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6204
6205         * emit-rtl.c (mark_used_flags): New function.
6206         (set_used_flags, reset_used_flags): Call it.
6207
6208 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
6209
6210         PR middle-end/44569
6211         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
6212         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
6213
6214 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
6215
6216         PR target/46195
6217         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
6218         (ix86_compat_aligned_value_p): This.
6219         (ix86_old_function_arg_boundary): Renamed to ...
6220         (ix86_compat_function_arg_boundary): This.  Updated.
6221         (ix86_contains_aligned_value_p): New.
6222         (ix86_function_arg_boundary): Align long double parameters on
6223         stack to 4byte in 32bit.
6224
6225 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
6226
6227         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
6228         * c-parser.c (c_parser_objc_at_property_declaration): Removed
6229         parsing of RID_COPIES and RID_IVAR.  Updated call to
6230         objc_add_property_declaration.
6231         * c-typecheck.c (build_component_ref): Call
6232         objc_maybe_build_component_ref instead of objc_build_setter_call.
6233         Use objc_is_property_ref to improve Objective-C checks.
6234         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
6235         of objc_build_getter_call.
6236
6237 2010-10-29  Paul Koning  <ni1d@arrl.net>
6238
6239         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6240         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
6241         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
6242         (REG_OK_STRICT): Move description.
6243
6244 2010-10-29  Paul Koning  <ni1d@arrl.net>
6245
6246         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
6247
6248 2010-10-29  Paul Koning  <ni1d@arrl.net>
6249
6250         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
6251
6252 2010-10-29  Paul Koning  <ni1d@arrl.net>
6253
6254         PR/41822
6255         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
6256
6257 2010-10-29  Richard Henderson  <rth@redhat.com>
6258
6259         PR rtl-opt/46226
6260         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
6261         for asm goto.
6262
6263 2010-10-29  Paul Koning  <ni1d@arrl.net>
6264
6265         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
6266         register to register move.
6267
6268 2010-10-29  Paul Koning  <ni1d@arrl.net>
6269
6270         * config/pdp11/pdp11.c (print_operand_address): Correct handling
6271         of integer constant addresses, delete vax-only logic.
6272
6273 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
6274
6275         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
6276         a conditional expression.
6277
6278 2010-10-29  Paul Koning  <ni1d@arrl.net>
6279
6280         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
6281         instruction encoding.
6282
6283 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6284             Andrew Pinski  <pinskia@gmail.com>
6285
6286         * tree.h (build_vector_from_val): Declare.
6287         * tree.c (build_vector_from_val): New function.
6288         * c-typeck.c (build_binary_op): Handle vector shifting.
6289         * doc/extend.texi: Description of the vector shifting operation.
6290
6291 2010-10-29  Paul Koning  <pkoning@equallogic.com>
6292
6293         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
6294         pdp11_secondary_memory_needed): Declare.
6295         * config/pdp11/predicates.md (float_operand): New predicate.
6296         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
6297         (cbranchdf4, movdf): Change predicate.
6298         (movsf): Handle FPU register case.
6299         (truncdfsf2, extendsfdf2): Add FPU register case.
6300         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
6301         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
6302         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6303         (pdp11_register_move_cost): Update cost matrix.
6304         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
6305         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
6306         pdp11_secondary_memory_needed): New function.
6307         (pdp11_return_in_memory): Add other float types.
6308         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
6309         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
6310         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
6311         REGISTER_MOVE_COST): Delete.
6312         (BASE_RETURN_VALUE_REG): Add other float types.
6313
6314 2010-10-29  Nick Clifton  <nickc@redhat.com>
6315
6316         * doc/invoke.texi: Document -mam34 and -mtune options.
6317         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
6318         (mn10300_tune_cpu): New variable.
6319         (mn10300_handle_option): Handle -mam34 and -mtune options.
6320         (mn10300_option_override): Convert tune string into tune cpu variable.
6321         (mn10300_legitimate_constant_p): Delete unused local variable.
6322         (is_load_insn): New function.
6323         (is_store_insn): New function.
6324         (mn10300_adjust_schedule_cost): New function.
6325         (TARGET_SCHED_ADJUST_COST): Define.
6326         * config/mn10300/mn10300.opt (mam34): New option.
6327         (mtune): New option.
6328         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
6329         (enum processor_type): Add AM34.
6330         (TARGET_AM34): Define.
6331         * config/mn10300/mn10300.md (attr cpu): Add am34.
6332         Add pipeline description.
6333         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
6334         Remove unneeded alternatives.  Add timing attribute.
6335         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
6336         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
6337         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
6338         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
6339         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
6340         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
6341         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
6342         float_conditional_branch, jump, indirect_jump, tablejump,
6343         call_internal, call_value_internal, zero_extendqisi2_am33,
6344         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
6345         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
6346         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
6347         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
6348         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
6349         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
6350         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
6351         return_internal_regs, store_movm, return, call_next_insn):
6352         Add timing attribute.
6353         (am33_subsi3): Add missing clobber of CC_REG.
6354         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
6355         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
6356         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
6357         extendqisi2): Fix predicates.
6358         (call_internal, call_internal_value): Separate alternatives.
6359         * config/mn10300/t-mn10300: Add AM34 multilib.
6360
6361 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
6362
6363         * config/sh/sh.c (sh_promote_function_mode): Use
6364         default_promote_function_mode if !sh_promote_prototypes.
6365
6366 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
6367
6368         * recog.c (split_all_insns): Remove dead code.
6369
6370 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6371
6372         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6373
6374 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6375
6376         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
6377         (FUNCTION_ARG_ADVANCE): Delete.
6378         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
6379         functions.
6380         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
6381         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6382         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6383
6384 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6385
6386         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
6387         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6388         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
6389         Take a const_tree and a bool.
6390         (mcore_function_arg_advance): New function.
6391         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6392
6393 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6394
6395         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
6396         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6397         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
6398         Take a const_tree and a bool.
6399         (mcore_function_arg_advance): New function.
6400         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6401
6402 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6403
6404         * config/h8300/h8300-protos.h (function_arg): Delete.
6405         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6406         * config/h8300/h8300.c (function_arg): Rename to...
6407         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
6408         a bool.
6409         (h8300_function_arg_advance): New function.
6410         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6411
6412 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6413
6414         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
6415         to...
6416         * config/arc/arc.c (arc_function_arg): ...here and...
6417         (arc_function_arg_advance): ...here.  New functions.
6418         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6419
6420 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6421
6422         * config/crx/crx-protos.h (crx_function_arg): Delete.
6423         (crx_function_arg_advance): Delete.
6424         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6425         * config/crx/crx.c (crx_function_arg): Make static.  Take a
6426         const_tree and a bool.
6427         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
6428         (enough_regs_for_param): Take a const_tree.
6429         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6430
6431 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6432
6433         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
6434         (m68hc11_function_arg_advance): Delete.
6435         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
6436         (FUNCTION_ARG_ADVANCE): Delete.
6437         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
6438         Take a const_tree and a bool.
6439         (m68hc11_function_arg_advance): Likewise.
6440         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6441
6442 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6443
6444         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
6445         (xstormy16_function_arg_advance): Delete.
6446         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
6447         (FUNCTION_ARG_ADVANCE): Delete.
6448         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
6449         Take a const_tree and a bool.
6450         (xstormy16_function_arg_advance): Likewise.  Return void, updating
6451         the CUM parameter instead.
6452         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6453
6454 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6455
6456         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
6457         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6458         (MOXIE_FUNCTION_ARG_SIZE): Move to...
6459         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
6460         (moxie_function_arg): Make static.  Take a const_tree and a bool.
6461         (moxie_function_arg_advance): New function.
6462         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6463
6464 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6465
6466         * config/mn10300/mn10300-protos.h (function_arg): Delete.
6467         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
6468         (FUNCTION_ARG_ADVANCE): Delete.
6469         * config/mn10300/mn10300.c (function_arg): Rename to...
6470         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
6471         and a bool.
6472         (mn10300_function_arg_advance): New function.
6473         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6474
6475 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6476
6477         * config/iq2000/iq2000-protos.h (function_arg): Delete.
6478         (function_arg_advance): Delete.
6479         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6480         * config/iq2000/iq2000.c (function_arg): Rename to...
6481         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
6482         a bool.
6483         (function_arg_advance): Rename to...
6484         (iq2000_function_arg_advance): ...this.  Make static.  Take a
6485         const_tree and a bool.
6486         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
6487         iq2000_function_arg.
6488         (iq2000_pass_by_reference): Call iq2000_function_arg).
6489         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6490
6491 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6492
6493         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
6494         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6495         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
6496         const_tree.
6497         (fr30_function_arg): New function.
6498         (fr30_function_arg_advance): New function.
6499         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6500
6501 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6502
6503         * config/frv/frv-protos.h (frv_function_arg): Delete.
6504         (frv_function_arg_advance): Delete.
6505         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6506         * config/frv/frv.c (frv_function_arg): Rename to...
6507         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
6508         (frv_function_arg, frv_function_incoming_arg): New functions.
6509         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
6510         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6511         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6512
6513 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
6514
6515         PR target/46153
6516         * config/i386/sse.md (sse_movhlps_exp): Use destination
6517         returned from ix86_fixup_binary_operands to expand insn.
6518         (sse_movlhps_exp): Ditto.
6519         (sse_loadhps_exp): Ditto.
6520         (sse_loadlps_exp): Ditto.
6521         (sse2_loadhpd_exp): Ditto.
6522         (sse2_loadlpd_exp): Ditto.
6523
6524 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
6525
6526         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
6527         constants in thumb2.
6528
6529 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
6530
6531         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
6532         arithmetics in masking operations.
6533         (contains_muldiv): Likewise.
6534         (try_combine): Likewise.
6535         (find_split_point): Likewise.
6536         (combine_simplify_rtx): Likewise.
6537         (simplify_if_then_else): Likewise.
6538         (simplify_set): Likewise.
6539         (expand_compound_operation): Likewise.
6540         (expand_field_assignment): Likewise.
6541         (make_extraction): Likewise.
6542         (extract_left_shift): Likewise.
6543         (make_compound_operation): Likewise.
6544         (force_to_mode): Likewise.
6545         (make_field_assignment): Likewise.
6546         (reg_nonzero_bits_for_combine): Likewise.
6547         (simplify_shift_const_1): Likewise.
6548         (simplify_comparison): Likewise.
6549
6550 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
6551
6552         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
6553         (ia64_function_arg_advance): Delete.
6554         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
6555         (FUNCTION_ARG_ADVANCE): Delete.
6556         * config/ia64/ia64.c (ia64_function_arg): Rename to...
6557         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
6558         bool arguments.
6559         (ia64_function_arg, ia64_function_incoming_arg): New functions.
6560         (ia64_function_arg_advance): Make static.  Take a const_tree and
6561         a bool.
6562         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6563         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6564
6565 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
6566
6567         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
6568         (TARGET_GET_RAW_ARG_MODE): New.
6569         * doc/tm.texi: Regenerate.
6570         * target.def (get_raw_result_mode): New.
6571         (get_raw_arg_mode): New.
6572         * targhooks.c (default_get_reg_raw_mode): New.
6573         * targhooks.h (default_get_reg_raw_mode): New.
6574         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
6575         (apply_result_size): Ditto.
6576         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
6577         (TARGET_GET_RAW_RESULT_MODE): Define.
6578         (TARGET_GET_RAW_ARG_MODE): Ditto.
6579
6580 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6581
6582         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
6583         for newer Solaris 10 release.
6584         (sparc_fallback_frame_state): Likewise.
6585
6586 2010-10-27  Jason Merrill  <jason@redhat.com>
6587
6588         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
6589         variables sooner.
6590
6591 2010-10-27  Jie Zhang  <jie@codesourcery.com>
6592             Maxim Kuvyrkov  <maxim@codesourcery.com>
6593
6594         * haifa-sched.c (ISSUE_POINTS): Remove.
6595         (max_issue): Don't issue more than issue_rate instructions.
6596
6597 2010-10-27  Ian Lance Taylor  <iant@google.com>
6598
6599         PR target/46197
6600         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
6601         (split_stack_return): Replace UNSPEC_STACK_CHECK with
6602         UNSPECV_SPLIT_STACK_RETURN.
6603
6604 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
6605
6606         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
6607
6608         * config/i386/i386.c (block_info): New.
6609         (BLOCK_INFO): Likewise.
6610         (call_avx256_state): Likewise.
6611         (check_avx256_stores): Likewise.
6612         (move_or_delete_vzeroupper_2): Likewise.
6613         (move_or_delete_vzeroupper_1): Likewise.
6614         (move_or_delete_vzeroupper): Likewise.
6615         (use_avx256_p): Likewise.
6616         (function_pass_avx256_p): Likewise.
6617         (flag_opts): Add -mvzeroupper.
6618         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
6619         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
6620         is disabled.
6621         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
6622         generate vzeroupper.
6623         (init_cumulative_args): Add an int to indicate caller.  Set
6624         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
6625         based on return type.
6626         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
6627         caller_pass_avx256_p based on argument type.
6628         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
6629         is used, but not returned by caller.
6630         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
6631         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
6632         is used.
6633         (ix86_minimum_alignment): Likewise.
6634         (ix86_expand_special_args_builtin): Set target to
6635         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
6636         (ix86_reorg): Run the vzeroupper optimization if needed.
6637
6638         * config/i386/i386.h (ix86_args): Add caller.
6639         (INIT_CUMULATIVE_ARGS): Updated.
6640         (machine_function): Add use_vzeroupper_p, use_avx256_p,
6641         caller_pass_avx256_p, caller_return_avx256_p,
6642         callee_pass_avx256_p and callee_return_avx256_p.
6643
6644         * config/i386/i386.opt (-mvzeroupper): New.
6645
6646         * config/i386/predicates.md (vzeroupper_operation): Removed.
6647
6648         * config/i386/sse.md (avx_vzeroupper): Removed.
6649         (*avx_vzeroupper): Removed.
6650         (avx_vzeroupper): New.
6651
6652         * doc/invoke.texi: Document -mvzeroupper.
6653
6654 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6655
6656         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
6657         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
6658         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
6659
6660 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6661             Olivier Hainque  <hainque@adacore.com>
6662
6663         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
6664         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
6665         fs->signal_frame instead.
6666
6667 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6668
6669         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
6670         parsing of RID_COPIES and RID_IVAR.
6671
6672 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6673
6674         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
6675         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
6676         Do not use objc_set_property_attr, but use local variables
6677         instead.  Detect repeated usage of setter, getter and ivar
6678         attributes.  Improved error processing when a setter name does not
6679         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
6680         that the token is a keyword.  Updated call to
6681         objc_add_property_declaration.
6682
6683 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6684
6685         * c-parser.c (c_parser_objc_at_property): Renamed to
6686         c_parser_objc_at_property_declaration.  Updated calls to
6687         objc_add_property_variable, now objc_add_property_declaration.
6688         Code rewritten to be much more robust in recovering from syntax
6689         errors.  Added comments.
6690         (c_parser_objc_property_attrlist): Removed.
6691         (c_parser_external_declaration): Updated calls to
6692         c_parser_objc_at_property, now
6693         c_parser_objc_at_property_declaration.
6694         (c_parser_objc_methodprotolist): Same change.
6695
6696 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6697
6698         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
6699
6700 2010-10-26  Jan Hubicka  <jh@suse.cz>
6701
6702         * ipa.c (process_references): Enqueue all referenced nodes;
6703         mark as reachable only non-external nodes.
6704         (cgraph_remove_unreachable_nodes): All referenced nodes should
6705         be enqueued; remove bogues node->needed check.
6706
6707 2010-10-26  Jan Hubicka  <jh@suse.cz>
6708
6709         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
6710         to represent OMP.
6711
6712 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6713
6714         * config/i386/i386.md (split_stack_return): Replace
6715         unspec_volatile with unspec.
6716
6717 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
6718
6719         * doc/install.texi: Fix typo in --with-sysroot description.
6720
6721 2010-10-26  Jan Hubicka  <jh@suse.cz>
6722
6723         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
6724         Use info provided by linker plugin.
6725
6726 2010-10-26  Jason Merrill  <jason@redhat.com>
6727
6728         * varasm.c (constructor_static_from_elts_p): Don't require a
6729         CONSTRUCTOR to have elements to be suitable for static
6730         initialization.  Allow ARRAY_TYPE as well.
6731
6732 2010-10-26  Jan Hubicka  <jh@suse.cz>
6733
6734         PR middle-end/45736
6735         * cgraph.c (cgraph_set_readonly_flag): Rename to...
6736         (cgraph_set_const_flags) ... this one; get also looping argument;
6737         clear constructor/destructor flags.
6738         (cgraph_set_pure_flag): Likewise.
6739         (cgraph_set_looping_const_or_pure_flag): Remove.
6740         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
6741         to optimize away static ctors/dtors; it does not work on inline clones;
6742         external functions can always be rmeoved.
6743         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
6744         inline clones; in LTO external functions always can go.
6745         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
6746         (cgraph_mark_address_taken_node): Assert that we are not taking
6747         address of inline clone.
6748         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
6749         external functions.
6750         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
6751         address taken.
6752         (ipcp_initialize_node_lattices): Only local functions can be
6753         handled without cloning.
6754         * cgraph.h (cgraph_set_readonly_flag,
6755         cgraph_set_looping_const_or_pure_flag): Remove.
6756         (cgraph_set_const_flag): Declare.
6757         (cgraph_set_pure_flag): Update.
6758         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
6759         flags setting code.
6760         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
6761         look at inline clones; fix handling of external definitions.
6762         (cgraph_postorder): Do not look at inline clones in the first pass.
6763         (function_and_variable_visibility): Drop constructors/destructor
6764         flags at pure and const functions.
6765         * tree-profile.c (tree_profiling): Update.
6766         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
6767         address taken; external functions do not account to whole program size.
6768         (cgraph_decide_inlining): Likewise; do not try to inline
6769         functions already inlined.
6770
6771 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6772
6773         * doc/invoke.texi: Improve documentation of
6774         -fstrict-volatile-bitfields.
6775
6776 2010-10-26  Ira Rosen  <irar@il.ibm.com>
6777
6778         PR tree-optimization/46167
6779         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
6780         is basic block for the statement.
6781
6782 2010-10-26  Paul Koning  <ni1d@arrl.net>
6783
6784         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
6785         current definition of struct_real_format.
6786
6787 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6788
6789         PR target/44948
6790         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
6791         (ix86_function_arg_boundary): Always align parameters on stack
6792         in 64bit and align parameters with alignment >= 16byte on stack
6793         in 32bit.  Warn alignment change.
6794
6795 2010-10-26  Ian Lance Taylor  <iant@google.com>
6796
6797         PR middle-end/45687
6798         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
6799         offset.
6800
6801 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
6802
6803         Implement opaque-enum-specifiesr for C++0x
6804         * tree.h (ENUM_IS_OPAQUE): New.
6805         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
6806
6807 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6808
6809         * stor-layout.c (layout_decl): Use the field's type to
6810         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
6811         * config/arm/arm.c (arm_override_options): Default to
6812         -fstrict-volatile-bitfields.
6813
6814 2010-10-25  Paul Koning  <ni1d@arrl.net>
6815
6816         * config/pdp11/pdp11.md: Add define_constants for register
6817         numbers, branch offset limits.
6818         * config/pdp11/pdp11.c: Use named constants instead of numbers.
6819         * config/pdp11.pdp11.h: Ditto.
6820
6821 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6822
6823         * configure.ac: Use $cpu_type instead of $target to define the nop.
6824         * configure: Regenerate.
6825
6826 2010-10-25  Jie Zhang  <jie@codesourcery.com>
6827
6828         * combine.c (try_combine): If insns need to be kept around, check that
6829         they can be copied in the merged instruction.
6830
6831 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6832
6833         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
6834         has been modified.
6835         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
6836         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
6837         it has been modified.
6838
6839 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6840
6841         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
6842
6843 2010-10-24  Paul Koning  <ni1d@arrl.net>
6844
6845         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
6846         * config/pdp11/pdp11.c (output_jump): Ditto.
6847
6848 2010-10-24  Ian Lance Taylor  <iant@google.com>
6849
6850         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
6851
6852 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6853
6854         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
6855         least one insn with a locus corresponding to an edge's goto_locus,
6856         disregard non-fallthru edges to the exit block and merge the blocks
6857         created for the same goto_locus.
6858
6859 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
6860
6861         * gcc.c (n_switches_alloc_debug_check): New.
6862         (set_option_handlers): New.
6863         (process_command): Use set_option_handlers.
6864         (do_self_spec): Pass spec-generated options through option handlers.
6865         (main): Also save and restore n_switches_alloc when swapping
6866         switch arrays.
6867
6868 2010-10-23  Richard Henderson  <rth@redhat.com>
6869
6870         PR target/46144
6871         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6872         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6873         Honor matching operands when splitting to XOR.
6874
6875 2010-10-23  Ian Lance Taylor  <iant@google.com>
6876
6877         * tree-vrp.c (extract_range_from_binary_expr): If
6878         flag_non_call_exceptions don't eliminate division by zero.
6879         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6880
6881 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6882
6883         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6884         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6885         __ORDER_PDP_ENDIAN__.
6886         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6887         (struct DWstruct): Define based on __BYTE_ORDER__.
6888         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6889         (struct INTstruct): Define based on __BYTE_ORDER__.
6890         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6891         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6892         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6893         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6894         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6895         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6896         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6897         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6898         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6899         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6900         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6901         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6902         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6903         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6904         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6905         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6906         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6907         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6908         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6909         * doc/tm.texi: Regenerate.
6910         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
6911         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
6912
6913 2010-10-23  Jie Zhang  <jie@codesourcery.com>
6914
6915         PR rtl-optimization/37360
6916         * config/mips/mips.c (cached_can_issue_more): New local variable.
6917         (mips_sched_reorder_1): New.
6918         (mips_sched_reorder): Use mips_sched_reorder_1.
6919         (mips_sched_reorder2): New.
6920         (mips_variable_issue): Set cached_can_issue_more.
6921         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
6922         instead of mips_sched_reorder.
6923
6924         Revert:
6925         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6926         PR rtl-optimization/37360
6927         * haifa-sched.c (max_issue): Do not assert that we never issue more
6928         insns than issue_rate.  Add comment.
6929
6930 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
6931
6932         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
6933         location info of the expression.
6934
6935 2010-10-22  DJ Delorie  <dj@redhat.com>
6936
6937         * doc/extend.texi (Named Address Spaces): Document the M32C named
6938         address space.
6939
6940         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
6941         __far address space.
6942         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
6943         "__far" address space for R8C and M16C processor variants.
6944         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
6945         (far_addr_space_p): New.
6946         (encode_pattern_1): Add sign and zero extend support.
6947         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
6948         (m32c_extra_constraint_p2): Add SF constraint.
6949         (m32c_legitimate_address_p): Support __far addresses.
6950         (m32c_addr_space_pointer_mode): New.
6951         (m32c_addr_space_address_mode): New.
6952         (m32c_addr_space_legitimate_address_p): New.
6953         (m32c_addr_space_legitimize_address): New.
6954         (m32c_addr_space_subset_p): New.
6955         (m32c_addr_space_convert): New.
6956         (conversions): Add __far operand patterns.
6957         (m32c_prepare_move): Force constants into registers for __far moves.
6958         (m32c_split_move): __far moves are always split.
6959         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
6960         * config/m32c/mov.md (mov<mode>_far_op1): New.
6961         (mov<mode>_far_op2): New.
6962         (movqi_op): Add __far (SF) support.
6963         (movhi_op): Likewise.
6964         (movsi_splittable): Split A1A0 also.
6965
6966 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6967             Andrew Pinski  <pinskia@gmail.com>
6968
6969         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
6970         * doc/extend.texi: New paragraph
6971
6972 2010-10-22  Paul Koning  <ni1d@arrl.net>
6973
6974         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
6975
6976 2010-10-22  DJ Delorie  <dj@redhat.com>
6977
6978         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
6979
6980 2010-10-22  Paul Koning  <ni1d@arrl.net>
6981
6982         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
6983
6984 2010-10-22  Richard Henderson  <rth@redhat.com>
6985
6986         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
6987         cases for __builtin_fma and __builtin_fmaf.
6988
6989 2010-10-22  Richard Henderson  <rth@redhat.com>
6990
6991         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
6992         NEG+USE for vectors as well.
6993         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
6994         and splitter.
6995
6996 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6997
6998         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
6999         SWITCH_CURTAILS_COMPILATION): Remove.
7000         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
7001         * doc/tm.texi: Regenerate.
7002         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
7003
7004 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
7005
7006         * config/i386/bdver1.md: New file.
7007         * config/i386/i386.md (include "bdver1.md"): Invoke the
7008         pipeline description for bdver1.
7009         (x86_sahf_1): Add "bdver1_decode" attribute.
7010         (*cmpfp_i_mixed): Likewise.
7011         (*cmpfp_i_sse): Likewise.
7012         (*cmpfp_i_i387): Likewise.
7013         (*cmpfp_iu_mixed): Likewise.
7014         (*cmpfp_iu_sse): Likewise.
7015         (*cmpfp_iu_387): Likewise.
7016         (*swap<mode>,*swap<mode>_1): Likewise.
7017         (fixuns_trunc<mode>hi2): Likewise.
7018         (fix_trunc<mode>si_sse): Likewise.
7019         (x86_fnstcw_1): Likewise.
7020         (x86_fldcw_1): Likewise.
7021         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
7022         (*floatsi<mode>2_vector_mixed): Likewise.
7023         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
7024         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
7025         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
7026         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
7027         (*floatsi<mode>2_vector_sse): Likewise.
7028         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
7029         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
7030         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
7031         (*mul<mode>3_1): Likewise.
7032         (*mulsi3_1_zext): Likewise.
7033         (*mulhi3_1): Likewise.
7034         (*mulqi3_1): Likewise.
7035         (*<u>mul<mode><dwi>3_1): Likewise.
7036         (*<u>mulqihi3_1): Likewise.
7037         (*<s>muldi3_highpart_1): Likewise.
7038         (*<s>mulsi3_highpart_1): Likewise.
7039         (*<s>mulsi3_highpart_zext): Likewise.
7040         (x86_64_shld): Likewise.
7041         (x86_shld): Likewise.
7042         (x86_64_shrd): Likewise.
7043         (x86_shrd): Likewise.
7044         (sqrtxf2): Likewise.
7045         (sqrt_extend<mode>xf2_i387): Likewise.
7046         (*sqrt<mode>2_sse): Likewise.
7047         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
7048         (sse_cvtsi2ssq): Likewise.
7049         (sse_cvtss2si): Likewise.
7050         (sse_cvtss2si_2): Likewise.
7051         (sse_cvtss2siq): Likewise.
7052         (sse_cvtss2siq_2): Likewise.
7053         (sse_cvttss2si): Likewise.
7054         (sse_cvttss2siq): Likewise.
7055         (sse2_cvtpi2pd): Likewise.
7056         (sse2_cvttpd2pi): Likewise.
7057         (sse2_cvtsi2sd): Likewise.
7058         (sse2_cvtsi2sdq): Likewise.
7059         (sse2_cvtsd2si): Likewise.
7060         (sse2_cvtsd2si_2): Likewise.
7061         (sse2_cvtsd2siq): Likewise.
7062         (sse2_cvtsd2siq_2): Likewise.
7063         (sse2_cvttsd2si): Likewise.
7064         (sse2_cvttsd2siq): Likewise.
7065         (*sse2_cvtpd2dq): Likewise.
7066         (*sse2_cvttpd2dq): Likewise.
7067         (sse2_cvtsd2ss): Likewise.
7068         (sse2_cvtss2sd): Likewise.
7069         (*sse2_cvtpd2ps): Likewise.
7070         (sse2_cvtps2pd): Likewise.
7071
7072 2010-10-22  Richard Guenther  <rguenther@suse.de>
7073
7074         PR middle-end/46137
7075         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
7076         remove the virtual operands if they are not needed.
7077
7078 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
7079
7080         * config/i386/i386.c (processor_costs bdver1_cost): Update
7081         insn costs and architectural parameters for bdver1.
7082
7083 2010-10-22  Richard Guenther  <rguenther@suse.de>
7084
7085         * gimple.h (gimple_register_canonical_type): Declare.
7086         * gimple.c (gimple_canonical_types): New global hashtable.
7087         (struct gimple_type_leader_entry_s): New type.
7088         (gimple_type_leader): New global cache.
7089         (gimple_lookup_type_leader): New function.
7090         (gtc_visit): Query the proper cache.
7091         (gimple_types_compatible_p): Likewise.
7092         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
7093         (gimple_canonical_type_eq): New function.
7094         (gimple_register_canonical_type): Likewise.
7095         (print_gimple_types_stats): Adjust for gimple_canonical_types.
7096         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
7097         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
7098         gimple_types_compatible_p for LTO.
7099
7100 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
7101
7102         PR target/46098
7103         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
7104         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
7105         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
7106         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
7107         (<sse>_movu<ssemodesuffix>): New expander.
7108         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
7109         (avx_movdqu<avxmodesuffix>): New expander.
7110         (*sse2_movdqu): Rename from sse2_movdqu.
7111         (sse2_movdqu): New expander.
7112
7113 2010-10-22  Richard Guenther  <rguenther@suse.de>
7114
7115         PR tree-optimization/45720
7116         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
7117         Handle negative step.
7118         (vect_enhance_data_refs_alignment): Likewise.
7119         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
7120         (vect_create_cond_for_align_checks): Likewise.
7121         (vect_create_cond_for_alias_checks): Likewise.
7122
7123 2010-10-22  Ira Rosen  <irar@il.ibm.com>
7124
7125         PR tree-optimization/46126
7126         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
7127         vectorizable_shift in case of basic block vectorization.
7128
7129 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
7130
7131         * target.h (enum opt_levels, struct default_options): New.
7132         * target.def (handle_ofast): Remove hook.
7133         (target_option.optimization): Change to
7134         target_option.optimization_table.
7135         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
7136         TARGET_OPTION_OPTIMIZATION_TABLE.
7137         (CAN_DEBUG_WITHOUT_FP): Remove.
7138         * doc/tm.texi: Regenerate.
7139         * opts.c (maybe_default_option, maybe_default_options,
7140         default_options_table): New.
7141         (default_options_optimization): Take extra parameters.  Don't
7142         assert that global_options and global_options_set are in use.  Use
7143         maybe_default_options.
7144         (decode_options): Pass extra parameters to
7145         default_options_optimization.
7146         * common.opt (falign-loops): Use value 0 with Var.
7147         (frerun-cse-after-loop, ftree-ter): Remove Init.
7148         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
7149         TARGET_OPTION_OPTIMIZATION): Remove.
7150         * targhooks.c (empty_optimization_table): New.
7151         * targhooks.h (empty_optimization_table): Declare.
7152         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
7153         * config/alpha/alpha.c (alpha_option_optimization_table,
7154         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7155         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
7156         * config/arm/arm.c (arm_option_optimization: Change to
7157         arm_option_optimization_table.
7158         (TARGET_OPTION_OPTIMIZATION): Change to
7159         TARGET_OPTION_OPTIMIZATION_TABLE.
7160         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
7161         * config/avr/avr.c (avr_option_optimization_table,
7162         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7163         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
7164         * config/cris/cris.c (cris_option_optimization): Change to
7165         cris_option_optimization_table.
7166         (TARGET_OPTION_OPTIMIZATION): Change to
7167         TARGET_OPTION_OPTIMIZATION_TABLE.
7168         * config/crx/crx.c (crx_option_optimization): Change to
7169         crx_option_optimization_table.
7170         (TARGET_OPTION_OPTIMIZATION): Change to
7171         TARGET_OPTION_OPTIMIZATION_TABLE.
7172         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
7173         * config/fr30/fr30.c (fr30_option_optimization_table,
7174         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7175         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
7176         * config/frv/frv.c (frv_option_optimization_table,
7177         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7178         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
7179         * config/h8300/h8300.c (h8300_option_optimization): Change to
7180         h8300_option_optimization_table.
7181         (TARGET_OPTION_OPTIMIZATION): Change to
7182         TARGET_OPTION_OPTIMIZATION_TABLE.
7183         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
7184         * config/i386/i386.c (ix86_option_optimization): Change to
7185         ix86_option_optimization_table.
7186         (TARGET_OPTION_OPTIMIZATION): Change to
7187         TARGET_OPTION_OPTIMIZATION_TABLE.
7188         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
7189         as initializer.
7190         * config/ia64/ia64.c (ia64_option_optimization): Change to
7191         ia64_option_optimization_table.
7192         (TARGET_OPTION_OPTIMIZATION): Change to
7193         TARGET_OPTION_OPTIMIZATION_TABLE.
7194         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
7195         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
7196         initializer.
7197         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
7198         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7199         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
7200         * config/lm32/lm32.c (lm32_option_optimization_table,
7201         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7202         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
7203         * config/m32r/m32r.c (m32r_option_optimization): Change to
7204         m32r_option_optimization_table.
7205         (TARGET_OPTION_OPTIMIZATION): Change to
7206         TARGET_OPTION_OPTIMIZATION_TABLE.
7207         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
7208         CAN_DEBUG_WITHOUT_FP): Remove.
7209         * config/mcore/mcore.c (mcore_option_optimization): Change to
7210         mcore_option_optimization_table.
7211         (TARGET_OPTION_OPTIMIZATION): Change to
7212         TARGET_OPTION_OPTIMIZATION_TABLE.
7213         * config/mep/mep.c (mep_option_optimization): Change to
7214         mep_option_optimization_table.
7215         (TARGET_OPTION_OPTIMIZATION): Change to
7216         TARGET_OPTION_OPTIMIZATION_TABLE.
7217         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
7218         * config/microblaze/microblaze.c
7219         (microblaze_option_optimization_table,
7220         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7221         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
7222         * config/mips/mips.c (mips_option_optimization_table,
7223         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7224         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
7225         * config/mmix/mmix.c (mmix_option_optimization): Change to
7226         mmix_option_optimization_table.
7227         (TARGET_OPTION_OPTIMIZATION): Change to
7228         TARGET_OPTION_OPTIMIZATION_TABLE.
7229         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
7230         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
7231         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7232         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
7233         * config/pa/pa.c (pa_option_optimization_table,
7234         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7235         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
7236         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
7237         pdp11_option_optimization_table.
7238         (TARGET_OPTION_OPTIMIZATION): Change to
7239         TARGET_OPTION_OPTIMIZATION_TABLE.
7240         * config/picochip/picochip.c (picochip_option_optimization_table,
7241         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7242         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
7243         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
7244         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7245         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
7246         * config/rx/rx.c (rx_option_optimization_table,
7247         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7248         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
7249         * config/s390/s390.c (s390_option_optimization): Change to
7250         s390_option_optimization_table.
7251         (s390_option_override): Update comment.
7252         (TARGET_OPTION_OPTIMIZATION): Change to
7253         TARGET_OPTION_OPTIMIZATION_TABLE.
7254         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
7255         * config/score/score.c (score_option_optimization_table,
7256         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7257         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
7258         * config/sh/sh.c (sh_option_optimization): Change to
7259         sh_option_optimization_table.
7260         (TARGET_OPTION_OPTIMIZATION): Change to
7261         TARGET_OPTION_OPTIMIZATION_TABLE.
7262         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
7263         (sh_option_override, expand_block_move, multcosts, find_barrier,
7264         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
7265         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
7266         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
7267         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
7268         instead of TARGET_SMALLCODE.
7269         * config/sh/sh.opt (mspace): Make into an alias for -Os.
7270         * config/sparc/sparc.c (sparc_option_optimization_table,
7271         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7272         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
7273         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
7274         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7275         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
7276         * config/v850/v850.c (v850_option_optimization): Change to
7277         v850_option_optimization_table.
7278         (TARGET_OPTION_OPTIMIZATION): Change to
7279         TARGET_OPTION_OPTIMIZATION_TABLE.
7280         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
7281         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
7282         xtensa_option_optimization_table.
7283         (TARGET_OPTION_OPTIMIZATION): Change to
7284         TARGET_OPTION_OPTIMIZATION_TABLE.
7285         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
7286
7287 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
7288
7289         Based on the CFString implementation in FSF apple/trunk branch.
7290
7291         * target.def (objc_construct_string): New Hook.
7292         * doc/tm.texi (objc_construct_string): Document.
7293         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
7294         * config/t-darwin: Amend build rules for darwin.o.
7295         * config/darwin.opt: Add cfstrings flags.
7296         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
7297         (darwin_objc_construct_string): New.
7298         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
7299         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
7300         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
7301         (darwin_fold_builtin): Likewise.
7302         (darwin_build_constant_cfstring): Likewise.
7303         (darwin_objc_construct_string): Likewise.
7304         (darwin_cfstring_p): Likewise.
7305         (darwin_enter_string_into_cfstring_table): Likewise.
7306         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
7307         * config/darwin.c (darwin_running_cxx): New var.
7308         (machopic_select_section): Return cfstring_constant_object_section.
7309         (darwin_override_options): Set darwin_running_cxx.
7310         (add_builtin_field_decl): New.
7311         (darwin_init_cfstring_builtins): New.
7312         (darwin_build_constant_cfstring): New.
7313         (darwin_fold_builtin): New.
7314         (cfstring_hash): New.
7315         (cfstring_eq): New.
7316         (darwin_enter_string_into_cfstring_table): New.
7317         * config/darwin-sections.def (cfstring_constant_object_section): New.
7318         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
7319         (TARGET_OBJC_CONSTRUCT_STRING): Define.
7320
7321 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7322
7323         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
7324         TYPE_STUB_DECL instead of TREE_CHAIN.
7325         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
7326         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
7327         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
7328         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
7329         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
7330         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
7331         Likewise.
7332         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
7333
7334 2010-10-22  Jie Zhang  <jie@codesourcery.com>
7335
7336         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
7337         (copy_blkmode_from_reg): Likewise.
7338         (read_complex_part): Likewise.
7339         (expand_expr_real_1): Calculate packedp and pass it to
7340         extract_bit_field.
7341         * expr.h (extract_bit_field): Update declaration.
7342         * calls.c (store_unaligned_arguments_into_pseudos): Update call
7343         to extract_bit_field.
7344         * expmed.c (extract_fixed_bit_field): Update calls to
7345         extract_fixed_bit_field.
7346         (store_split_bit_field): Likewise.
7347         (extract_bit_field_1): Add new argument packedp.
7348         (extract_bit_field): Add new argument packedp.
7349         (extract_fixed_bit_field): Add new argument packedp and let
7350         packed attribute override volatile.
7351         * stmt.c (expand_return): Update call to extract_bit_field.
7352
7353 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7354
7355         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
7356
7357 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7358
7359         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
7360         of gcc_checking_assert.
7361         * sel-sched.c (code_motion_process_successors): Likewise.
7362
7363 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
7364
7365         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
7366         when stopping because of a different locus on edge or insn.
7367         (try_optimize_cfg): Add comment.
7368         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
7369         block is a forwarder block, propagate locus on the edge.
7370         (cfg_layout_merge_blocks): Likewise.
7371
7372 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
7373
7374         PR target/45946
7375         * config/i386/i386.md (*pushti2): New insn pattern.
7376         (pushti2 splitter): New insn splitter.
7377         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
7378         DWI mode iterator.
7379
7380 2010-10-21  Paul Koning  <ni1d@arrl.net>
7381
7382         * config/pdp11/pdp11-protos.md (arith_operand,
7383         const_immediate_operand, expand_shift_operand,
7384         immediate15_operand): Delete
7385         * config/pdp11/pdp11.c: Ditto.
7386         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
7387         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
7388         EXTRA_CONSTRAINT): Delete.
7389         * config/pdp11/pdp11.md (various): Use standard constraints
7390         instead of removed ones.
7391         * config/pdp11/constraints.md: New file.
7392         * config/pdp11/predicates.md: New file.
7393
7394 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
7395
7396         PR c/45834
7397         * alias.c (true_dependence_1): Remove obsolete check for QImode.
7398         (may_alias_p): Ditto.
7399
7400 2010-10-21  Martin Jambor  <mjambor@suse.cz>
7401
7402         PR tree-optimization/45875
7403         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
7404
7405 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7406
7407         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
7408         variables.
7409         (create_new_def_for): Likewise.
7410
7411 2010-10-21  Nick Clifton  <nickc@redhat.com>
7412
7413         * config/mn10300/mn10300.c: Fold code to 80-character width.
7414         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7415         MEM, CONST_INT and CONST_DOUBLE.
7416         (targetm): Move initialization to end of file.
7417         (print_operand): Rename to mn10300_print_operand.
7418         (print_operand_address): Rename to mn10300_print_operand_address.
7419         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
7420         (expand_prologue): Rename to mn10300_expand_prologue.
7421         (expand_epilogue): Rename to mn10300_expand_epilogue.
7422         (initial_offset): Rename to mn10300_initial_offset.
7423         (function_arg): Rename to mn10300_function_arg.
7424         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
7425         (symbolic_operand): Rename to mn10300_symbolic_operand.
7426         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
7427         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
7428         * config/mn10300/mn10300-protos.h: Update prototypes.
7429         * config/mn10300/mn10300.h: Fold code to 80-character width.
7430         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7431         MEM, CONST_INT and CONST_DOUBLE.
7432         (CPP_SPEC): Move to...
7433         (TARGET_CPU_CPP_BUILTINS): ... here.
7434         * config/mn10300/mn10300.md: Fold code to 80-character width.
7435         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7436         MEM, CONST_INT and CONST_DOUBLE.
7437
7438 2010-10-21  Ira Rosen  <irar@il.ibm.com>
7439
7440         PR tree-optimization/46049
7441         PR tree-optimization/46052
7442         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
7443         (vect_get_slp_defs): Add arguments.
7444         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
7445         operands to vect_get_slp_defs.
7446         (vectorizable_reduction): Fix comment, pass scalar operands to
7447         vect_get_slp_defs.
7448         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
7449         type to determine number of units in the created vector.
7450         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
7451         (vectorizable_conversion): Fix comment.
7452         (vectorizable_shift): New function.
7453         (vectorizable_operation): Move code that handles shifts to
7454         vectorizable_shift.
7455         (vectorizable_type_demotion): Fix comment, pass scalar operands to
7456         vect_get_slp_defs.
7457         (vectorizable_type_promotion, vectorizable_store): Likewise.
7458         (vectorizable_condition): Fix comment.
7459         (vect_analyze_stmt): Call vectorizable_shift.
7460         (vect_transform_stmt): Likewise.
7461         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
7462         Use it as the operand to create vectors for, except reduction
7463         initial definition and store.  Use operands type.
7464         (vect_get_slp_defs): Add new arguments.  Pass them to
7465          vect_get_constant_vectors.
7466
7467 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7468
7469         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
7470         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
7471         * cfghooks.c (fixup_reorder_chain): Likewise.
7472         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
7473         * cgraph.c (cgraph_add_thunk): Likewise.
7474         (cgraph_create_edge_1): Likewise.
7475         (cgraph_create_virtual_clone): Likewise.
7476         * ddg.c (add_cross_iteration_register_deps): Likewise.
7477         * dwarf2out.c (modified_type_die): Likewise.
7478         * emit-rtl.c (set_mem_alias_set): Likewise.
7479         * ggc-zone.c (zone_allocate_marks): Likewise.
7480         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
7481         * gimple.c (iterative_hash_gimple_type): Likewise.
7482         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
7483         (create_single_exit_edge): Likewise.
7484         * haifa-sched.c (choose_ready): Likewise.
7485         * lto-streamer-in.c (input_gimple_stmt): Likewise.
7486         * passes.c (execute_todo): Likewise.
7487         * sched-ebb.c (begin_schedule_ready): Likewise.
7488         * sel-sched.c (code_motion_process_successors): Likewise.
7489         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
7490         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
7491         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
7492         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
7493         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
7494         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
7495         (ssa_conflicts_add): Likewise.
7496         * tree-ssa-copy.c (replace_exp): Likewise.
7497         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
7498         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
7499         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
7500         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
7501         (compute_antic): Likewise.
7502         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
7503         (add_dependence): Likewise.
7504         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
7505         * tree-vrp.c (supports_overflow_infinity): Likewise.
7506         (make_overflow_infinity, negative_overflow_infinity): Likewise.
7507         (avoid_overflow_infinity, register_new_assert_for): Likewise.
7508         (process_assert_insertions_for): Likewise.
7509         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
7510         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
7511         (intersect_loc_chains, variable_merge_over_cur): Likewise.
7512
7513 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7514
7515         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
7516         * reload1.c (has_nonexceptional_receiver): Likewise.
7517         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
7518         (create_new_def_for): Likewise.
7519         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
7520         (merge_phi_nodes): Likewise.
7521         (has_abnormal_incoming_edge_p): Delete.
7522
7523 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7524
7525         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
7526
7527 2010-10-21  Richard Guenther  <rguenther@suse.de>
7528             Michael Matz  <matz@suse.de>
7529
7530         PR tree-optimization/45764
7531         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7532         Adjust initial misalignment for negative DR_STEP.
7533         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
7534         do not have the same alignment over the whole iteration domain.
7535
7536 2010-10-21  Richard Guenther  <rguenther@suse.de>
7537
7538         PR tree-optimization/46111
7539         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
7540
7541 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7542
7543         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
7544
7545 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7546
7547         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
7548         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
7549
7550 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7551
7552         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
7553         signal_frame.
7554         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
7555
7556 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7557
7558         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
7559         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
7560
7561 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
7562
7563         * basic-block.h (find_fallthru_edge): Define.
7564         * cfgcleanup.c (merge_blocks_move): Use it.
7565         (try_crossjump_bb): Likewise.
7566         * cfglayout.c (fixup_reorder_chains): Likewise.
7567         (fixup_fallthru_exit_predecessor): Likewise.
7568         * cfgrtl.c (rtl_split_edge): Likewise.
7569         (rtl_verify_flow_info): Likewise.
7570         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7571         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
7572         * ifcvt.c (block_fallthru): Likewise.
7573         * reload1.c (fixup_abnormal_edges): Likewise.
7574         * sched-ebb.c (being_schedule_ready): Likewise.
7575         (schedule_ebb): Likwise.
7576         * sched-rgn.c (find_single_block_region): Likewise.
7577         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
7578         * tree-complex.c (expand_complex_move): Likewise.
7579         * sched-int.h (find_fallthru_edge): Rename to...
7580         (find_fallthru_edge_from): ...this.
7581         * haifa-sched.c (find_fallthru_edge): Rename to...
7582         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
7583         (init_before_recovery): Call find_fallthru_edge_from.
7584         * sel-sched-ir.c (merge_fences): Likewise.
7585         * sel-sched.c (in_fallthru_bb_p): Likewise.
7586         (move_cond_jump): Likewise.
7587
7588 2010-10-20  Paul Koning  <ni1d@arrl.net>
7589
7590         * config/pdp11/pdp11.md (various): Fix conditions on a number of
7591         insn to check for target 11/40 or higher.
7592
7593 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7594
7595         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
7596         bool instead of a tree.
7597         (c_parser_objc_method_decl): Added bool argument.  Updated call to
7598         objc_build_method_signature.
7599         (c_parser_objc_method_definition): Do not call
7600         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
7601         c_parser_objc_method_decl and objc_start_method_definition.
7602         (c_parser_objc_methodproto): Do not call objc_set_method_type.
7603         Updated calls to c_parser_objc_method_type,
7604         c_parser_objc_method_decl and objc_add_method_declaration.
7605
7606 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
7607
7608         PR tree-optimization/45919
7609         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
7610         array members.
7611
7612         PR tree-optimization/46066
7613         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
7614         instead of gsi_last_bb.
7615
7616 2010-10-20  DJ Delorie  <dj@redhat.com>
7617
7618         * config/m32c/m32c.c (m32c_option_override): Always disable
7619         function-cse in 16-bit mode.  Indirect calls are always worse than
7620         direct calls as there is no 16-bit indirect call opcode.
7621         (m32c_override_options_after_change): New, likewise.
7622
7623 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
7624
7625         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
7626         emitting the conditional move in the inner mode of the SUBREG.
7627
7628 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
7629
7630         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
7631         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
7632         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7633         (ia64_preferred_reload_class): Make static.  Change rclass argument
7634         and result types from enum reg_class to reg_class_t.
7635
7636 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
7637
7638         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
7639         call for single operand expression.
7640
7641 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
7642
7643         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
7644         if there is a call statement to pure or const function in the block.
7645
7646 2010-10-20  Paul Koning  <pkoning@equallogic.com>
7647
7648         Fix several build errors for pdp11 target.
7649         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
7650         (cbranchdf4): Conditional on TARGET_FPU.
7651         (movdf): Ditto; correct alternatives check.
7652         (movmemhi): Fix predicate and constraint.
7653         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
7654
7655 2010-10-20  Richard Guenther  <rguenther@suse.de>
7656
7657         PR lto/45667
7658         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
7659         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
7660         (verify_gimple_assign_single): Disable ADDR_EXPR type check
7661         when in LTO.
7662
7663 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
7664
7665         PR fortran/42169
7666         * ira-emit.c (store_can_be_removed_p): Return false instead of
7667         gcc_unreachable.
7668
7669 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
7670
7671         * fold-const.c (fold_binary_loc): New transformation.
7672
7673 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
7674
7675         PR target/46085
7676         * config/i386/sse.md (reduc_splus_v8sf): Updated.
7677         (reduc_splus_v4df): Likewise.
7678
7679 2010-10-20  Richard Guenther  <rguenther@suse.de>
7680
7681         PR tree-optimization/45860
7682         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
7683         conditional store replacement for non-register type stores.
7684
7685 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
7686
7687         * stor-layout.c (skip_simple_constant_arithmetic): New function.
7688         (self_referential_size): Use it instead of skip_simple_arithmetic.
7689
7690 2010-10-20  Olivier Hainque  <hainque@adacore.com>
7691
7692         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
7693         If the current function calls eh_return, claim live all registers
7694         that we need to check for liveness otherwise.
7695
7696 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7697
7698         * c-decl.c (c_write_global_declarations): Call
7699         objc_write_global_declarations when compiling Objective-C.
7700         * c-lang.c (finish_file): Removed.
7701
7702 2010-10-19  DJ Delorie  <dj@redhat.com>
7703
7704         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
7705         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
7706         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
7707         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
7708         * doc/tm.texi: Regenerate.
7709         * targhooks.h (default_label_align_after_barrier_max_skip,
7710         default_loop_align_max_skip, default_label_align_max_skip,
7711         default_jump_align_max_skip): Declare.
7712         * target.def (label_align_after_barrier_max_skip): New.
7713         (loop_align_max_skip): New.
7714         (label_align_max_skip): New.
7715         (jump_align_max_skip): New.
7716         * system.h (poison): Add those macros to the list.
7717         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
7718         (LOOP_ALIGN_MAX_SKIP): Remove.
7719         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
7720         (JUMP_ALIGN_MAX_SKIP): Remove.
7721         (default_label_align_after_barrier_max_skip): New.
7722         (default_loop_align_max_skip): New.
7723         (default_label_align_max_skip): New.
7724         (default_jump_align_max_skip): New.
7725         (compute_alignments): Use the new hooks.
7726         (shorten_branches): Likewise.
7727
7728 2010-10-19  Richard Henderson  <rth@redhat.com>
7729
7730         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
7731         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
7732         (fma4i_fmadd_<mode>): New.
7733         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
7734         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
7735         standard fma patterns.
7736         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
7737         enable for FMA.
7738         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7739         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7740         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
7741
7742 2010-10-19  Paul Koning  <pkoning@equallogic.com>
7743
7744         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
7745         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
7746
7747 2010-10-19  Richard Henderson  <rth@redhat.com>
7748
7749         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
7750         (fmadf4, *fmsdf4, *nfmadf4): New.
7751         (fmaxf4, *fmsxf4, *nfmaxf4): New.
7752
7753 2010-10-19  Michael Eager  <eager@eagercon.com>
7754
7755         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
7756         Use sjlj unwind info for exceptions.
7757
7758 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
7759
7760         PR fortran/43414
7761         * dwarf2out.c (add_calling_convention_attribute): Flag main
7762         Fortran subroutine with DW_AT_main_subprogram.
7763
7764 2010-10-19  Nick Clifton  <nickc@redhat.com>
7765
7766         * config/rx/rx.c (rx_function_value): Small integer types are
7767         promoted to SImode.
7768         (rx_promote_function_mode): New function.
7769         (TARGET_PROMOTE_FUNCTION_MODE): Define.
7770
7771 2010-10-19  Nick Clifton  <nickc@redhat.com>
7772
7773         * config/mep/mep.c (mep_print_operand): Use
7774         targetm.strip_name_encoding.
7775         (mep_output_aligned_common): Likewise.
7776
7777 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
7778
7779         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
7780
7781 2010-10-18  Richard Henderson  <rth@redhat.com>
7782
7783         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
7784         (fma (neg a) (neg b) c) and (fma a (neg b) c).
7785
7786 2010-10-18  Richard Henderson  <rth@redhat.com>
7787
7788         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
7789         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
7790         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
7791         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
7792         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
7793         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
7794         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
7795         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
7796         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
7797         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
7798         (bdesc_multi_arg): Remove the corresponding builtins.
7799         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
7800         (UNSPEC_FMA4_FMSUBADD): Remove.
7801         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
7802         * config/i386/sse.md (FMA4MODEF4): Remove.
7803         (FMAMODE): Add.
7804         (fma<mode>4): New expander.
7805         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
7806         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
7807         (*fma4i_fmsub_<mode>): Similarly.
7808         (*fma4i_fnmadd_<mode>): Similarly.
7809         (*fma4i_fnmsub_<mode>): Similarly.
7810         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
7811         with the first operand.
7812         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
7813         of explicit arithmetic.  Macroize with AVXMODEF2P.
7814         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
7815         (xop_frcz<mode>2): Macroize with FMAMODE.
7816         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
7817         the first operand.
7818         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
7819         extra negations.
7820         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
7821         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
7822         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
7823         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
7824         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
7825         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
7826         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
7827         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
7828
7829 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
7830
7831         PR rtl-optimization/45966
7832         * combine.c (try_combine): If added_sets_2, deal with the case
7833         where i0 feeds i1 and i1 feeds i2.
7834
7835 2010-10-18  Jan Hubicka  <jh@suse.cz>
7836
7837         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
7838         preserve flags before trying to guess on visibility.
7839         (varpool_externally_visible_p): New function.
7840         (function_and_variable_visibility): Use it.
7841
7842 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7843
7844         Implemented parsing @synthesize and @dynamic for Objective-C.
7845         * c-parser.c (c_parser_external_declaration): Recognize
7846         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
7847         (c_parser_objc_at_synthesize_declaration): New.
7848         (c_parser_objc_at_dynamic_declaration): New.
7849
7850 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7851
7852         * c-parser.c (c_parser_objc_class_declaration): After finding an
7853         error, parse the whole declaration then reset parser->error.
7854
7855 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7856
7857         PR target/46041
7858         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
7859         * builtins.c (mode_has_fma): Ditto.
7860
7861 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
7862
7863         PR target/36898
7864         PR middle-end/43760
7865         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
7866
7867 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
7868
7869         * config/i386/i386.c (ix86_option_override_internal): Define and
7870         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7871         default.
7872         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7873         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7874
7875 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7876
7877         Merge from 'apple/trunk' branch on FSF servers.
7878         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7879         following Objective-C change:
7880
7881         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7882
7883         Radar 4301047
7884         * c-parse.in (objc_quals): Build objc qualifier list same way
7885         as gcc-3.3
7886
7887 2010-10-18  Jan Hubicka  <jh@suse.cz>
7888
7889         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7890         function_and_variable_visibility): Revert accidental commit.
7891
7892 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7893
7894         Merge from 'apple/trunk' branch on FSF servers.
7895         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7896         the following Objective-C change:
7897
7898         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7899
7900         Radar 4204796
7901         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7902         'volatilized' type used in a typeof operator.
7903
7904 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7905
7906         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7907         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7908         rewrite modelled on gimple_purge_dead_eh_edges.
7909         (gimple_purge_all_dead_abnormal_call_edges): New function.
7910         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
7911         directly instead of through gimple_purge_dead_abnormal_call_edges.
7912         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
7913         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
7914         removed AB side-effects from one of its statements.
7915         (init_pre): Initialize need_ab_cleanup.
7916         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
7917         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
7918
7919 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7920
7921         PR c/46015
7922         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
7923         on computed goto argument.
7924
7925 2010-10-18  Richard Guenther  <rguenther@suse.de>
7926
7927         PR tree-optimization/45967
7928         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
7929         (could_have_pointers): Likewise.
7930         (handle_rhs_call, handle_const_call, handle_pure_call,
7931         find_func_aliases, intra_create_variable_infos): Remove calls to them.
7932         (struct fieldoff): Add must_have_pointers field.
7933         (type_must_have_pointers): New function.
7934         (field_must_have_pointers): Likewise.
7935         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
7936         Adjust field merging.
7937         (create_function_info_for): May-have-pointers of varinfo is
7938         almost always true.
7939         (create_variable_info_for_1): Likewise.
7940
7941 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
7942
7943         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
7944         of operands to vec_concat.
7945
7946 2010-10-18  Richard Guenther  <rguenther@suse.de>
7947
7948         PR lto/44950
7949         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
7950         also clear references to entries of it.
7951
7952 2010-10-18  Andi Kleen  <ak@linux.intel.com>
7953
7954         PR other/43448
7955         * gccbug.in: Remove.
7956         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
7957         (doc, distclean, install-common): Remove reference to gccbug.
7958         * configure: Regenerate.
7959         * configure.ac (all_outputs): Remove gccbug.
7960         * doc/configfiles.texi: Remove references to gccbug.
7961         * doc/sourcebuild.texi: Dito.
7962
7963 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7964
7965         PR middle-end/46019
7966         * fold-const.c (fold_binary_loc): If integer_pow2p has
7967         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
7968
7969 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7970             Jeremie Salvucci  <jeremie.salvucci@free.fr>
7971
7972         * gengtype.c (verbosity_level): Add variable.
7973         (set_gc_used): Count variables for verbosity.
7974         (close_output_files): Backing up files, counting written ones
7975         verbosily.
7976         (write_types): Count emitted functions for verbosity. Added
7977         debug messages.
7978         (write_enum_defn): Count structures for verbosity. Added debug
7979         messages.
7980         (gengtype_long_options): Add "verbose" & "backupdir".
7981         (print_usage): Ditto.
7982         (main): Verbose display of parsed files.
7983
7984         * gengtype.h (verbosity_level): Add declaration.
7985
7986 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7987
7988         * gengtype.c (parse_program_options): Add allocation of
7989         plugin_files, and correct test on nb_plugin_files.
7990
7991 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7992
7993         Merge from 'apple/trunk' branch on FSF servers.
7994
7995         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7996
7997         Radar 4133425
7998         * c-decl.c (undeclared_variable): Issue diagnostic on
7999         private 'ivar' access.
8000
8001 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
8002
8003         PR target/46051
8004         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
8005         generated sequence to match *avx_vperm2f128<mode>_nozero.
8006         (vec_interleave_lowv4df): Ditto.
8007         (vec_interleave_highv8sf): Ditto.
8008         (vec_interleave_lowv8sf): Ditto.
8009
8010 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
8011
8012         * libgcov.c (create_file_directory): Enable it for win32 case.
8013         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
8014         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
8015         (GCOV_PREFIX_SKIP): Likewise.
8016
8017 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8018
8019         * doc/objc.texi (GNU Objective-C runtime API): New section.
8020         (Modern GNU Objective-C runtime API): New section.
8021         (Traditional GNU Objective-C runtime API): New section.
8022         (Executing code before main): Mention that this section is
8023         specific to the GNU Objective-C runtime.
8024         (Garbage Collection): Same.
8025
8026 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
8027
8028         * c-parser.c (c_parser_for_statement): Move initialization of
8029         cond and incr before if.
8030
8031 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
8032
8033         * target.def (preferred_output_reload_class): New hook.
8034         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
8035         * doc/tm.texi: Regenerate.
8036         * targhooks.c (default_preferred_output_reload_class): New function.
8037         * targhooks.h (default_preferred_output_reload_class): Declare.
8038         * reload.c (find_dummy_reload): Change rclass argument type from
8039         enum reg_class to reg_class_t. Change this_alternative array type
8040         from enum reg_class to reg_class_t.
8041         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
8042         (push_reload): Change preferred_class variable type to reg_class_t.
8043         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
8044         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
8045         argument type from enum reg_class to reg_class_t. Use
8046         HARD_REGISTER_NUM_P predicate.
8047         * recog.h (reg_fits_class_p): Update prototype.
8048
8049         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
8050         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
8051         Remove.
8052         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
8053         static. Change regclass argument and result types from enum reg_class
8054         to reg_class_t.
8055         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
8056
8057 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
8058
8059         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
8060         visibility enum, and handle @package.
8061
8062 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8063
8064         * doc/objc.texi (What you can and what you cannot do in +load):
8065         Document that sending messages to constant string objects in +load
8066         is not guaranteed to work.
8067
8068 2010-10-16  Jan Hubicka  <jh@suse.cz>
8069
8070         PR middle-end/44206
8071         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
8072         existence of refrences before removing the function.
8073
8074 2010-10-16  Jan Hubicka  <jh@suse.cz>
8075
8076         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
8077         only_called_at_startup and only_called_at_exit.
8078         (cgraph_propagate_frequency): Compute only_called_at_startup and
8079         only_called_at_exit.
8080         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
8081         only_called_at_exit.
8082         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
8083         flags.
8084         * predict.c (compute_function_frequency): Initialize the new flags.
8085
8086 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
8087
8088         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
8089         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
8090         on the bounds of its domain.
8091         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
8092
8093 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
8094
8095         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
8096         * config/avr/avr-protos.h (preferred_reload_class): Remove.
8097         * config/avr/avr.c (preferred_reload_class): Remove.
8098         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
8099         * config/pa/pa.c (emit_move_sequence): Update comment
8100         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
8101         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
8102         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
8103         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
8104         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
8105         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
8106         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
8107         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
8108         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
8109         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
8110         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
8111         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
8112         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
8113
8114 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
8115
8116         * opts.c (set_fast_math_flags,
8117         set_unsafe_math_optimizations_flags): Make static.
8118         * toplev.h (set_fast_math_flags,
8119         set_unsafe_math_optimizations_flags): Remove prototypes.
8120
8121 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
8122
8123         * config/arm/arm.c (arm_option_optimization): Set
8124         flag_section_anchors to 1 not 2.
8125         * config/i386/i386.c (ix86_option_override_internal): Check
8126         global_options_set.x_flag_zee and
8127         global_options_set.x_flag_omit_frame_pointer.
8128         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
8129         flag_zee to 2.
8130         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
8131         global_options_set.x_flag_omit_frame_pointer.
8132         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
8133         opts->x_flag_section_anchors to 1 not 2.
8134         * config/sh/sh.c (sh_option_optimization): Don't set
8135         flag_schedule_insns to 2.
8136         (sh_option_override): Check
8137         global_options_set.x_flag_schedule_insns.
8138         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
8139
8140 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
8141
8142         * configure.ac: Make sure inhibit_libc remains false for mingw targets
8143         as cross.
8144         * configure: Regenerated.
8145
8146 2010-10-15  Xinliang David Li  <davidxl@google.com>
8147
8148         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
8149         function.
8150         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
8151         into a recursive function.
8152
8153 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
8154
8155         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
8156         (*movdfcc_1): ditto.
8157
8158 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8159
8160         * target.def (target_option.init_struct): New hook.
8161         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
8162         * doc/tm.texi: Regenerate.
8163         * hooks.c (hook_void_gcc_optionsp): New.
8164         * hooks.h (hook_void_gcc_optionsp): Declare.
8165         * langhooks-def.h (lhd_init_options_struct): Remove.
8166         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
8167         * langhooks.c (lhd_init_options_struct): Remove.
8168         * opts.c (init_options_struct): Also call
8169         targetm.target_option.init_struct.
8170         * config/i386/i386.c (ix86_option_init_struct,
8171         TARGET_OPTION_INIT_STRUCT): New.
8172         (ix86_option_optimization): Move some settings to
8173         ix86_option_init_struct.
8174         * config/pdp11/pdp11.c (pdp11_option_init_struct,
8175         TARGET_OPTION_INIT_STRUCT): New.
8176         (pdp11_option_optimization): Move some settings to
8177         pdp11_option_init_struct.
8178         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
8179         rs6000_option_init_struct.  Use options structure pointer.
8180         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
8181         * config/s390/s390.c (s390_option_init_struct,
8182         TARGET_OPTION_INIT_STRUCT): New.
8183         (s390_option_optimization): Don't set
8184         flag_asynchronous_unwind_tables here.
8185         * config/sh/sh.c (sh_option_init_struct,
8186         TARGET_OPTION_INIT_STRUCT): New.
8187         (sh_option_optimization): Don't set flag_finite_math_only here.
8188         * config/spu/spu.c (spu_option_optimization): Replace by
8189         spu_option_optimization.  Use options structure pointer.
8190         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
8191
8192 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8193
8194         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
8195
8196         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
8197         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
8198         (Standard names): Document fma.
8199
8200         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
8201         __FP_FAST_FMAF, __FP_FAST_FMAL.
8202
8203         * builitns.c (expand_builtin_mathfn_ternary): New function for
8204         expanding ternary math functions, like fma.
8205         (expand_builtin): Call it for the fma builtins.
8206
8207         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
8208         ops at present.
8209
8210         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
8211         vectorizable functions to support vectorizing fma.
8212
8213         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
8214         Handle fma builtins.
8215
8216         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
8217         (UNSPEC_VSX_MSUB): Ditto.
8218         (UNSPEC_VSX_NMADD): Ditto.
8219         (UNSPEC_VSX_NMSUB): Ditto.
8220         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
8221         of UNSPEC. Renumber combiner patterns.
8222         (vsx_fmsub<mode>4*): Ditto.
8223         (vsx_fnmadd<mode>4*): Ditto.
8224         (vsx_fnmsub<mode>4*): Ditto.
8225
8226         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
8227         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
8228         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
8229         (altivec_vmaddfp_1): Ditto.
8230         (altivec_vmaddfp_2): Ditto.
8231         (atlivec_mulv4sf3): Ditto.
8232         (altivec_vnmsubfp): Ditto.
8233         (altivec_vnmsubfp_1): Ditto.
8234         (altivec_vnmsubfp_2): Ditto.
8235         (altivec_vnmsubfp_3): Delete.
8236
8237         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
8238         (fmasf4_fpr): Ditto.
8239         (fmssf4_fpr): Ditto.
8240         (fnmasf4_fpr): Ditto.
8241         (fnmssf4_fpr): Ditto.
8242         (fmadf4): Ditto.
8243         (fmadf4_fpr): Ditto.
8244         (fmsdf4_fpr): Ditto.
8245         (fnmadf4_fpr): Ditto.
8246         (fnmsdf4_fpr): Ditto.
8247
8248         * optabs.h (OTI_fma): Add fma optab.
8249         (fma_optab): Ditto.
8250
8251         * genopinit.c (optabs): Set fma optab.
8252
8253         * rtl.def (FMA): Add FMA rtl.
8254
8255         * tree.h (mode_has_fma): New function to return if MODE supports a
8256         fast multiply and add instruction.
8257         * builtins.c (mode_has_fma): Ditto.
8258
8259 2010-10-15  Jan Hubicka  <jh@suse.cz>
8260
8261         * lto-streamer-out.c (write_symbol): Use pointer set of seen
8262         objects instead of bitmap.
8263         (produce_symtab): Likewise; output defined symbols first.
8264
8265 2010-10-15  Jie Zhang  <jie@codesourcery.com>
8266
8267         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
8268         Option Summary and Index.
8269
8270 2010-10-15  Richard Guenther  <rguenther@suse.de>
8271
8272         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
8273         for automatic variables again.
8274
8275 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8276
8277         * doc/extend.texi (Variable Length): Don't refer to VLAs not
8278         conforming to C99.
8279
8280 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8281
8282         * config/rx/rx.c (rx_option_optimization): Change to
8283         rx_override_options_after_change.  Don't change
8284         flag_lto_compression_level.  Don't check for changes to whether
8285         FPU instructions can be used.  Check and set only
8286         flag_finite_math_only, not other fast-math flags.
8287         (rx_option_override): Call rx_override_options_after_change.
8288         (TARGET_OPTION_OPTIMIZATION): Remove.
8289         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
8290
8291 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8292
8293         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
8294         disable section anchors for lang_hooks.name[4] != 'O'.
8295
8296 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8297
8298         * config/frv/frv.c (frv_option_optimization,
8299         TARGET_OPTION_OPTIMIZATION): Remove.
8300         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
8301
8302 2010-10-15  Michael Matz  <matz@suse.de>
8303
8304         * cgraphunit.c (clone_of_p): Define unconditionally.
8305
8306 2010-10-15  Richard Guenther  <rguenther@suse.de>
8307
8308         PR lto/45957
8309         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
8310
8311 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
8312
8313         * ifcvt.c (find_active_insn_before): New function.
8314         (find_active_insn_after): New function.
8315         (cond_exec_process_if_block): Use new functions to replace
8316         prev_active_insn() and next_active_insn().
8317
8318 2010-10-14  Yao Qi  <yao@codesourcery.com>
8319
8320         PR target/45447
8321         * config/arm/arm.c (arm_build_builtin_va_list): Assign
8322         va_list_name to TYPE_STUB_DECL (va_list_type).
8323
8324 2010-10-14  Jan Hubicka  <jh@suse.cz>
8325
8326         PR middle-end/45621
8327         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
8328         redirected to clone, be happy.
8329         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
8330         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
8331         former_clone_of unconditionally.
8332
8333 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
8334
8335         Merge from FSF apple 'trunk' branch.
8336         2006 Fariborz Jahanian  <fjahanian@apple.com>
8337
8338         Radars 4436866, 4505126, 4506903, 4517826
8339         * c-parser.c (c_parser, objc_property_attr_context) New flag.
8340         (c_lex_one_token): Handle property attributes.
8341         (c_parser_external_declaration): Handle @property.
8342         (c_parser_declaration_or_fndef): Warn on invalid attributes before
8343         @alias, @class, @end and @property objc keywords.
8344         (c_parser_objc_methodprotolist): Handle @property.
8345         (c_parser_objc_property_attrlist): New.
8346         (c_parser_objc_at_property): New.
8347         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
8348         (build_modify_expr): Likewise.
8349
8350 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
8351
8352         PR tree-optimization/46008
8353         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
8354
8355 2010-10-14  Richard Guenther  <rguenther@suse.de>
8356
8357         PR tree-optimization/44913
8358         * tree-data-ref.c (disjoint_objects_p): Remove.
8359         (dr_may_alias_p): Simplify.  Only hand the base object to
8360         the alias-oracle.
8361         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
8362         some more trees, bail out instead of asserting.
8363         (ptr_derefs_may_alias_p): Likewise.  Export.
8364         (refs_may_alias_p_1): Handle STRING_CSTs.
8365         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
8366
8367 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
8368
8369         PR c/45969
8370         * c-typeck.c (build_binary_op): Don't try to compute a semantic
8371         type with excess precision for boolean operations.
8372
8373 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
8374             Basile Starynkevitch  <basile@starynkevitch.net>
8375
8376         * gengtype.c:  Include getopt.h and version.h.
8377
8378         (lang_bitmap, struct outf, outf_p)
8379         (get_output_file_with_visibility, oprintf): Definitions moved to
8380         gengtype.h
8381         (output_files, header_file, srcdir, srcdir_len, this_file)
8382         (do_dump): No more static variables.
8383         (do_debug): New.
8384         (dbgprint_count_type_at): Added new function.
8385         (gengtype_long_options): New.
8386         (print_usage, print_version, parse_program_options): New.
8387         (main): Call parse_program_options, and removed old option
8388         handling code.  Added some debug output.
8389
8390         * gengtype.h:  Updated copyright year.
8391         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
8392         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
8393         Moved from gengtype.c to here.
8394         (do_debug, read_state_filename, write_state_filename): New variables.
8395         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
8396
8397         * Makefile.in:
8398         (REVISION): Always defined.
8399         (version.o): Removed ifdef REVISION_c.
8400         (s-gtype): Pass arguments to build/gengtype program.
8401         (build/version.o): Added building rule.
8402         (build/gengtype$(build_exeext)): Added build/version.o.
8403
8404 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
8405
8406         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
8407         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
8408         __strong macros.
8409
8410 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
8411
8412         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
8413         may_trap_or_fault_p instead of may_trap_p predicate.
8414         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
8415         (substitute_placeholder_in_expr): Likewise.
8416         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
8417         flag on MEM_REF nodes.
8418         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
8419         flags on INDIRECT_REF nodes.
8420
8421 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
8422
8423         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
8424         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
8425         (arm*-*-eabi*) <tm_file>: Likewise.
8426         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
8427         (frv-*-*linux*) <tm_file>: Likewise.
8428         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
8429         and associated helper macros.
8430         * config/frv/frv-abi.h: Delete.
8431
8432 2010-10-14  Richard Guenther  <rguenther@suse.de>
8433
8434         PR lto/44561
8435         * tree.def (NULLPTR_TYPE): New tree code.
8436         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
8437         * dwarf2out.c (is_base_type): Likewise.
8438         (gen_type_die_with_usage): Likewise.
8439         * sdbout.c (plain_type_1): Likewise.
8440         * tree.c (build_int_cst_wide): Likewise.
8441         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
8442
8443 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
8444
8445         * params.c (params_finished): New.
8446         (add_params): Assert !params_finished.
8447         (finish_params): New.
8448         (set_param_value_internal): Take params and params_set
8449         parameters.  Assert params_finished.
8450         (set_param_value, maybe_set_param_value): Take params and
8451         params_set parameters.  Update calls to set_param_value_internal.
8452         (set_default_param_value): Assert !params_finished.  Don't use
8453         set_param_value_internal.
8454         (default_param_value, init_param_values): New.
8455         * params.h (struct param_info): Change value to default_value.
8456         Remove set.
8457         (set_param_value, maybe_set_param_value): Add params and
8458         params_set parameters.
8459         (PARAM_VALUE): Get parameters from global_options.
8460         (PARAM_SET_P): Remove.
8461         (finish_params, default_param_value, init_param_values): New.
8462         * common.opt (param_values): New Variable.
8463         * config/arm/arm.c (arm_option_override): Pass extra arguments to
8464         maybe_set_param_value.
8465         * config/i386/i386.c (ix86_option_override_internal): Pass extra
8466         arguments to maybe_set_param_value.
8467         * config/picochip/picochip.c (picochip_option_override): Pass
8468         extra arguments to maybe_set_param_value.
8469         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
8470         extra arguments to maybe_set_param_value.
8471         * config/s390/s390.c (s390_option_override): Use
8472         maybe_set_param_value instead of set_param_value.  Pass extra
8473         arguments to maybe_set_param_value.
8474         * config/sparc/sparc.c (sparc_option_override): Pass extra
8475         arguments to maybe_set_param_value.
8476         * config/spu/spu.c (spu_option_override): Pass extra arguments to
8477         maybe_set_param_value.
8478         * opts.c (handle_param): Take opts and opts_set parameters.
8479         Update call to set_param_value.
8480         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
8481         initial_loop_invariant_max_bbs_in_loop): Remove.
8482         (init_options_once): Don't set them.
8483         (init_options_struct): Initialize parameters structures.
8484         (default_options_optimization): Use default_param_value when
8485         restoring defaults.  Update calls to maybe_set_param_value.
8486         (finish_options): Update calls to maybe_set_param_value.
8487         (common_handle_option): Update calls to handle_param and
8488         set_param_value.
8489         * toplev.c (DEFPARAM): Update definition for changes to param_info.
8490         (general_init): Call finish_params.
8491
8492 2010-10-14  Nick Clifton  <nickc@redhat.com>
8493
8494         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
8495         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
8496         (FIRST_PSEUDO_REGISTER): Increase by one.
8497         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
8498         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
8499         (MODES_TIEABLE): Call mn10300_modes_tieable.
8500         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
8501         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
8502         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
8503         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
8504         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
8505         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
8506         (mn10300_cc_status_mdep): Delete.
8507         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
8508         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
8509         the combine-stack-adjust pass.
8510         (print_operand): Use the mode of the comparison operation to
8511         select the comparison suffix.
8512         (notice_update_cc): Delete.
8513         (mn10300_secondary_reload_class): Remove test for stack pointer
8514         based arithmetic.
8515         (output_tst): Rename to mn10300_output_cmp.
8516         (impossible_plus_operand): Move into predicates.md.
8517         (mn10300_legitimize_address): Make static.
8518         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
8519         constant pic operands.
8520         (mn10300_legitimate_constant_p): New function.
8521         (mn10300_case_values_threshold): Make static.
8522         (mn10300_hard_regno_mode_ok): New function.
8523         (mn10300_modes_tieable): New function.
8524         (mn10300_select_cc_mode): New function.
8525         * config/mn10300/predicates.md (impossible_plus_operand): Define.
8526         * config/mn10300/mn10300-protos.h: Tidy.
8527         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
8528         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
8529         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
8530         with clobbers or sets of CC_REG.
8531         (CC_REG): Define.
8532         (mov*): Remove use of CLR instruction.
8533         (cbranch_si4_<code>): New pattern/split.
8534         (integer_conditional_branch): New pattern.
8535         (cbranch_sf4_<code>): New pattern/split.
8536         (float_conditional_branch): New pattern.
8537         (casesi): Use addsi3 pattern instead of movsi pattern to add and
8538         move a value at the same time.
8539         (cc0 peepholes): Remove.
8540
8541 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8542
8543         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
8544         on RTX_FRAME_RELATED_P insns and the insn to which
8545         NOTE_INSN_EPILOGUE_BEG is attached.
8546         * sched-vis.c (print_value): Allow NULL value.
8547
8548 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8549
8550         PR rtl-optimization/45570
8551         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
8552         assert that we are pipelining outer loops.  Allow returning
8553         zero predecessors.
8554
8555 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8556
8557         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
8558         (tidy_control_flow): Tidy vertical space.
8559         (sel_remove_bb): New variable idx.  Use it to remember the basic
8560         block index before deleting the block.
8561         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
8562         (sel_merge_blocks): ... here.
8563         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
8564
8565 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
8566
8567         * cse.c (is_dead_reg): Change into inline function that is not
8568         called through for_each_rtx.
8569         (set_live_p): Adjust caller.
8570         (insn_live_p): Don't reset DEBUG_INSNs here.
8571         (struct dead_debug_insn_data): New data.
8572         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
8573         (delete_trivially_dead_insns): If there is just one setter for the
8574         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
8575         and add DEBUG_INSN for it right before the removed setter and
8576         use the DEBUG_EXPR instead of the dead pseudo.
8577
8578 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
8579
8580         * et-forest.c (et_nca): Return NULL immediately when
8581         the dominance forest has disjoint components.
8582
8583 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
8584
8585         * ira.c (setup_class_hard_regs): Fix typo in indexing
8586         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
8587
8588 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
8589
8590         * graph.c (inbb): New variable.
8591         (start_bb): Set inbb to 1 if output is inside of a building block.
8592         (end_bb): Check if output is inside of a building block.
8593
8594 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8595
8596         PR rtl-optimization/45912
8597         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
8598         regno of registers instead of their index to compute the alignment.
8599
8600 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
8601
8602         * config/i386/i386.c (ix86_build_const_vector): Check vector
8603         mode instead of scalar mode.
8604         (ix86_build_signbit_mask): Likewise.
8605         (ix86_expand_fp_absneg_operator): Updated.
8606         (ix86_expand_copysign): Likewise.
8607         (ix86_expand_int_vcond): Likewise.
8608         (ix86_emit_swdivsf): Likewise.
8609         (ix86_sse_copysign_to_positive): Likewise.
8610         (ix86_expand_sse_fabs): Likewise.
8611         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
8612         * config/i386/sse.md (copysign<mode>3): Likewise.
8613         (sse2_cvtudq2ps): Likewise.
8614         (vec_unpacku_float_hi_v4si): Likewise.
8615         (vec_unpacku_float_lo_v4si): Likewise.
8616
8617         * config/i386/i386.c (ix86_builtins): Add
8618         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
8619         (bdesc_args): Likewise.
8620         (ix86_builtin_vectorized_function): Support
8621         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
8622         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
8623         and IX86_BUILTIN_CVTPS2DQ256.
8624         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
8625
8626         * config/i386/sse.md (STORENT_MODE): New.
8627         (VEC_FLOAT_MODE): Likewise.
8628         (VEC_EXTRACT_MODE): Likewise.
8629         (*avx_cvtdq2pd256_2): Likewise.
8630         (vec_pack_trunc_v4df): Likewise.
8631         (vec_interleave_highv8sf): Likewise.
8632         (vec_interleave_lowv8sf): Likewise.
8633         (storent<mode>): Macroized.
8634         (<code><mode>2: absneg): Likewise.
8635         (copysign<mode>3): Likewise.
8636         (vec_extract<mode>): Likewise.
8637
8638         PR target/44180
8639         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
8640         for V8SFmode.
8641
8642 2010-10-13  Richard Guenther  <rguenther@suse.de>
8643             H.J. Lu  <hongjiu.lu@intel.com>
8644
8645         * config/i386/sse.md (reduc_splus_v8sf): Add.
8646         (reduc_splus_v4df): Likewise.
8647         (vec_unpacks_hi_v8sf): Likewise.
8648         (vec_unpacks_lo_v8sf): Likewise.
8649         (*avx_cvtps2pd256_2): Likewise.
8650         (vec_unpacks_float_hi_v8si): Likewise.
8651         (vec_unpacks_float_lo_v8si): Likewise.
8652         (vec_interleave_highv4df): Likewise.
8653         (vec_interleave_lowv4df): Likewise.
8654
8655 2010-10-13  Richard Guenther  <rguenther@suse.de>
8656
8657         PR objc/45878
8658         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
8659         alone if there are no virtual methods.
8660
8661 2010-10-13  Richard Henderson  <rth@redhat.com>
8662
8663         * expr.c (build_personality_function): Take parameter LANG instead
8664         of parameter NAME.  Build the name based on the lang prefix and the
8665         unwind method in use.
8666         * tree.c (lhd_gcc_personality): Update call to
8667         build_personality_function.
8668
8669 2010-10-13  Richard Guenther  <rguenther@suse.de>
8670
8671         PR objc/45878
8672         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
8673
8674 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8675
8676         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
8677         Canonicalize input operands of ASM_OPERANDS insns.
8678
8679 2010-10-13  Richard Guenther  <rguenther@suse.de>
8680
8681         PR tree-optimization/45788
8682         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
8683         EH update until fixup-cfg.
8684
8685 2010-10-13  Julian Brown  <julian@codesourcery.com>
8686
8687         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
8688         from CORE_REGS and GENERAL_REGS classes.
8689         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
8690         final constraint for register preferencing.
8691
8692 2010-10-13  Richard Guenther  <rguenther@suse.de>
8693
8694         PR tree-optimization/45970
8695         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
8696         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
8697         (stmt_kills_ref_p): Likewise.
8698         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
8699
8700 2010-10-13  Richard Guenther  <rguenther@suse.de>
8701
8702         PR tree-optimization/45982
8703         * tree-ssa-structalias.c (make_constraints_to): New function.
8704         (make_constraint_to): Implement in terms of make_constraints_to.
8705         (find_func_aliases): Properly make return values of pure/const
8706         functions escape if they assign to sth that is not a pointer.
8707
8708 2010-10-13  Richard Guenther  <rguenther@suse.de>
8709
8710         PR middle-end/45874
8711         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
8712         Fixup the CFG when EH was fixed up.
8713
8714 2010-10-13  Ira Rosen  <irar@il.ibm.com>
8715
8716         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
8717         Use operand's type for POINTER_PLUS_EXPR.
8718
8719 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
8720
8721         * c-parser.c (c_parser_for_statement): Initialize incr.
8722
8723 2010-10-12  Xinliang David Li  <davidxl@google.com>
8724
8725         PR tree-optimization/45972
8726         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
8727         with too many arguments.
8728
8729 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8730
8731         PR fortran/45636
8732         * tree-ssa-forwprop.c: Include expr.h.
8733         (constant_pointer_difference, simplify_builtin_call): New functions.
8734         (tree_ssa_forward_propagate_single_use_vars): Call
8735         simplify_builtin_call on builtin calls.
8736
8737 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
8738
8739         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
8740         (*adddi3_extend_sp32): Likewise.
8741         (*subdi3_insn_sp32): Likewise.
8742         (*subdi3_extend_sp32): Likewise.
8743         (*negdi2_sp32): Use negative test for consistency.
8744
8745 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8746
8747         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
8748         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8749         * config/fixed-bit.h: Likewise.
8750         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8751         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8752         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
8753         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
8754         (DF_SIZE): Likewise.
8755         * doc/tm.texi: Regenerate.
8756
8757 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8758
8759         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
8760         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
8761         (*isel_reversed_unsigned_<mode>): New.
8762         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
8763         as valid comparisons and adjust operands and output appropriately.
8764         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
8765
8766 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
8767
8768         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
8769         DATA_ALIGNMENT and add COND parameter. Update comments above.
8770         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
8771         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
8772
8773 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
8774
8775         PR bootstrap/45958
8776         * exec-tool.in: Support '-plugin' as the second option to the linker.
8777
8778 2010-10-12  Richard Henderson  <rth@redhat.com>
8779
8780         PR middle-end/45962
8781         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
8782         (expand_stack_vars): Assert large base allocated when used.
8783
8784 2010-10-12  Richard Guenther  <rguenther@suse.de>
8785
8786         * tree-ssa-structalias.c (get_constraint_for_1): Constants
8787         only point to nonlocal, not anything.
8788
8789 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8790
8791         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
8792         unwind info for exceptions.
8793
8794 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8795
8796         PR testsuite/45851
8797         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
8798         Document optional target selector.
8799
8800 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
8801
8802         * flag-types.h: New.
8803         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
8804         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
8805         options.h.
8806         (OPTIONS_H): Define.
8807         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
8808         of options.h.
8809         * configure.ac (tm_include_list): Include options.h not flags.h.
8810         * configure: Regenerate.
8811         * flags.h: Include flag-types.h.  Include options.h at top of file
8812         again.
8813         (enum debug_info_type, enum debug_info_level, enum
8814         debug_info_usage, enum symbol_visibility, struct visibility_flags,
8815         enum ira_algorithm, enum ira_region, enum excess_precision, enum
8816         graph_dump_types, enum stack_check_type,
8817         enum warn_strict_overflow_code): Move to flag-types.h
8818         * opth-gen.awk: Include flag-types.h in options.h.
8819
8820 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8821
8822         * expr.c (store_expr): Share code for STRING_CST and
8823         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
8824         check if target is a MEM.
8825
8826         * rtl.h: Include hashtab.h.
8827         (iterative_hash_rtx): New prototype.
8828         * rtl.c (iterative_hash_rtx): New function.
8829         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
8830         (output_loc_list): Return immediately if emitted is set, set it.
8831         (hash_loc_operands, hash_locs, hash_loc_list,
8832         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
8833         optimize_location_lists_1, optimize_location_lists): New function.
8834         (dwarf2out_finish): Call optimize_location_lists.
8835         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
8836
8837 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8838
8839         PR testsuite/45974
8840         Revert:
8841         * Makefile.in ($(lang_checks_parallel))
8842         ($(lang_checks_parallelized)): Use single quotes for
8843         $(RUNTESTFLAGS), to allow passing quoted content.
8844
8845 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8846
8847         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
8848         actual_oldval.  Use __builtin_expect.
8849         (SUBWORD_VAL_CAS): Likewise.
8850
8851 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8852
8853         * recog.c (nonmemory_operand): Call immediate_operand for
8854         CONSTANT_P operands.
8855
8856 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
8857
8858         * config/i386/i386.md (movmem<mode>): Macroize expander from
8859         movmem{si,di} using SWI48 mode iterator.
8860         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
8861         *strmovsi_rex_1 using P mode iterator.
8862         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
8863         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
8864         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
8865         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
8866         (setmem<mode>): Macroize expander from setmem{si,di} using
8867         SWI48 mode iterator.
8868         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
8869         *strsetsi_rex_1 using P mode iterator.
8870         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8871         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8872         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8873         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8874         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8875         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8876         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8877         mode iterator.
8878         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8879         *strlenqi_rex_1 using P mode iterator.
8880
8881 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8882
8883         PR bootstrap/45445
8884         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8885         static functions.
8886         (mark_ref_live, mark_ref_dead): Use them.
8887         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8888         Save the original reg, and use the new functions.
8889         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8890         changed.
8891         (check_and_make_def_conflict): Save the original reg.
8892
8893 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8894
8895         PR middle-end/45699
8896         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8897         thunks.
8898
8899 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8900
8901         * Makefile.in ($(lang_checks_parallel))
8902         ($(lang_checks_parallelized)): Use single quotes for
8903         $(RUNTESTFLAGS), to allow passing quoted content.
8904
8905         PR bootstrap/35855
8906         * opt-functions.awk (BEGIN): New section.
8907         (lower, upper, digit, alnum): New variables.
8908         (static_var, opt_sanitized_name): Use alnum instead of character
8909         classes, for non-C locale.
8910         * optc-gen.awk: Likewise.
8911         * opth-gen.awk: Likewise.
8912
8913 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
8914
8915         * target.def (preferred_reload_class): New hook.
8916         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
8917         * doc/tm.texi: Regenerate.
8918         * targhooks.c (default_preferred_reload_class): New function.
8919         * targhooks.h (default_preferred_reload_class): Declare.
8920         * reload.c (find_dummy_reload): Change preferred_class variable type
8921         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
8922         target hook.
8923         (find_reloads): Change goal_alternative array type from int to
8924         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
8925         (push_reload, find_reloads_address_part): Use
8926         TARGET_PREFERRED_RELOAD_CLASS target hook.
8927         * reload1.c (emit_input_reload_insns): Ditto.
8928         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
8929         hook. Change rclass argument and secondary_class variable types from
8930         'enum reg_class' to reg_class_t.
8931
8932         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
8933         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
8934         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
8935         Change regclass argument and result types from enum reg_class to
8936         reg_class_t.
8937         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8938
8939 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8940
8941         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
8942         in masking operations.
8943         (simplify_const_unary_operation): Likewise.
8944         (simplify_binary_operation_1): Likewise.
8945         (simplify_const_binary_operation): Likewise.
8946         (simplify_const_relational_operation): Likewise.
8947         (simplify_ternary_operation): Likewise.
8948         (simplify_immed_subreg): Likewise.
8949
8950 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8951
8952         PR middle-end/45862
8953         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
8954         (TARGET_SUPPORTS_WEAK): New.
8955         * doc/tm.texi: Regenerate.
8956         * defaults.h (SUPPORTS_WEAK): Update comment.
8957         (TARGET_SUPPORTS_WEAK): New.
8958         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
8959         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
8960         SUPPORTS_WEAK.
8961         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
8962         make_decl_one_only): Likewise.
8963         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
8964         TARGET_SUPPORTS_WEAK.
8965         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
8966         instead of SUPPORTS_WEAK.
8967
8968 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8969
8970         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
8971
8972 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8973
8974         * vec.h (VEC_qsort): Define.
8975         * dbxout.c (output_used_types): Use it.
8976         * df-scan.c (df_sort_and_compress_refs): Likewise.
8977         (df_sort_and_compress_mws): Likewise.
8978         * genautomata.c (uniq_sort_alt_states): Likewise.
8979         (evaluate_equiv_classes): Likewise.
8980         (output_trans_table): Likewise.
8981         (output_state): Likewise.
8982         * gimplify.c (compare_case_labels): Likewise.
8983         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
8984         * ipa.c (build_cdtor_fns): Likewise.
8985         * lto.c (lto_wpa_write_files): Likewise.
8986         * sel-sched.c (fill_vec_av_set): Likewise.
8987         * tree-predcom.c (determine_roots_comp): Likewise.
8988         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
8989         (splice_param_accesses): Likewise.
8990         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
8991         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8992         (reassociate_bb): Likewise.
8993         * tree-ssa-sccvn.c (sort_scc): Likewise.
8994         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
8995
8996 2010-10-11  Ian Lance Taylor  <iant@google.com>
8997
8998         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
8999         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
9000         TREE_THIS_NOTRAP when appropriate.
9001         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
9002         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
9003         newly created MEM_REF.
9004
9005 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
9006
9007         Nathan Froyds patch to hooks FUNCTION_ARG etc.
9008         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
9009         (picochip_incoming_function_arg): Delete.
9010         (picochip_arg_advance): Delete.
9011         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
9012         (FUNCTION_INCOMING_ARG): Delete.
9013         (FUNCTION_ARG_ADVANCE): Delete.
9014         * config/picochip/picochip.c (picochip_function_arg): Take a
9015         const_tree and a bool.
9016         (picochip_incoming_function_arg): Likewise.
9017         (picochip_arg_advance): Likewise.
9018         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
9019         (TARGET_FUNCTION_ARG_ADVANCE): Define.
9020
9021 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9022
9023         PR middle-end/45955
9024         * ipa.c (build_cdtor): Delete endless loop.
9025
9026 2010-10-07  Andi Kleen  <ak@linux.intel.com>
9027
9028         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
9029         checksum-options.
9030         (checksum-options): Add.
9031         (cc1-dummy): Remove.
9032         (cc1-checksum): Change to run checksum over object files
9033         and options only.
9034         * dummy-checksum.c: Remove.
9035         * genchecksum.c: Update copyright.
9036         (usage): Allow multiple arguments.
9037         (BLOCKSIZE): Add.
9038         (dosum): Change for incremental checksum. Remove C output.
9039         (main): Iterate over all argument files. Add C output.
9040
9041 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
9042
9043         * params.c (set_param_value_internal): New.
9044         (set_param_value): Use set_param_value_internal.
9045         (maybe_set_param_value, set_default_param_value): New.
9046         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
9047         (maybe_set_param_value, set_default_param_value): Declare.
9048         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
9049         * config/i386/i386.c (ix86_option_override_internal): Use
9050         maybe_set_param_value.
9051         * config/ia64/ia64.c (ia64_option_default_params,
9052         TARGET_OPTION_DEFAULT_PARAMS): New.
9053         (ia64_option_optimization): Move some code to
9054         ia64_option_default_params.
9055         * config/picochip/picochip.c (picochip_option_override): Use
9056         maybe_set_param_value.
9057         * config/rs6000/rs6000.c (rs6000_option_default_params,
9058         TARGET_OPTION_DEFAULT_PARAMS): New.
9059         (rs6000_option_override_internal): Use maybe_set_param_value.
9060         (rs6000_option_optimization): Move some code to
9061         rs6000_option_default_params.
9062         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
9063         * config/sh/sh.c (sh_option_default_params,
9064         TARGET_OPTION_DEFAULT_PARAMS): New.
9065         (sh_option_optimization): Move some code to sh_option_default_params.
9066         * config/sparc/sparc.c (sparc_option_override): Use
9067         maybe_set_param_value.
9068         * config/spu/spu.c (spu_option_default_params,
9069         TARGET_OPTION_DEFAULT_PARAMS): New.
9070         (spu_option_optimization): Move some code to spu_option_default_params.
9071         (spu_option_override): Use maybe_set_param_value.
9072         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
9073         * doc/tm.texi: Regenerate.
9074         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
9075         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
9076         compiler_params.
9077         (default_options_optimization): Use maybe_set_param_value.
9078         (finish_options): Use maybe_set_param_value.
9079         * target.def (target_option.default_params): New hook.
9080         * toplev.c (general_init): Call targetm.target_option.default_params.
9081
9082 2010-10-11  Ira Rosen  <irar@il.ibm.com>
9083
9084         PR tree-optimization/45902
9085         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
9086         vector type for constants, unless it's a pointer.
9087
9088 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9089
9090         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
9091
9092 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
9093
9094         PR target/45870
9095         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
9096         (ix86_delegitimize_address): Use it.
9097
9098 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
9099
9100         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
9101
9102 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
9103
9104         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
9105         to cum struct in the call to function_arg_advance.
9106         (alpha_function_arg_advance): Mark named as unused.
9107
9108 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
9109
9110         * config/mips/mips.c (mips_handle_option): Make "value" with
9111         ATTRIBUTE_UNUSED.
9112
9113 2010-10-09  Richard Henderson  <rth@redhat.com>
9114
9115         PR rtl-opt/33721
9116         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
9117         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
9118         required_align, tidy the code a bit.  Emit split_stack code in the
9119         right place.  Mark the return value with the alignment properly.
9120         * expr.h (allocate_dynamic_stack_space): Update decl.
9121         * builtins.c (expand_builtin_apply): Update call to
9122         allocate_dynamic_stack_space.
9123         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
9124         * calls.c (initialize_argument_information): Update call to
9125         allocate_dynamic_stack_space.
9126         (expand_call): Likewise.
9127
9128         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
9129         Don't update_stack_alignment here.
9130         (alloc_stack_frame_space): Make ALIGN unsigned.
9131         (stack_var_cmp): Sort by alignment too.
9132         (partition_stack_vars): Don't merge large and small alignment vars.
9133         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
9134         Take care when BASE is not virtual_stack_vars_rtx.
9135         (expand_stack_vars): Allocate dynamic stack space for large
9136         alignment variables.
9137         (expand_one_stack_var): Update all to expand_one_stack_var_at.
9138         (defer_stack_allocation): True for large alignment vars.
9139         (update_stack_alignment): Merge into ...
9140         (expand_one_var): ... here.
9141         (gimple_expand_cfg): Place code from expand_stack_vars.
9142
9143 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9144
9145         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9146         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
9147         (pdp11_function_arg_advance): New function.
9148         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9149
9150 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9151
9152         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
9153         * libgcc2.c: Likewise.
9154
9155 2010-10-09  Richard Guenther  <rguenther@suse.de>
9156
9157         PR lto/45956
9158         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
9159         Properly check if a decl is an automatic var.
9160
9161 2010-10-09  Richard Guenther  <rguenther@suse.de>
9162
9163         PR lto/45947
9164         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
9165
9166 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9167
9168         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
9169         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9170         * config/mmix/mmix.c (mmix_function_arg): Rename to...
9171         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
9172         bool arguments.
9173         (mmix_function_arg): New function.
9174         (mmix_function_incoming_arg): New function.
9175         (mmix_function_arg_advance): New function.
9176         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
9177         (TARGET_FUNCTION_ARG_ADVANCE): Define.
9178
9179 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9180
9181         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9182         * config/vax/vax.c (vax_function_arg): New function.
9183         (vax_function_arg_advance): New function.
9184         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9185
9186 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9187
9188         * config/pa/pa-protos.h (function_arg): Delete.
9189         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9190         * config/pa/pa.c (function_arg): Rename to...
9191         (pa_function_arg): ...this.  Make static.  Take a const_tree and
9192         a bool.
9193         (pa_function_arg_advance): New function.
9194         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9195
9196 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9197
9198         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9199         * config/m68k/m68k.c (m68k_function_arg): New function.
9200         (m68k_function_arg_advance): New function.
9201         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9202
9203 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9204
9205         * config/avr/avr-protos.h (function_arg): Delete.
9206         (function_arg_advance): Delete.
9207         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9208         * config/avr/avr.c (function_arg): Rename to...
9209         (avr_function_arg): ...this.  Make static.  Take a const_tree and
9210         a bool.
9211         (function_arg_advance): Rename to...
9212         (avr_function_arg_advance): ...this.  Make static.  Take a
9213         const_tree and a bool.
9214         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9215
9216 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9217
9218         * config/alpha/alpha-protos.h (function_arg): Delete.
9219         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9220         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
9221         * config/alpha/alpha.c (function_arg): Rename to...
9222         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
9223         a bool.  Delete TARGET_ABI_UNICOSMK code.
9224         (alpha_function_arg_advance): New function.
9225         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9226
9227 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9228
9229         * config/mep/mep-protos.h (mep_function_arg): Delete.
9230         (mep_function_arg_advance): Delete.
9231         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9232         * config/mep/mep.c (mep_function_arg): Make static.  Take a
9233         const_tree and a bool.
9234         (mep_function_arg_advance): Likewise.
9235         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9236
9237 2010-10-09  Richard Guenther  <rguenther@suse.de>
9238
9239         PR tree-optimization/45945
9240         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
9241
9242 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
9243
9244         PR tree-optimization/45612
9245         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
9246         Test LABEL_DECLs as well.  Fix formatting issues.
9247         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
9248         whose label is present in NON_SSA_VARS.
9249         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
9250         as well.  Fix formatting issues.
9251         (visit_bb): Fix typos and formatting issue.
9252
9253 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9254
9255         PR tree-optimization/45950
9256         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
9257         before initializing vno->op.
9258
9259 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
9260
9261         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
9262         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
9263
9264 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
9265
9266         PR target/45913
9267         * config/i386/i386.c (ix86_binary_operator_ok): Support
9268         "andhi/andsi/anddi" as a zero-extending move.
9269
9270 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9271
9272         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
9273         into a temporary array.
9274
9275 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
9276
9277         PR tree-optimization/45903
9278         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
9279         of {A,L}SHIFTRT of MEM.
9280
9281 2010-10-08  Richard Guenther  <rguenther@suse.de>
9282
9283         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
9284         Re-construct BLOCK_VARS.
9285         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
9286         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
9287         * tree.c (free_lang_data_in_block): Remove.
9288         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
9289         Do not touch the BLOCK tree.
9290         * expr.c (expand_expr_real_1): Allow externals.
9291
9292 2010-10-08  Richard Guenther  <rguenther@suse.de>
9293
9294         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
9295         Do not output BLOCK_SUBBLOCKS.
9296         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
9297         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
9298         Re-construct BLOCK_SUBBLOCKS of parent block.
9299         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
9300         for BINFO_BASE_ACCESSES.
9301
9302 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
9303
9304         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
9305         (TREE_H): Include $(FLAGS_H) instead of options.h.
9306         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
9307         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
9308         * common.opt (flag_complex_method, flag_evaluation_order,
9309         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
9310         Variable declarations.
9311         * configure.ac (tm_include_list): Include flags.h instead of options.h.
9312         * configure: Regenerate.
9313         * flags.h: Condition out contents for target libraries.  Include
9314         options.h at end of file.
9315         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
9316         flag_evaluation_order, flag_warn_unused_result): Remove.
9317         * gcc.c (main): Intialize global_options with global_options_init.
9318         * langhooks-def.h (lhd_init_options_struct): Declare.
9319         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
9320         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
9321         * langhooks.c (lhd_init_options_struct): New.
9322         * langhooks.h (struct lang_hooks): Add init_options_struct.
9323         Update comment on init_options.
9324         * optc-gen.awk: Generate initializer for global_options_init, not
9325         global_options.
9326         * opth-gen.awk: Condition out structure declarations for target
9327         libraries.  Declare global_options_init.
9328         * opts-common.c: Include flags.h instead of options.h.
9329         * opts.c (flag_warn_unused_result): Remove.
9330         (read_cmdline_options): Take gcc_options parameters.  Pass them to
9331         read_cmdline_option.
9332         (initial_lang_mask, initial_min_crossjump_insns,
9333         initial_max_fields_for_field_sensitive,
9334         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
9335         (init_options_once): New.  Split out of decode_options.
9336         (init_options_struct): New.  Split out of decode_options.
9337         (decode_cmdline_options_to_array_default_mask): New.
9338         (default_options_optimization): New.  Split out of decode_options.
9339         (decode_options): Move most code to other functions.  Update call
9340         to read_cmdline_options.
9341         (finish_options): New.  Split out of decode_options.
9342         * opts.h (decode_options): Add gcc_options parameters.
9343         (init_options_once, init_options_struct,
9344         decode_cmdline_options_to_array_default_mask): New.
9345         * toplev.c (flag_complex_method, flag_ira_algorithm,
9346         flag_ira_region, flag_evaluation_order): Remove.
9347         (general_init): Use global_options_init for initial flag values
9348         for global_dc.
9349         (toplev_main): Call init_options_once, init_options_struct,
9350         lang_hooks.init_options_struct,
9351         decode_cmdline_options_to_array_default_mask and
9352         lang_hooks.init_option before decode_options.  Update arguments to
9353         decode_options.
9354         * tree.h: Include flags.h instead of options.h.
9355
9356 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9357
9358         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9359
9360 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9361
9362         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
9363         Delete.
9364         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
9365         (FUNCTION_INCOMING_ARG): Delete.
9366         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
9367         (function_arg_slotno): Likewise.  Take bool arguments.
9368         (sparc_arg_partial_bytes): Update call to it.
9369         (function_arg): Rename to...
9370         (sparc_function_arg_1): ...this.  Take bool arguments.
9371         (sparc_function_arg, sparc_function_incoming_arg): New functions.
9372         (function_arg_advance): Rename to...
9373         (sparc_function_arg_advance): ...this.  Take bool argument.
9374         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
9375         (TARGET_FUNCTION_INCOMING_ARG): Define.
9376
9377 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9378
9379         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
9380         Delete.
9381         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9382         * config/bfin/bfin.c (function_arg_advance): Rename to...
9383         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
9384         and bool arguments.
9385         (function_arg): Rename to...
9386         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
9387         arguments.
9388         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9389
9390 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9391
9392         * config/score/score-protos.h (score_function_arg): Delete.
9393         (score_function_arg_advance): Delete.
9394         * config/score/score3.h (score3_function_arg_advance): Take a
9395         const_tree and a bool.
9396         (score3_function_arg): Likewise.
9397         * config/score/score7.h (score7_function_arg_advance): Likewise.
9398         (score7_function_arg): Likewise.
9399         * config/score/score3.c (score3_classify_arg): Likewise.
9400         (score3_function_arg_advance, score3_function_arg): Likewise.
9401         * config/score/score7.c (score7_classify_arg): Likewise.
9402         (score7_function_arg_advance, score7_function_arg): Likewise.
9403         * config/score/score.c (score_function_arg_advance): Likewise.
9404         (score_function_arg): Likewise.  De-const-ify `cum' argument.
9405         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9406
9407 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9408
9409         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
9410         (s390_function_arg): Delete.
9411         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9412         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
9413         (s390_function_arg_integer): Likewise.
9414         (s390_function_arg_advance): Make static.  Take a const_tree and
9415         a bool.
9416         (s390_function_arg): Likewise.
9417         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9418
9419 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9420
9421         * config/spu/spu-protos.h (spu_function_arg): Delete.
9422         * config/spu/spu.h (FUNCTION_ARG): Delete.
9423         (FUNCTION_ARG_ADVANCE): Move code to ...
9424         * config/spu/spu.c (spu_function_arg_advance): New function.
9425         (spu_function_arg): Make static.  Take a const_tree and a bool.
9426         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
9427         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9428
9429 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9430
9431         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9432
9433 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9434
9435         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
9436         (init_vn_nary_op_from_op): New function.
9437         (init_vn_nary_op_from_stmt): New function.
9438         (vn_nary_op_lookup_1): New function.
9439         (sizeof_vn_nary_op): New function.
9440         (alloc_vn_nary_op_noinit): New function.
9441         (alloc_vn_nary_op): New function.
9442         (vn_nary_op_insert_into): New function.
9443         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
9444         (vn_nary_op_lookup): Likewise.
9445         (vn_nary_op_lookup_stmt): Likewise.
9446         (vn_nary_op_insert_pieces): Likewise.
9447         (vn_nary_op_insert): Likewise.
9448         (vn_nary_op_insert_stmt): Likewise.
9449         (copy_nary): Likewise.
9450         (set_value_id_for_result): New function.
9451         (set_hashtable_value_ids): Call it.
9452
9453 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9454
9455         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9456         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
9457
9458 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9459
9460         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
9461         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9462
9463 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
9464
9465         PR debug/45656
9466         * cse.c (cse_extended_basic_block): Preserve cc0 info across
9467         debug isnsn.  Skip them when searching for cc0 setter.
9468         (set_live_p): Skip debug insns when searching for cc0 user.
9469
9470 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
9471
9472         PR debug/45673
9473         PR debug/45604
9474         PR debug/45419
9475         PR debug/45408
9476         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
9477         type of MEM_REFs to INTEGER_CSTs.
9478
9479 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
9480
9481         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
9482         m68hc11_print_operand_address.
9483
9484 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
9485
9486         * builtins.c (rewrite_call_expr): Move code to...
9487         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
9488         (rewrite_call_expr_array): New function.
9489         (fold_builtin_sprintf_chk_1): New function.
9490         (fold_builtin_sprintf_chk): Call it.
9491         (gimple_fold_builtin_sprintf_chk): Likewise.
9492         (fold_builtin_snprintf_chk_1): New function.
9493         (fold_builtin_snprintf_chk): Call it.
9494         (gimple_fold_builtin_snprintf_chk): Likewise.
9495         (gimple_rewrite_call_expr): Delete.
9496
9497 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9498
9499         * config.host: Update copyright year.
9500
9501 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9502
9503         * config.host (host_lto_plugin_soname): New shell variable.
9504         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
9505         * config.in: Regenerate.
9506         * configure: Regenerate.
9507         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
9508         LTO plugin shared library.
9509
9510 2010-10-07  Richard Henderson  <rth@redhat.com>
9511
9512         * target.h (enum unwind_info_type): Move ...
9513         * coretypes.h: ... here.
9514
9515 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
9516
9517         * doc/objc.texi (Fast enumeration protocol): Mention that
9518         'unsigned int' can also be used instead of 'unsigned long' in
9519         countByEnumeratingWithState:objects:count:.
9520
9521 2010-10-07  Martin Jambor  <mjambor@suse.cz>
9522
9523         * tree-sra.c (struct access): New field grp_assignment_write.
9524         (dump_access): Dump grp_assignment_write.
9525         (build_accesses_from_assign): Set grp_assignment_write.
9526         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
9527         (mark_read_status): Renamed to mark_rw_status, individual values
9528         renamed too.
9529         (analyze_access_subtree): Changed type of mark_write to
9530         mark_read_status.  Fixed propagating of mark_read and
9531         mark_write.  Changed benefit estimate.  Updated comment.
9532
9533 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
9534
9535         PR Tree-Vect/45847
9536         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
9537         check for vectype_out returned by get_vectype_for_scalar_type().
9538
9539 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
9540
9541         PR target/45805
9542         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
9543         constraint, add register specifier in instruction template.
9544         (neon_vec_pack_trunc_<mode>): Likewise.
9545         (neon_vec_<US>mult_<mode>): Add register specifier to
9546         instruction template.
9547
9548 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9549
9550         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
9551         cygwin2.o.
9552         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
9553         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
9554         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
9555         (cygwin2.o): Likewise.
9556         * config/i386/cygwin1.c: Delete file.
9557         * config/i386/cygwin2.c: Likewise.
9558         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
9559         make all {%!mno-cygwin} ones unconditional.
9560         (STARTFILE_SPEC): Likewise.
9561         (REAL_LIBGCC_SPEC): Likewise.
9562         (LIB_SPEC): Likewise.
9563         (CXX_WRAP_SPEC): Likewise.
9564         (LINK_SPEC): Likewise.
9565         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
9566         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
9567         (cygwin_gplusplus_include_dir): Delete now-unused array.
9568         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
9569         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
9570         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
9571         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
9572         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
9573         (cygwin_local_include_dir): Delete now-unused array.
9574         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
9575         (cygwin_cross_include_dir): Delete now-unused array.
9576         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
9577         (cygwin_tool_include_dir): Delete now-unused array.
9578         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
9579         (cygwin_standard_include_dir): Delete now-unused array.
9580         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
9581         (GEN_CVT_ARRAY): Delete now-unused macro definition.
9582         (cvt_to_mingw): Delete now-unused array.
9583         (mingw_scan): Remove prototype of deleted function.
9584         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
9585         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
9586         * doc/invoke.texi (-mcygwin): Don't document removed option.
9587         (-mno-cygwin): Likewise.
9588
9589 2010-10-07  Richard Guenther  <rguenther@suse.de>
9590
9591         * machmode.h (mode_for_vector): Declare.
9592         * stor-layout.c (mode_for_vector): New function, split out from ...
9593         (layout_type): ... here.
9594         * tree-vectorizer.h (current_vector_size): Declare.
9595         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
9596         mask vector type is available.
9597         (get_vectype_for_scalar_type): Rename to ...
9598         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
9599         size argument.
9600         (get_vectype_for_scalar_type): New wrapper around
9601         get_vectype_for_scalar_type_and_size using current_vector_size.
9602         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
9603         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
9604         of vect_analyze_loop here.
9605         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
9606         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
9607         to autodetect.
9608         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
9609         V8SF to V8SI conversion builtin.
9610
9611 2010-10-07  Richard Guenther  <rguenther@suse.de>
9612
9613         * target.def (autovectorize_vector_sizes): New target hook.
9614         * targhooks.c (default_autovectorize_vector_sizes): New function.
9615         * targhooks.h (default_autovectorize_vector_sizes): Declare.
9616         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
9617         Document.
9618         * doc/tm.texi: Update.
9619         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
9620         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9621
9622 2010-10-07  Richard Guenther  <rguenther@suse.de>
9623
9624         * target.def (units_per_simd_word): Rename to ...
9625         (preferred_simd_mode): ... this.  Return mode instead of size.
9626         * targhooks.c (default_units_per_simd_word): Rename to ...
9627         (default_preferred_simd_mode): ... this.  Return word_mode.
9628         * targhooks.h (default_preferred_simd_mode): Declare.
9629         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
9630         (arm_preferred_simd_mode): ... this.  Re-implement.
9631         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
9632         (ix86_preferred_simd_mode): ... this.  Re-implement.
9633         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
9634         (sparc_preferred_simd_mode): ... this.  Re-implement.
9635         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
9636         (mips_preferred_simd_mode): ... this.  Re-implement.
9637         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
9638         (rs6000_preferred_simd_mode): ... this.  Re-implement.
9639         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
9640         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
9641         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
9642         * doc/tm.texi: Update.
9643
9644 2010-10-07  Richard Guenther  <rguenther@suse.de>
9645
9646         PR middle-end/45869
9647         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
9648         of pointers.
9649
9650 2010-10-07  Alan Modra  <amodra@gmail.com>
9651
9652         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
9653         rather than sign extension by hand.
9654
9655 2010-10-07  Jan Hubicka  <jh@suse.cz>
9656
9657         PR middle-end/45926
9658         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
9659
9660 2010-10-07  Richard Guenther  <rguenther@suse.de>
9661
9662         PR bootstrap/45914
9663         * configure.ac: Fix typo.
9664         * configure: Regenerated.
9665
9666 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9667
9668         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
9669         define_builtin_std where it's unnecessary.
9670         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
9671
9672 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
9673
9674         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
9675         * doc/tm.texi.in: Regenerate.
9676         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
9677         * targhooks.c (default_class_likely_spilled_p): Don't use the
9678         CLASS_LIKELY_SPILLED_P macro.
9679
9680         * config/arm/arm.md: Update comment.
9681
9682 2010-10-06  Jan Hubicka  <jh@suse.cz>
9683
9684         * ipa.c (cgraph_remove_unreachable_nodes): External references can
9685         always be removed.
9686         (cgraph_externally_visible_p): We can not bring local comdats that
9687         are known to linker; fix handling of internal visibility.
9688         (function_and_variable_visibility): Likewise.
9689
9690 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
9691
9692         PR rtl-optimization/45394
9693         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
9694         (struct rtx_subst_pair): Remove AFTER field.
9695         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
9696         (propagate_for_debug): Remove MOVE parameter and adjust.
9697         (try_combine): In the special case where I2 is a PARALLEL, combine only
9698         destinations of SETs and set I2SRC to the I2 source.
9699         Adjust calls to propagate_for_debug throughout.
9700         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
9701         insns.
9702
9703 2010-10-06  Olivier Hainque  <hainque@adacore.com>
9704
9705         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
9706         switch on insn codes as sequence of ifs.
9707
9708 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
9709
9710         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
9711         be UI_NONE for picochip.
9712         (picochip_option_override): Do not disable exception flags.
9713         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
9714         Declare.
9715
9716 2010-10-06  Richard Guenther  <rguenther@suse.de>
9717
9718         * Makefile.in (regmove.o): Depend on $(TARGET_H).
9719
9720 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
9721
9722         Implemented fast enumeration for Objective-C.
9723         * c-parser.c (objc_could_be_foreach_context): New.
9724         (c_lex_one_token): Recognize RID_IN keyword in a potential
9725         Objective-C foreach context.
9726         (c_parser_declaration_or_fndef): Added parameter.  Accept
9727         Objective-C RID_IN keyword as terminating a declaration; in that
9728         case, return the declaration in the new parameter.
9729         (c_parser_extenral_declaration): Updated calls to
9730         c_parser_declaration_or_fndef.
9731         (c_parser_declaration_or_fndef): Same change.
9732         (c_parser_compound_statement_nostart): Same change.
9733         (c_parser_label): Same change.
9734         (c_parser_objc_methodprotolist): Same change.
9735         (c_parser_omp_for_loop): Same change.
9736         (c_parser_for_statement): Detect and parse Objective-C foreach
9737         statements.
9738         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
9739         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
9740         fast enumeration parsing code to turn off the c99 error but still
9741         perform checks on the loop declarations.
9742         * c-tree.h (check_for_loop_decls): Updated declaration.
9743         * doc/objc.texi: Document fast enumeration.
9744
9745 2010-10-06  Nick Clifton  <nickc@redhat.com>
9746
9747         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
9748         (MDR_REGNUM): Define.
9749         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
9750         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
9751         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
9752         (REGISTER_NAMES): Add MDR.
9753         (DWARF2_DEBUGGING_INFO): Define to 1.
9754         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9755         (F): New function.  Sets RTX_FRAME_RELATED_P.
9756         (mn10300_gen_multiple_store): Use F.
9757         (expand_prologue): Use F.  Use gen_movsf() to push floating
9758         point registers.
9759         (expand_epilogue): Use gen_movsf() to pop floating point registers.
9760         (mn10300_option_override): Disable combine stack adjust pass.
9761
9762 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
9763
9764         PR target/45901
9765         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
9766         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
9767
9768 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
9769
9770         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
9771         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
9772         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
9773         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
9774         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
9775         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
9776         BUILT_IN_TOUPPER): Mark as leaf.
9777
9778         PR middle-end/45838
9779         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
9780         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
9781         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
9782         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
9783         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
9784         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
9785         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
9786
9787 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
9788
9789         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
9790         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9791         (m68hc11_class_likely_spilled_p): New function.
9792
9793 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
9794
9795         * c-parser.c (c_parser_objc_method_definition): Updated comment.
9796
9797 2010-10-05  Jan Hubicka  <jh@suse.cz>
9798
9799         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
9800         Document.
9801         * opts.c (decode_options): Handle lto partitions.
9802         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
9803         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
9804
9805 2010-10-05  Jan Hubicka  <jh@suse.cz>
9806
9807         * cgraphunit.c (assemble_function): Output thunks and aliases before
9808         the function itself.
9809
9810 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9811
9812         * config/picochip/picochip.c (picochip_option_override): Disable
9813         exception flags for picochip.
9814
9815 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
9816
9817         * opts-common.c (handle_option, handle_generated_option,
9818         read_cmdline_option, set_option): Add diagnostic_context
9819         parameter.  Update calls among these functions.
9820         (set_option): Don't use global_dc.
9821         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
9822         (decode_options): Pass global_dc to enable_warning_as_error.
9823         (common_handle_option): Pass global_dc to enable_warning_as_error.
9824         (enable_warning_as_error): Add diagnostic_context parameter.
9825         Document parameters.  Don't use global_dc.  Pass
9826         diagnostic_context parameter to handle_generated_option.
9827         * opts.h (set_option, handle_option, handle_generated_option,
9828         read_cmdline_option, enable_warning_as_error): Add
9829         diagnostic_context parameter.
9830         * Makefile.in (lto-opts.o): Update dependencies.
9831         * coretypes.h (struct diagnostic_context, diagnostic_context):
9832         Declare here.
9833         * diagnostic.h (diagnostic_context): Don't declare typedef here.
9834         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
9835         * langhooks-def.h (struct diagnostic_context): Don't declare here.
9836         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
9837         using diagnostic_context typedef.
9838         * langhooks.c (lhd_initialize_diagnostics): Declare using
9839         diagnostic_context typedef.
9840         * langhooks.h (struct diagnostic_context): Don't declare here.
9841         (initialize_diagnostics, print_error_function): Declare using
9842         diagnostic_context typedef.
9843         * lto-opts.c: Include diagnostic.h.
9844         (lto_reissue_options): Pass global_dc to set_option.  Pass
9845         DK_UNSPECIFIED not 0.
9846         * plugin.c (plugins_internal_error_function): Declare using
9847         diagnostic_context typedef.
9848         * plugin.h (struct diagnostic_context): Don't declare here.
9849         (plugins_internal_error_function): Declare using
9850         diagnostic_context typedef.
9851
9852 2010-10-05  Olivier Hainque  <hainque@adacore.com>
9853             Nicolas Roche  <roche@adacore.com>
9854
9855         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
9856         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
9857
9858 2010-10-05  Ira Rosen  <irar@il.ibm.com>
9859
9860         PR tree-optimization/45752
9861         * tree-vect-slp.c (vect_get_mask_element): Remove static
9862         variables, make them function arguments.
9863         (vect_transform_slp_perm_load): Pass new arguments to
9864         vect_get_mask_element.
9865
9866 2010-10-05  Richard Guenther  <rguenther@suse.de>
9867
9868         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
9869         (gimple_mod_pow2): Likewise.
9870         (gimple_mod_subtract): Likewise.
9871         (gimple_ic): Likewise.
9872         (gimple_stringop_fixed_value): Likewise.
9873         * tree-profile.c (tree_init_edge_profiler): Mark profile
9874         functions nothrow and leaf.
9875         (add_abnormal_goto_call_edges): Remove.
9876         (tree_gen_edge_profiler): Work on SSA form.
9877         (tree_gen_ic_profiler): Likewise.  Simplify.
9878         (do_tree_profiling): Update SSA form.
9879         (pass_tree_profile): Remove.
9880         (do_tree_profiling): Likewise.
9881         (gate_tree_profile_ipa): New function.
9882         (pass_ipa_tree_profile): New.
9883         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9884         state of instrumented functions.
9885         * passes.c (init_optimization_passes): Remove early non-SSA
9886         inlining.  Move profiling after early optimizations.
9887         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9888         (pass_ipa_early_inline): Likewise.
9889         * tree-pass.h (pass_ipa_early_inline): Remove.
9890         (pass_tree_profile): Likewise.
9891         (pass_ipa_tree_profile): Declare.
9892
9893 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9894             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9895
9896         * config/s390/s390.c (z196_cost): New.
9897         (s390_handle_arch_option): Add -march=z196.
9898         (s390_option_override): Use the new cost function and use the z10
9899         defaults also for z196.
9900         (legitimate_reload_constant_p): Adjust comment.
9901         (legitimate_reload_fp_constant_p): New function.
9902         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9903         (preferred_la_operand_p): Avoid la with index on z196.
9904         (s390_adjust_priority): Trigger also for z196.
9905         (s390_issue_rate): Issue rate for z196 is 3.
9906         (s390_z10_fix_long_loop_prediction): Rename to ...
9907         (s390_fix_long_loop_prediction): ... this.
9908         (s390_reorg): Apply the z10 adjustments also for z196.
9909         (s390_loop_unroll_adjust): Do this also for z196.
9910         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
9911         (enum processor_flags): Add PF_Z196.
9912         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
9913         (TARGET_CPU_Z196, TARGET_Z196): New macros.
9914         * config.gcc: Enable z196 for --with-arch.
9915         * config/s390/2817.md: New file.
9916         * config/s390/2084.md: New type for multiply and add.
9917         * config/s390/2097.md: Likewise.
9918         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
9919         (UNSPECV_ATOMIC_OP): New constants.
9920         (fmadddf, fmaddsf): New values for type attribute.
9921         (z196prop): New insn attribute.
9922         (cpu, cpu_facility): Add z196.
9923         (ATOMIC_Z196): New code iterator.
9924         (noxa): New code attribute.
9925         (gk): New mode attribute.
9926         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
9927         Support load zero for fp constants.
9928         (fixuns_truncdddi2, fixuns_trunctddi2)
9929         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
9930         for z196.
9931         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
9932         (popcounthi2, popcountqi2): New expander.
9933         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
9934         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
9935         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
9936         insn definition.
9937         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
9938         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
9939         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
9940         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
9941         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
9942         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
9943         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
9944         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
9945         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
9946         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
9947         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
9948         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
9949         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
9950         Support new z196 instructions.
9951
9952 2010-10-05  Richard Guenther  <rguenther@suse.de>
9953
9954         PR middle-end/45877
9955         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
9956         case where gimplification optimizes away the stmt.
9957
9958 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9959
9960         PR debug/45849
9961         * var-tracking.c (strip_pointer_flags): New function.
9962         (emit_note_insn_var_location): If rtx_equal_p check failed,
9963         retry on locations simplified with simplify_replace_fn_rtx
9964         and strip_pointer_flags as its callback.
9965
9966 2010-10-04  Jan Hubicka  <jh@suse.cz>
9967
9968         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
9969         (can_refer_decl_in_current_unit_p): ... this one; reverse return
9970         value; handle comdats too.
9971         (canonicalize_constructor_val): Use it; handle function_decls
9972         correctly.
9973         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9974         * gimple.c (get_base_address): Accept all kinds of decls.
9975
9976 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9977
9978         * flags.h (g_switch_value, g_switch_set): Remove.
9979         * opts.c (g_switch_value, g_switch_set): Remove.
9980         * config/g.opt (G): Add Var(g_switch_value).
9981         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
9982         (alpha_option_override): Check global_options_set.x_g_switch_value
9983         instead of g_switch_set.
9984         (alpha_in_small_data_p): Remove cast in comparison with
9985         g_switch_value.
9986         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
9987         g_switch_value to unsigned HOST_WIDE_INT.
9988         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
9989         with g_switch_value.
9990         (frv_handle_option): Don't handle -G here.
9991         (frv_option_override): Check global_options_set.x_g_switch_value
9992         instead of g_switch_set.  Don't modify g_switch_set.
9993         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
9994         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
9995         g_switch_value to unsigned HOST_WIDE_INT.
9996         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
9997         (ia64_option_override): Check global_options_set.x_g_switch_value
9998         instead of g_switch_set.
9999         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
10000         Remove.
10001         (lm32_in_small_data_p): Remove cast in comparison with
10002         g_switch_value.
10003         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
10004         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
10005         HOST_WIDE_INT.
10006         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
10007         (m32r_init): Check global_options_set.x_g_switch_value instead of
10008         g_switch_set.
10009         (m32r_in_small_data_p): Remove cast in comparison with
10010         g_switch_value.
10011         (m32r_file_start): Format g_switch_value with %d.
10012         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
10013         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
10014         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
10015         handle -G here.
10016         (microblaze_option_override): Check
10017         global_options_set.x_g_switch_value instead of g_switch_set.
10018         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
10019         (mips_option_override): Check global_options_set.x_g_switch_value
10020         instead of g_switch_set.
10021         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
10022         (rs6000_file_start): Format g_switch_value with %d.
10023         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
10024         comparisons with g_switch_value.
10025         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
10026         global_options_set.x_g_switch_value instead of g_switch_set.
10027         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10028         global_options_set.x_g_switch_value instead of g_switch_set.
10029         * config/score/score.c (score_handle_option): Don't handle -G here.
10030         * config/score/score3.c (score3_option_override): Check
10031         global_options_set.x_g_switch_value instead of g_switch_set.
10032         * config/score/score7.c (score7_option_override): Check
10033         global_options_set.x_g_switch_value instead of g_switch_set.
10034
10035 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
10036
10037         * common.opt (fira-coalesce): Remove.
10038
10039         * doc/invoke.texi (flag_ira_coalesce): Remove.
10040
10041         * ira-color.c (allocno_coalesced_p): Move before
10042         copy_freq_compare_func.
10043         processed_coalesced_allocno_bitmap): Ditto.
10044         (update_conflict_hard_regno_costs): Don't use
10045         ALLOCNO_FIRST_COALESCED_ALLOCNO.
10046         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
10047         (assign_hard_reg): Assume no coalesced allocnos.
10048         (get_coalesced_allocnos_attributes): Remove.
10049         (bucket_allocno_compare_func): Assume no coalesced allocnos.
10050         (push_allocno_to_stack): Ditto.
10051         (remove_allocno_from_bucket_and_push): Use
10052         ira_print_expanded_allocno instead of print_coalesced_allocno.
10053         (push_allocnos_to_stack): Assume uncoalesced allocnos.
10054         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
10055         all_conflicting_hard_regs.
10056         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
10057         (setup_allocno_left_conflicts_size): Ditto.
10058         (put_allocno_into_bucket): Ditto.
10059         (copy_freq_compare_func): Remove.
10060         (copy_freq_compare_func, merge_allocnos): Move before
10061         coalesced_pseudo_reg_freq_compare.
10062         coalesced_allocno_conflict_p): Ditto.
10063         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
10064         parameter.  Assume it true.
10065         (color_allocnos): Assume uncoalesced allocnos.  Use
10066         ira_print_expanded_allocno instead of print_coalesced_allocno.
10067         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
10068         parameter.
10069
10070         * ira.c: Remove comment about coalescing.
10071
10072 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
10073
10074         * config/mips/mips.h (target_flags_explicit): Declare for
10075         GENERATOR_FILE.
10076
10077 2010-10-04  Andi Kleen  <ak@linux.intel.com>
10078
10079         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
10080         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
10081
10082 2010-10-04  Matthias Klose  <doko@ubuntu.com>
10083
10084         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
10085         multilib osdirname if it exists.
10086         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
10087
10088 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
10089
10090         PR middle-end/45876
10091         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
10092         arg0's type or its unsigned counterpart as utype.  Convert
10093         arg1 to utype unconditionally.
10094
10095 2010-10-04  Julian Brown  <julian@codesourcery.com>
10096
10097         * expr.c (expand_assignment): Add assertion to prevent emitting
10098         null rtx for movmisalign pattern.
10099         (expand_expr_real_1): Likewise.
10100         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
10101         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
10102         (arm_vector_alignment_reachable): New.
10103         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
10104         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
10105         (arm_print_operand): Include alignment qualifier in %A.
10106         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
10107         (movmisalign<mode>): New expander.
10108         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
10109         insn patterns.
10110
10111 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
10112
10113         * optc-gen.awk: Define global_options_set.  Don't define
10114         target_flags_explicit.
10115         * opth-gen.awk: Declare global_options_set.  Define
10116         target_flags_explicit as macro.
10117         * opts-common.c (handle_option): Take opts_set and generated_p
10118         parameters.
10119         (handle_generated_option, read_cmdline_option, set_option): Take
10120         opts_set parameter.
10121         (set_option): Use opts_set instead of hardcoding target_flags and
10122         target_flags_explicit.
10123         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
10124         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
10125         flag_value_profile_transformations_set, flag_peel_loops_set,
10126         flag_branch_probabilities_set, flag_inline_functions_set,
10127         flag_ipa_cp_set, flag_ipa_cp_clone_set,
10128         flag_predictive_commoning_set, flag_unswitch_loops_set,
10129         flag_gcse_after_reload_set): Remove.
10130         (common_handle_option, lang_handle_option, target_handle_option):
10131         Take opts_set parameter.  Assert that it is &global_options_set.
10132         (common_handle_option): Don't set _set variables.  Check opts_set
10133         instead of such variables.
10134         (enable_warning_as_error): Pass &global_options_set to
10135         handle_generated_option.
10136         * opts.h (cl_option_handler_func.handler, set_option,
10137         handle_option, handle_generated_option, read_cmdline_option): Add
10138         opts_set parameters.
10139         (handle_option): Add generated_p parameter.
10140         * config/i386/i386.c (ix86_function_specific_save,
10141         ix86_function_specific_restore): Updat for renaming of
10142         target_flags_explicit field.
10143         * config/i386/i386.opt (target_flags_explicit): Rename to
10144         ix86_target_flags_explicit.
10145         * config/ia64/ia64.c (ia64_override_options_after_change): Check
10146         global_options_set.x_flag_selective_scheduling and
10147         global_options_set.x_flag_selective_scheduling2, not
10148         sel_sched_switch_set.
10149         * flags.h (sel_sched_switch_set,
10150         flag_speculative_prefetching_set): Remove.
10151         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
10152         that it is &global_options_set.
10153         (process_command): Pass &global_options_set to read_cmdline_option.
10154         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
10155         set_option.
10156         * toplev.c (target_flags_explicit): Remove.
10157
10158 2010-10-04  Jan Hubicka  <jh@suse.cz>
10159
10160         PR middle-end/45871
10161         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
10162         use get_ref_base_and_offset to handle references.
10163         (fold_const_aggregate_ref): Update.
10164
10165 2010-10-04  Martin Jambor  <mjambor@suse.cz>
10166
10167         PR tree-optimization/45572
10168         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
10169         ipa_check_create_node_params.
10170         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
10171
10172 2010-10-04  Yao Qi  <yao@codesourcery.com>
10173
10174         * doc/passes.texi: Clean up.
10175
10176 2010-10-03  Ian Lance Taylor  <iant@google.com>
10177
10178         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
10179         referring to a field using a typedef name.
10180         (find_anonymous_field_with_type): New static function.
10181         (convert_to_anonymous_field): New static function.
10182         (convert_for_assignment): If -fplan9-extensions, permit converting
10183         pointer to struct to pointer to anonymous field.
10184         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
10185         (is_duplicate_field): New static function.
10186         (detect_field_duplicates_hash): If -fplan9-extensions, check for
10187         typedef names duplicating field names.
10188         (detect_field_duplicates): Likewise.
10189         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
10190         (C Dialect Options): Document -fplan9-extensions.
10191         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
10192
10193 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
10194
10195         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
10196         revision 164914.
10197         (vect_create_data_ref_ptr): Likewise.
10198         * tree-vect-stmts.c (vectorizable_store): Likewise.
10199         (perm_mask_for_reverse): Likewise.
10200         (reverse_vec_elements): Likewise.
10201         (vectorizable_load): Likewise.
10202
10203 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10204
10205         * cppbuiltin.c: New file.
10206         * cppbuiltin.h: New file.
10207         * Makefile.in: Take into account cppbuiltin.{h,c}.
10208
10209 2010-10-03  Andi Kleen  <ak@linux.intel.com>
10210
10211         * lto-cgraph.c (input_cgraph): Check for missing sections.
10212
10213 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
10214
10215         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
10216         to nonimmediate_operand.  Force operand 2 to register when allowed.
10217         (*<shiftrt_insn><mode>3_mask): Ditto.
10218         (*<rotate_insn><mode>3_mask): Ditto.
10219
10220 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
10221
10222         PR tree-optimization/45720
10223         PR tree-optimization/45764
10224         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
10225         Don't accept backwards consecutive accesses.
10226         (vect_create_data_ref_ptr): Disallow negative steps.
10227
10228         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
10229         (perm_mask_for_reverse): Removed.
10230         (reverse_vec_elements): Likewise.
10231         (vectorizable_load): Don't handle negative steps.
10232
10233 2010-10-02  Jan Hubicka  <jh@suse.cz>
10234
10235         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
10236         call destination is known.
10237
10238 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10239
10240         PR target/45820
10241         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
10242         earlier.
10243
10244 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10245
10246         * doc/install.texi (Configuration): Document build_configargs,
10247         host_configargs, target_configargs.
10248
10249 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
10250
10251         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
10252         (*<shiftrt_insn><mode>3_mask): Ditto.
10253         (*<rotate_insn><mode>3_mask): Ditto.
10254
10255 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
10256
10257         PR tree-optimization/44716
10258         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
10259         (HOT_TEXT_SECTION_NAME): Define.
10260
10261 2010-10-01  Nick Clifton  <nickc@redhat.com>
10262
10263         * common.opt: Add -fcombine-stack-adjustments.
10264         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
10265         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
10266         flag_combine_stack_adjustments.
10267         * doc/invoke.texi: Document the new option.
10268
10269 2010-10-01  Richard Guenther  <rguenther@suse.de>
10270
10271         PR tree-optimization/45854
10272         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
10273
10274 2010-10-01  Anthony Green  <green@moxielogic.com>
10275
10276         * config.gcc: Fix moxie-*-rtems* configuration.
10277
10278 2010-10-01  Richard Guenther  <rguenther@suse.de>
10279
10280         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
10281         (gen_decl_die): Likewise.
10282
10283 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10284
10285         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
10286         to the function code for SPU MD builtins.
10287         (spu_expand_builtin): Update.
10288         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
10289
10290 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10291
10292         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
10293         sjlj_except_unwind_info.
10294
10295 2010-10-01  Tristan Gingold  <gingold@adacore.com>
10296
10297         * configure.ac: Define the nop insn for avr*-*-*
10298         * configure: Regenerate.
10299
10300 2010-10-01  Alan Modra  <amodra@gmail.com>
10301
10302         PR target/45807
10303         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
10304         extend toc_restore_insn.
10305
10306 2010-09-30  Richard Guenther  <rguenther@suse.de>
10307
10308         PR tree-optimization/43959
10309         * function.c (gimplify_parameters): Use create_tmp_reg instead of
10310         create_tmp_var.
10311
10312 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
10313
10314         * config/sh/sh.c (sh_expand_prologue): Set
10315         current_function_static_stack_size.
10316
10317 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10318
10319         * configure.ac: Check for Solaris 8 ld with .hidden support.
10320         * configure: Regenerate.
10321
10322 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10323
10324         PR middle-end/45758
10325         * graphite.c (graphite_initialize): Call scev_reset.
10326
10327 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10328
10329         * sese.h (scev_analyzable_p): Return false for real or floating
10330         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
10331
10332 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10333
10334         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
10335         and ps.
10336         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
10337         domain.
10338         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
10339         Do not allocate ub_expr, it is passed in initialized.
10340
10341 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10342
10343         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
10344         (build_cloog_prog): Dump CLooG input file when
10345         flag_graphite_dump_cloog is set.  This is disabled on trunk.
10346         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
10347
10348 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10349
10350         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
10351         verify_dominators for CDI_POST_DOMINATORS.
10352         * sese.h: Remove comment about CDI_POST_DOMINATORS.
10353         (recompute_all_dominators): Remove call to free_dominance_info
10354         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
10355         for CDI_POST_DOMINATORS.
10356
10357 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10358
10359         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
10360         over pbb_dim_iter_domain.
10361
10362 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10363
10364         * graphite-flattening.c: Fix comments.
10365
10366 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10367
10368         * Makefile.in (OBJS-common): Add graphite-flattening.o.
10369         (graphite-flattening.o): New rule.
10370         * common.opt (floop-flatten): New flag.
10371         * doc/invoke.texi (-floop-flatten): Documented.
10372         * graphite-flattening.c: New.
10373         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
10374         * graphite-poly.h (flatten_all_loops): Declared.
10375         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
10376         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
10377         is set, also set flag_graphite.
10378
10379 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10380
10381         * graphite-poly.c (cloog_checksum): New.
10382         * graphite-poly.h (cloog_checksum): Declared.
10383
10384 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10385
10386         * graphite-poly.c (pbb_number_of_iterations): Removed.
10387         (pbb_number_of_iterations_at_time): Correctly compute the number
10388         of iterations in the transformed loop.
10389         * graphite-poly.h (pbb_number_of_iterations): Removed.
10390
10391 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10392
10393         * graphite-poly.h (lst_update_scattering_seq): Removed.
10394         (lst_update_scattering): Correctly handle outermost loop dewey
10395         renumbering.
10396
10397 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10398
10399         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
10400         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
10401         * graphite-poly.h (lst_niter_for_loop): New.
10402
10403 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10404
10405         * graphite-poly.c (apply_poly_transforms): Do not abort when the
10406         transform read from disk is not legal.  Call fatal_error instead.
10407
10408 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10409
10410         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
10411         (print_scop_header): Removed.  Inlined in the only call place...
10412         (print_scop): ... here.
10413
10414 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10415
10416         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
10417
10418 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10419
10420         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
10421
10422 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10423
10424         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
10425         (dot_deps_stmt): Same.
10426         * graphite-poly.c (dot_lst): Same.
10427
10428 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10429
10430         * graphite-blocking.c (scop_do_strip_mine): Do not call
10431         graphite_legal_transform.
10432         (scop_do_block): Same.
10433
10434 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
10435
10436         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
10437         description.
10438
10439 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10440
10441         * tree-scalar-evolution.c (instantiate_array_ref): New.
10442         (instantiate_scev_r): Also handle ARRAY_REFs.
10443
10444 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10445
10446         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
10447         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
10448         RESULT_DECL, and FIELD_DECL.  Return false for an
10449         SSA_NAME_IS_DEFAULT_DEF.
10450         (compute_scalar_evolution_in_loop): Do not further analyze the
10451         scalar evolution when no_evolution_in_loop_p returns true.
10452
10453 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10454
10455         * tree-chrec.h (evolution_function_is_affine_p): Do not check
10456         whether CHREC_LEFT is invariant.  A function is affine when
10457         CHREC_RIGHT is invariant.
10458
10459 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10460
10461         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
10462         is_gimple_reg.
10463         (rewrite_degenerate_phi): Same.
10464         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
10465
10466 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
10467
10468         * graphite-scop-detection.c (graphite_can_represent_scev,
10469         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
10470         graphite_can_represent_loop): Remove outermost_loop.
10471
10472 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10473
10474         PR middle-end/45229
10475         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
10476         handle GIMPLE_CALLs with no LHS.
10477
10478 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10479
10480         * graphite-poly.c (init_graphite_out_file): New.
10481         (init_graphite_in_file): New.
10482         (apply_poly_transforms): Updated to enable reading and writing of
10483         multiple scop files.
10484
10485 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
10486
10487         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
10488         redundant checks.
10489
10490 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10491
10492         * graphite-clast-to-gimple.c (precision_for_value): Adjust
10493         computation of precision by 1.
10494
10495 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10496
10497         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
10498         (openscop_read_polyhedron_matrix): New.
10499         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
10500         (openscop_read_N_int): Same.
10501         * graphite-poly.c (openscop_read_N_int): New.
10502         (openscop_read_one_int): New.
10503         (openscop_read_N_string): New.
10504         (openscop_read_one_string): New.
10505         (openscop_read_powerset_matrix): New.
10506         (graphite_read_transforms): Remove.
10507         (graphite_read_scatt): New.
10508         (graphite_read_scop_file): New.
10509         (apply_poly_transforms): Updated to call graphite_read_scop_file.
10510
10511 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10512
10513         * graphite-poly.c: Change include order.
10514
10515 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10516
10517         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
10518         (cloog_matrix_nrows): New.
10519
10520 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10521
10522         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
10523         from matrix lines.
10524         * graphite-poly.c (openscop_print_scattering_function_1): Same.
10525         (print_scattering_function_1): Same.
10526         (openscop_print_pbb_domain): Same.
10527         (openscop_print_scop_context): Same.
10528         (print_scop_context): Same.
10529
10530 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
10531
10532         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
10533         (openscop_print_pdr_polyhedron): Print pph.
10534
10535 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10536
10537         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
10538         priority signed types.
10539
10540 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10541
10542         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
10543         the call to lang_hooks.types.type_for_size.  Call
10544         build_nonstandard_integer_type.
10545
10546 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10547
10548         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
10549         (openscop_print_polyhedron_matrix): New.
10550         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
10551         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
10552         (openscop_print_pdr_powerset): New.
10553         (openscop_print_powerset_matrix): New.
10554         (openscop_print_scattering_function_1): New.
10555         (print_scattering_function): Add support for scattering names and
10556         OpenScop format.
10557         (graphite_write_transforms): Remove.
10558         (print_pdr_access_layout): Updated to support OpenScop format.
10559         (print_pdr): Same.
10560         (openscop_print_pbb_domain): New.
10561         (print_pbb_body): Added a parameter to allow indicating that pbb_body
10562         is not provided.
10563         (print_pbb): Updated to call the new print_pbb_body.
10564         (openscop_print_scop_context): New.
10565         (print_scop_header): New.
10566         (print_scop): Updated to call print_scop_header.
10567         * graphite-poly.h: Document OpenScop format.
10568
10569 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
10570
10571         * config/cris/m32c.c (cris_memory_move_cost): New.
10572         (cris_register_move_cost): Make static. Change arguments type from
10573         enum reg_class to reg_class_t.
10574         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
10575         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10576         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
10577
10578 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
10579
10580         PR target/45843
10581         * config/i386/i386.c (ix86_gimplify_va_arg): Use
10582         INTVAL (XEXP (slot, 1)) as prev_size.
10583
10584 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
10585
10586         PR target/45837
10587         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
10588         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
10589         defined.
10590         * config/rs6000/option-defaults.h (toplevel): Change #if
10591         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
10592         global option changes.
10593
10594 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
10595
10596         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
10597
10598         PR tree-optimization/31261
10599         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
10600         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
10601
10602 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10603
10604         PR bootstrap/45796
10605         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
10606         special-casing for generators and turn into ...
10607         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
10608         rule, for better error messages in case of toplevel dependency errors.
10609         (genprog): Add hooks, rename to ...
10610         (genprogerr): ... this, and let genprog also contain check,
10611         checksum, condmd.
10612         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
10613         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
10614         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
10615
10616 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
10617             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10618
10619         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
10620         for GMP, MPFR and MPC.
10621
10622 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10623
10624         * config/sparc/sparc.opt (mimpure-text): Move ...
10625         * config/sol2.opt: ... here.  Correct description.
10626         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
10627         * doc/invoke.texi (Option Summary, SPARC Options): Move
10628         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
10629         (Option Summary, Solaris 2 Options): ... here.
10630         (Submodel Options, Solaris 2 Options): New menu entry.
10631         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
10632         (Solaris 2 Options): ... here.
10633
10634 2010-09-30  Michael Eager  <eager@eagercon.com>
10635
10636         * extend.texi (interrupt_handler): Add MicroBlaze to list.
10637         (save_volatiles): Describe option for MicroBlaze.
10638         * invoke.texi: Add MicroBlaze Options.
10639         * contrib.texi: Add acknowledgment.
10640         * md.texi: Add MicroBlaze d and z constraints.
10641         * install.texi: Add microblaze-*-elf.
10642         * configure.ac: Add microblaze-*-* to target list.
10643         * configure: Regenerate.
10644         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
10645         * config/microblaze/microblaze-protos.h: New.
10646         * config/microblaze/crti.s: New.
10647         * config/microblaze/predicates.md: New.
10648         * config/microblaze/linux.h: New.
10649         * config/microblaze/microblaze.md: New.
10650         * config/microblaze/constraints.md: New.
10651         * config/microblaze/crtn.s: New.
10652         * config/microblaze/microblaze.opt: New.
10653         * config/microblaze/microblaze-c.c: New.
10654         * config/microblaze/t-microblaze: New.
10655         * config/microblaze/microblaze.c: New.
10656         * config/microblaze/microblaze.h: New.
10657
10658 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
10659
10660         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
10661         parse @optional/@required and set the flags as appropriate.
10662
10663 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
10664
10665         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
10666
10667 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
10668
10669         * opt-functions.awk (static_var): Update comment.
10670         (var_ref): Return offsetof expression or -1, not variable address.
10671         * optc-gen.awk: Generate structure field initializers instead of
10672         static variables.  Expect -1 for missing variables instead of null
10673         pointer.  Add gcc_options parameters to generated functions.
10674         * opth-gen.awk: Generate structure fields for static variables.
10675         Add gcc_options parameters to generated functions.
10676         * common.opt (optimize, optimize_size): Add variables.
10677         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
10678         &global_options to cl_target_option_restore.
10679         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
10680         &global_options to cl_optimization_restore, cl_target_option_save
10681         and cl_target_option_restore.
10682         (ix86_set_current_function): Pass &global_options to
10683         cl_target_option_restore.
10684         * config/pdp11/pdp11.h (optimize): Remove.
10685         * config/rs6000/rs6000.h (optimize): Remove.
10686         * config/sh/sh.h (optimize): Remove.
10687         * config/xtensa/xtensa.h (optimize): Remove.
10688         * coretypes.h (struct gcc_options): Declare.
10689         * diagnostic.c (diagnostic_initialize): Initialize
10690         context->option_state.
10691         (diagnostic_report_diagnostic): Pass option_state to
10692         option_enabled hook.
10693         * diagnostic.h (diagnostic_context.option_enabled): Add void *
10694         parameter.
10695         (diagnostic_context.option_state): New field.
10696         * final.c (final_start_function, final, final_scan_insn): Rename
10697         optimize parameter to optimize_p.
10698         * flags.h (optimize, optimize_size): Remove.
10699         * function.c (invoke_set_current_function_hook): Pass
10700         &global_options to cl_optimization_restore.
10701         * gcc.c (driver_handle_option): Take gcc_options parameter.
10702         Assert that it is &global_options.
10703         (process_command): Pass &global_options to read_cmdline_option.
10704         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
10705         option_enabled.
10706         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
10707         &global_options to set_option.
10708         * opts-common.c (handle_option, handle_generated_option,
10709         read_cmdline_option, set_option): Take explicit gcc_options
10710         parameters.  Use option_flag_var.
10711         (option_flag_var): New.
10712         * opts.c (common_handle_option, lang_handle_option,
10713         target_handle_option): Take gcc_options parameter.  Assert that it
10714         is &global_options.
10715         (read_cmdline_options): Pass &global_options to read_cmdline_option.
10716         (print_filtered_help): Use option_flag_var.  Pass &global_options
10717         to option_enabled.
10718         (common_handle_option): Use option_flag_var.
10719         (option_enabled): Take opts parameter.  Use option_flag_var.
10720         (get_option_state): Take gcc_options parameter.  Use
10721         option_flag_var.  Pass gcc_options parameter to option_enabled.
10722         (enable_warning_as_error): Pass &global_options to
10723         handle_generated_option.
10724         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
10725         (cl_option_handler_func.handler): Take gcc_options parameter.
10726         (option_enabled, get_option_state, set_option, handle_option,
10727         handle_generated_option, read_cmdline_option): Take gcc_options
10728         parameters.
10729         * toplev.c (optimize, optimize_size): Remove.
10730         (print_switch_values): Pass &global_options to option_enabled.
10731         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
10732         to get_option_state.
10733         (general_init): Initialize global_dc->option_state.
10734         * tree.c (build_optimization_node): Pass &global_options to
10735         cl_optimization_save.
10736         (build_target_option_node): Pass &global_options to
10737         cl_target_option_save.
10738
10739 2010-09-30  Martin Jambor  <mjambor@suse.cz>
10740
10741         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
10742         zero sized bit-fields.
10743
10744 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
10745
10746         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
10747         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
10748         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
10749         (c_parser_objc_class_declaration): Same change.
10750         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
10751         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10752         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
10753         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
10754         and RID_AT_PUBLIC instead of RID_PUBLIC.
10755         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
10756         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10757
10758 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
10759
10760         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
10761         Add links to current providers of packages for Solaris and IRIX.
10762
10763 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10764
10765         Merge from 'apple/trunk' branch on FSF servers.
10766         * c-parser.c: Applied change originally in c-parse.in.
10767
10768         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
10769
10770         Radar 4281748
10771         * c-decl.c (start_decl): Check for redeclaration of class name.
10772         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
10773
10774 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
10775
10776         * config/ia64/ia64.c (ia64_builtin_decl): New.
10777         (TARGET_BUILTIN_DECL): Define.
10778         (ia64_builtins): New.
10779         (ia64_init_builtins): Save decls in ia64_builtins.
10780
10781 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
10782
10783         PR target/40457
10784         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
10785         (move2add_use_add3_insn): Likewise.
10786         (reload_cse_move2add): Likewise.
10787         * rtlanal.c (get_full_rtx_cost): New function.
10788         * rtl.h (struct full_rtx_costs): New.
10789         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
10790         costs_add_n_insns): New inline functions.
10791         (get_full_rtx_cost): Declare.
10792
10793         PR c/45054
10794         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
10795         invariants.  Check for reg_equiv_invariant.
10796         (reload): Assert that spilled_pseudos is empty when returning.
10797
10798 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
10799
10800         * config/i386/mingw32.h (TARGET_64BIT): replaced by
10801         TARGET_64BIT_DEFAULT in #if check.
10802
10803 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
10804
10805         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
10806
10807 2010-09-29  Mike Stump  <mikestump@comcast.net>
10808
10809         * config/darwin.h (flag_mkernel): Remove.
10810         (flag_apple_kext): Likewise.
10811
10812 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10813             Jack Howarth  <howarth@bromo.med.uc.edu>
10814
10815         * config/darwin.opt (undefined): Add.
10816
10817 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10818
10819         PR testsuite/45664
10820         * configure.ac: Add --enable-indirect-function option.
10821         * config.gcc: Add default_gnu_indirect_function.
10822         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
10823         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
10824         * varasm.c (do_assemble_alias): Adjust for macro name change.
10825         * configure: Rebuilt.
10826         * doc/install.texi: Document --enable-indirect-function.
10827
10828 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10829
10830         * doc/options.texi (Variable, Var, Init): Update documentation
10831         without reference to VarExists.
10832         (VarExists): Remove.
10833         * common.opt, config/i386/i386.opt, config/linux.opt,
10834         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
10835         Don't use VarExists.
10836
10837 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10838
10839         * optc-gen.awk: Generate global_options initializer instead of
10840         individual variables.  Add x_ prefix to names of structure members.
10841         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
10842         names of structure members.
10843         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10844         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
10845         * doc/tm.texi: Regenerate.
10846         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10847         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10848         * c-parser.c (disable_extension_diagnostics,
10849         restore_extension_diagnostics): Update names of cpp_options members.
10850         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10851         * common.opt (fcompare-debug-second): Don't use Var.
10852         * config/alpha/alpha.h (target_flags): Remove.
10853         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10854         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10855         * config/bfin/bfin.h (target_flags): Remove.
10856         * config/cris/cris.h (target_flags): Remove.
10857         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
10858         cl_target_option members.
10859         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
10860         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
10861         ix86_can_inline_p): Update names of cl_target_option members.
10862         * config/i386/i386.h (ix86_isa_flags): Remove.
10863         * config/lm32/lm32.h (target_flags): Remove.
10864         * config/mcore/mcore.h (mcore_stack_increment): Remove.
10865         * config/mcore/mcore.md (addsi3): Remove extern declaration of
10866         flag_omit_frame_pointer.
10867         * config/mep/mep.h (target_flags): Remove.
10868         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10869         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10870         * config/mmix/mmix.h (target_flags): Remove.
10871         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10872         flag_expensive_optimizations): Remove.
10873         * config/s390/s390.h (flag_pic): Remove.
10874         * config/score/score-conv.h (target_flags): Remove.
10875         * config/sh/sh.h (sh_fixed_range_str): Remove.
10876         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10877         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10878         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10879         * diagnostic.c (diagnostic_initialize): Update names of
10880         diagnostic_context members.
10881         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10882         warn_system_headers.
10883         (diagnostic_report_warnings_p): Update for new names.
10884         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10885         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10886         HARD_FRAME_POINTER_IS_ARG_POINTER.
10887         * flags.h (flag_compare_debug): Declare.
10888         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10889         * opts.c (flag_compare_debug): Define.
10890         (common_handle_option): Update names of diagnostic_context
10891         members.  Handle -fcompare-debug-second.
10892         (fast_math_flags_struct_set_p): Update names of cl_optimization
10893         members.
10894         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10895         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10896         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10897         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10898         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10899         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10900         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10901         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10902         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10903
10904 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10905
10906         * config/picochip/picochip.c (picochip_output_internal_label):
10907         This function can now be called for debug CFI labels, which can come
10908         in the middle of a vliw instruction.  Postpone until end of vliw.
10909
10910 2010-09-29  Richard Guenther  <rguenther@suse.de>
10911
10912         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
10913         (DECL_FILE_SCOPE_P): Use it.
10914         (TYPE_FILE_SCOPE_P): New macro.
10915
10916 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10917
10918         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
10919         a CPP_NAME which is a reserved word, clearly separate cases for
10920         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
10921
10922 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10923
10924         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
10925         token->value with the canonical spelling.  Do exactly like C and
10926         C++ and leave it as it is.
10927
10928 2010-09-28  Richard Henderson  <rth@redhat.com>
10929
10930         * config/alpha/alpha.c (alpha_builtins): New.
10931         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
10932         (alpha_builtin_function): New.
10933         (alpha_add_builtins, alpha_init_builtins): Use it.
10934
10935 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
10936
10937         * doc/standards.texi (Standards): Expanded the section on
10938         Objective-C and Objective-C++.
10939
10940 2010-09-28  DJ Delorie  <dj@redhat.com>
10941
10942         PR target/45800
10943         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
10944         volatile MEMs.
10945
10946 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10947
10948         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
10949         attributes on methods.
10950          (c_parser_objc_method_definition): Handle attributes.
10951         (c_parser_objc_methodproto): Likewise.
10952         (c_parser_objc_maybe_method_attributes): New.
10953         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
10954         missing definition, similar to that in ObjC++.
10955
10956 2010-09-28  Richard Henderson  <rth@redhat.com>
10957
10958         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
10959         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10960         (CONFIG_SJLJ_EXCEPTIONS): Remove.
10961         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
10962         (STACK_CHECK_PROTECT): Likewise.
10963         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
10964         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
10965         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
10966         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
10967         (dwarf2out_assembly_start): Likewise.
10968         * except.c (init_eh): Use targetm.except_unwind_info.
10969         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
10970         (output_one_function_exception_table): Likewise.
10971         * final.c: Unconditionally include dwarf2out.h.
10972         (final_start_function): Unconditionally call dwarf2out routines.
10973         (final_end_function, final_scan_insn): Likewise.
10974         * function.c (expand_function_end): Use targetm.except_unwind_info.
10975         * opts.c (decode_options): Use targetm.except_unwind_info.
10976         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
10977         * target.def (debug_unwind_info, except_unwind_info): New.
10978         * target.h (enum unwind_info_type): New.
10979         * targhooks.c (default_debug_unwind_info): New.
10980         (default_except_unwind_info): New.
10981         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
10982         * targhooks.h: Declare them.
10983         * tree-tailcall.c: Include "target.h"
10984         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
10985         * Makefile.in (tree-tailcall.o): Update.
10986         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
10987         (lhd_gcc_personality): Likewise.
10988
10989         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
10990         (TARGET_EXCEPT_UNWIND_INFO): New.
10991         (DWARF2_UNWIND_INFO): Update.
10992         (TARGET_DEBUG_UNWIND_INFO): New.
10993         * doc/tm.texi: Rebuild.
10994
10995         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
10996         targetm.except_unwind_info.
10997
10998         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
10999         (arm_except_unwind_info): New.
11000         (arm_compute_func_type): Use it.
11001         (arm_expand_prologue, thumb_pushpop): Likewise.
11002         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
11003         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
11004         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
11005         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
11006         (DWARF2_UNWIND_INFO): Remove.
11007         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
11008         (ARM_EABI_UNWIND_TABLES): Remove.
11009
11010         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
11011         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
11012         (ia64_except_unwind_info): New.
11013         (ia64_output_function_prologue): Use it.
11014         (ia64_add_bundle_selector_before): Likewise.
11015         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
11016         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
11017         (TARGET_UNWIND_INFO): Remove.
11018
11019         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
11020
11021 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
11022
11023         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
11024         (c_parser_objc_protocol_definition): Likewise.
11025         (c_parser_external_declaration): Provide dummy attribute arguments.
11026         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
11027         (c_parser_objc_class_definition): Handle attributes.
11028         (c_parser_objc_protocol_definition): Likewise.
11029
11030 2010-09-28  Tobias Burnus  <burnus@net-b.de>
11031
11032         PR fortran/40569
11033         PR fortran/40568
11034         * toplev.h (save_decoded_options, save_decoded_options_count):
11035         New global variables.
11036         * toplev.c (save_decoded_options, save_decoded_options_count):
11037         Export variables.
11038
11039 2010-09-28  Ian Lance Taylor  <iant@google.com>
11040
11041         * config/i386/i386.c (ix86_supports_split_stack): Test
11042         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
11043
11044 2010-09-28  Ian Lance Taylor  <iant@google.com>
11045
11046         PR target/45815
11047         * opts.c (decode_options): Don't test whether the target supports
11048         split stack if flag_split_stack == 0.
11049
11050 2010-09-28  Jan Hubicka  <jh@suse.cz>
11051
11052         * builtin-attrs.def (ATTR_LEAF): New attribute.
11053         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
11054         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
11055         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
11056         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
11057         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
11058         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
11059         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
11060         * sync-builtins.def: Annotate all builtins by leaf.
11061         * omp-builtins.def: Annotate all builtins by leaf.
11062         * builtins.def: Annotate relevant builtins with leaf attribute.
11063         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
11064         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
11065         leaf.
11066
11067 2010-09-28  Jan Hubicka  <jh@suse.cz>
11068
11069         * tree-ssa-ccp.c (fold_ctor_reference): New function.
11070         (fold_const_aggregate_ref): Use it.
11071         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
11072         into external static.
11073
11074 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11075
11076         PR target/44452
11077         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
11078         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
11079         (ix86_solaris_return_in_memory): Remove.
11080         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
11081         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
11082         (TARGET_SUBTARGET_DEFAULT): Redefine.
11083         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
11084         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
11085         (TARGET_SUBTARGET_DEFAULT): Redefine.
11086         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
11087         -mvect8-ret-in-mem.
11088         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
11089
11090 2010-09-29  Alan Modra  <amodra@gmail.com>
11091
11092         PR target/45807
11093         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
11094         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
11095         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
11096         Delete.
11097         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
11098         (rs6000_emit_prologue): Don't just create frame save info for r2,
11099         actually save r2.
11100
11101 2010-09-28  Richard Henderson  <rth@redhat.com>
11102
11103         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
11104         when 8 bytes are requested.
11105
11106 2010-09-28  Tristan Gingold  <gingold@adacore.com>
11107
11108         * config/avr/avr.c (expand_prologue): Set
11109         current_function_static_stack_size.
11110
11111 2010-09-28  Tristan Gingold  <gingold@adacore.com>
11112
11113         * config/alpha/alpha.md: Change the initial condition of the
11114         probing loop.
11115
11116 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
11117
11118         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
11119         Split from *avx_<maxmin:code><mode>3.
11120         (*avx_<smaxmin:code><mode>3): Ditto.
11121         * config/i386/i386.md (maxmin): Remove code iterator.
11122
11123 2010-09-27  Ian Lance Taylor  <iant@google.com>
11124
11125         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
11126         requires assembler support for CFI directives.
11127
11128 2010-09-27  Richard Henderson  <rth@redhat.com>
11129
11130         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
11131
11132 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
11133
11134         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
11135         that AFTER is not in the range FROM..TO, inclusive.
11136
11137 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
11138             Bernd Schmidt  <bernds@codesourcery.com>
11139
11140         PR rtl-optimization/45792
11141         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
11142         If not all insns are to be merged, for each edge, stash the
11143         next candidate after the to-be-merged insns before doing the
11144         merge, and use them for the retry at the new insertion point.
11145         Handle CC0 targets when retrying.
11146
11147 2010-09-27  Ian Lance Taylor  <iant@google.com>
11148
11149         * common.opt (fsplit-stack): New option.
11150         * opts.c (decode_options): Set flag_split_stack to final value.
11151         * target.def (supports_split_stack): New hook.
11152         * gcc.c (STACK_SPLIT_SPEC): Define.
11153         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
11154         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
11155         (Code Gen Options): Document -fsplit-stack.
11156         * doc/extend.texi (Function Attributes): Mention no_split_stack.
11157         (Function Attributes): Document no_split_stack.
11158         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
11159         TARGET_SUPPORTS_SPLIT_STACK.
11160         * doc/tm.texi: Rebuild.
11161         * function.c (thread_prologue_and_epilogue_insns): If
11162         flag_split_stack, add split stack prologue.
11163         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
11164         * varasm.c (saw_no_split_stack): New static variable.
11165         (assemble_start_function): Set saw_no_split_stack if the function
11166         has the no_split_stack attribute.
11167         (file_end_indicate_split_stack): New function.
11168         * output.h (file_end_indicate_split_stack): Declare.
11169         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
11170         and function.
11171         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
11172         routines.
11173         * config/i386/i386.c (ix86_option_override_internal): Don't set
11174         expand_builtin_va_start to NULL if -fsplit-stack.
11175         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
11176         -fsplit-stack.
11177         (ix86_va_start): If -fsplit-stack, get overflow pointer from
11178         scratch register set by prologue.
11179         (ix86_code_end): If -fsplit-stack, call
11180         file_end_indicate_split_stack.
11181         (ix86_supports_split_stack): New static function.
11182         (SPLIT_STACK_AVAILABLE): Define.
11183         (split_stack_prologue_scratch_regno): New static function.
11184         (split_stack_fn): New static variable.
11185         (ix86_expand_split_stack_prologue): New function.
11186         (ix86_live_on_entry): New static function.
11187         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
11188         (output_pic_addr_const): Likewise.
11189         (i386_asm_output_addr_const_extra): Likewise.
11190         (ix86_expand_call): Change return type to rtx.  Return the new
11191         call instruction.
11192         (TARGET_SUPPORTS_SPLIT_STACK): Define.
11193         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
11194         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
11195         (split_stack_prologue, split_stack_return): New insns.
11196         (split_stack_space_check): New insn.
11197         * config/i386/i386.h (struct machine_function): Add
11198         split_stack_varargs_pointer field.
11199         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
11200         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
11201         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
11202         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
11203         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
11204         Declare.
11205         (ix86_expand_call): Update declaration.
11206
11207 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
11208
11209         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
11210         code.  Added byref, which was missing in the list of codes.
11211         Explain that enumeration values are encoded as the integer type
11212         that the compiler uses to store them.  Explain and make examples
11213         of how 'const' interacts with pointers, and the complication of
11214         the encoding of 'const char *'.
11215         (Legacy type encoding): New subsection, explaining that GCC emits
11216         incorrect type encodings for the NeXT runtime for compatibility
11217         reasons.
11218         (@@encode): New subsection, explaining @encode and particularly
11219         that protocol qualifiers are not recognized inside an @encode()
11220         expression.
11221         (Method signatures): New subsection, explaining how method
11222         signatures are encoded.
11223
11224 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
11225
11226         Merge from 'apple/trunk' branch on FSF servers.  Removed small
11227         change in build_conditional_expr that had been added when fixing
11228         PR objc/27377 and which did the same check in a less complete way.
11229
11230         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
11231
11232         Radar 4229905
11233         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
11234         looking for objective-c common pointer types.
11235
11236         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
11237
11238         Radar 4154928
11239         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
11240         use their ObjC common type.
11241
11242 2010-09-27  Richard Guenther  <rguenther@suse.de>
11243
11244         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
11245
11246 2010-09-27  Jie Zhang  <jie@codesourcery.com>
11247
11248         * print-tree.c (print_node): Print in-constant-pool.
11249
11250 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
11251
11252         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
11253         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
11254         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
11255         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
11256
11257 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
11258
11259         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
11260         from pro_epilogue_adjust_stack_<mode>_{1,2}.
11261         (pro_epilogue_adjust_stack_<mode>_add): Rename from
11262         pro_epilogue_adjust_stack_<mode>_3.
11263         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
11264         renamed pro_epilogue_adjust_stack_{si,di}_add.
11265         (ix86_expand_prologue): Use indirect functions.  Update for renamed
11266         pro_epilogue_adjust_stack_{si,di}_sub.
11267
11268 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
11269
11270         * config/i386/i386.md (movmsk_df): New insn.
11271         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
11272         sequence for TARGET_SSE_MATH.
11273
11274 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
11275
11276         * config/mips/mips.c (mips_builtin_decls): Declare.
11277         (mips_init_builtins): Store function declarations in
11278         mips_builtin_decls.
11279         (mips_builtin_decl): New function.
11280         (TARGET_BUILTIN_DECL): Define.
11281
11282 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
11283             Richard Henderson  <rth@redhat.com>
11284
11285         * config/i386/cygwin.asm: Include auto-host.h.
11286         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
11287         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
11288         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
11289         alignment code from the 64-bit path.  Use gas local labels.
11290         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
11291         from _di_2.  Remove the useless constant integer argument.
11292         (pro_epilogue_adjust_stack_<mode>_3): New.
11293         (allocate_stack_worker_probe_<mode>): Macroize from
11294         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
11295         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
11296         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
11297         (__chkstk_ms): New function.
11298         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
11299         * config/i386/t-interix: Likewise.
11300         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
11301         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
11302         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
11303         * configure, config.in: Rebuild.
11304
11305 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
11306
11307         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
11308         statements because of the return slot optimization.
11309
11310 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
11311
11312         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
11313         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
11314         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11315         (class_likely_spilled_p): Rename to...
11316         (avr_class_likely_spilled_p): ...this. Make static. Change argument
11317         type to reg_class_t.
11318
11319 2010-09-24  Jan Hubicka  <jh@suse.cz>
11320
11321         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
11322         (lto_symtab_resolve_symbols): Set it.
11323         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
11324         store resolution field in cgraph/varpool.
11325         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
11326         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
11327         (cgraph_dump_node): Drop used_from_object_file.
11328         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
11329         (cgraph_function_body_availability): Use decl_replaceable_p.
11330         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
11331         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
11332         cgraph_used_from_object_file_p.
11333         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
11334         cgraph_used_from_object_file_p.
11335         (resolution_used_from_other_file_p): New functoin.
11336         (cgraph_used_from_object_file_p): New predicate.
11337         * cgraph.h: Include plugin-api.h
11338         (struct cgraph_local_info): Remove used_from_object_file.
11339         (struct cgraph_node): Add resolution field.
11340         (struct varpool_node): Likewise; remove used_from_object_file;
11341         reove const_value_known.
11342         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
11343         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
11344         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
11345         varpool_used_from_object_file_p): Declare.
11346         (varpool_get_node, varpool_extra_name_alias): Update prototype.
11347         * tree.h (DECL_REPLACEABLE_P): Remove.
11348         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
11349         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
11350         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
11351         input_overwrite_node, input_node, input_varpool_node): Stream
11352         resolution.
11353         * expr.c (expand_expr_real_1): Use const_value_known_p
11354         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
11355         const_value_known.
11356         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
11357         (function_and_variable_visibility): Set resolution for local vars
11358         and functions; use varpool_used_from_object_file_p.
11359         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
11360         static functions.
11361         (default_binds_local_p_1): Use resolutoin info.
11362         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
11363         * varpool.c (varpool_get_node): Constify.
11364         (const_value_known_p): Do not use vnode->const_value_known;
11365         use decl_replaceable_p.
11366         (varpool_finalize_decl): Do not set const_value_known.
11367         (cgraph_variable_initializer_availability): Use decl_replaceable_p
11368         (varpool_extra_name_alias): Return new node.
11369         (varpool_used_from_object_file_p): New function.
11370
11371 2010-09-24  Richard Henderson  <rth@redhat.com>
11372
11373         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
11374         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
11375         (do_spill): Use REG_CFA_OFFSET.
11376         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
11377         as appropriate.
11378         (ia64_expand_epilogue): Likewise.
11379         (process_set): Split into ...
11380         (process_cfa_adjust_cfa): this,
11381         (process_cfa_register): this,
11382         (process_cfa_offset): and this new function.
11383         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
11384         instead of REG_FRAME_RELATED_EXPR.
11385
11386 2010-09-24  Olivier Hainque  <hainque@adacore.com>
11387
11388         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
11389
11390 2010-09-24  Jan Hubicka  <jh@suse.cz>
11391
11392         * doc/extend.texi: (attribute leaf): Document.
11393         * tree.c (local_define_builtin): Handle ECF_LEAF.
11394         (build_common_builtin_nodes): Set ECF_LEAF where needed.
11395         * tree.h (ECF_LEAF): New.
11396         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
11397         overwrittable and unavailable functions.
11398         (ipa_init): Put all_module_statics into optimization_summary_obstack.
11399         (copy_global_bitmap): Do not copy all_module_statics.
11400         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
11401         (propagate): Handle overwritable and unavailable leaf functions;
11402         initialize global info for overwritable and unavailable leaf functions;
11403         do not free all module statics.
11404         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
11405         local statics.
11406         * calls.c (flags_from_decl_or_type): Handle leaf.
11407         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
11408         abnormal gotos.
11409
11410 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
11411
11412         * gengtype.c: Reindented.
11413         * gengtype.h: Reindented.
11414         * gengtype-parse.c: Reindented.
11415
11416 2010-09-24  Jan Hubicka  <jh@suse.cz>
11417
11418         PR tree-optimization/45738
11419         PR tree-optimization/45741
11420         * expr.c (string_constant): Allow CONST_DECL too;
11421         check that DECL_INITIAL is set.
11422         * varpool.c (const_value_known_p): Only look into VAR_DECL
11423         and CONST_DECL.
11424
11425 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
11426
11427         * common.opt (undef): New.
11428
11429 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
11430
11431         PR middle-end/45234
11432         * rtl.h (enum global_rtl_index): Add
11433         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
11434         (LAST_VIRTUAL_POINTER_REGISTER): Define.
11435         (virtual_preferred_stack_boundary_rtx,
11436         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
11437         (LAST_VIRTUAL_REGISTER): Increase by one.
11438         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
11439         instead of LAST_VIRTUAL_REGISTER.
11440         * function.c (instantiate_new_reg): Handle
11441         virtual_preferred_stack_boundary_rtx.
11442         * emit-rtl.c (init_virtual_regs): Handle
11443         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
11444         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
11445         * explow.c (round_push): If crtl->preferred_stack_boundary
11446         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
11447         virtual_preferred_stack_boundary_rtx alignment instead of
11448         crtl->preferred_stack_boundary alignment.
11449         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
11450         macros.  Never decrease crtl->preferred_stack_boundary,
11451         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
11452         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
11453         stack_pointer_delta in dynamic allocation, even when size
11454         is constant.
11455         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
11456         macro.
11457         * print-rtl.c (print_rtx): Handle
11458         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
11459         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
11460         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
11461         * config/frv/frv.c (frv_emit_movsi): Likewise.
11462         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
11463         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
11464         Likewise.
11465
11466         Revert:
11467         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11468
11469         PR middle-end/45234
11470         * calls.c (expand_call): Make sure that all variable sized
11471         adjustments are multiple of preferred stack boundary after
11472         stack alignment.
11473
11474 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
11475             Dominique Dhumieres  <dominiq@lps.ens.fr>
11476
11477         PR bootstrap/45751
11478         * config/darwin-driver.c (darwin_default_min_version):
11479         Adjust size passed to memcpy in two places.
11480
11481 2010-09-24  Richard Guenther  <rguenther@suse.de>
11482
11483         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
11484         Make sure to not call set_type_context with error_mark_node.
11485         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
11486
11487 2010-09-24  Richard Guenther  <rguenther@suse.de>
11488
11489         * Makefile.in (OBJS-onestep): Remove.
11490         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
11491         (libbackend.a): Remove onestep support.
11492         (libbackend.o): Remove.
11493         * configure.ac (--enable-intermodule): Remove.
11494         * configure: Regenerate.
11495
11496 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
11497
11498         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
11499         reaching the end of a block if it occurs at a DEBUG_INSN.
11500
11501 2010-09-09  Tristan Gingold  <gingold@adacore.com>
11502
11503         PR target/44242
11504         * config/vms/vms-crt0-64.c: Removed.
11505         * config/vms/vms-crt0.c: Removed.
11506         * config/vms/vms-psxcrt0-64.c: Removed.
11507         * config/vms/vms-psxcrt0.c: Removed.
11508         * config/vms/vms-ucrt0.c: New file.
11509         * config/vms/t-vms64: Removed.
11510         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
11511         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
11512         * config.gcc (alpha-dec-vms): Use t-vms.
11513
11514 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
11515
11516         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
11517         underfull hbox in DVI output.
11518         (-fobjc-class-cxx-cdtors): Same change.
11519         (-fobjc-exceptions): Tidied up documentation.  Explain what the
11520         option does, but moved the (lenghty) description of the exception
11521         syntax into objc.texi.
11522         (-fobjc-gc): Explain that the option is not useful with the GNU
11523         runtime.
11524         (-fzero-link): Explain that the GNU runtime always works in
11525         "zero-link" mode.
11526         * doc/objc.texi: All sections: simplified @node declarations
11527         removing specification of next, previous, up node.
11528         (Objective-C): Updated introduction.
11529         (Garbage Collection): Updated.  The bohem-gc library is now
11530         included in gcc itself.  Mention that this section only applies to
11531         the GNU Objective-C runtime.
11532         (compatibility_alias): Small tidy up.
11533         (Exceptions): New section mostly containing text previously in the
11534         description of the -fobjc-exception command-line option.
11535         (Synchronization): Same.
11536
11537 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
11538
11539         * config/i386/i386.md (ix86_code_end): Move the initialization of
11540         xops array near the consumer.  Use AX_REG and SP_REG instead of
11541         numerical constants.
11542
11543 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
11544
11545         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
11546         method [methodname]' for an Objective-C method instead of the less
11547         satisfactory 'too many arguments to function' (with no method name).
11548
11549 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
11550
11551         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
11552         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
11553         (execute_update_addresses_taken): Remove parameter.  Execute the
11554         optimization unconditionally.
11555         * passes.c (execute_function_todo): Call execute_update_addresses_taken
11556         unconditionally if TODO_rebuild_alias is set, else only when optimizing
11557         if TODO_update_address_taken is set.
11558
11559 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
11560
11561         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11562         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
11563         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11564         (arm_output_addr_const_extra): Make static.
11565
11566 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
11567
11568         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
11569         define as unspec_volatile.
11570         ("nops"): Define as unspec_volatile. Use fputs to write to
11571         asm_out_file directly.  Output NOPs on separate lines using while loop.
11572         * config/i386/i386.c (ix86_code_end): Use fputs to write to
11573         asm_out_file directly.  Output NOPs on separate lines using while loop.
11574
11575 2010-09-23  Richard Guenther  <rguenther@suse.de>
11576
11577         PR tree-optimization/45565
11578         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
11579         Make sure to adjust the fndecl before replacing the stmt.
11580
11581 2010-09-23  Richard Guenther  <rguenther@suse.de>
11582
11583         PR middle-end/45750
11584         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
11585         gimplifying MEM_REF.
11586
11587 2010-09-23  Alan Modra  <amodra@gmail.com>
11588
11589         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
11590         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
11591
11592 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
11593
11594         PR rtl-optimization/44374
11595         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
11596         * df-core.c (df_set_bb_dirty): Set it.
11597         * ifcvt.c (find_memory): Remove function.
11598         (dead_or_predicable): Use can_move_insns_across.
11599         * df.h (can_move_insns_across): Declare function.
11600         * cfgcleanup.c (block_was_dirty): New static variable.
11601         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
11602         than df_get_bb_dirty.
11603         (try_head_merge_bb): New static function.
11604         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
11605         is set.
11606         * df-problems.c: Include "target.h"
11607         (df_simulate_find_uses): New static function.
11608         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
11609         (find_memory, find_memory_store): New static functions.
11610         (can_move_insns_across): New function.
11611         * Makefile.in (df-problems.o): Update dependencies.
11612
11613 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11614
11615         PR java/44095
11616         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
11617         is specified and the suffix of the file isn't ".c".
11618         * config/sparc/linux64.h (ASM_SPEC): Likewise.
11619
11620 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11621
11622         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
11623         * doc/cppopts.texi: Fix markup of index entry.
11624         * doc/extend.texi (Constructing Calls): Fix markup of
11625         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
11626         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
11627         (Vague Linkage, C++ Attributes): Fix markup of index entries and
11628         keywords.
11629         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
11630         avoid long lines.
11631         (C Dialect Options, C++ Dialect Options, Warning Options)
11632         (Debugging Options, Spec Files, Darwin Options)
11633         (i386 and x86-64 Options, MIPS Options)
11634         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
11635         index entries, avoid abbreviations, allow URLs to wrap, avoid
11636         long lines, avoid overlong pages from long @itemx lists.
11637         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
11638         * doc/standards.texi (Standards): Likewise.
11639         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
11640
11641 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
11642
11643         * opts-common.c (prune_options): Make static.  Work with decoded
11644         options.
11645         (decode_cmdline_options_to_array): Call prune_options.  Don't
11646         resize option array here.
11647         * opts.h (prune_options): Remove prototype.
11648         * gcc.c (process_command): Take decoded options; don't call
11649         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
11650         (main): Call decode_cmdline_options_to_array here instead of
11651         prune_options.  Update call to process_command.
11652         * config/darwin-driver.c: Include opts.h.
11653         (darwin_default_min_version): Work with decoded options.  Don't
11654         handle -b or -V here.
11655         * config/darwin.h (darwin_default_min_version): Update prototype.
11656         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
11657         darwin_default_min_version.
11658         * config/i386/cygwin.h (mingw_scan): Update prototype.
11659         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
11660         * config/i386/cygwin1.c: Include opts.h.
11661         (mingw_scan): Work with decoded options.
11662         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
11663         * config/t-darwin (darwin-driver.o): Update dependencies.
11664
11665 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
11666
11667         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
11668         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
11669         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
11670         -force-link, -force-link=, -language, -language=,
11671         -library-directory, -library-directory=, -no-canonical-prefixes,
11672         -no-standard-libraries, -no-warnings, -optimize, -output,
11673         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
11674         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
11675         -print-file-name=, -print-libgcc-file-name,
11676         -print-multi-directory, -print-multi-lib,
11677         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
11678         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
11679         -profile, -save-temps, -shared, -specs, -specs=, -static,
11680         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
11681         symbolic): New.
11682         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
11683         * gcc.c (A Short Introduction to Adding a Command-Line Option):
11684         Remove comment.
11685         (cc1_options): Correct specs for passing down --help,
11686         --target-help and --help=*.  Add spec for passing down --version.
11687         (struct option_map, option_map, target_option_translations,
11688         translate_options): Remove.
11689         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
11690         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
11691         OPT_fhelp_ and OPT_ftarget_help.
11692         (process_command): Don't call translate_options.  Call
11693         decode_cmdline_options_to_array before checking for
11694         -no-canonical-prefixes using decoded options.
11695         * opts-common.c (tm.h): Update comment on #include.
11696         (find_opt): Allow abbreviations of long options.
11697         (struct option_map, option_map): New.
11698         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
11699         and -mno handling.
11700         (target_option_translations): New.
11701         (decode_cmdline_options_to_array): Handle
11702         TARGET_OPTION_TRANSLATE_TABLE in driver.
11703         * opts.c (common_handle_option): Don't handle OPT_fhelp,
11704         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
11705
11706 2010-09-22  Richard Guenther  <rguenther@suse.de>
11707
11708         * tree-inline.c (optimize_inline_calls): Schedule cleanups
11709         only if we inlined something.  Block compaction and conditional
11710         folding are done by cfg cleanup.  Schedule update-address-taken.
11711         (tree_function_versioning): Remove redundant call to number_blocks.
11712         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
11713         folding is done by cfg cleanup.
11714         * passes.c (init_optimization_passes): Remove update-address-taken
11715         pass after IPA inlining.
11716
11717 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
11718
11719         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
11720         to update conditions. Fix reg_mode[] check.
11721
11722 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
11723
11724         * config/picochip/picochip.md (movhicc): Use expand to check whether
11725         movhicc is available and split it after reload.
11726
11727 2010-09-22  Richard Guenther  <rguenther@suse.de>
11728
11729         * tree-ssanames.c (release_dead_ssa_names): Do not remove
11730         callee edges here.
11731         * passes.c (init_optimization_passes): Remove early CFG cleanup.
11732         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
11733         (pass_cleanup_cfg): Likewise.
11734         (execute_fixup_cfg): Cleanup.
11735         * tree-pass.h (pass_cleanup_cfg): Remove.
11736
11737 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11738
11739         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
11740         builtins if it is true.
11741         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
11742         parameter.
11743
11744 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11745
11746         * tree-sra.c (struct access): New field grp_no_warning.
11747         (create_access_replacement): Set TREE_NO_WARNING according to
11748          grp_no_warning.
11749         (create_artificial_child_access): Use build_ref_for_model and set
11750         grp_no_warning if build_user_friendly_ref_for_offset fails.
11751         (propagate_subaccesses_across_link): Likewise.
11752
11753 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11754
11755         PR target/35664
11756         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
11757         ('f'): Likewise.
11758
11759 2010-09-22  Tristan Gingold  <gingold@adacore.com>
11760
11761         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
11762
11763 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
11764
11765         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
11766         * config/i386/i386.c (decide_alg): Update for rename.
11767
11768 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
11769
11770         PR rtl-optimization/45739
11771         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
11772         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
11773
11774 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
11775
11776         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
11777         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
11778         Remove.
11779         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
11780         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11781
11782 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11783
11784         PR objc/23710
11785         * c-parser.c (c_parser_objc_method_definition): Check the return
11786         value of objc_start_method_definition and if false is returned,
11787         parse the method definition but emit no code.
11788
11789 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11790
11791         PR objc/25965
11792         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
11793         call objc_get_interface_ivars ().
11794
11795 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
11796
11797         PR target/45694
11798         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
11799         static chain-register is used for 64-bit.
11800
11801 2010-09-21  Richard Guenther  <rguenther@suse.de>
11802
11803         * dwarf2out.c (is_cu_die): New function.
11804         (add_pubtype): Use it.
11805         (gen_subprogram_die): Likewise.
11806         (gen_struct_or_union_type_die): Likewise.
11807         (dwarf2out_finish): Likewise.
11808         (comp_unit_die): Rename to ...
11809         (single_comp_unit_die): ... this.
11810         (comp_unit_die): New function lazily constructing and
11811         returning single_comp_unit_die.
11812         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
11813         base_type_die, subrange_type_die, modified_type_die,
11814         lower_bound_default, add_bound_info, add_prototyped_attribute,
11815         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
11816         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
11817         force_decl_die, gen_namespace_die, dwarf2out_decl,
11818         dwarf2out_start_source_file, dwarf2out_end_source_file,
11819         prune_unused_types, dwarf2out_finish): Use it.
11820         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
11821         the global list of translation-unit decls.
11822         (dwarf2out_init): Do not create single_comp_unit_die here.
11823         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
11824
11825 2010-09-21  Richard Guenther  <rguenther@suse.de>
11826
11827         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
11828         for bool for C++.
11829
11830 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
11831
11832         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
11833         (qhs_extenddi_cstr): Likewise.
11834         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
11835         them for the source operand.
11836
11837 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
11838
11839         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
11840         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
11841         (ix86_split_ashr): Ditto.
11842         (ix86_split_lshr): Ditto.
11843
11844 2010-09-21  Richard Guenther  <rguenther@suse.de>
11845
11846         PR tree-optimization/45580
11847         * tree-ssa-propagate.c (substitute_and_fold): Always replace
11848         regular uses.
11849         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
11850         virtuals fold the call into a regular indirect one.
11851
11852 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11853
11854         PR rtl-optimization/42775
11855         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
11856         scheduling is enabled.
11857
11858 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11859
11860         PR rtl-optimization/45728
11861         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
11862         gen_lowpart_common first and if that fails, force_reg first
11863         before calling gen_lowpart.
11864
11865         PR middle-end/45678
11866         * cfgexpand.c (expand_one_stack_var_at): Use
11867         crtl->max_used_stack_slot_alignment as max_align, instead
11868         of maximum of that and PREFERRED_STACK_BOUNDARY.
11869         Don't call update_stack_alignment.
11870
11871 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11872
11873         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11874         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11875         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11876         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11877         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11878         (build_nonstandard_integer_type): Likewise.
11879         (build_range_type_1): New function, built from...
11880         (build_range_type): ...this.  Call build_range_type_1.
11881         (build_nonshared_range_type): New function.
11882         (build_array_type_1): New function, built from...
11883         (build_array_type: ...this.  Call build_array_type_1.
11884         (build_nonshared_array_type): New function.
11885         * tree.h (build_nonshared_range_type): Declare.
11886         (build_nonshared_array_type): Likewise.
11887
11888 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11889
11890         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11891         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11892         (arm_class_likely_spilled_p): New function.
11893
11894 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11895
11896         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11897         indirect functions.
11898         (ix86_split_ashl): Ditto.
11899         (ix86_split_ashr): Ditto.
11900         (ix86_split_lshr): Ditto.
11901         (ix86_adjust_counter): Ditto.
11902
11903 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11904
11905         * c-family/c-common.h (constant_string_class): Documented with
11906         comment identical to the one already in c-common.c.
11907
11908 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11909
11910         * dwarf2out.c (any_cfis_emitted): New static variable.
11911         (add_fde_cfi): Set it.
11912         (dwarf2out_frame_debug): Clear it before processing,
11913         if it is set afterwards, flush any queued reg saves.
11914
11915         PR debug/45124
11916         * dwarf2out.c (add_accessibility_attribute): Assume
11917         DW_ACCESS_private as the default for dwarf_version > 2
11918         and DW_TAG_class_type parent.
11919         (gen_inheritance_die): Assume DW_ACCESS_public as the default
11920         for dwarf_version > 2 and parent other than DW_TAG_class_type.
11921
11922 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11923
11924         PR target/45726
11925         * arm.md (arm_movt): Only enable on machines with MOVT.
11926
11927 2010-09-20  Jie Zhang  <jie@codesourcery.com>
11928
11929         * config/arm/arm.c (arm_address_offset_is_imm): New.
11930         (arm_early_store_addr_dep): New.
11931         (arm_early_load_addr_dep): New.
11932         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
11933         (arm_early_load_addr_dep): Declare.
11934         (arm_address_offset_is_imm): Declare.
11935         * config/arm/cortex-m4.md: New file.
11936         * config/arm/cortex-m4-fpu.md: New file.
11937         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
11938         (attr generic_sched): Exclude cortexm4.
11939         (attr generic_vfp): Exclude cortexm4.
11940
11941 2010-09-20  Richard Guenther  <rguenther@suse.de>
11942
11943         PR middle-end/45704
11944         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
11945
11946 2010-09-20  Jan Hubicka  <jh@suse.cz>
11947
11948         PR tree-optimize/45605
11949         * cgraph.h (const_value_known_p): Declare.
11950         (varpool_decide_const_value_known): Remove.
11951         * tree-ssa-ccp.c (get_base_constructor): Use it.
11952         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
11953         * expr.c (string_constant): Likewise.
11954         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11955         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11956         function_and_variable_visibility): Likewise.
11957         * gimplify.c (gimplify_call_expr): Likewise.
11958         * gimple-fold.c (get_symbol_constant_value): Likewise.
11959         * varpool.c (varpool_decide_const_value_known): Replace by...
11960         (const_value_known_p): ... this one; handle other kinds of DECLs
11961         too and work for automatic vars.
11962         (varpool_finalize_decl): Use const_value_known_p.
11963
11964 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11965
11966         PR target/45726
11967         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
11968
11969 2010-09-20  Richard Guenther  <rguenther@suse.de>
11970
11971         PR tree-optimization/45705
11972         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
11973
11974 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11975
11976         PR rtl-optimization/45695
11977         * combine.c (try_combine): When splitting a two set pattern,
11978         make sure the pattern which will be put into i2 doesn't use REGs
11979         or MEMs set by insns in between i2 and i3.
11980
11981 2010-09-19  Jan Hubicka  <jh@suse.cz>
11982
11983         PR lto/44246
11984         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
11985         processing same node twice.
11986
11987 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
11988
11989         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
11990         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11991         (bfin_class_likely_spilled_p): New function
11992
11993 2010-09-19  Ira Rosen  <irar@il.ibm.com>
11994
11995         PR tree-optimization/45714
11996         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
11997         created in vectorizable_call instead of the original statement in
11998         def stmt updates.
11999
12000 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
12001
12002         * config/i386/i386-protos.h (split_double_mode): New prototype.
12003         (split_di, split_ti): Remove prototypes.
12004         * config/i386/i386.c (split_double_mode): New function.
12005         (split_di, split_ti): Remove.
12006         (ix86_expand_branch): Use split_double_mode.
12007         (ix86_split_to_parts): Ditto.
12008         (ix86_split_ashl): Ditto.
12009         (ix86_split_ashr): Ditto.
12010         (ix86_split_lshr): Ditto.
12011         (ix86_force_to_memory): Ditto.
12012         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
12013
12014 2010-09-18  Jan Hubicka  <jh@suse.cz>
12015
12016         PR tree-optimization/45453
12017         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
12018         virtual functions are reachable.
12019         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
12020         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
12021         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
12022         when modifying function.
12023
12024 2010-09-18  Jan Hubicka  <jh@suse.cz>
12025
12026         PR tree-optimization/45605
12027         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
12028         * gimple-fold.c (static_object_in_other_unit_p): New function.
12029         (canonicalize_constructor_val): Use it.
12030         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
12031         returning NULL.
12032         (gimple_fold_obj_type_ref_known_binfo): Use
12033         static_object_in_other_unit_p.
12034
12035 2010-09-18  Richard Guenther  <rguenther@suse.de>
12036
12037         PR tree-optimization/45709
12038         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
12039         insertions until after all PHI nodes of the block are processed.
12040
12041 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
12042
12043         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
12044
12045 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
12046
12047         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
12048
12049 2010-09-18  Richard Guenther  <rguenther@suse.de>
12050
12051         PR tree-optimization/45709
12052         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
12053
12054 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
12055
12056         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
12057         (dot_deps_stmt): Same.
12058         * graphite-poly.c (dot_lst): Same.
12059         * graphite-scop-detection.c (dot_all_scops): Same.
12060         (dot_scop): Same.
12061
12062 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
12063
12064         Revert:
12065         2009-12-16  Ben Elliston  <bje@au.ibm.com>
12066
12067         * tree-data-ref.c (dot_rdg_1): Added back.
12068         (dot_rdg): Same.  Added "#if 0" around system call.
12069
12070 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12071             Richard Henderson  <rth@redhat.com>
12072
12073         * config/i386/i386.c (initial_ix86_tune_features): Add
12074         X86_TUNE_PAD_SHORT_FUNCTION.
12075         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
12076         (ix86_count_insn): New.
12077         (ix86_pad_short_function): Likewise.
12078         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
12079
12080         * config/i386/i386.h (ix86_tune_indices): Add
12081         X86_TUNE_PAD_SHORT_FUNCTION.
12082         (TARGET_PAD_SHORT_FUNCTION): New.
12083
12084         * config/i386/i386.md (UNSPEC_NOPS): New.
12085         (nops): Likewise.
12086
12087 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12088
12089         PR middle-end/45234
12090         * calls.c (expand_call): Make sure that all variable sized
12091         adjustments are multiple of preferred stack boundary after
12092         stack alignment.
12093
12094 2010-09-17  DJ Delorie  <dj@redhat.com>
12095
12096         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
12097         passed an invalid value, print an error instead of ICEing.
12098         (valid_psw_flag): New.
12099         (rx_expand_builtin): Call it for setpsw/clrpsw.
12100         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
12101
12102         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
12103         (bitclr_in_memory): Likewise.
12104         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
12105
12106 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12107
12108         PR middle-end/45678
12109         * cfgexpand.c (update_stack_alignment): New.
12110         (get_decl_align_unit): Use it.
12111         (expand_one_stack_var_at): Call update_stack_alignment.
12112
12113 2010-09-17  Richard Guenther  <rguenther@suse.de>
12114
12115         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
12116         Properly copy the read string.
12117
12118 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
12119
12120         * doc/options.texi (Variable): Document.
12121         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
12122         generate target_flags declarations explicitly.  Don't define
12123         VarExists variables for the driver.
12124         * common.opt (target_flags): New Variable record.
12125         (flag_dump_unnumbered, flag_dump_unnumbered_links,
12126         flag_var_tracking, flag_var_tracking_assignments,
12127         flag_var_tracking_assignments_toggle): Don't mark variables with
12128         VarExists.
12129         * config/i386/i386.c (ix86_isa_flags): Don't define here.
12130         * config/i386/i386.opt (ix86_isa_flags): Define here.
12131         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
12132         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
12133         VarExists.
12134         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
12135         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
12136         Only define for generator programs.
12137         * rtlanal.c (target_flags): Remove.
12138         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
12139         flag_var_tracking_assignments_toggle): Remove.
12140
12141 2010-09-17  Michael Matz  <matz@suse.de>
12142
12143         PR tree-optimization/43432
12144         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
12145         Accept backwards consecutive accesses.
12146         (vect_create_data_ref_ptr): If step is negative generate
12147         decreasing IVs.
12148         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
12149         (perm_mask_for_reverse, reverse_vec_elements): New functions.
12150         (vectorizable_load): Handle loads with negative steps when easily
12151         possible.
12152
12153 2010-09-03  Jan Hubicka  <jh@suse.cz>
12154
12155         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
12156
12157 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
12158
12159         * config/v850/v850.c (v850_function_value_regno_p): Make static.
12160         Adjust comments. Declare.
12161         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
12162         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
12163
12164 2010-09-17  Richard Guenther  <rguenther@suse.de>
12165
12166         * common.opt (combine): Remove.
12167         * gcc.c (default_compilers): Remove specs testing combine.
12168         The C compilers no longer can combine.
12169         (option_map): Remove -combine.
12170         (display_help): Remove -combine.
12171         (driver_handle_option): Remove OPT_combine handling.
12172         (compile_input_file_p): Remove.
12173         (do_spec): Remove code concerning combine.
12174         (main): Likewise.
12175         * doc/invoke.texi: Remove traces of -combine.
12176         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
12177
12178 2010-09-17  Richard Guenther  <rguenther@suse.de>
12179
12180         PR middle-end/45678
12181         * builtins.c (fold_builtin_memory_op): Always properly adjust
12182         alignment of memory accesses.
12183
12184 2010-09-16  Jan Hubicka  <jh@suse.cz>
12185
12186         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
12187         processing clone.
12188
12189 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
12190
12191         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
12192
12193         * config/i386/i386.c (predict_jump): Add prototype.
12194         (flag_opts): Add -m8bit-idiv.
12195         (ix86_split_idivmod): New.
12196
12197         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
12198         Add 2 splitters for SI/DI mode divide.
12199         (divmod<mode>4_1): New pattern.
12200         (udivmod<mode>4_1): Likewise.
12201         (testdi_ccno_1): Likewise.
12202
12203         * config/i386/i386.opt (m8bit-idiv): New.
12204
12205         * doc/invoke.texi: Document -m8bit-idiv.
12206
12207 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
12208
12209         PR bootstrap/45680
12210         * config/i386/i386.c (min_insn_size): Moved out of the
12211         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
12212
12213 2010-09-16  Jan Hubicka  <jh@suse.cz>
12214
12215         * lto-cgraph.c (lto_output_node): Fix handling of clones.
12216         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
12217         unreachable clones with reachable clones.
12218         * tree-inline.c (copy_bb): Fix sanity checking when producing
12219         unreachable clone.
12220
12221 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
12222
12223         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
12224         (TARGET_MEMORY_MOVE_COST): Define.
12225         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
12226
12227 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
12228
12229         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
12230         maybe_tidy_empty_bb.
12231
12232         Revert:
12233         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12234         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12235
12236 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
12237
12238         * target.def (target_option.optimization): New hook.
12239         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
12240         TARGET_OPTION_OPTIMIZATION hook.
12241         * doc/tm.texi: Regenerate.
12242         * hooks.c (hook_void_int_int): New.
12243         * hooks.h (hook_void_int_int): Declare.
12244         * opts.c: Don't include tm_p.h.
12245         (decode_options): Use targetm.target_option.optimization instead
12246         of OPTIMIZATION_OPTIONS.
12247         * system.h (OPTIMIZATION_OPTIONS): Poison.
12248         * config/arm/arm-protos.h (arm_optimization_options): Remove.
12249         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
12250         (arm_optimization_options): Rename to arm_option_optimization.
12251         Make static.
12252         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
12253         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
12254         (cris_option_optimization): New.
12255         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
12256         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
12257         (crx_option_optimization): New.
12258         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
12259         * config/frv/frv-protos.h (frv_optimization_options): Remove.
12260         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
12261         (frv_optimization_options): Rename to frv_option_optimization.
12262         Make static.
12263         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
12264         * config/h8300/h8300.c (h8300_option_optimization): New.
12265         (TARGET_OPTION_OPTIMIZATION): Define.
12266         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
12267         * config/i386/i386-protos.h (optimization_options): Remove.
12268         * config/i386/i386.c (optimization_options): Rename to
12269         ix86_option_optimization.  Make static.
12270         (TARGET_OPTION_OPTIMIZATION): Define.
12271         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
12272         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
12273         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
12274         (ia64_optimization_options): Rename to ia64_option_optimization.
12275         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
12276         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
12277         commented-out definition.
12278         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
12279         instead of OPTIMIZATION_OPTIONS.
12280         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
12281         (m32r_option_optimization): New.
12282         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
12283         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
12284         Remove.
12285         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
12286         (mcore_option_optimization): New.
12287         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
12288         * config/mep/mep-protos.h (mep_optimization_options): Remove.
12289         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
12290         (mep_optimization_options): Rename to mep_option_optimization.
12291         Make static.  Take unused level and size parameters.
12292         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
12293         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
12294         (mmix_option_optimization): New.
12295         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
12296         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
12297         (pdp11_option_optimization): New.
12298         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
12299         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
12300         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
12301         (optimization_options): Rename to rs6000_option_optimization.
12302         Make static.
12303         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
12304         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
12305         * config/rx/rx.c (rx_set_optimization_options): Rename to
12306         rx_option_optimization.  Make static.  Take unused level and size
12307         parameters.
12308         (TARGET_OPTION_OPTIMIZATION): Define.
12309         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
12310         * config/s390/s390-protos.h (optimization_options): Remove.
12311         * config/s390/s390.c (optimization_options): Rename to
12312         s390_option_optimization.  Make static.  Don't mark size parameter
12313         unused.
12314         (TARGET_OPTION_OPTIMIZATION): Define.
12315         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
12316         * config/sh/sh-protos.h (sh_optimization_options): Remove.
12317         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
12318         (sh_optimization_options): Rename to sh_option_optimization.  Make
12319         static.  Don't mark parameters unused.
12320         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
12321         * config/spu/spu-protos.h (spu_optimization_options): Remove.
12322         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
12323         (spu_optimization_options): Rename to spu_option_optimization.
12324         Make static.
12325         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
12326         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
12327         (v850_option_optimization): New.
12328         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
12329         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
12330         (xtensa_option_optimization): New.
12331         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
12332
12333 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
12334
12335         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
12336         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
12337         * doc/tm.texi: Regenerate.
12338         * system.h (OVERRIDE_OPTIONS): Poison.
12339         * target.def (override): Default to hook_void_void.
12340         * targhooks.c (default_target_option_override): Remove.
12341         * genmodes.c, machmode.def: Update comments mentioning
12342         OVERRIDE_OPTIONS.
12343         * config/alpha/alpha-modes.def: Update comment mentioning
12344         alpha_override_options.
12345         * config/alpha/alpha-protos.h (override_options): Remove.
12346         * config/alpha/alpha.c (override_options): Rename to
12347         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
12348         (TARGET_OPTION_OVERRIDE): Define.
12349         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
12350         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
12351         of OVERRIDE_OPTIONS.
12352         * config/arc/arc-protos.h (arc_init): Remove.
12353         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
12354         (arc_init): Rename to arc_option_override.  Make static.
12355         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
12356         (OVERRIDE_OPTIONS): Remove.
12357         * config/arm/arm-protos.h (arm_override_options): Remove.
12358         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
12359         (arm_override_options): Rename to arm_option_override.  Make
12360         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
12361         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
12362         * config/arm/arm.md: Update comment referring to arm_override_options.
12363         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
12364         instead of OVERRIDE_OPTIONS.
12365         * config/avr/avr-protos.h (avr_override_options): Remove.
12366         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
12367         (avr_override_options): Rename to avr_option_override.  Make static.
12368         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
12369         * config/bfin/bfin-protos.h (override_options): Remove (twice).
12370         * config/bfin/bfin.c (override_options): Rename to
12371         bfin_option_override.  Make static.
12372         (TARGET_OPTION_OVERRIDE): Define.
12373         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
12374         * config/cris/cris-protos.h (cris_override_options): Remove.
12375         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
12376         (cris_override_options): Rename to cris_option_override.  Make static.
12377         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
12378         * config/frv/frv-protos.h (frv_override_options): Remove.
12379         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
12380         (frv_override_options): Rename to frv_option_override.  Make static.
12381         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
12382         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
12383         * config/h8300/h8300.c (h8300_init_once): Rename to
12384         h8300_option_override.  Make static.
12385         (TARGET_OPTION_OVERRIDE): Define.
12386         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
12387         * config/i386/i386-protos.h (override_options): Remove.
12388         * config/i386/i386.c (override_options): Rename to
12389         ix86_option_override_internal.  Make static.  Comments referring
12390         to this function and callers changed.
12391         (ix86_option_override): New.
12392         (TARGET_OPTION_OVERRIDE): Define.
12393         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
12394         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
12395         * config/ia64/ia64.c (ia64_file_start): Update comment referring
12396         to ia64_override_options.
12397         * config/iq2000/iq2000-protos.h (override_options): Remove.
12398         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
12399         (override_options): Rename to iq2000_option_override.  Make static.
12400         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
12401         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
12402         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
12403         (lm32_override_options): Rename to lm32_option_override.  Make static.
12404         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
12405         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
12406         (m32r_option_override): New.
12407         (m32r_init): Update comment.
12408         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
12409         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
12410         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
12411         (m68hc11_override_options): Rename to m68hc11_option_override.
12412         Make static.  Return void.
12413         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
12414         * config/m68k/m68k-protos.h (override_options): Remove.
12415         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
12416         (override_options): Rename to m68k_option_override.  Make static.
12417         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
12418         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
12419         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
12420         (mcore_override_options): Rename to mcore_option_override.  Make
12421         static.
12422         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
12423         * config/mep/mep-protos.h (mep_override_options): Remove.
12424         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
12425         (mep_override_options): Rename to mep_option_override.  Make static.
12426         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
12427         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
12428         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
12429         (mmix_override_options): Rename to mmix_option_override.  Make static.
12430         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
12431         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
12432         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
12433         (mn10300_override_options): Rename to mn10300_option_override.
12434         Make static.
12435         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
12436         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
12437         * config/moxie/moxie.c (moxie_override_options): Rename to
12438         moxie_option_override.  Make static.
12439         (TARGET_OPTION_OVERRIDE): Define.
12440         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
12441         * config/picochip/picochip-protos.h (picochip_override_options):
12442         Remove.  Update comment referring to picochip_override_options.
12443         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
12444         (picochip_override_options): Rename to picochip_option_override.
12445         Make static.  Update comment and definition of
12446         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
12447         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
12448         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12449         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12450         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12451         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12452         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12453         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
12454         instead of OVERRIDE_OPTIONS.
12455         * config/rs6000/rs6000-modes.def: Update comment referring to
12456         rs6000_override_options.
12457         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
12458         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
12459         (rs6000_override_options): Rename to
12460         rs6000_option_override_internal.  Make static.  Commented
12461         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
12462         (rs6000_option_override): New.
12463         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
12464         instead of OVERRIDE_OPTIONS.
12465         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12466         * config/s390/s390-protos.h (override_options): Remove.
12467         * config/s390/s390.c (override_options): Rename to
12468         s390_option_override.  Make static.
12469         (TARGET_OPTION_OVERRIDE): Define.
12470         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
12471         * config/score/score-protos.h (score_override_options): Remove.
12472         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
12473         (score_override_options): Rename to score_option_override.  Make
12474         static.
12475         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
12476         Update comment referring to override_options.
12477         * config/score/score3.c (score3_override_options): Rename to
12478         score3_option_override.
12479         * config/score/score3.h (score3_override_options): Rename to
12480         score3_option_override.
12481         * config/score/score7.c (score7_override_options): Rename to
12482         score7_option_override.
12483         * config/score/score7.h (score7_override_options): Rename to
12484         score7_option_override.
12485         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
12486         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
12487         (sparc_override_options): Rename to sparc_option_override.  Make
12488         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
12489         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
12490         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
12491         instead of OVERRIDE_OPTIONS.
12492         * config/spu/spu-protos.h (spu_override_options): Remove.
12493         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
12494         (spu_override_options): Rename to spu_option_override.  Make
12495         static.
12496         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
12497         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
12498         OVERRIDE_OPTIONS.
12499         * config/vax/vax-protos.h (override_options): Remove.
12500         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
12501         (override_options): Rename to vax_option_override.  Make static.
12502         Call SUBTARGET_OVERRIDE_OPTIONS.
12503         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
12504         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
12505         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
12506         * config/xtensa/xtensa-protos.h (override_options): Remove.
12507         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
12508         (override_options): Rename to xtensa_option_override.  Make static.
12509         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
12510
12511 2010-09-16  Richard Guenther  <rguenther@suse.de>
12512
12513         PR tree-optimization/45623
12514         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
12515         (get_constraint_for_component_ref): If computing a constraint
12516         for the rhs handle type punning through unions.
12517         (get_constraint_for_address_of): Adjust.
12518         (get_constraint_for_1): Likewise.
12519         (get_constraint_for): Likewise.
12520         (get_constraint_for_rhs): New function.
12521         (do_structure_copy): Adjust.
12522         (make_constraint_to): Likewise.
12523         (handle_const_call): Likewise.
12524         (find_func_aliases): Likewise.
12525         (process_ipa_clobber): Likewise.
12526         (create_variable_info_for): Likewise.
12527
12528 2010-09-16  Ira Rosen  <irar@il.ibm.com>
12529
12530         * tree-vectorizer.c: Fix documentation.
12531         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
12532         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
12533         is_pattern_stmt_p, is_loop_header_bb_p,
12534         stmt_vinfo_set_inside_of_loop_cost,
12535         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
12536         known_alignment_for_access_p): Likewise.
12537         * tree-vect-loop.c: Fix documentation.
12538         (vect_get_cost): Start function name from new line.
12539         * tree-vect-data-refs.c: Fix documentation.
12540         * tree-vect_stmts.c: Likewise.
12541         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
12542         (vectorizable_store): Free vec_oprnds if allocated.
12543         (vectorizable_condition): Initialize several variables to avoid
12544         warnings.
12545         * tree-vect-slp.c: Fix documentation.
12546
12547 2010-09-16  Richard Guenther  <rguenther@suse.de>
12548
12549         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
12550         is TS_TRANSLATION_UNIT_DECL.
12551         (initialize_tree_contains_struct): Adjust.
12552         (all_translation_units): New global vector.
12553         (build_translation_unit_decl): New function.
12554         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
12555         (struct tree_translation_unit_decl): New.
12556         (all_translation_units): Declare.
12557         (union tree_node): Add translation_unit_decl member.
12558         (build_translation_unit_decl): Declare.
12559         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
12560         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
12561         New function.
12562         (pack_value_fields): Call it.
12563         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
12564         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
12565         (lto_output_tree_pointers): Call it.
12566         * lto-streamer-in.c (lto_input_tree_ref): Handle references
12567         to TRANSLATION_UNIT_DECL.
12568         (unpack_ts_translation_unit_decl_value_fields): New function.
12569         (unpack_value_fields): Call it.
12570         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
12571         (lto_input_tree_pointers): Call it.
12572         * lto-streamer.c (check_handled_ts_structures): Adjust.
12573         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
12574         * c-decl.c (all_translation_units): Remove.
12575         (pop_scope): Use build_translation_unit_decl.
12576         (collect_all_refs): Adjust.
12577         (for_each_global_decl): Likewise.
12578         (c_write_global_declarations): Likewise.
12579
12580 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
12581
12582         PR bootstrap/45686
12583         * fold-const.c (fold_checksum_tree): Change slot from const void **
12584         to void **, use CONST_CAST_TREE to store into *slot.
12585
12586 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
12587
12588         * config/i386/i386.md: Remove unneeded empty conditions and
12589         preparation statements from expanders.
12590         * config/i386/mmx.md: Ditto.
12591         * config/i386/sse.md: Ditto.
12592
12593 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
12594
12595         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
12596
12597 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12598
12599         PR rtl-optimization/45593
12600         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
12601         insns that were in delay slots as stand-alone insns.
12602
12603 2010-09-15  Ian Lance Taylor  <iant@google.com>
12604
12605         * incpath.c (remove_duplicates): If name is not a directory, issue
12606         a warning rather than an error.
12607
12608 2010-09-15  Martin Jambor  <mjambor@suse.cz>
12609
12610         PR middle-end/45644
12611         * tree-sra.c (create_access): Check for bit-fields directly.
12612
12613 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
12614
12615         PR tree-optimization/45633
12616         * tree-cfg.c (verify_gimple_assign_binary): Allow
12617         MINUS_EXPR with lhs and rhs1 pointer vector and
12618         rhs2 sizetype vector.
12619         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
12620         or vector pointer use TER to optimize pointer subtraction.
12621
12622 2010-09-15  Jie Zhang  <jie@codesourcery.com>
12623
12624         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
12625         fcmpd to fcmps.
12626
12627 2010-09-15  Ian Lance Taylor  <iant@google.com>
12628
12629         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
12630
12631 2010-09-15  Ian Lance Taylor  <iant@google.com>
12632
12633         * function.c (get_arg_pointer_save_area): Set
12634         arg_pointer_save_area_init to true.
12635
12636 2010-09-15  Martin Jambor  <mjambor@suse.cz>
12637
12638         * tree-sra.c (generate_subtree_copies): Updated comment.
12639         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
12640         obtained from the statement iterator instead.
12641         (load_assign_lhs_subreplacements): Removed parameters lhs and
12642         right_offset, which is obtained from top_racc instead.  Parameter lacc
12643         is now expected to be the root of the processed tree rather than root's
12644         first child.  Updated all callers.
12645
12646 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
12647
12648         * config/pdp11/pdp11.c (register_move_cost): Rename to
12649         pdp11_register_move_cost.
12650         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
12651         pdp11_register_move_cost.
12652         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
12653         pdp11_register_move_cost instead of register_move_cost.
12654
12655 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
12656
12657         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
12658         pattern for vmovn. Expansion in case of non
12659         -mvectorize-with-neon-quad.
12660         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
12661         non- -mvectorize-with-neon-quad case.
12662         (move_lo_quad_<mode>): New expansion to vmov into low part.
12663         (move_hi_quad_<mode>): New expansion to vmov into high part.
12664         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
12665         (move_lo_quad_v4sf): Likewise.
12666         (move_lo_quad_v8hi): Likewise.
12667         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
12668         low part.
12669         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
12670         high part.
12671         * config/arm/iterators.md (ANY128): New mode iterator.
12672         (V_narrow_pack): New mode attribute.
12673         (V_HALF): Add attribute.
12674         (V_DOUBLE): Add attribute.
12675         (V_mode_nunits): Add attribute.
12676
12677 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12678
12679         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
12680         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
12681
12682 2010-09-15  Olivier Hainque  <hainque@adacore.com>
12683             Jose Ruiz  <ruiz@adacore.com>
12684
12685         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
12686         * config/alpha/osf5-unwind.h: New file.
12687
12688 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12689
12690         PR bootstrap/45672
12691         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
12692         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12693         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12694
12695 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12696
12697         * c-lang.h (struct lang_type): Add variable_size GTY option.
12698
12699 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12700
12701         PR bootstrap/45672
12702         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12703
12704 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12705
12706         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
12707         result isn't used in memory address.
12708
12709 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12710
12711         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
12712         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
12713         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
12714         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
12715         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
12716         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
12717
12718         * target.def: Add units_per_simd_word to vectorize.
12719
12720         * targhooks.c (default_units_per_simd_word): New.
12721         * targhooks.h (default_units_per_simd_word): Likewise.
12722         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
12723         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12724         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
12725         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12726         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12727         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12728         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12729         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12730
12731         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
12732         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
12733
12734         * tree-vect-stmts.c: Don't include "tm_p.h".
12735         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
12736         with targetm.vectorize.units_per_simd_word.
12737
12738         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
12739
12740         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
12741
12742         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
12743         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12744
12745         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
12746         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
12747
12748         * doc/tm.texi: Regenerated.
12749
12750 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12751
12752         * tree-vect-stmts.c: Include "tm_p.h".
12753
12754         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
12755         out of RTX_CODE.
12756
12757 2010-09-14  Martin Jambor  <mjambor@suse.cz>
12758
12759         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
12760         location of generated statement.  Changed all callers.
12761         (build_ref_for_model): New parameter loc which used to set location of
12762         all generated expressions.  Changed all callers.
12763         (generate_subtree_copies): Likewise.
12764         (init_subtree_with_zero): Likewise.
12765         (sra_modify_expr): Set locations of all generated statements and
12766         expressions to the location the original statement.
12767         (handle_unscalarized_data_in_subtree): Likewise.
12768         (load_assign_lhs_subreplacements): Likewise.
12769         (sra_modify_constructor_assign): Likewise.
12770         (sra_modify_assign): Likewise.
12771
12772 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
12773
12774         PR target/45277
12775         PR target/45363
12776         PR target/45407
12777         * doc/install.texi (sparc*-*-*): New section.
12778         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
12779
12780 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12781
12782         PR middle-end/45567
12783         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
12784         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
12785         (expand_builtin): Adjust caller.
12786         (expand_builtin_unop): Only use subtarget if it has the right mode.
12787
12788 2010-09-14  Tristan Gingold  <gingold@adacore.com>
12789
12790         * configure.ac (plugins): Fix typos.
12791         * configure: Regenerate.
12792
12793 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12794
12795         PR debug/45660
12796         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
12797         gen_type_die for function/method return type.
12798
12799 2010-09-14  Ira Rosen  <irar@il.ibm.com>
12800
12801         PR tree-optimization/45470
12802         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12803         can throw an exception.
12804         * tree-vect-stmts.c (vectorizable_call): Likewise.
12805
12806 2010-09-14  DJ Delorie  <dj@redhat.com>
12807
12808         PR target/44749
12809         * config/mep/mep-protos.h (mep_save_register_info,
12810         mep_reinit_regs, mep_init_regs): Declare.
12811
12812         * config/mep/mep.c: Move all target definitions to the end of the
12813         file to avoid the need for duplicate declarations.
12814         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
12815         (mep_reorg_erepeat): Remove unused variables.
12816         (mep_expand_builtin): Likewise.
12817
12818         * config/mep/mep-pragma.c: Don't include rtl.h.
12819         (INVALID_REGNUM): New.
12820         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
12821         functions.
12822         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
12823         Avoid enum/integer math.
12824
12825 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
12826
12827         PR target/44749
12828         * config/mep/t-mep (GTM_H): Add insn-constants.h.
12829         * config/mep/mep.c (mep_conditional_register_usage): Take no
12830         parameters.
12831         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
12832         prototype.
12833         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
12834         call to mep_conditional_register_usage.
12835
12836 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12837
12838         PR debug/43937
12839         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
12840         the DECL as well.
12841
12842 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
12843
12844         PR rtl-optimization/45617
12845         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
12846         even if low N bits of X aren't known to be zero.
12847
12848 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
12849
12850         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
12851
12852         * config/i386/i386.c (initial_ix86_tune_features): Add
12853         X86_TUNE_VECTORIZE_DOUBLE.
12854         (ix86_units_per_simd_word): New.
12855
12856         * config/i386/i386.h (ix86_tune_indices): Add
12857         X86_TUNE_VECTORIZE_DOUBLE.
12858         (TARGET_VECTORIZE_DOUBLE): New.
12859         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
12860
12861 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
12862
12863         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
12864         (new_temp_expr_table): Allocate call_cnt vector.
12865         (free_temp_expr_table): Free it.
12866         (process_replaceable): Add call_cnt parm and set in vector.
12867         (find_replaceable_in_bb): Skip replacement if def/use span a call.
12868         (debug_ter): Dump call_cnt value, remove stderr uses.
12869
12870 2010-09-13  Jan Hubicka  <jh@suse.cz>
12871
12872         * tree.c (build_zero_cst): New.
12873         * tree.h (build_zero_cst): Declare.
12874         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12875         (get_base_constructor): Break out from ...
12876         (fold_const_aggregate_ref): Here; handle empty constructors.
12877
12878 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12879
12880         * config/arm/arm.md: (define_attr "conds"): Update comment.
12881         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12882         conds attribute to clob.
12883         (arm_sync_compare_and_swapsi): Likewise.
12884         (arm_sync_compare_and_swap<mode>): Likewise.
12885         (arm_sync_lock_test_and_setsi): Likewise.
12886         (arm_sync_lock_test_and_set<mode>): Likewise.
12887         (arm_sync_new_<sync_optab>si): Likewise.
12888         (arm_sync_new_nandsi): Likewise.
12889         (arm_sync_new_<sync_optab><mode>): Likewise.
12890         (arm_sync_new_nand<mode>): Likewise.
12891         (arm_sync_old_<sync_optab>si): Likewise.
12892         (arm_sync_old_nandsi): Likewise.
12893         (arm_sync_old_<sync_optab><mode>): Likewise.
12894         (arm_sync_old_nand<mode>): Likewise.
12895
12896 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12897
12898         * fwprop.c (forward_propagate_and_simplify): Only attach a
12899         REG_EQUAL note to an insn if the destination is a register.
12900         * gcse.c (try_replace_reg): Likewise.
12901
12902 2010-09-13  Richard Guenther  <rguenther@suse.de>
12903
12904         PR tree-optimization/45611
12905         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12906         (copy_ref_info): Likewise.
12907
12908 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
12909
12910         PR debug/45604
12911         PR debug/45419
12912         PR debug/45408
12913         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12914         types of MEM_REF pointer types to the same type.
12915
12916 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
12917
12918         PR rtl-optimization/41087
12919         * ifcvt.c (noce_get_condition): Don't allow conditions with
12920         side-effects.
12921
12922 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
12923
12924         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12925         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
12926         * config/frv/frv.c (frv_register_move_cost): Make static. Change
12927         arguments type to reg_class_t. Add mode argument.
12928         (frv_memory_move_cost): New.
12929         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
12930
12931 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
12932
12933         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
12934         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
12935
12936 2010-09-10  Jan Hubicka  <jh@suse.cz>
12937
12938         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
12939
12940 2010-09-10  Richard Guenther  <rguenther@suse.de>
12941
12942         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
12943         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
12944         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
12945         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
12946         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
12947
12948 2010-09-10  Richard Guenther  <rguenther@suse.de>
12949
12950         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
12951         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
12952         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
12953         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
12954
12955 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12956
12957         PR middle-end/45634
12958         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
12959         of string folding is of integral type.
12960
12961 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
12962
12963         * doc/invoke.texi (-x): Fix typo.
12964
12965 2010-09-10  Richard Guenther  <rguenther@suse.de>
12966
12967         PR debug/44115
12968         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
12969         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12970         Output DECL_DEBUG_EXPR.
12971         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12972         Input DECL_DEBUG_EXPR.
12973
12974 2010-09-10  Richard Guenther  <rguenther@suse.de>
12975
12976         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
12977         (build_index_type): Implement in terms of build_range_type.
12978         (build_range_type): Do not allow NULL_TREE type, improve
12979         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
12980         if we didn't hash.
12981         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
12982         create a distinct copy of the type.
12983
12984 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
12985
12986         * configure: Regenerated.
12987         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
12988
12989 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12990
12991         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
12992         * config/arm/cortex-a9-neon.md: New and partially generated.
12993         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
12994
12995 2010-09-10  Richard Guenther  <rguenther@suse.de>
12996
12997         * tree.h (build_index_2_type): Remove.
12998         * tree.c (build_index_2_type): Remove.
12999
13000 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
13001
13002         PR bootstrap/45630
13003         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
13004         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
13005         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
13006
13007 2010-09-10  Martin Jambor  <mjambor@suse.cz>
13008
13009         PR tree-optimization/44972
13010         * tree-sra.c: Include toplev.h.
13011         (build_ref_for_offset): Entirely reimplemented.
13012         (build_ref_for_model): New function.
13013         (build_user_friendly_ref_for_offset): New function.
13014         (analyze_access_subtree): Removed build_ref_for_offset check.
13015         (propagate_subaccesses_across_link): Likewise.
13016         (create_artificial_child_access): Use
13017         build_user_friendly_ref_for_offset.
13018         (propagate_subaccesses_across_link): Likewise.
13019         (ref_expr_for_all_replacements_p): Removed.
13020         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
13021         (sra_modify_expr): Use build_ref_for_model.
13022         (load_assign_lhs_subreplacements): Likewise.
13023         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
13024         checks for return values of build_ref_for_offset.
13025         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
13026         build_ref_for_offset.
13027         * ipa-prop.h: Include gimple.h
13028         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
13029         (ipa_analyze_indirect_call_uses): Update comment.
13030         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
13031         (IPA_PROP_H): Likewise.
13032
13033 2010-09-10  Martin Jambor  <mjambor@suse.cz>
13034
13035         PR tree-optimization/44972
13036         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
13037         calling build_ref_for_offset.
13038
13039 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13040
13041         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
13042         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
13043         * config/arm/arm-tune.md: Regenerate.
13044         * doc/invoke.texi (ARM Options): Document it.
13045
13046 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
13047
13048         * config/i386/i386.c: Include sched-int.h.
13049         (TARGET_SCHED_DISPATCH): Defined.
13050         (TARGET_SCHED_DISPATCH_DO): Defined.
13051         (DISPATCH_WINDOW_SIZE): Defined.
13052         (MAX_DISPATCH_WINDOWS): Defined.
13053         (MAX_INSN): Defined.
13054         (MAX_IMM): Defined.
13055         (MAX_IMM_SIZE): Defined.
13056         (MAX_IMM_32): Defined.
13057         (MAX_IMM_64): Defined.
13058         (MAX_LOAD): Defined.
13059         (MAX_STORE): Defined.
13060         (BIG): Defined.
13061         (dispatch_group): New.
13062         (num_allowable_groups): New.
13063         (group_name): New.
13064         (sched_insn_info_s): New.
13065         (dispatch_windows_s): New.
13066         (imm_info_s): New.
13067         (dispatch_window_list): New.
13068         (dispatch_window_list1): New.
13069         (get_mem_group): New.
13070         (is_cmp): New.
13071         (dispatch_violation): New.
13072         (is_branch): New.
13073         (is_prefetch): New.
13074         (init_window): New.
13075         (allocate_window): New.
13076         (init_dispatch_sched): New.
13077         (is_end_basic_block): New.
13078         (process_end_window): New.
13079         (allocate_next_window): New.
13080         (find_constant_1): New.
13081         (find_constant): New.
13082         (get_num_immediates): New.
13083         (has_immediate): New.
13084         (get_insn_path): New.
13085         (get_insn_group): New.
13086         (count_num_restricted): New.
13087         (fits_dispatch_window): New.
13088         (add_insn_window): New.
13089         (add_to_dispatch_window): New.
13090         (debug_dispatch_window_file): New.
13091         (debug_dispatch_window): New.
13092         (debug_insn_dispatch_info_file): New.
13093         (debug_ready_dispatch): New.
13094         (do_dispatch): New.
13095         (has_dispatch): New.
13096         * config/i386/i386.h (debug_ready_dispatch): Declared.
13097         (debug_dispatch_window): Declared.
13098         * config/i386/i386.opt (mdispatch-scheduler): New flag.
13099         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
13100         (TARGET_SCHED_DISPATCH_DO): New.
13101         * doc/tm.texi: Regererated.
13102         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
13103         ready_remove_first_dispatch
13104         (schedule_block): Call targetm.sched.dispatch and
13105         targetm.sched.dispatch_do.
13106         (sched_init): Call targetm.sched.dispatch and
13107         targetm.sched.dispatch_do.
13108         (ready_remove_first_dispatch): New.
13109         (number_in_ready): New.
13110         (get_ready_element): New.
13111         * hooks.c (hook_bool_rtx_int_false): New.
13112         (hook_void_rtx_int): New.
13113         * hooks.h (hook_bool_rtx_int_false): Declared.
13114         (hook_void_rtx_int): Declared.
13115         * sched-int.h (IS_DISPATCH_ON): Defined.
13116         (IS_CMP): Defined.
13117         (DISPATCH_VIOLATION): Defined.
13118         (FITS_DISPATCH_WINDOW): Defined.
13119         (DISPATCH_INIT): Defined.
13120         (ADD_TO_DISPATCH_WINDOW): Defined.
13121         (get_ready_element): Declared.
13122         (number_in_ready): Declared.
13123         * target.def (dispatch): Defined.
13124         (dispatch_do): Defined.
13125
13126 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
13127
13128         PR middle-end/45312
13129         * reload1.c (merge_assigned_reloads): Remove.
13130         (reload_as_needed): Don't call it.
13131
13132 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
13133
13134         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
13135         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13136         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13137
13138 2010-09-09  Matthias Klose  <doko@ubuntu.com>
13139
13140         PR bootstrap/43847
13141         * configure.ac (--enable-plugin): Enhance for cross builds.
13142         * configure: Regenerate.
13143
13144 2010-09-09  Jan Hubicka  <jh@suse.cz>
13145
13146         PR tree-optimization/45598
13147         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
13148         string folding is of integral type.
13149
13150 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
13151
13152         * configure.ac (gnu_indirect_function): New test.
13153         * configure: Rebuilt.
13154         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
13155         * defaults.h (IFUNC_ASM_TYPE): Provide default.
13156
13157         * doc/extend.texi (Function Attributes): Document ifunc.
13158         * varasm.c (do_assemble_alias): Deal with ifuncs too.
13159
13160 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
13161
13162         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
13163         epilogue instruction move.
13164
13165 2010-09-09  Jan Hubicka  <jh@suse.cz>
13166
13167         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
13168         command line to allow more partitions than input files.
13169
13170 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
13171
13172         PR middle-end/44554
13173         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
13174
13175 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
13176
13177         PR middle-end/40386
13178         * ira.c (pseudo_for_reload_consideration_p): Don't use
13179         flag_ira_share_spill_slots.
13180
13181 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13182
13183         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
13184         point zero operands that fit into a single GPR.
13185         (s390_preferred_reload_class): Ensure we only return general-purpose
13186         register classes.
13187         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
13188         floating-point zero operands into GPRs.
13189         ("*mov<mode>_64"): Likewise.
13190         ("mov<mode>"): Likewise using lhi.
13191
13192 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13193
13194         * config/s390/s390.c (s390_symref_operand_p): Return false for
13195         literal pool references.
13196         (s390_check_qrst_address): Update caller.
13197
13198 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
13199
13200         * config/i386/predicates.md (ext_register_operand): Check that
13201         SUBREG_REG is really a register before looking for REGNO.
13202         (reg_not_xmm0_operand): Handle SUBREGs correctly.
13203         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
13204
13205 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
13206
13207         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
13208         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
13209         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
13210         * print-rtl.c (print_rtx): Likewise.
13211         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
13212         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
13213         for ADDR_EXPR with non-addressable object.
13214         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
13215         (struct dw_val_struct): Add v.val_decl_ref.
13216         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
13217         Handle DW_OP_GNU_implicit_pointer.
13218         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
13219         (get_ref_die_offset_label): New function.
13220         (implicit_ptr_descriptor): New function.
13221         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
13222         (loc_descriptor): Likewise.
13223         (gen_variable_die): Put even definitions into decl_die_table.
13224         (resolve_addr_in_expr): Resolve still unresolved
13225         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
13226         return false.
13227         (dwarf2out_finish): Call output_location_lists after outputting
13228         .debug_info and .debug_abbrev instead of before.
13229
13230 2010-09-09  Roland McGrath  <roland@redhat.com>
13231
13232         * dwarf2out.c (DWARF_REF_SIZE): Define.
13233         (size_of_loc_descr): Use it for DW_OP_call_ref.
13234
13235 2010-09-09  Alan Modra  <amodra@gmail.com>
13236
13237         * doc/invoke.text: Reinstate mcmodel=medium.
13238         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
13239         CMODEL_MEDIUM as default.
13240         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
13241         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
13242         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
13243         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
13244
13245 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13246
13247         PR target/45250
13248         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
13249         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
13250         (builtin_longjmp): Likewise.
13251         (allocate_stack): Use hard_frame_pointer_rtx instead of
13252         frame_pointer_rtx.
13253         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
13254         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
13255         (pa_can_eliminate): Likewise.
13256         (TARGET_INTERNAL_ARG_POINTER): Define.
13257         (TARGET_CAN_ELIMINATE): Define.
13258         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
13259         pointer.
13260         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
13261         (pa_internal_arg_pointer, pa_can_eliminate,
13262         pa_initial_elimination_offset): New.
13263         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
13264         (HARD_FRAME_POINTER_REGNUM): Set to register three.
13265         (INITIAL_FRAME_POINTER_OFFSET): Delete.
13266         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
13267         Define.
13268         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
13269         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
13270         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
13271         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
13272         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
13273         new soft frame pointer.
13274         * config/pa/pa64-regs.h: Likewise.
13275
13276 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
13277
13278         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
13279         numerical constant.
13280         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
13281
13282 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
13283
13284         PR debug/45531
13285         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
13286
13287 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
13288
13289         PR debug/45419
13290         PR debug/45408
13291         * tree-pretty-print.c (dump_generic_node): Disregard top-level
13292         qualifiers in otherwise equal MEM_REF pointer types.
13293         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
13294         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
13295
13296 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13297
13298         PR target/44392
13299         * config/arm/arm.md (bswapsi2): Handle condition correctly
13300         for armv6 and optimize_size.
13301
13302 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13303
13304         PR other/18555
13305         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
13306
13307 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
13308
13309         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
13310         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
13311         ix86_expand_strlen, legitimate_pic_address_disp_p,
13312         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
13313         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
13314         ix86_check_movabs, ix86_secondary_memory_needed): Change function
13315         prototype to bool.
13316         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
13317         return_in_memory_ms_64, ix86_check_movabs,
13318         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
13319         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
13320         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
13321         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
13322         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
13323         ix86_secondary_memory_needed): Change to bool.  Return
13324         "true" and "false" values.
13325         * config/i386/i386.md: Return "true" and "false" values.
13326
13327 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13328
13329         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13330         run_expensive_tests.
13331
13332 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13333
13334         * toplev.c (output_stack_usage): Use lbasename instead of basename.
13335
13336 2010-09-08  Martin Jambor  <mjambor@suse.cz>
13337
13338         PR other/45443
13339         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
13340         at -O3.
13341
13342 2010-09-08  Richard Guenther  <rguenther@suse.de>
13343
13344         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
13345         (visit): Adjust.
13346         (iterative_hash_gimple_type): Likewise.
13347         (gimple_type_hash): Likewise.
13348         (gimple_register_type): Likewise.
13349         (print_gimple_types_stats): Likewise.
13350         (free_gimple_type_tables): Likewise.
13351
13352 2010-09-08  Michael Matz  <matz@suse.de>
13353
13354         PR tree-optimization/43430
13355         * tree-vect-stmts.c (vectorizable_condition): Support multiple
13356         copies for conditional statements if it's not part of a reduction.
13357
13358 2010-09-08  Michael Matz  <matz@suse.de>
13359
13360         PR tree-optimization/33244
13361         * tree-ssa-sink.c (statement_sink_location): Don't sink into
13362         empty loop latches.
13363
13364 2010-09-08  Richard Guenther  <rguenther@suse.de>
13365
13366         PR tree-optimization/45578
13367         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
13368         Be more careful when transfering alignment information to
13369         the new induction variable.
13370         (copy_ref_info): Likewise.
13371
13372 2010-09-08  Richard Guenther  <rguenther@suse.de>
13373
13374         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
13375         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
13376
13377 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
13378
13379         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
13380         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
13381
13382 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
13383
13384         PR doc/45587
13385         * doc/md.texi: Fixed modes on several standard pattern names.
13386
13387 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
13388
13389         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
13390         (ashl<mode>3): ...this.
13391         (loongson_psra<V_suffix>): Rename to...
13392         (ashr<mode>3): ...this.
13393         (loongson_psrl<V_suffix>): Rename to...
13394         (lshr<mode>3): ...this.
13395         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
13396         (CODE_FOR_loongson_psllw): Define.
13397         (CODE_FOR_loongson_psrlh): Define.
13398         (CODE_FOR_loongson_psrlw): Define.
13399         (CODE_FOR_loongson_psrah): Define.
13400         (CODE_FOR_loongson_psraw): Define.
13401
13402 2010-09-07  Richard Henderson  <rth@redhat.com>
13403
13404         * tree-vect-data-refs.c: Include tm_p.h.
13405         * Makefile.in (tree-vect-data-refs.o): Update deps.
13406         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
13407         Move delarations outside #ifdef RTX_CODE.
13408
13409 2010-09-07  Richard Henderson  <rth@redhat.com>
13410
13411         * final.c (rest_of_handle_final): Unconditionally do
13412         output_function_exception_table before assemble_end_function.
13413
13414 2010-09-07  Jan Hubicka  <jh@suse.cz>
13415
13416         * tree-inline.c (tree_inlinable_function_p): Do not test
13417         DECL_REPLACEABLE_P.
13418         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
13419         update_callee_keys, cgraph_decide_inlining): Test function availability.
13420         * cif-code.def (OVERWRITABLE): New code.
13421
13422 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
13423             Jack Howarth  <howarth@bromo.med.uc.edu>
13424
13425         PR target/36502
13426         PR target/42313
13427         PR target/44651
13428         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
13429         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
13430         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
13431         MAX macro.
13432
13433 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13434
13435         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
13436         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
13437
13438 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13439
13440         * config.gcc: Don't append t-android for Android targets.
13441
13442         * config/t-android: Removed.
13443
13444 2010-09-07  Richard Henderson  <rth@redhat.com>
13445
13446         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
13447         * doc/tm.texi.in: Add doc marker.
13448         * doc/tm.texi: Rebuild.
13449         * except.c (switch_to_exception_section): Always build.
13450         (output_one_function_exception_table): Move section switch,
13451         personality output, and label output ...
13452         (output_function_exception_table): ... here.  Use the new
13453         personality hook.
13454
13455         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
13456         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
13457         TARGET_ASM_INIT_SECTIONS): New.
13458         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
13459         make static.
13460         (TARGET_ASM_UNWIND_EMIT): Update to match.
13461         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
13462
13463         * config/arm/arm.c (arm_asm_emit_except_personality): New.
13464         (arm_asm_init_sections): New.
13465         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
13466
13467 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13468
13469         * config/arm/arm.md: Remove unused variable.
13470
13471 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
13472
13473         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13474         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
13475         (m32r_memory_move_cost): New function.
13476
13477 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13478
13479         * config.gcc: Append t-android for Android targets.
13480
13481         * config/t-android: New.
13482
13483 2010-09-07  Richard Henderson  <rth@redhat.com>
13484
13485         * target.def (unwind_emit_before_insn): New hook.
13486         * doc/tm.texi.in: Add @hook marker for it.
13487         * doc/tm.texi: Rebuild.
13488         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
13489
13490 2010-09-07  Martin Jambor  <mjambor@suse.cz>
13491
13492         PR fortran/43665
13493         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
13494         are any type attributes.
13495
13496 2010-09-07  Jan Hubicka  <jh@suse.cz>
13497
13498         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
13499         array_ref_low_bound in string access folding.
13500
13501 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
13502
13503         PR target/45206
13504         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
13505         eh_return fixup sequence.
13506
13507 2010-09-07  Jan Hubicka  <jh@suse.cz>
13508
13509         * gimple-fold.c (maybe_fold_reference): Verify that operand is
13510         gimple_min_invariant.
13511
13512 2010-09-07  Richard Guenther  <rguenther@suse.de>
13513
13514         PR middle-end/45569
13515         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
13516         nor CONSTRUCTOR can trap.
13517         * tree-complex.c (update_complex_assignment): Update EH info.
13518
13519 2010-09-07  Richard Guenther  <rguenther@suse.de>
13520
13521         PR middle-end/45569
13522         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
13523         * passes.c (execute_function_todo): Do not verify anything if
13524         we saw errors.
13525
13526 2010-09-07  Richard Guenther  <rguenther@suse.de>
13527
13528         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
13529
13530 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
13531
13532         PR target/43137
13533         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
13534         New define_mode_attrs.
13535         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
13536         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
13537         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
13538         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
13539         Remove pool_range attribute.
13540         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
13541         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
13542         pool_range and neg_pool_range attributes.
13543         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
13544         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
13545         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
13546
13547 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13548
13549         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
13550         check glibc.
13551
13552 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
13553
13554         PR target/22152
13555         * config/i386/mmx.md (*mov<mode>_internal_rex64,
13556         *mov<mode>_internal_avx, *mov<mode>_internal,
13557         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
13558         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
13559
13560 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
13561
13562         * c-typeck.c (do_warn_double_promotion): Remove.
13563         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
13564         Objective-C++ too.
13565
13566 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
13567
13568         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
13569         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
13570         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
13571         argument type to reg_class_t. Change result type to bool.
13572         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13573
13574 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
13575
13576         PR libobjc/19850
13577         * gthr-posix.h (__gthread_objc_thread_detach): Use
13578         _objc_thread_attribs when detaching a thread.
13579         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
13580
13581 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13582
13583         PR target/45524
13584         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
13585         * configure: Regenerated.
13586
13587 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13588
13589         * combine.c (try_combine): Set subst_low_luid to i0.
13590
13591 2010-09-06  Richard Guenther  <rguenther@suse.de>
13592
13593         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
13594         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
13595         (build_aligned_type): Declare.
13596         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
13597         (check_aligned_type): New function.
13598         (build_aligned_type): Likewise.
13599         * expr.c (expand_assignment): Handle misaligned stores via
13600         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
13601         (expand_expr_real_1): Likewise.
13602         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
13603         * tree-vect-stmts.c (vectorizable_store): Do not build
13604         MISALIGNED_INDIRECT_REF but initialize alignment information.
13605         (vectorizable_load): Likewise.
13606         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
13607         handling.
13608         * cfgexpand.c (expand_debug_expr): Likewise.
13609         * dwarf2out.c (loc_list_from_tree): Likewise.
13610         * fold-const.c (maybe_lvalue_p): Likewise.
13611         (operand_equal_p): Likewise.
13612         (build_fold_addr_expr_with_type_loc): Likewise.
13613         * gimplify.c (gimplify_addr_expr): Likewise.
13614         (gimplify_expr): Likewise.
13615         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
13616         (verify_gimple_assign_single): Likewise.
13617         * tree-dump.c (dequeue_and_dump): Likewise.
13618         (tree_could_trap_p): Likewise.
13619         * tree-predcom.c (ref_at_iteration): Likewise.
13620         * tree-pretty-print.c (dump_generic_node): Likewise.
13621         (op_code_prio): Likewise.
13622         (op_symbol_code): Likewise.
13623         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
13624         * tree-ssa-loop-im.c (for_each_index): Likewise.
13625         (gen_lsm_tmp_name): Likewise.
13626         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
13627         (find_interesting_uses_address): Likewise.
13628         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
13629         * tree-ssa-operands.c (get_expr_operands): Likewise.
13630         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
13631         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
13632         (ao_ref_init_from_vn_reference): Likewise.
13633         * tree.c (staticp): Likewise.
13634         (build1_stat): Likewise.
13635         (reference_alias_ptr_type): Likewise.
13636         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
13637         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
13638         MISALIGNED_INDIRECT_REF handling.
13639
13640 2010-09-06  Richard Guenther  <rguenther@suse.de>
13641
13642         PR tree-optimization/45534
13643         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
13644         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
13645         on the target.
13646         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
13647         valid on the target.
13648
13649 2010-09-06  Andreas Schwab  <schwab@redhat.com>
13650
13651         * configure.ac: Quote argument of AC_MSG_WARN.
13652         * configure: Regenerate.
13653
13654 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
13655
13656         * sel-sched.c (move_cond_jump): Correct arguments to
13657         maybe_tidy_empty_bb.
13658         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
13659
13660 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
13661
13662         PR rtl-optimization/44919
13663         * sel-sched.c (move_cond_jump): Remove assert, check that
13664         the several blocks case can only happen with mutually exclusive
13665         insns instead.  Rewrite the movement code to support moving through
13666         several basic blocks.
13667
13668 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
13669
13670         * config/i386/i386.md (iptrsize): New mode attribute.
13671         (tp_seg): Ditto.
13672         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
13673         mode iterator.
13674         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
13675         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
13676         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
13677         (stack_tls_protect_set_<mode>): Ditto from
13678         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
13679         of thread base pointer load.
13680         (stack_tls_protect_test_<mode>): Ditto from
13681         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
13682         of thread base pointer load.
13683         (stack_protect_set): Rewrite using indirect functions.
13684         (stack_protect_test): Ditto.
13685         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
13686         (ix86_print_operand): Handle '@'.
13687
13688 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
13689
13690         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
13691         MINUS_EXPR.
13692
13693 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
13694
13695         * doc/invoke.texi: Document -Wdouble-promotion.
13696         * c-typeck.c (convert_arguments): Check for implicit conversions
13697         from float to double.
13698         (do_warn_double_promotion): New function.
13699         (build_conditional_expr): Use it.
13700         (build_binary_op): Likewise.
13701
13702 2010-09-05  Richard Guenther  <rguenther@suse.de>
13703
13704         PR tree-optimization/45535
13705         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
13706         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
13707         dereferencing it.
13708         (indirect_refs_may_alias_p): Likewise.
13709
13710 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
13711
13712         * config/sh/sh.c (sh_option_override): Make static.
13713         Adjust comments.  Declare.
13714         (sh_function_value_regno_p): Likewise.
13715         (sh_register_move_cost): Modify the arguments, make static.
13716         Adjust comments.  Declare.
13717         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
13718         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13719         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
13720         REGISTER_MOVE_COST): Delete.
13721         * config/sh/sh-protos.h (sh_override_options): Delete.
13722         (sh_register_move_cost): Delete.
13723         (sh_function_value_regno_p): Delete.
13724
13725 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
13726
13727         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
13728         m32r_function_value_regno_p): New functions.
13729         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13730         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
13731         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
13732         FUNCTION_VALUE_REGNO_P): Remove.
13733
13734 2010-09-04  Jan Hubicka  <jh@suse.cz>
13735
13736         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
13737         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
13738         fold_read_from_constant_string.
13739
13740         * gimple.h (canonicalize_constructor_val): Declare.
13741         * gimple-fold.c (canonicalize_constructor_val): New function.
13742         (get_symbol_constant_value):Use it.
13743         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
13744
13745 2010-09-04  Jan Hubicka  <jh@suse.cz>
13746
13747         * tree-switch-conversion.c (build_one_array): Set constructor to be
13748         static.
13749         * varpool.c (varpool_finalize_decl): Compute const_value_known.
13750
13751 2010-09-04  Richard Guenther  <rguenther@suse.de>
13752
13753         PR bootstrap/45519
13754         * tree-flow.h (force_gimple_operand_1): Declare.
13755         (force_gimple_operand_gsi_1): Likewise.
13756         * gimplify.c (force_gimple_operand_1): New worker taking a
13757         gimple predicate for ...
13758         (force_gimple_operand): ... which now wraps it.
13759         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
13760         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
13761         last change.
13762         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
13763         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
13764         (create_mem_ref): Likewise.
13765
13766 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
13767
13768         * config/i386/predicates.md (sse_reg_operand): New predicate.
13769         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
13770         predicate for operand 1.
13771         (XFmode push splitter): Use fp_register_operand predicate
13772         for operand 1.
13773         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
13774         (SF-DF float_extend push splitter): Add reload_completed insn
13775         predicate.
13776         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
13777         MODEF mode macro.  Add reload_completed insn predicate.
13778
13779 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
13780
13781         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
13782         (struct df_extract_ref): Remove.
13783         (union df_ref_d): Remove extract_ref member.
13784         (df_ref_create): Remove last three arguments.
13785         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
13786         * df-scan.c (df_ref_record): Remove last three arguments, do not
13787         pass them to df_ref_create_structure.
13788         (df_uses_record): Remove first and last three arguments.  Replace
13789         first argument with DF_REF_REGULAR, adjust calls to remove the
13790         width, offset and mode.  Always call recursively on the second
13791         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
13792         (df_ref_create_structure): Remove first argument.
13793         (struct df_scan_problem_data): Remove ref_extract_pool.
13794         (df_scan_free_internal): Do not free it.
13795         (df_scan_alloc): Do not allocate it.
13796         (df_ref_create): Remove last three arguments, do not pass them to
13797         df_ref_create_structure.
13798         (df_free_ref): Remove DF_REF_EXTRACT case.
13799         (df_notes_rescan): Adjust call to df_uses_record.
13800         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
13801         Remove DF_REF_EXTRACT case.
13802         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
13803         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
13804         and SUBREG definitions.
13805         (df_get_conditional_uses): Remove references to width/offset/mode,
13806         adjust call to df_ref_create_structure.
13807         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13808         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
13809         calls to df_uses_record and df_ref_record.
13810         * fwprop.c (update_df): Remove references to width/offset/mode,
13811         adjust call to df_ref_create.
13812
13813 2010-09-03  Jan Hubicka  <jh@suse.cz>
13814
13815         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
13816         (build_cdtor_fns): Update use of build_cdtor.
13817
13818 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
13819
13820         * doc/options.texi (SeparateAlias): Document.
13821         * opt-functions.awk (switch_flags): Handle SeparateAlias.
13822         * opth-gen.awk: Generate enumeration names for options marked
13823         SeparateAlias, but not for those marked Ignore.
13824         * opts-common.c (generate_canonical_option): Don't output separate
13825         argument for options marked CL_SEPARATE_ALIAS.
13826         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
13827         * opts.h (CL_SEPARATE_ALIAS): New.
13828         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13829         CL_COMMON): Adjust definitions.
13830         * config/i386/darwin.opt, config/mips/sde.opt: New.
13831         * common.opt (fdump-final-insns): New.
13832         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13833         i386/darwin.opt.
13834         (mips*-sde-elf*): Add mips/sde.opt.
13835         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
13836         -mno-data-in-code and -mcode-xonly here.
13837         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
13838         * gcc.c (option_map): Add "j" to --dump entry.
13839         (translate_options): Don't translate -d to -foutput-class-dir= here.
13840
13841 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
13842
13843         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
13844         DR_IS_WRITE.
13845         (compute_all_dependences): Same.
13846         (create_rdg_edge_for_ddr): Same.
13847         * tree-data-ref.h (DR_IS_WRITE): New.
13848         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
13849         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
13850         (write_memrefs_written_at_least_once): Same.
13851         * tree-predcom.c (suitable_component_p): Same.
13852         (determine_roots_comp): Same.
13853         (execute_load_motion): Same.
13854         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
13855         (vect_enhance_data_refs_alignment): Same.
13856         (vect_analyze_group_access): Same.
13857
13858 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13859
13860         PR testsuite/42843
13861         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
13862         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
13863
13864 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
13865
13866         * dwarf2out.c (file scope): Remove #if0'd code.
13867         (gen_subprogram_die): Same.
13868
13869 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13870
13871         PR middle-end/45484
13872         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13873         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13874         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13875         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13876         * config/i386/i386.c (output_set_got): Call it.
13877
13878 2010-09-03  Michael Matz  <matz@suse.de>
13879
13880         PR middle-end/45415
13881         * tree-sra.c (sra_modify_assign): If we modify the statement,
13882         say so.
13883
13884         * tree-ssa.c (verify_ssa): Check number of operands and links
13885         per statement to agree.
13886
13887 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13888             Iain Sandoe  <iains@gcc.gnu.org>
13889
13890         PR target/45476
13891         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13892         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13893         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13894
13895 2010-09-03  Richard Guenther  <rguenther@suse.de>
13896
13897         * lto-streamer-out.c (output_function): Output function
13898         start and end loci.
13899         * lto-streamer-in.c (input_function): Input function start
13900         and end loci.
13901
13902 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13903
13904         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13905         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13906         * configure: Regenerate.
13907         * aclocal.m4: Regenerate.
13908
13909 2010-09-03  Jan Hubicka  <jh@suse.cz>
13910
13911         PR lto/44812
13912         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
13913         on functions/variables in other partition.
13914
13915 2010-09-03  Jan Hubicka  <jh@suse.cz>
13916
13917         * cgraph.h (struct varpool_node): Add const_value_known.
13918         (varpool_decide_const_value_known): Declare.
13919         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
13920         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
13921         (input_varpool_node): Restore const_value_known.
13922         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
13923         initializer folding.
13924         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13925         function_and_variable_visibility): Compute const_value_known.
13926         * gimple-fold.c (get_symbol_constant_value): Use varpool for
13927         initializer folding.
13928         * varpool.c (varpool_decide_const_value_known): New function.
13929
13930 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13931
13932         * config/i386/i386.md: Remove empty preparation statements
13933         from splitters.
13934
13935 2010-09-03  Jan Hubicka  <jh@suse.cz>
13936
13937         * passes.c (rest_of_decl_compilation): Do not add local vars into
13938         varpool.
13939         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
13940         static or extern vars are in varpool.
13941         (varpool_finalize_decl): Sanity check that only static vars are
13942         finalized.
13943
13944 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13945
13946         PR debug/45500
13947         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
13948         not just generic vectors with BLKmode.
13949
13950 2010-09-03  Richard Guenther  <rguenther@suse.de>
13951
13952         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
13953         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
13954         * tree.h (TMR_SYMBOL): Remove.
13955         (TMR_BASE, TMR_OFFSET): Adjust.
13956         (TMR_INDEX2): New.
13957         * alias.c (ao_ref_from_mem): Use TMR_BASE.
13958         * builtins.c (get_object_alignment): Merge TMR_BASE and
13959         TMR_SYMBOL handling.
13960         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
13961         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
13962         handling.  Also allow TARGET_MEM_REF as base address.
13963         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
13964         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
13965         base.  Gimplify TMR_INDEX2.
13966         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
13967         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13968         (get_addr_base_and_unit_offset): Likewise.
13969         * tree-eh.c (tree_could_trap_p): Likewise.
13970         * tree-pretty-print.c (dump_generic_node): Likewise.
13971         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
13972         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
13973         base to index2.
13974         (get_address_description): Reconstruct addres description
13975         from merged TMR_BASE and TMR_INDEX2.
13976         (maybe_fold_tmr): Fold propagated addresses.
13977         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
13978         MEM_REF and TARGET_MEM_REF paths.
13979         (indirect_refs_may_alias_p): Likewise.
13980         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
13981         instead of TMR_SYMBOL.
13982         * tree-ssa-operands.c (get_tmr_operands): Simplify.
13983         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
13984         according to changes ...
13985         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
13986         Split TARGET_MEM_REF into two fields plus the base.
13987         * tree.c (mem_ref_offset): Simplify.
13988         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
13989         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
13990         Strip NOPs when folding MEM_REF addresses.
13991         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
13992         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
13993         (fold_gimple_assign): ... not here.
13994
13995 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
13996
13997         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
13998         * config/mips/mips.c (mips_shift_truncation_mask): New function.
13999         (TARGET_SHIFT_TRUNCATION_MASK): Define.
14000
14001 2010-09-02  Richard Henderson  <rth@redhat.com>
14002
14003         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
14004         instead of readelf in the test.
14005         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
14006         in the .debug_frame section for coff targets.
14007         * configure: Rebuild.
14008
14009 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
14010
14011         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
14012         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
14013         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14014         (m32c_class_likely_spilled_p): Make static. Change argument type to
14015         reg_class_t. Change result type to bool.
14016
14017 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
14018
14019         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
14020         to convert (double)(long) into a single FRIZ instruction or not
14021         when -ffast-math is used.
14022
14023         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
14024         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
14025         or FRIZ instruction if -ffast-math.
14026         * config/rs6000/rs6000.md (friz): Ditto.
14027
14028         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
14029
14030 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14031
14032         * opth-gen.awk (quote, comma): Remove unused variables.
14033
14034 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
14035
14036         * arm.c (arm_override_options): Correct fall-back code to use
14037         SUBTARGET_CPU_DEFAULT.
14038
14039 2010-09-02  Julian Brown  <julian@codesourcery.com>
14040
14041         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
14042         unspecs.
14043         (vcond<mode>, vcondu<mode>): New expanders.
14044         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
14045         comparisons with zero.
14046         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
14047         * config/arm/constraints.md (Dz): New constraint.
14048
14049 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
14050
14051         * target.def (class_likely_spilled_p): New hook.
14052         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
14053         * doc/tm.texi: Regenerate.
14054         * targhooks.c (default_class_likely_spilled_p): New function.
14055         * targhooks.h (default_class_likely_spilled_p): Declare.
14056         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
14057         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
14058         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
14059         Use fixed_reg_set instead of fixed_regs.
14060         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
14061         * calls.c (avoid_likely_spilled_reg): Ditto.
14062         * ira-conflicts.c (ira_build_conflicts): Ditto.
14063         * ira.c (update_equiv_regs): Ditto.
14064         * mode-switching.c (create_pre_exit): Ditto.
14065         * regmove.c (find_matches): Ditto.
14066         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
14067         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
14068         (small_register_class_p): New inline function.
14069         (push_secondary_reload, find_reusable_reload, find_reloads): Use
14070         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
14071
14072         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
14073         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
14074         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14075
14076 2010-09-02  Richard Guenther  <rguenther@suse.de>
14077
14078         PR tree-optimization/44937
14079         PR tree-optimization/45412
14080         * ipa-split.c (split_function): Properly remove PHI nodes.
14081
14082 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14083
14084         * opts.h (struct cl_option): Add warn_message field.
14085         (struct cl_decoded_option): Add warn_message field.
14086         * doc/options.texi (Ignore, Warn): Document.
14087         * opt-functions.awk (needs_state_p): Don't consider aliases or
14088         ignored options to need state saved.
14089         * optc-gen.awk: Handle Warn and Ignore.
14090         * opth-gen.awk: Output OPT_SPECIAL_ignore.
14091         * opts-common.c (decode_cmdline_option): Set warn_message field.
14092         Handle ignored options.
14093         (decode_cmdline_options_to_array, generate_option,
14094         generate_option_input_file): Set warn_message field.
14095         (read_cmdline_option): Generate warnings from warn_message field.
14096         Handle ignored options.
14097         * common.opt (Wunreachable-code, fargument-alias,
14098         fargument-noalias, fargument-noalias-global,
14099         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
14100         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
14101         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
14102         ftree-salias): Mark Ignore.
14103         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
14104         -mintel-syntax and -mno-intel-syntax here.
14105         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
14106         using Warn.
14107         * opts.c (common_handle_option): Don't handle options marked as
14108         ignored.
14109         (enable_warning_as_error): Handle ignored options.
14110
14111 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14112
14113         PR driver/44076
14114         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
14115         alias_target fields.
14116         * opt-functions.awk (opt_sanitized_name): Don't handle
14117         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
14118         * optc-gen.awk: Generate alias fields.
14119         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
14120         Don't generate such constants for aliases.
14121         * opts-common.c (generate_canonical_option): New.
14122         (decode_cmdline_option): Handle aliases.  Use
14123         generate_canonical_option for known options instead of copying the
14124         input option text.
14125         * doc/options.texi (Alias): Document.
14126         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
14127         fstack-check, specs): Mark as aliases.
14128         * gcc.c (driver_handle_option): Canonicalize -L options to joined
14129         arguments.
14130         (driver_handle_option): Don't handle OPT_specs.
14131         * opts.c (common_handle_option): Don't handle options marked as
14132         aliases.
14133         (enable_warning_as_error): Handle aliases.
14134         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
14135         OPT_Wlarger_than_eq.
14136         * tree-optimize.c (tree_rest_of_compilation): Use
14137         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
14138
14139 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
14140
14141         * config/i386/i386.md (nonmemory_operand): New mode attribute.
14142         (push memory peephole2): Macroize peepholes using SWI mode iterator.
14143         (move immediate to memory peephole2): Macroize peepholes using
14144         SWI124 mode iterator.
14145         (non-pairable NOT peephole2): Macroize peepholes using SWI124
14146         mode iterator.
14147         (simple lea add peephole2): Macroize peepholes using SWI48
14148         mode iterator.
14149         (simple lea mult peephole2): Ditto.
14150         (imul by 3,5,9 to lea peephole2): Ditto.
14151         (mov $-1, reg peephole2): Macroize peepholes using SWI248
14152         mode iterator.
14153         (imul $32bit_imm,mem,reg peephole2): Ditto.
14154         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
14155
14156 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
14157
14158         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
14159
14160 2010-09-02  Olivier Hainque  <hainque@adacore.com>
14161
14162         PR middle-end/44763
14163         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
14164         (allocno_priority_compare_func): Use it instead of a straight
14165         difference computation over priorities.
14166
14167 2010-09-02  Andi Kleen  <ak@linux.intel.com>
14168
14169         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
14170
14171 2010-09-02  Ira Rosen  <irar@il.ibm.com>
14172
14173         * tree-vectorizer.h (get_later_stmt): New function.
14174         (vect_analyze_data_ref_dependences): Add argument.
14175         * tree-vect-loop.c (vect_analyze_loop): Update call to
14176         vect_analyze_data_ref_dependences.
14177         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
14178         New function.
14179         (vect_analyze_data_ref_dependence): Add argument for basic block
14180         dependencies. Check dependencies in basic block vectorization.
14181         (vect_analyze_data_ref_dependences): Add argument and update call to
14182         vect_analyze_data_ref_dependences.
14183         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
14184         (vect_bb_vectorizable_with_dependencies): New.
14185         (vect_slp_analyze_bb): Check dependencies in basic block.
14186         (vect_schedule_slp_instance): Insert stores before the last store in
14187         SLP instance.
14188
14189 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
14190
14191         PR target/45476
14192         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
14193         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
14194
14195 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
14196
14197         PR middle-end/45458
14198         * bb-reorder.c (add_labels_and_missing_jumps): Treat
14199         bbs ending with throwing insns like blocks ending with a call.
14200         (fix_up_fall_thru_edges): Likewise.
14201
14202 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
14203
14204         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
14205         (m32c_function_arg_advance): Delete.
14206         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14207         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
14208         comments.  Take a const_tree and a bool.  Declare.
14209         (m32c_function_arg_advance): Likewise.
14210         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14211
14212 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
14213
14214         PR target/45476
14215         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
14216         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
14217         * config/i386/mingw32.h: ... here.
14218
14219 2010-09-01  Andi Kleen  <ak@linux.intel.com>
14220
14221         PR lto/45475
14222         * lto-streamer-in.c (lto_input_ts_target_option): Add.
14223         (lto_input_tree_pointers): Call lto_input_ts_target_option.
14224         * lto-streamer-out (lto_output_ts_target_option): Add.
14225         (lto_output_tree_pointers): Call lto_output_ts_target_option.
14226
14227 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
14228
14229         PR/target 45452
14230         * config/i386/cygwin.h: Change order of specified import libraries.
14231         * config/i386/mingw32.h: Likewise.
14232         * config/i386/t-cygwin: Likewise.
14233         * config/i386/t-mingw32: Likewise.
14234         * config/i386/t-mingw-w32: Likewise.
14235         * config/i386/t-mingw-w64: Likewise.
14236
14237 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14238
14239         * config/arm/neon-schedgen.ml (core): New type.
14240         (allCores): List of supported cores.
14241         (availability_table): Add supported cores.
14242         (collate_bypasses): Accept core as a parameter.
14243         (worst_case_latencies_and_bypasses): Accept core as a parameter.
14244         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
14245         and coreStr to get tune attribute and prefix for functional units.
14246         (emit_bypasses): Accept core name and use it.
14247         (calculate_per_core_availability_table): New.
14248         (filter_core): New.
14249         (calculate_core_availability_table): New.
14250         (main): Use calculate_core_availablity_table.
14251         * config/arm/cortex-a8-neon.md: Update copyright year.
14252         Regenerated from ml file and merged in.
14253         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
14254         cortex_a8_neon_mrc.
14255
14256 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
14257
14258         * Makefile.in (tree-switch-conversion.o): Update dependencies.
14259
14260 2010-09-01  Richard Guenther  <rguenther@suse.de>
14261
14262         * alias.c (ao_ref_from_mem): Adjust.
14263         * builtins.c (get_object_alignment): Likewise.
14264         * cfgexpand.c (expand_debug_expr): Likewise.
14265         * gimple.c (get_base_address): Likewise.
14266         * tree-dfa.c (get_ref_base_and_extent): Likewise.
14267         (get_addr_base_and_unit_offset): Likewise.  Fix for
14268         both TMR_SYMBOL and TMR_BASE being set.
14269         * tree-eh.c (tree_could_trap_p): Likewise.
14270         * gimplify.c (gimplify_expr): Do not attempt to gimplify
14271         TMR_SYMBOL.  Always gimplify TMR_BASE.
14272         * tree-cfg.c (verify_types_in_gimple_reference): Verify
14273         TMR_BASE if there is a TMR_SYMBOL.
14274         * tree-pretty-print.c (dump_generic_node): Adjust.
14275         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
14276         (tree_mem_ref_addr): Likewise.
14277         (create_mem_ref_raw): Likewise.
14278         (move_fixed_address_to_symbol): Likewise.
14279         (create_mem_ref): Likewise.
14280         (dump_mem_address): Likewise.
14281         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
14282         Fix for both TMR_SYMBOL and TMR_BASE being set.
14283         (indirect_refs_may_alias_p): Likewise.
14284         * tree-ssa-operands.c (get_tmr_operands): Adjust.
14285         * tree.def (TARGET_MEM_REF): Adjust documentation.
14286
14287 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
14288
14289         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
14290         Rename from X86_TUNE_ADD_ESP_4.
14291         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
14292         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
14293         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
14294         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
14295         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
14296         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
14297         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
14298         * config/i386/i386.c (initial_ix86_tune_features)
14299         <X86_TUNE_SINGLE_POP>: Invert members.
14300         <X86_TUNE_DOUBLE_POP>: Ditto.
14301         <X86_TUNE_SINGLE_PUSH>: Ditto.
14302         <X86_TUNE_DOUBLE_PUSH>: Ditto.
14303         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
14304         No longer exported.
14305         (push peephole2 patterns): Macroize peepholes using P mode iterator.
14306         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
14307         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
14308         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
14309
14310 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
14311
14312         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
14313         a volatile LHS if the constructor has only one element.
14314
14315 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
14316
14317         PR bootstrap/45321
14318         * tree.c (stdarg_p): Make fntype parameter const.
14319         * tree.h (stdarg_p): Likewise.
14320         (function_args_iterator): Remove unused fntype field.
14321         (function_args_iter_init): Do not initialize fntype
14322         field.  Make fntype parameter const.
14323
14324 2010-09-01  Richard Guenther  <rguenther@suse.de>
14325
14326         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
14327         estimate.
14328         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
14329         (execute_vrp): Compute number of iteration estimates.
14330         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
14331         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
14332         * tree-data-ref.c (estimated_loop_iterations): Adjust.
14333         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
14334         Infer loop bounds from undefined behavior based on a new parameter.
14335         (estimate_numbers_of_iterations): Likewise.
14336         (scev_probably_wraps_p): Adjust.
14337         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
14338
14339 2010-09-01  Nick Clifton  <nickc@redhat.com>
14340
14341         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
14342         where appropriate.
14343         (xstormy16_legitimate_address_p): Use true and false instead of 1
14344         and 0.
14345         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
14346         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
14347         magic constant 2.
14348         (xstormy16_expand_call): Fix comment at start of function.
14349
14350 2010-09-01  Nick Clifton  <nickc@redhat.com>
14351
14352         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
14353         when pushing accumulator register.
14354         (rx_get_stack_layout): Always save call clobbered registers inside
14355         interrupt handlers.
14356         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
14357
14358 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
14359
14360         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
14361         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
14362
14363         * libgcc-std.ver (GCC_4.6.0): Define version.
14364
14365 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
14366
14367         * tree-nested.c (convert_all_function_calls): Iterate until after the
14368         sum of static chains in the nest doesn't change.
14369
14370 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
14371
14372         * config/m32c/m32c.c (classes_intersect): Remove.
14373         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
14374         reg_classes_intersect_p instead of classes_intersect.
14375         (class_can_hold_mode): Change arguments type from enum reg_class to
14376         reg_class_t.  Use reg_class_contents instead of class_contents.
14377         (m32c_register_move_cost): Make static. Change arguments type from
14378         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
14379         classes_intersect. Use reg_class_contents instead of class_contents.
14380         (m32c_memory_move_cost): Make static. Change arguments type from
14381         enum reg_class to reg_class_t.
14382         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14383         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14384         * config/m32c/m32c-protos.h (m32c_register_move_cost,
14385         m32c_memory_move_cost): Remove.
14386
14387 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14388
14389         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
14390         (arm_function_arg): Delete.
14391         (arm_needs_doubleword_align): Take a const_tree.
14392         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14393         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
14394         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
14395         (arm_function_arg): Make static.  Take a const_tree and a bool.
14396         (arm_function_arg_advance): Likewise.
14397         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14398
14399 2010-08-31  Andi Kleen  <ak@linux.intel.com>
14400
14401         * common.opt (fwhopr=): Update for -fwhopr=jobserver
14402         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
14403         * lto-wrapper.c (run_gcc): Add jobserver mode.
14404         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
14405         argument.
14406
14407 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
14408
14409         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
14410         (popsi1): Ditto.
14411         (*popdi1_epilogue): Ditto.
14412         (*popsi1_epilogue): Ditto.
14413         (popsi, popdi peephole2 patterns): Update peepholes for changed
14414         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
14415
14416         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
14417         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
14418
14419         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
14420         (override_options): Do not initialize removed ix86_gen_pop1.
14421         (gen_pop): New static function.
14422         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
14423         (release_scratch_register_on_entry): Ditto.
14424         (ix86_restore_reg_using_pop): Ditto.
14425         (ix86_expand_epilogue): Ditto.
14426
14427 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
14428
14429         PR middle-end/45461
14430         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
14431
14432 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14433
14434         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
14435         semicolons.
14436
14437 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14438
14439         * doc/extend.texi: Fix documentation of the return value of
14440         __builtin_choose_expr.
14441
14442 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14443
14444         * config/v850/v850-protos.h (function_arg): Delete.
14445         * config/v850/v850.h (FUNCTION_ARG): Delete.
14446         (FUNCTION_ARG_ADVANCE): Move code to...
14447         * config/v850/v850.c (v850_function_arg_advance): ...here.
14448         (v850_function_arg): Make static.  Take a const_tree and a bool.
14449         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14450
14451 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14452
14453         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
14454         these...
14455         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
14456         ...and these...
14457         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
14458         ..to here..
14459         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
14460         ...and here.
14461         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14462
14463 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14464
14465         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
14466         Delete.
14467         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14468         * config/rx/rx.c (rx_function_arg_size): Make static.
14469         (rx_function_arg): Likewise.
14470         (rx_function_arg_advance): New function.
14471         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14472
14473 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
14474
14475         * config/arm/arm.c (arm_override_options): Remove superfluous test.
14476         Fix indentation.
14477
14478 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
14479
14480         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
14481         (dwarf2out_decl) <CONST_DECL>: Likewise.
14482
14483 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
14484
14485         Stack usage support
14486         * common.opt (-fstack-usage): New option.
14487         * doc/invoke.texi (Debugging options): Document it.
14488         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
14489         allocate_dynamic_stack_space.
14490         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
14491         and propagate it to allocate_dynamic_stack_space.
14492         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
14493         * calls.c (initialize_argument_information): Pass TRUE as 4th
14494         argument to allocate_dynamic_stack_space.
14495         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
14496         to 1 when pushing a variable-sized argument onto the stack.  Pass
14497         TRUE as 4th argument to allocate_dynamic_stack_space.
14498         Update current_function_pushed_stack_size.
14499         (emit_library_call_value_1): Likewise.
14500         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
14501         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
14502         attempt to find an upper bound.  Remove redundant code for the
14503         SETJMP_VIA_SAVE_AREA case.
14504         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
14505         * function.h (struct stack_usage): New structure.
14506         (current_function_static_stack_size): New macro.
14507         (current_function_dynamic_stack_size): Likewise.
14508         (current_function_pushed_stack_size): Likewise.
14509         (current_function_dynamic_alloc_count): Likewise.
14510         (current_function_has_unbounded_dynamic_stack_size): Likewise.
14511         (current_function_allocates_dynamic_stack_space): Likewise.
14512         (struct function): Add new field 'su'.
14513         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
14514         add the value of the dynamic offset to the dynamic stack usage.
14515         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
14516         for variable-sized objects.
14517         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
14518         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
14519         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
14520         BUILT_IN_ALLOCA for variable-sized objects.
14521         * output.h (output_stack_usage): Declare.
14522         * toplev.c (stack_usage_file): New file pointer.
14523         (output_stack_usage): New function.
14524         (open_auxiliary_file): Likewise.
14525         (lang_dependent_init): Open file if flag_stack_usage is set.
14526         (finalize): Close file if stack_usage_file is not null.
14527         * tree.h (ALLOCA_FOR_VAR_P): New macro.
14528         * config/alpha/alpha.c (compute_frame_size): New function.
14529         (alpha_expand_prologue): Use it.
14530         (alpha_start_function): Likewise.
14531         (alpha_expand_epilogue): Likewise.  Set stack usage info.
14532         * config/i386/i386.c (ix86_expand_prologue): Likewise.
14533         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
14534         * config/mips/mips.c (mips_expand_prologue): Likewise.
14535         * config/pa/pa.c (hppa_expand_prologue): Likewise.
14536         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
14537         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
14538
14539 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
14540
14541         PR tree-optimization/45427
14542         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
14543         Handle the case that the exit is never taken correctly.
14544         (number_of_iterations_ne): Pass exit_must_be_taken to
14545         number_of_iterations_ne_max.
14546
14547 2010-08-30  Catherine Moore  <clm@codesourcery.com>
14548
14549         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
14550         Infer -mdspr2 for the the 74K.
14551
14552 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
14553
14554         PR debug/45419
14555         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
14556
14557         PR middle-end/45423
14558         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
14559         and TRUTH_{AND,OR,XOR}_EXPR.
14560         * c-parser.c (c_parser_omp_atomic): Handle boolean
14561         {PRE,POST}_{INC,DEC}REMENT.
14562
14563 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
14564
14565         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
14566         (function_arg): Delete.
14567         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14568         (FUNCTION_INCOMING_ARG): Delete.
14569         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
14570         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
14571         and a bool.
14572         (function_arg): Rename to...
14573         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
14574         a bool.
14575         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
14576         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14577         (TARGET_FUNCTION_INCOMING_ARG): Define.
14578
14579 2010-08-30  Richard Guenther  <rguenther@suse.de>
14580
14581         PR tree-optimization/21602
14582         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
14583         using points-to information.
14584
14585 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
14586
14587         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
14588
14589 2010-08-30  Richard Guenther  <rguenther@suse.de>
14590
14591         PR tree-optimization/45449
14592         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
14593         variables.
14594
14595 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
14596
14597         * opts.h (CL_ERR_NEGATIVE): Define.
14598         * opts.c (unknown_option_callback): Don't postpone warnings for
14599         options marked with CL_ERR_NEGATIVE.
14600         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
14601         for negative versions of CL_REJECT_NEGATIVE options.
14602
14603 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
14604
14605         * config/i386/i386.md (zero_extendsidi2_1): Rename from
14606         zero_extendsidi2_32.
14607         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
14608         using SWI12 mode iterator.
14609         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
14610         to define_insn_and_split pattern.
14611         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
14612         using SWI24 mode iterator.
14613         (*zero_extendqi<mode>2_and): Macroize insn from
14614         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
14615         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
14616         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
14617         SWI24 mode iterator.
14618         (*zero_extendqi<mode>2_movzbl): Ditto from
14619         *zero_extendqi{hi,si}2_movzbl.
14620         (extendsidi2_1): Rename from extendsidi2_32.
14621         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
14622         SWI12 mode iterator.
14623
14624 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
14625
14626         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
14627         general purpose registers.
14628         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
14629         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
14630         with general purpose registers and memory operands.  Add associated
14631         CCImode post-reload splitter.
14632         * config/ia64/div.md: Change BImode to CCImode throughout.
14633
14634 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
14635
14636         * config/ia64/ia64.md (cstorebi4): Fix thinko.
14637
14638 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
14639
14640         * config/picochip/picochip.c (reorder_var_tracking_notes): This
14641         function was dropping debug insns which caused PR45299.
14642
14643 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
14644
14645         * config/i386/sse.md (extsuffix): New code attribute.
14646         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
14647         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
14648         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
14649         and sse4_1_zero_extendv4qiv4si2.
14650         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
14651         and sse4_1_zero_extendv2qiv2di2.
14652         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
14653         and sse4_1_zero_extendv4hiv4si2.
14654         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
14655         and sse4_1_zero_extendv2hiv2di2.
14656         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
14657         and sse4_1_zero_extendv2siv2di2
14658
14659         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
14660         using any_extend code iterator.
14661         (*avx_<s>mulv8hi3_highpart): Macroize insn from
14662         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
14663         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
14664
14665         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
14666         gen_sse4_1_sign_extend* functions.
14667         (struct builtin_description bdesc_args): Ditto.
14668
14669 2010-08-27  Xinliang David Li  <davidxl@google.com>
14670
14671         PR/45422
14672         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
14673         (iv_ca_set_no_cp): Update used inv expr count.
14674         (iv_ca_set_cp): Ditto.
14675         (iv_ca_new): Initialize new member.
14676         (iv_ca_free): Free memory.
14677
14678 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14679
14680         * config/sh/sh-protos.h (sh_function_arg): Delete.
14681         (sh_function_arg_advance): Delete.
14682         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14683         (PASS_IN_REG_P): Eliminate cast.
14684         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
14685         const_tree and a bool.
14686         (sh_function_arg): Likewise.
14687         (sh_output_mi_thunk): Call sh_function_arg_advance) and
14688         sh_function_arg.
14689         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14690
14691 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
14692             Kaz Kojima  <kkojima@gcc.gnu.org>
14693
14694         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
14695         when possible.
14696         (sh_expand_epilogue): Likewise.
14697         * config/sh/sh.md (movml_push_banked): New insn.
14698         (movml_pop_banked): Likewise.
14699
14700 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
14701
14702         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
14703         gen_regexp_oneof, gen_regexp_sequence): Use the string found
14704         in vector element 0 rather than the original string when there's
14705         only one element.
14706         (gen_regexp): Remove extra semicolon.
14707
14708         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
14709         thumb2_movsf_vfp): Set attribute "insn".
14710         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
14711         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
14712         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
14713         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
14714         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
14715         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
14716         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
14717         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
14718         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
14719         if_not_arith, if_arith_not, cond_move_not): Likewise.
14720
14721 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14722
14723         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
14724         New declaration.
14725         (rs6000_allocate_stack_temp): Ditto.
14726         (rs6000_expand_convert_si_to_sfdf): Ditto.
14727
14728         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
14729         line.  Update the options set if power6 or power7 server/embedded
14730         type options are used.  If we give a warning for no vsx under
14731         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
14732         (rs6000_allocate_stack_temp): New function to allocate a stack
14733         tempoary and adjust the address so it meets either REG+OFFSET or
14734         REG+REG addressing requirements.
14735         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
14736         that they can be used with the LFIWAX/LFIWZX instrucitons.
14737         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
14738         converting signed/unsigned SImode to either SFmode/DFmode.
14739
14740         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
14741         whether certain instructions can be generated.
14742         (TARGET_FCTIDZ): Ditto.
14743         (TARGET_STFIWX): Ditto.
14744         (TARGET_LFIWAX): Ditto.
14745         (TARGET_LFIWZX): Ditto.
14746         (TARGET_FCFIDS): Ditto.
14747         (TARGET_FCFIDU): Ditto.
14748         (TARGET_FCFIDUS): Ditto.
14749         (TARGET_FCTIDUZ): Ditto.
14750         (TARGET_FCTIWUZ): Ditto.
14751
14752         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
14753         (UNSPEC_FCTID): Ditto.
14754         (UNSPEC_LFIWAX): Ditto.
14755         (UNSPEC_LFIWZX): Ditto.
14756         (UNSPEC_FCTIWUZ): Ditto.
14757         (rreg): Use correct constraints.
14758         (SI_CONVERT_FP): New mode attribute for floating point conversion
14759         tests.
14760         (E500_CONVERT): Ditto.
14761         (lfiwax): New insns for converting from integer to floating point
14762         utilizing newer instructions.  Attempt to optimize conversions
14763         that come from memory so that we don't load the value into a GPR,
14764         spill it to the stack and reload it into a FPR.
14765         (floatsi<mode>2_lfiwax): Ditto.
14766         (floatsi<mode>2_lfiwax_mem): Ditto.
14767         (floatsi<mode>2_lfiwax_mem2): Ditto.
14768         (lfiwzx): Ditto.
14769         (floatunssi<mode>2_lfiwzx): Ditto.
14770         (floatunssi<mode>2_lfiwzx_mem): Ditto.
14771         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
14772         (floatdidf2_mem): Ditto.
14773         (floatunsdidf2_fcfidu): Ditto.
14774         (floatunsdidf2_mem): Ditto.
14775         (floatunsdisf2): Ditto.
14776         (floatunsdisf2_fcfidus): Ditto.
14777         (floatunsdisf2_mem): Ditto.
14778         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
14779         Use FCFID on 32-bit hosts that support it.
14780         (floatsidf2_internal): Ditto.
14781         (floatunssisf2): Ditto.
14782         (floatunssidf2): Ditto.
14783         (floatunssidf2_internal): Ditto.
14784         (floatsisf2): Ditto.
14785         (floatdidf2): Ditto.
14786         (floatdidf2_fpr): Ditto.
14787         (floatunsdidf2): Ditto.
14788         (floatdisf2): Ditto.
14789         (floatdisf2_fcfids): Ditto.
14790         (floatdisf2_internal1): Ditto.
14791         (fixuns_truncsfsi2): Delete, merge into common pattern for both
14792         SF/DF.  Add power7 support.
14793         (fix_truncsfsi2): Ditto.
14794         (fixuns_truncdfsi2): Ditto.
14795         (fixuns_truncdfdi2): Ditto.
14796         (fix_truncdfsi2): Ditto.
14797         (fix_truncdfsi2_internal): Ditto.
14798         (fix_truncdfsi2_internal_gfxopt): Ditto.
14799         (fix_truncdfsi2_mfpgpr): Ditto.
14800         (fctiwz): Ditto.
14801         (btruncdf2): Ditto.
14802         (btruncdf2_fpr): Ditto.
14803         (btructsf2): Ditto.
14804         (ceildf2): Ditto.
14805         (ceildf2_fpr): Ditto.
14806         (ceilsf2): Ditto.
14807         (floordf2): Ditto.
14808         (floordf2_fpr): Ditto.
14809         (floorsf2): Ditto.
14810         (rounddf2): Ditto.
14811         (rounddf2_fpr): Ditto.
14812         (roundsf2): Ditto.
14813         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
14814         (fix_trunc<mode>di2): Ditto.
14815         (fixuns_trunc<mode>si2): Ditto.
14816         (fixuns_trunc<mode>di2): Ditto.
14817         (fctiwz_<mode>): Ditto.
14818         (btrunc<mode>2): Ditto.
14819         (btrunc<mode>2_fpr): Ditto.
14820         (ceil<mode>2): Ditto.
14821         (ceil<mode>2_fpr): Ditto.
14822         (floor<mode>2): Ditto.
14823         (float<mode>2_fpr): Ditto.
14824         (round<mode>2): Ditto.
14825         (round<mode>2_fpr): Ditto.
14826         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
14827         (fixuns_trunc<mode>si2_stfiwx): Ditto.
14828         (fix_truncdfsi2_internal): Ditto.
14829         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
14830         converted value on stack, loaded into GPR, and then stored into
14831         the final destination.
14832         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
14833         FCTIDZ.
14834         (lrint<mode>di2): New insn, provide the lrint builtin functions.
14835         (ftruncdf2): Delete, unused.
14836         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
14837
14838         * config/rs6000/vsx.md (toplevel): Update copyright year.
14839         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
14840         (VSr3): Ditto.
14841
14842 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
14843             Jeremie Salvucci  <jeremie.salvucci@free.fr>
14844
14845         * gengtype.c (output_type_enum): Test the right union member.
14846
14847 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
14848
14849         PR target/41484
14850         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
14851         operands for operand 1.
14852         (sse4_1_extendv4qiv4si2): Ditto.
14853         (sse4_1_extendv2qiv2di2): Ditto.
14854         (sse4_1_extendv4hiv4si2): Ditto.
14855         (sse4_1_extendv2hiv2di2): Ditto.
14856         (sse4_1_extendv2siv2di2): Ditto.
14857         (sse4_1_zero_extendv8qiv8hi2): Ditto.
14858         (sse4_1_zero_extendv4qiv4si2): Ditto.
14859         (sse4_1_zero_extendv2qiv2di2): Ditto.
14860         (sse4_1_zero_extendv4hiv4si2): Ditto.
14861         (sse4_1_zero_extendv2hiv2di2): Ditto.
14862         (sse4_1_zero_extendv2siv2di2): Ditto.
14863         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
14864         (*sse4_1_extendv4qiv4si2): Ditto.
14865         (*sse4_1_extendv2qiv2di2): Ditto.
14866         (*sse4_1_extendv4hiv4si2): Ditto.
14867         (*sse4_1_extendv2hiv2di2): Ditto.
14868         (*sse4_1_extendv2siv2di2): Ditto.
14869         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14870         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14871         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14872         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14873         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14874         (*sse4_1_zero_extendv2siv2di2): Ditto.
14875
14876 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14877
14878         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14879         (mips_function_arg): Delete.
14880         (mips_function_arg_boundary): Take a const_tree.
14881         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14882         (mips_arg_info): Likewise.
14883         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14884         instead of FUNCTION_ARG_ADVANCE.
14885         (mips_function_arg_advance): Adjust prototype.  Make static.
14886         (mips_function_arg): Likewise.
14887         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14888         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14889
14890 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14891
14892         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14893         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14894         (function_arg): Delete.
14895         (function_arg_boundary): Take a const_tree.
14896         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14897         (rs6000_spe_function_arg): Likewise.
14898         (rs6000_parm_start): Likewise.
14899         (rs6000_arg_size): Likewise.
14900         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14901         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14902         (rs6000_mixed_function_arg): Likewise.
14903         (function_arg): Rename to...
14904         (rs6000_function_arg): ...this.
14905         (function_arg_advance): Rename to...
14906         (rs6000_function_arg_advance_1): ...this
14907         (rs6000_function_arg_advance): New function.  Call it.
14908         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
14909         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
14910         (rs6000_function_value): Likewise.
14911         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14912
14913 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14914
14915         * config/arm/arm.md (enabled): Test the value of arch_enabled
14916         rather than just using it.
14917
14918 2010-08-27  Olivier Hainque  <hainque@adacore.com>
14919             Eric Botcazou  <ebotcazou@adacore.com>
14920
14921         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
14922         cover all the possible offsets from this base.
14923         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
14924
14925 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
14926
14927         PR tree-optimization/44485
14928         * calls.c (flags_from_decl_or_type): For const or pure
14929         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
14930         together with ECF_CONST resp. ECF_PURE.
14931         * builtins.c (expand_builtin): Use flags_from_decl_or_type
14932         instead of querying flags directly.
14933         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
14934         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
14935
14936 2010-08-26  Richard Guenther  <rguenther@suse.de>
14937
14938         PR tree-optimization/45255
14939         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
14940         and externals are also invariant.
14941
14942 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14943
14944         PR rtl-optimization/44858
14945         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
14946         newi2pat, make sure they don't affect newpat.
14947
14948         PR rtl-optimization/45400
14949         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
14950         SUBREG_REG if both modes are of MODE_INT class.
14951
14952 2010-08-25  Julian Brown  <julian@codesourcery.com>
14953
14954         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
14955         * config/arm/arm.md (generic_sched): No for Cortex-A5.
14956         (generic_vfp): Likewise.
14957         (cortex-a5.md): Include.
14958         * config/arm/cortex-a5.md: New.
14959
14960 2010-08-25  Richard Guenther  <rguenther@suse.de>
14961
14962         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
14963         * gimple.c (gimple_get_alias_set): Remove special handling
14964         for pointers.
14965
14966 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
14967
14968         PR middle-end/45355
14969         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
14970         dead_or_set_p when computing i0_feeds_i2_n.
14971
14972         * combine.c (find_split_point): Undo canonicalization of multiply-add
14973         to (minus x (mult)) when it seems likely that this will increase the
14974         chances of a split.
14975
14976 2010-08-25  Richard Guenther  <rguenther@suse.de>
14977
14978         PR lto/44562
14979         * lto-streamer.c (lto_record_common_node): Do not mess with
14980         TYPE_CANONICAL when not in lto.
14981         * gimple.c (gimple_register_type): Likewise.
14982
14983 2010-08-25  Richard Guenther  <rguenther@suse.de>
14984
14985         PR tree-optimization/45316
14986         * tree-ssa-pre.c (eliminate): Properly clean EH info.
14987
14988 2010-08-25  Richard Guenther  <rguenther@suse.de>
14989
14990         PR tree-optimization/45393
14991         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
14992         and clean EH info.  Avoid SSA update.
14993         (execute_cse_sincos): Cleanup the CFG if it has changed.
14994
14995 2010-08-25  Richard Guenther  <rguenther@suse.de>
14996
14997         PR middle-end/45379
14998         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
14999         TARGET_MEM_REF in alignment computation.
15000
15001 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
15002
15003         PR tree-optimization/45059
15004         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
15005         type conversions from newop{1,2}.  Assert t is a comparison and
15006         newop{1,2} after the stripping are gimple vals.
15007
15008 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
15009
15010         * config/arm/iterators.md (VU, SE, V_widen_l): New.
15011         (V_unpack, US): New.
15012         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
15013         (vec_unpack<US>_lo_<mode>): Likewise.
15014         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
15015         (neon_vec_unpack<US>_lo_<mode>): Likewise.
15016         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
15017         (vec_widen_<US>mult_hi_<mode>): Likewise.
15018         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
15019         (neon_vec_<US>mult_hi_<mode>"): Likewise.
15020         (neon_unpack<US>_<mode>): Widening move intermediate step for
15021         vectorizing without -mvectorize-with-neon-quad.
15022         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
15023         for vectorizing without -mvectorize-with-neon-quad.
15024         * config/arm/predicates.md (vect_par_constant_high): Check for
15025         high-half lanes of a vector.
15026         (vect_par_constant_low): Check for low-half lanes of a vector.
15027
15028 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
15029
15030         * tree-if-conv.c (struct ifc_dr): New.
15031         (IFC_DR): New.
15032         (DR_WRITTEN_AT_LEAST_ONCE): New.
15033         (DR_RW_UNCONDITIONALLY): New.
15034         (memref_read_or_written_unconditionally): Use the cached values
15035         when possible.
15036         (write_memref_written_at_least_once): Same.
15037         (if_convertible_loop_p): Initialize and free DR->aux fields.
15038
15039 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
15040
15041         * gimple.c (gimple_could_trap_p_1): Not static anymore.
15042         Pass an extra bool parameter include_mem.
15043         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
15044         (gimple_assign_rhs_could_trap_p): Same.
15045         * gimple.h (gimple_could_trap_p_1): Declared.
15046         * tree-data-ref.h (same_data_refs_base_objects): New.
15047         (same_data_refs): New.
15048         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
15049         (write_memrefs_written_at_least_once): New.
15050         (ifcvt_memrefs_wont_trap): New.
15051         (operations_could_trap): New.
15052         (ifcvt_could_trap_p): New.
15053         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
15054         Gets a vector of data refs.
15055         (if_convertible_stmt_p): Same.
15056         (if_convertible_loop_p_1): New.
15057         (if_convertible_loop_p): Call if_convertible_loop_p_1.
15058
15059 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
15060
15061         * common.opt (ftree-loop-if-convert-stores): New flag.
15062         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
15063         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
15064         the created statement before GSI.
15065         (if_convertible_phi_p): Allow virtual phi nodes when
15066         flag_loop_if_convert_stores is set.
15067         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
15068         Do not handle types that do not match is_gimple_reg_type.
15069         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
15070         when flag_loop_if_convert_stores is set, as LHS can contain
15071         memory refs.
15072         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
15073         to if_convertible_gimple_assign_stmt_p.
15074         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
15075         (replace_phi_with_cond_gimple_assign_stmt): Renamed
15076         predicate_scalar_phi.  Do not handle virtual phi nodes.
15077         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
15078         Call predicate_scalar_phi.
15079         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
15080         just after the labels for flag_loop_if_convert_stores, otherwise
15081         insert the predicate in the end of the BB.
15082         (predicate_mem_writes): New.
15083         (combine_blocks): Call predicate_all_scalar_phis.  When
15084         flag_loop_if_convert_stores is set, call predicate_mem_writes.
15085         (tree_if_conversion): Call mark_sym_for_renaming when
15086         flag_loop_if_convert_stores is set.
15087         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
15088         flag_loop_if_convert_stores is set.
15089
15090 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
15091
15092         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
15093         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
15094         (pa_function_value): Make static.
15095         (override_options): Rename to...
15096         (pa_option_override): ...this. Make static.
15097         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
15098         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
15099         TARGET_OPTION_OVERRIDE): Define.
15100         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
15101         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
15102         Remove.
15103         * config/pa/pa-protos.h (override_options): Remove.
15104
15105 2010-08-24  Richard Guenther  <rguenther@suse.de>
15106
15107         PR middle-end/45379
15108         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
15109         if addr->index is NULL or zero.
15110         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
15111         TARGET_MEM_REF more properly.
15112         (indirect_ref_may_alias_decl_p): Likewise.
15113         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
15114         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
15115
15116 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
15117
15118         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
15119         (m32c_override_options): Rename to...
15120         (m32c_option_override): ...this. Make static.
15121         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
15122         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
15123         Remove.
15124         * config/m32c/m32c-protos.h (m32c_override_options,
15125         m32c_function_value_regno_p): Remove.
15126
15127 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
15128
15129         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
15130         Fix a typo in a previous commit.
15131
15132 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
15133
15134         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
15135         Pre-initialize innerloop_iters to one.
15136
15137 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
15138
15139         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
15140         existing static function global.
15141
15142         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
15143         is changed to global.
15144
15145         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
15146         may_be_nonaddressable_p on base, and don't collect this reference
15147         if the address of the base could not be taken.
15148
15149 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
15150
15151         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
15152         enable the compiler to autovectorize mathmetical functions for
15153         power7 using the Mathematical Acceleration Subsystem library.
15154
15155         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
15156         handle which vector math library we have.
15157         (rs6000_override_options): Add -mveclibabi=mass support.
15158         (rs6000_builtin_vectorized_libmass): New function to handle auto
15159         vectorizing math functions that are in the MASS library.
15160         (rs6000_builtin_vectorized_function): Call it.
15161
15162         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
15163         -mveclibabi=mass.
15164
15165 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15166
15167         PR boehm-gc/34544
15168         * gthr-posix.h (__gthread_active_init): Delete.
15169         (__gthread_active_p): Do activity check here.
15170         Don't include errno.h on hppa-hpux.  Update comment.
15171         * gthr-posix95.h (__gthread_active_init): Delete.
15172         (__gthread_active_p): Do activity check here.
15173         Don't include errno.h on hppa-hpux.  Update comment.
15174         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
15175         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
15176         add -lpthread when -mt or -pthread is specified.
15177         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
15178         (LINK_GCC_C_SEQUENCE_SPEC): Define.
15179         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
15180         (stublib.c, pthread_default_stacksize_np-stub.o,
15181         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
15182         $(T)libgcc_stub.a): Add methods.
15183         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
15184         (stublib.c, pthread_default_stacksize_np-stub.o,
15185         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
15186         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
15187         pthread_mutex_unlock): New stubs.
15188
15189 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
15190
15191         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
15192         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
15193         options.
15194         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
15195         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
15196         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
15197         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
15198         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
15199         "-l".
15200         * cppspec.c: Include opts.h.
15201         (lang_specific_driver): Use cl_decoded_option structures.
15202         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
15203         * doc/tm.texi: Regenerate.
15204         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
15205         (driver_handle_option): Allow driver options needing no special
15206         processing.
15207         (process_command): Decode options before call to
15208         lang_specific_driver.  Pass decoded options to
15209         lang_specific_driver.
15210         * gcc.h (lang_specific_driver): Update prototype.
15211         * gccspec.c: Include opts.h.
15212         (lang_specific_driver): Use cl_decoded_option structures.
15213         * opts-common.c (option_ok_for_language, generate_option,
15214         generate_option_input_file): New.
15215         (decode_cmdline_option): Use option_ok_for_language.
15216         (decode_cmdline_options_to_array): Use generate_option_input_file.
15217         (handle_generated_option): Use generate_option.
15218         * opts.h (generate_option, generate_option_input_file): Declare.
15219
15220 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
15221
15222         * config/mips/mips.c (mips_override_options): Rename to...
15223         (mips_option_override): ...this. Make static.
15224         (TARGET_OPTION_OVERRIDE): Define.
15225         (mips_in_small_data_p): Update comment.
15226         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
15227         (FIXED_REGISTERS): Update comment.
15228         * config/mips/mips-protos.h (mips_override_options): Remove.
15229
15230 2010-08-21  Olivier Hainque  <hainque@adacore.com>
15231
15232         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
15233
15234 2010-08-21  Olivier Hainque  <hainque@adacore.com>
15235
15236         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
15237         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
15238
15239 2010-08-20  Jan Hubicka  <jh@suse.cz>
15240
15241         * tree-pass.h (pass_ipa_cdtor_merge): New function.
15242         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
15243         heap allocated.
15244         (record_cdtor_fn): Move to ipa.c; do not test for
15245         have_ctors_dtors.
15246         (build_cdtor): Move to ipa.c; add code avoiding construction
15247         when target have ctors/dtors and there is only one ctor/dtor at given
15248         priority.
15249         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
15250         sort; reverse order of constructors.
15251         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
15252         (cgraph_finalize_function): Do not call record_cdtor_fn.
15253         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
15254         (cgraph_build_static_cdtor): Move to ipa.c.
15255         * ipa.c: Include target.h and tree-iterator.h.
15256         (cgraph_build_static_cdtor, static_ctors, static_dtors,
15257         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
15258         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
15259         pass_ipa_cdtor_merge): New.
15260         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
15261         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
15262         bounds access.
15263
15264 2010-08-20  Jan Hubicka  <jh@suse.cz>
15265
15266         PR c++/45307
15267         PR c++/17736
15268         * cgraph.h (cgraph_only_called_directly_p,
15269         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
15270         static cdtors.
15271         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
15272         are not needed.
15273         (cgraph_finalize_function): Static cdtors are reachable.
15274         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
15275
15276 2010-08-20  Jan Hubicka  <jh@suse.cz>
15277
15278         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
15279         flag_wpa.
15280         * lto-streamer-out.c (lto_output): Likewise.
15281         * passes.c (ipa_write_optimization_summaries): Initialize statement
15282         uids.
15283
15284 2010-08-20  Olivier Hainque  <hainque@adacore.com>
15285
15286         * tree.h (alias_diag_flags): New enum.
15287         (alias_pair): Add an 'emitted_diags' field.
15288         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
15289         (assemble_alias): Initialize emitted_diags of new pairs.
15290
15291 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
15292
15293         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
15294         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15295         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15296         (STACK_CHECK_PROTECT): Define.
15297         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
15298         (output_probe_stack_range): Likewise.
15299         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
15300         builtin stack checking is enabled.
15301         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
15302         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
15303         (probe_stack_range): New insn.
15304
15305 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
15306
15307         PR target/45336
15308         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
15309         short first.
15310
15311         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
15312         char first.
15313
15314 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15315
15316         PR target/45336
15317         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
15318         to cover zero extension into 64-bit register.
15319         (*sse2_pextrw): Likewise.
15320         (*sse4_1_pextrd_zext): New insn.
15321
15322 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
15323
15324         revert r163410, partially revert r163267.
15325         * config/rs6000/darwin.h (LIB_SPEC): Remove.
15326         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
15327         Darwin versions.
15328
15329 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15330
15331         PR middle-end/44974
15332         * builtins.c (expand_builtin): Don't optimize away
15333         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
15334
15335 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
15336
15337         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
15338         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
15339         alternative 1 of operand 2.
15340
15341 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15342             Paolo Bonzini  <bonzini@gnu.org>
15343
15344         * simplify-rtx.c (simplify_unary_operation_1): Optimize
15345         (sign_extend (zero_extend (...)) and
15346         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
15347
15348 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15349
15350         PR rtl-optimization/45353
15351         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
15352         after bb_note is a BARRIER.
15353
15354 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
15355
15356         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
15357         linking libgcc.a.
15358
15359 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15360             Michael Matz  <matz@suse.de>
15361
15362         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
15363
15364 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
15365
15366         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
15367         (ggc_mark_roots): ...here.
15368
15369 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
15370
15371         * vec.h (FOR_EACH_VEC_ELT): Define.
15372         * c-decl.c: Use it.
15373         * cfgloop.c: Likewise.
15374         * cfgloopmanip.c: Likewise.
15375         * cgraph.c: Likewise.
15376         * cgraphunit.c: Likewise.
15377         * combine.c: Likewise.
15378         * config/bfin/bfin.c: Likewise.
15379         * config/mips/mips.c: Likewise.
15380         * config/rs6000/rs6000.c: Likewise.
15381         * dbxout.c: Likewise.
15382         * df-scan.c: Likewise.
15383         * dominance.c: Likewise.
15384         * dse.c: Likewise.
15385         * dwarf2out.c: Likewise.
15386         * except.c: Likewise.
15387         * expr.c: Likewise.
15388         * function.c: Likewise.
15389         * gcse.c: Likewise.
15390         * genattr.c: Likewise.
15391         * ggc-common.c: Likewise.
15392         * gimplify.c: Likewise.
15393         * graphite-blocking.c: Likewise.
15394         * graphite-clast-to-gimple.c: Likewise.
15395         * graphite-dependences.c: Likewise.
15396         * graphite-interchange.c: Likewise.
15397         * graphite-poly.c: Likewise.
15398         * graphite-scop-detection.c: Likewise.
15399         * graphite-sese-to-poly.c: Likewise.
15400         * graphite.c: Likewise.
15401         * haifa-sched.c: Likewise.
15402         * ifcvt.c: Likewise.
15403         * implicit-zee.c: Likewise.
15404         * ipa-prop.c: Likewise.
15405         * ipa-struct-reorg.c: Likewise.
15406         * ipa.c: Likewise.
15407         * ira-build.c: Likewise.
15408         * ira-color.c: Likewise.
15409         * ira-emit.c: Likewise.
15410         * lambda-code.c: Likewise.
15411         * loop-invariant.c: Likewise.
15412         * loop-unroll.c: Likewise.
15413         * lower-subreg.c: Likewise.
15414         * lto-cgraph.c: Likewise.
15415         * lto-opts.c: Likewise.
15416         * lto-streamer-in.c: Likewise.
15417         * lto-streamer-out.c: Likewise.
15418         * lto-streamer.c: Likewise.
15419         * lto-symtab.c: Likewise.
15420         * matrix-reorg.c: Likewise.
15421         * opts.c: Likewise.
15422         * predict.c: Likewise.
15423         * print-tree.c: Likewise.
15424         * sdbout.c: Likewise.
15425         * sel-sched-dump.c: Likewise.
15426         * sel-sched-ir.c: Likewise.
15427         * sel-sched.c: Likewise.
15428         * sese.c: Likewise.
15429         * stor-layout.c: Likewise.
15430         * tree-cfg.c: Likewise.
15431         * tree-cfgcleanup.c: Likewise.
15432         * tree-chrec.c: Likewise.
15433         * tree-data-ref.c: Likewise.
15434         * tree-emutls.c: Likewise.
15435         * tree-inline.c: Likewise.
15436         * tree-into-ssa.c: Likewise.
15437         * tree-loop-distribution.c: Likewise.
15438         * tree-loop-linear.c: Likewise.
15439         * tree-mudflap.c: Likewise.
15440         * tree-outof-ssa.c: Likewise.
15441         * tree-parloops.c: Likewise.
15442         * tree-predcom.c: Likewise.
15443         * tree-pretty-print.c: Likewise.
15444         * tree-scalar-evolution.c: Likewise.
15445         * tree-ssa-live.c: Likewise.
15446         * tree-ssa-loop-im.c: Likewise.
15447         * tree-ssa-loop-ivcanon.c: Likewise.
15448         * tree-ssa-loop-ivopts.c: Likewise.
15449         * tree-ssa-loop-manip.c: Likewise.
15450         * tree-ssa-loop-niter.c: Likewise.
15451         * tree-ssa-loop-prefetch.c: Likewise.
15452         * tree-ssa-phiprop.c: Likewise.
15453         * tree-ssa-pre.c: Likewise.
15454         * tree-ssa-reassoc.c: Likewise.
15455         * tree-ssa-sccvn.c: Likewise.
15456         * tree-ssa-structalias.c: Likewise.
15457         * tree-ssa.c: Likewise.
15458         * tree-vect-data-refs.c: Likewise.
15459         * tree-vect-loop-manip.c: Likewise.
15460         * tree-vect-loop.c: Likewise.
15461         * tree-vect-patterns.c: Likewise.
15462         * tree-vect-slp.c: Likewise.
15463         * tree-vect-stmts.c: Likewise.
15464         * tree-vrp.c: Likewise.
15465         * tree.c: Likewise.
15466         * value-prof.c: Likewise.
15467         * var-tracking.c: Likewise.
15468         * varasm.c: Likewise.
15469         * vmsdbgout.c: Likewise.
15470
15471 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
15472             Richard Guenther  <richard.guenther@gmail.com>
15473
15474         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
15475         copy the src value and return a copy.
15476         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
15477         (C++ Volatiles): Adjust to describe C++ semantics only.
15478
15479 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
15480
15481         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
15482         be zero or nonzero.
15483         * doc/tm.texi: Regenerate.
15484         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
15485         * df-scan.c (df_get_exit_block_use_set), reginfo.c
15486         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
15487         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
15488         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
15489         to 1.
15490
15491 2010-08-20  Olivier Hainque  <hainque@adacore.com>
15492
15493         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
15494         an extra nop past a sibling call at the very end.
15495
15496 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
15497
15498         PR bootstrap/45350
15499         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
15500         a comment.
15501
15502 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
15503
15504         * target.def (function_arg, function_incoming_arg): Remove const
15505         qualifier on CUMULATIVE_ARGS parameter.
15506         * targhooks.h (default_function_arg, default_function_incoming_arg):
15507         Likewise.
15508         * targhooks.c (default_function_arg, default_function_incoming_arg):
15509         Likewise.
15510         * config/i386/i386.c (ix86_function_arg): Likewise.
15511
15512 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
15513
15514         PR target/45336
15515         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
15516         SIGN_EXTENDs or ZERO_EXTENDs.
15517
15518 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
15519
15520         PR target/42172
15521         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
15522         Take its cost into account if nonnull.
15523         (insn_a_feeds_b): New static function.
15524         (combine_instructions): Look for four-insn combinations.
15525         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
15526         them into account when computing all_adjacent and looking for other
15527         uses.
15528         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
15529         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
15530         (try_combine): New arg I0.  Handle four-insn combinations.
15531         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
15532         like ELIM_I1.
15533
15534 2010-08-19  Jason Merrill  <jason@redhat.com>
15535
15536         PR c++/45307
15537         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
15538         if ctor is empty.
15539         (gimplify_modify_expr_rhs): Adjust.
15540
15541 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
15542
15543         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
15544         bitmap_bit_p.
15545         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
15546         * dominance.c (iterate_fix_dominators): Likewise.
15547         * dse.c (set_usage_bits): Likewise.
15548         (set_position_unneeded, record_store): Likewise.
15549         * gimple-fold.c (get_maxval_strlen): Likewise.
15550         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
15551         * ipa-inline.c (update_caller_keys): Likewise.
15552         * ipa-split.c (verify_non_ssa_vars): Likewise.
15553         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
15554         (close_type_exposed_parameter, close_type_full_escape): Likewise.
15555         (close_addressof_down): Likewise.
15556         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
15557         (setup_allocno_left_conflicts_size): Likewise.
15558         (ira_reassign_conflict_allocnos): Likewise.
15559         (ira_reassign_pseudos): Likewise.
15560         * ira-emit.c (change_loop): Likewise.
15561         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
15562         * lto-streamer-out.c (write_symbol): Likewise.
15563         * predict.c (expr_expected_value_1): Likewise.
15564         * regstat.c (regstat_bb_compute_ri): Likewise.
15565         * sel-sched.c (create_block_for_bookkeeping): Likewise.
15566         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
15567         * stmt.c (expand_case): Likewise.
15568         * tree-eh.c (emit_eh_dispatch): Likewise.
15569         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
15570         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
15571         Likewise.
15572         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
15573         (rdg_build_components): Likewise.
15574         * tree-object-size.c (collect_object_sizes_for): Likewise.
15575         * tree-sra.c (convert_callers): Likewise.
15576         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
15577         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
15578         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
15579
15580 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
15581
15582         * config/i386/i386.md (*lea_1): Use P mode iterator.
15583         (lea add splitter): Also handle DImode operands.
15584         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
15585         predicate.  Do not use ix86_lea_for_add_ok.
15586         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
15587         (lea ashift splitter): Also handle DImode operands.
15588         (DImode lea ashift splitter): Remove splitter.
15589
15590 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
15591
15592         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
15593         ix86_binary_operator_ok.
15594
15595 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
15596
15597         PR rtl-optimization/44691
15598         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
15599         is not a register.
15600
15601 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
15602
15603         PR target/45070
15604         * config/arm/arm.c (arm_output_epilogue): Ensure that return
15605          value of size 1-3 is handled correctly.
15606
15607 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
15608
15609         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
15610         type for the conditional has wide enough range.
15611
15612 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
15613
15614         PR target/45327
15615         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
15616         ix86_binary_operator_ok.
15617
15618 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
15619
15620         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
15621         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
15622         code to output insn mnemonic.  Fix comment.
15623         (*addsi_1_zext): Add r-r-0 alternative 1.
15624         <TYPE_LEA>: Split insn to lea.
15625         <default>: Handle alternative 1.
15626         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
15627         multi-level if_then_else RTX to set "type" attribute.
15628         <default>: Handle alternative 2.
15629         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
15630         Use cond RTX instead of multi-level if_then_else RTX to set
15631         "type" attribute.
15632         <default>: Handle alternatives 2 and 4.
15633         (lea splitters): Update calls to ix86_lea_for_add_ok.
15634
15635         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
15636         argument.
15637         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
15638
15639 2010-08-18  Richard Guenther  <rguenther@suse.de>
15640
15641         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
15642         use operand helpers.
15643
15644 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
15645
15646         PR middle-end/45292
15647         * optabs.c (expand_bool_compare_and_swap): Expand pending
15648         pops before trying the optab.
15649
15650 2010-08-18  Yao Qi  <yao@codesourcery.com>
15651
15652         PR target/45094
15653         * config/arm/arm.c (output_move_double): Fix typo generating
15654         instructions ('ldr'->'str').
15655
15656 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
15657
15658         PR rtl-optimization/42575
15659         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
15660         live ranges.
15661
15662 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15663
15664         * config/arm/arm-protos.h (arm_expand_sync): New.
15665         (arm_output_memory_barrier, arm_output_sync_insn): New.
15666         (arm_sync_loop_insns): New.
15667         * config/arm/arm.c (FL_ARCH7): New.
15668         (FL_FOR_ARCH7): Include FL_ARCH7.
15669         (arm_arch7): New.
15670         (arm_print_operand): Support %C markup.
15671         (arm_legitimize_sync_memory): New.
15672         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
15673         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
15674         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
15675         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
15676         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
15677         (arm_process_output_sync_insn, arm_output_sync_insn): New.
15678         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
15679         * config/arm/arm.h (struct arm_sync_generator): New.
15680         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
15681         (TARGET_HAVE_MEMORY_BARRIER): New.
15682         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
15683         * config/arm/arm.md: Include sync.md.
15684         (UNSPEC_MEMORY_BARRIER): New.
15685         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
15686         (VUNSPEC_SYNC_OP):New.
15687         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
15688         (sync_result, sync_memory, sync_required_value): New attributes.
15689         (sync_new_value, sync_t1, sync_t2): Likewise.
15690         (sync_release_barrier, sync_op): Likewise.
15691         (length): Add logic to length attribute defintion to call
15692         arm_sync_loop_insns when appropriate.
15693         * config/arm/sync.md: New file.
15694
15695 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15696
15697         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
15698         ENABLE_TREE_CHECKING.
15699         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
15700         and GCC >= 4.3.
15701
15702 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
15703
15704         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
15705         or optimizing for size, always avoid lea if possible.
15706
15707         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
15708
15709 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
15710
15711         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
15712         Dunmmy function with NULL return unless the target is
15713         OSX >= 10.6 (Darwin10).
15714
15715 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
15716
15717         * gcc.c (spec_function): Add remove-outfile.
15718         (remove_outfile_spec_function): New function.
15719         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
15720         * invoke.texi (replace-outfile): Document.
15721
15722 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
15723
15724         PR target/45296
15725         * reginfo.c (globalize_reg): Reject stack registers.
15726
15727 2010-08-17  Richard Guenther  <rguenther@suse.de>
15728
15729         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
15730         list of conditional equivalences.
15731         (free_all_edge_infos): Adjust.
15732         (record_equivalences_from_incoming_edge): Likewise.
15733         (record_cond): Likewise.
15734         (build_and_record_new_cond): Likewise.
15735         (record_conditions): Likewise.
15736         (dom_opt_leave_block): Likewise.
15737
15738 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
15739
15740         * doc/invoke.texi (ms-extension): Add documentation.
15741
15742 2010-08-17  Richard Guenther  <rguenther@suse.de>
15743
15744         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
15745
15746 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
15747
15748         PR c/40563
15749         * c-decl.c (diagnose_uninitialized_cst_member): New function.
15750         (finish_decl): Use it to issue a -Wc++-compat warning about
15751         uninitialized const field in struct or union.
15752
15753         (finish_struct): Use strip_array_types.
15754
15755 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15756
15757         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
15758         functions.
15759         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
15760         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
15761         call block_nreverse here.
15762         (blocks_nreverse): Rename decl temporary to block.
15763
15764 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
15765
15766         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
15767         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
15768         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
15769         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
15770         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
15771         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
15772         thumb2_iorsi3): Delete.
15773         (orsi_notsi_si): No longer a named pattern.
15774         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
15775         * config/arm/predicates.md (shift_amount_operand): New.
15776         (mult_operator): New.
15777         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
15778         attr enabled): New.
15779         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
15780         arch matches t2.
15781         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
15782         (not_shiftsi_compare0): Likewise, renamed from
15783         arm_notsi_shiftsi_compare0.
15784         (not_shiftsi_compare0_scratch): Likweise, renamed from
15785         arm_notsi_shiftsi_compare0_scratch.
15786         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
15787         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
15788         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
15789         so that the register alternative is disabled when the shift_operator
15790         is MULT.  Use "M" as the constraint for constants.
15791         (arith_shiftsi splitter): Enable for TARGET_32BIT.
15792         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
15793         constraint for constants.
15794         (arith_shiftsi_compare0_scratch): Likewise.
15795         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
15796         Handle Thumb2 alternative.
15797
15798 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15799
15800         * doc/options.texi (NoDriverArg): Document.
15801         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
15802         -MDX and -MMDX.
15803         * opt-functions.awk (switch_flags): Handle NoDriverArg.
15804         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
15805         marking for CL_NO_DRIVER_ARG options when in the driver.
15806         * opts.h (CL_NO_DRIVER_ARG): Define.
15807         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15808         CL_COMMON): Update values.
15809
15810 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15811
15812         * common.opt: Add driver options.
15813         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
15814         * doc/options.texi (Driver, RejectDriver): Document.
15815         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
15816         print_prog_name, print_multi_directory, print_sysroot,
15817         print_multi_os_directory, print_multi_lib,
15818         print_sysroot_headers_suffix, report_times, combine_flag,
15819         use_pipes, wrapper_string): Remove.
15820         (save_switch, driver_unknown_option_callback,
15821         driver_wrong_lang_callback, driver_post_handling_callback,
15822         driver_handle_option): New.
15823         (spec_lang, last_language_n_infiles): Make file-scope static
15824         instead of local to process_command.
15825         (process_command): Use decode_cmdline_options_to_array and
15826         read_cmdline_option for option processing.  Compute have_c in
15827         prescan of decoded options.
15828         * opt-functions.awk (switch_flags): Handle Driver and
15829         RejectDriver.
15830         (var_type, var_type_struct): Handle Separate options as generating
15831         const char * variables.
15832         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
15833         CL_TARGET to be passed by caller if required.
15834         (decode_cmdline_options_to_array): Update comment.
15835         * opts.c (complain_wrong_lang): Handle options only valid for the
15836         driver.
15837         (decode_options): Update call to decode_cmdline_options_to_array.
15838         (print_filtered_help): Ignore driver-only options.
15839         (print_specific_help): Ignore CL_DRIVER.
15840         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
15841         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
15842         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
15843         Update values.
15844
15845 2010-08-16  Richard Guenther  <rguenther@suse.de>
15846
15847         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15848         TARGET_MEM_REF a bit.
15849         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
15850         (create_mem_ref_raw): Always create TMR_OFFSET, store the
15851         alias pointer type via it.
15852         (copy_mem_ref_info): Adjust.
15853         (maybe_fold_tmr): Likewise.
15854         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
15855         (reference_alias_ptr_type): Likewise.
15856         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
15857         adjust documentation of TMR_OFFSET operand.
15858         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
15859         use the alias pointer type.
15860         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
15861         initialize mem attrs but the TMR itself.
15862         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
15863         similar to MEM_REF.
15864         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
15865         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
15866         (unshare_and_remove_ssa_names): Likewise.
15867         (copy_ref_info): Adjust.
15868         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
15869         TARGET_MEM_REF case.
15870         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15871         at TMR_ORIGINAL.
15872         * tree.h (TMR_ORIGINAL): Remove.
15873         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15874         symbol return that.
15875         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15876         with a symbol.
15877         (get_addr_base_and_unit_offset): Likewise.
15878         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15879         TARGET_MEM_REFs.
15880         (indirect_ref_may_alias_decl_p): Likewise.
15881         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15882
15883 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15884
15885         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15886         with GCC version 4.6, the default setting (when not optimizing
15887         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15888         been changed to -fomit-frame-pointer.
15889
15890 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15891
15892         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15893         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15894
15895 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15896
15897         * doc/invoke.texi (Warning Options): Fix terminology and markup
15898         in the description of how unknown warning options are handled.
15899
15900 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15901
15902         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15903         in basic blocks.
15904         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15905         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15906         data references.
15907         (vect_bb_vectorization_profitable_p): New function.
15908         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
15909         check if it's worthwhile to vectorize the basic block.
15910
15911 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
15912
15913         * reload.h (register_move_cost, memory_move_secondary_cost,
15914         secondary_reload_class): Adjust prototype.
15915         * rtl.h (reg_class_subset_p): Adjust prototype.
15916         * reload.c (secondary_reload_class): Change arguments type from
15917         enum reg_class to reg_class_t. Change result type to reg_class_t.
15918         * reginfo.c (register_move_cost, reg_class_subset_p): Change
15919         arguments type from enum reg_class to reg_class_t.
15920         (memory_move_secondary_cost): Change arguments type from
15921         enum reg_class to reg_class_t. Change type of saved_flags to
15922         reg_class_t.
15923
15924         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15925         Remove macros.
15926         (mips_cost): Remove.
15927         (struct mips_rtx_cost_data): Moved to mips.c.
15928         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
15929         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
15930         (mips_cost): Make static.
15931         (mips_canonicalize_move_class): Change argument type to reg_class_t.
15932         Change result type to reg_class_t.
15933         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
15934         type from enum reg_class to reg_class_t.
15935         (mips_register_move_cost): Make static. Change arguments
15936         type from enum reg_class to reg_class_t.
15937         (mips_memory_move_cost): New function.
15938         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15939
15940 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
15941
15942         PR rtl-optimization/43358
15943         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
15944         of a single hard register, using simplify_subreg_regno to decide
15945         what that register should be.
15946
15947 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
15948
15949         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
15950         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
15951         (loongson_pmull<V_suffix>): Rename to...
15952         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
15953
15954 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
15955
15956         * configure.ac: Enable -fomit-frame-pointer on darwin
15957         which support dwarf2.
15958         * config/i386/i386.c (override_options): Same.
15959
15960 2010-08-13  Jie Zhang  <jie@codesourcery.com>
15961
15962         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
15963
15964 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
15965
15966         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
15967         -MMD.
15968
15969 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
15970
15971         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
15972         up dot_prod pattern searching if a stmt is outside the loop.
15973
15974 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
15975             Uros Bizjak  <ubizjak@gmail.com>
15976
15977         * config.gcc: Handle --enable-frame-pointer.
15978
15979         * configure.ac: Add --enable-frame-pointer.
15980         * configure: Regenerated.
15981
15982         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
15983         (override_options): If not configured with --enable-frame-pointer,
15984         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
15985         optimizing for size), -fasynchronous-unwind-tables and
15986         -maccumulate-outgoing-args by default.
15987
15988 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15989
15990         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
15991
15992         PR middle-end/45262
15993         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
15994         -a overflows.  Normalize the range.
15995
15996 2010-08-12  Richard Guenther  <rguenther@suse.de>
15997
15998         PR tree-optimization/45232
15999         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
16000         for types with undefined overflow.
16001         (reassociate_bb): Allow re-associating of bit and min/max
16002         operations for types with undefined overflow.
16003         * tree-ssa-forwprop.c (associate_plusminus): New function.
16004         (tree_ssa_forward_propagate_single_use_vars): Call it.
16005
16006 2010-08-12  Richard Guenther  <rguenther@suse.de>
16007
16008         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
16009         * tree-ssa-alias.c (get_ptr_info): Move ...
16010         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
16011         align and misalign fields conservatively.
16012         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
16013         derive alignment information.
16014         (evaluate_stmt): Derive alignment information from memory
16015         allocation functions.
16016         * tree.h (get_pointer_alignment): Make unsigned.
16017         * builtins.c (get_object_alignment): Use alignment information we
16018         have computed for pointers.
16019         (get_pointer_alignment): Likewise.  Make conservative, return
16020         and unsigned value.
16021         (expand_builtin_strlen): Adjust.
16022         (expand_builtin_memcmp): Likewise.
16023         (expand_builtin_strcmp): Likewise.
16024         (expand_builtin_strncmp): Likewise.
16025         (get_builtin_sync_mem): Use at least mode alignment.
16026         (fold_builtin_memset): Adjust.
16027         (fold_builtin_memory_op): Likewise.
16028         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
16029         information also dump pointer alignment knowledge.
16030         (dump_gimple_stmt): Likewise.
16031
16032 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
16033
16034         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
16035         (EMPTY_FIELD_BOUNDARY): Remove.
16036         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
16037
16038 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
16039
16040         PR debug/45259
16041         * caller-save.c (save_call_clobbered_regs): Only swap notes with
16042         DEBUG_INSNs if n_regs_saved.
16043
16044 2010-08-12  Wei Guozhi  <carrot@google.com>
16045
16046         PR target/44999
16047         * config/arm/arm.md (andsi3): Change to zero extension if possible.
16048         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
16049
16050 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
16051
16052         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
16053
16054         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
16055
16056 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16057
16058         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
16059         the case removed in the previous patch, when the only phi argument
16060         is defined in the same loop as the phi node itself.  Handle it
16061         separately from the invariant case by both propagating it outside
16062         the region and replacing the phi node with an assign.
16063
16064 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16065
16066         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
16067         constant phi nodes with one argument are is_gimple_min_invariant
16068         and SSA_NAME_IS_DEFAULT_DEF.
16069
16070 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16071
16072         * graphite-cloog-util.c (oppose_constraint):
16073         Extend loop counter's value range (CLOOG_ORG).
16074         (cloog_matrix_to_ppl_constraint): Same.
16075         (new_Constraint_System_from_Cloog_matrix): Same.
16076         * graphite-cloog-compat.h (matrix_num_type): New.
16077
16078 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16079
16080         * graphite.c (graphite_initialize): Do not initialize
16081         CLooG and initialize the Parma Polyhedra Library
16082         manually when using CLOOG_ORG.
16083         (graphite_finalize): Do not finalize CLooG and finalize
16084         the Parma Polyhedra Library manually when using CLOOG_ORG.
16085         * graphite-cloog-compat.h (cloog_initialize): Hide function
16086         when using CLOOG_ORG.
16087         (cloog_finalize): Same.
16088
16089 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16090
16091         * graphite-clast-to-gimple.c (free_scattering): Change
16092         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
16093         (CLOOG_ORG).
16094         (build_cloog_prog): Same.
16095         * graphite-cloog-compat.h (cloog_domain): Removed.
16096         (cloog_scattering): New.
16097         (cloog_set_domain): Removed.
16098         (cloog_set_scattering): New.
16099         (cloog_next_domain): Removed.
16100         (cloog_next_scattering): New.
16101         (cloog_set_next_domain): Removed.
16102         (cloog_set_next_scattering): New.
16103         (CloogScatteringList): New.
16104         (CloogScattering): New.
16105         (cloog_scattering_free): New.
16106         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
16107         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
16108         New.
16109
16110 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16111
16112         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
16113         CloogState.
16114         (set_cloog_options): Same.
16115         (print_clast_stmt): Same.
16116         (scop_to_clast): Same.
16117         (print_generated_program): Same.
16118         (gloog): Same.
16119         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
16120         (scop_to_clast): Extend with CloogState.
16121         * graphite-cloog-util.c: Include graphite-cloog-compat.h
16122         (new_Cloog_Domain_from_ppl_Polyhedron):
16123         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
16124         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
16125         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16126         * graphite-cloog-util.h (build_cloog_prog): Same.
16127         * graphite-cloog-copat.h (build_cloog_prog): New.
16128         (CloogState): New.
16129         (cloog_state_malloc): New.
16130         (cloog_state_free): New.
16131         (cloog_loop_malloc): New.
16132         (cloog_options_malloc): New.
16133         (cloog_statement_alloc): New.
16134         (cloog_domain_from_cloog_matrix): New.
16135         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
16136         (new_Cloog_Domain_from_ppl_Polyhedron): New.
16137
16138 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16139
16140         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
16141         type of NAME now depends on used CLooG version.
16142         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
16143         (gcc_type_for_clast_expr): Same.
16144         (print_clast_stmt): Replace pprint with clast_pprint.
16145         * graphite-cloog-compat.h: Provide compatibility macros for
16146         CLooG Legacy.
16147         (clast_name_p): New.
16148         (clast_expr_term): New.
16149         (clast_expr_red): New.
16150         (clast_expr_bin): New.
16151         (clast_pprint): New.
16152
16153 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16154
16155         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
16156         compatible to newer CLooG releases (CLOOG_ORG).
16157         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
16158         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
16159         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
16160         (build_cloog_prog) : New.
16161         (cloog_program_extract_scalars): New.
16162         (cloog_program_scatter): New.
16163
16164 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16165
16166         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
16167         conditionally (CLOOG_ORG).
16168         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
16169         (cloog_statement_usr): New.
16170         (cloog_domain): Same.
16171         (cloog_set_domain): Same.
16172         (cloog_next_domain): Same.
16173         (cloog_set_next_domain): Same.
16174         (cloog_program_nb_scattdims): Same.
16175         (cloog_program_set_nb_scattdims): Same.
16176         (cloog_program_names): Same.
16177         (cloog_program_set_names): Same.
16178         (cloog_program_set_context): Same.
16179         (cloog_program_set_loop): Same.
16180         (cloog_program_blocklist): Same.
16181         (cloog_program_set_blocklist): Same.
16182         (cloog_program_scaldims): Same.
16183         (cloog_program_set_scaldims): Same.
16184         (cloog_names_nb_parameters): Same.
16185         (cloog_names_set_nb_parameters): Same.
16186         (cloog_names_parameters): Same.
16187         (cloog_names_set_parameters): Same.
16188         (cloog_names_set_nb_iterators): Same.
16189         (cloog_names_set_iterators): Same.
16190         (cloog_names_set_nb_scattering): Same.
16191         (cloog_names_set_scattering): Same.
16192         (cloog_statement_set_usr): Same.
16193         (cloog_loop_set_next): Same.
16194         (cloog_loop_set_domain): Same.
16195         (cloog_loop_set_block): Same.
16196         (cloog_block_list_next): Same.
16197         (cloog_block_list_set_next):
16198         (cloog_block_list_set_block): Same.
16199
16200 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16201
16202         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
16203         a bool.
16204         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
16205         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
16206         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
16207         when something has been changed.
16208         (rewrite_commutative_reductions_out_of_ssa): Same.
16209
16210 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16211
16212         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
16213         handle the case when def is in the sese region.
16214         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
16215         for invariant expressions.
16216         (rewrite_cross_bb_phi_deps): Removed.
16217         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
16218         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
16219         rewrite_cross_bb_phi_deps.
16220
16221 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16222
16223         * graphite-sese-to-poly.c
16224         (rewrite_commutative_reductions_out_of_ssa_loop): Call
16225         scev_analyzable_p only on is_gimple_reg
16226
16227 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16228
16229         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
16230         (rewrite_close_phi_out_of_ssa): Propagate constant values or
16231         parametric expressions outside the scop region.
16232         (rewrite_cross_bb_scalar_deps): Same.
16233         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
16234
16235 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16236
16237         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
16238         SSA_NAME_DEF_STMT only on SSA_NAMEs.
16239
16240 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16241
16242         * tree-scalar-evolution.c (instantiate_scev_name): Do not
16243         instantiate default definitions.
16244
16245 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
16246             Sebastian Pop  <sebastian.pop@amd.com>
16247
16248         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
16249         (loop_exits_from_bb_p): New.
16250         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
16251         (loop_exits_from_bb_p): Declared.
16252         * graphite-scop-detection.c (scopdet_basic_block_info): Call
16253         loop_exits_to_bb_p.
16254
16255 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16256
16257         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
16258         extra parameter for the region.  Call scev_analyzable_p.
16259         (rewrite_reductions_out_of_ssa): Update call to
16260         rewrite_close_phi_out_of_ssa.
16261         (rewrite_cross_bb_phi_deps): Same.
16262         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
16263         parameter for the region.  Call scev_analyzable_p.
16264         (rewrite_commutative_reductions_out_of_ssa): Update call to
16265         rewrite_commutative_reductions_out_of_ssa_loop.
16266
16267 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16268
16269         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
16270
16271 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16272
16273         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
16274         SSA scalar phi nodes that can be scev_analyzable_p.
16275
16276 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16277
16278         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
16279         handle SSA_NAME_IS_DEFAULT_DEF.
16280
16281 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16282
16283         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
16284
16285 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16286
16287         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
16288         case non close-phi nodes with one argument.
16289
16290 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16291
16292         * sese.h (scev_analyzable_p): Scevs could be expressions without
16293         chrecs and still be scev_analyzable_p.
16294
16295 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16296
16297         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
16298
16299 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16300
16301         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
16302         * cfgloop.h (struct loop): Remove single_iv field.
16303         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
16304         (scop_canonicalize_loops): Removed.
16305         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
16306         over all the loop phi nodes in loop->header.
16307         (build_poly_scop): Remove use of scop_canonicalize_loops.
16308
16309 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16310
16311         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
16312         handle GIMPLE_CALL.
16313
16314 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16315
16316         * tree-chrec.c (chrec_apply): Should only apply to the specified
16317         variable.  Also handle multivariate chains of recurrences that
16318         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
16319
16320 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16321
16322         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
16323         (debug_clast_name_indexes_1): Removed.
16324         (debug_clast_name_indexes): Removed.
16325         (pbb_to_depth_to_oldiv): Removed.
16326         (build_iv_mapping): Replace the use of rename_map with iv_map.
16327         (translate_clast_user): Remove uses of rename_map.  Allocate and
16328         free iv_map.
16329         (translate_clast_for_loop): Remove uses of rename_map.
16330         (translate_clast_for): Same.
16331         (translate_clast_guard): Same.
16332         (translate_clast): Same.
16333         (gloog): Same.
16334         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
16335         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
16336         * sese.c (set_rename): Now static.
16337         (rename_variables_in_stmt): Removed.
16338         (rename_uses): New.
16339         (is_parameter): Removed.
16340         (is_iv): Removed.
16341         (expand_scalar_variables_call): Removed.
16342         (expand_scalar_variables_ssa_name): Removed.
16343         (expand_scalar_variables_expr): Removed.
16344         (expand_scalar_variables_stmt): Removed.
16345         (expand_scalar_variables): Removed.
16346         (rename_variables): Removed.
16347         (remove_condition): Removed.
16348         (get_true_edge_from_guard_bb): Removed.
16349         (get_false_edge_from_guard_bb): Removed.
16350         (struct igp): Removed.
16351         (default_before_guard): Removed.
16352         (convert_for_phi_arg): Removed.
16353         (add_guard_exit_phis): Removed.
16354         (insert_guard_phis): Removed.
16355         (graphite_copy_stmts_from_block): Now also uses iv_map and a
16356         region.  Do not copy conditions.  Do not copy induction variables.
16357         Call rename_uses.
16358         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
16359         the translated statement.  Use the iv_map for the induction
16360         variable renaming.
16361         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
16362         (set_rename): Removed declaration.
16363         (scev_analyzable_p): ...here.
16364         * tree-chrec.c (chrec_apply_map): New.
16365         * tree-chrec.h (chrec_apply_map): Declared.
16366
16367 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16368
16369         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
16370         insert_loop_close_phis.
16371         * sese.c (name_defined_in_loop_p): Removed.
16372         (expr_defined_in_loop_p): Removed.
16373         (alive_after_loop): Removed.
16374         (close_phi_not_yet_inserted_p): Removed.
16375         (struct alep): Removed.
16376         (add_loop_exit_phis): Removed.
16377         (insert_loop_close_phis): Removed.
16378
16379 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16380
16381         * graphite-cloog-util.c
16382         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
16383         * graphite-poly.c
16384         (psct_scattering_dim_for_loop_depth): Same.
16385
16386 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16387
16388         * graphite-cloog-util.h: Added cloog.h.
16389         * graphite-blocking.c: Removed cloog.h.
16390         * graphite-dependences.c: Same.
16391         * graphite-interchange.c: Same.
16392         * graphite-poly.c: Same.
16393         * graphite-ppl.c: Same.
16394         * graphite-scop-detection.c: Same.
16395         * graphite-sese-to-poly.c:
16396         Removed cloog.h.
16397         Removed graphite-clast-to-gimple.h.
16398         (check_poly_representation): Removed (unused).
16399         * graphite-sese-to-poly.h
16400         (check_poly_representation): Removed (unused).
16401
16402 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16403
16404         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
16405         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
16406         (graphite-cloog-util.o): New.
16407         (graphite-ppl.o): Added graphite-cloog-util.h.
16408         * graphite-clast-to-gimple.c:
16409         Added graphite-cloog-util.h to include statements.
16410         * graphite-cloog-util.c: New.
16411         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
16412         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16413         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16414         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16415         (insert_constraint_into_matrix): Same.
16416         (ppl_Constrain_System_number_of_constraints): Same.
16417         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
16418         (oppose_constraint): Same.
16419         (cloog_matrix_to_ppl_constraint): Same.
16420         (new_Constraint_System_from_Cloog_Matrix): Same.
16421         * graphite-cloog-util.h: New.
16422         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
16423         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16424         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16425         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16426         (insert_constraint_into_matrix): Same.
16427         * graphite-ppl.c:
16428         Added graphite-cloog-util.h to include statements.
16429         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
16430         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16431         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16432         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16433         (insert_constraint_into_matrix): Same.
16434         (ppl_Constrain_System_number_of_constraints): Same.
16435         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
16436         (oppose_constraint): Same.
16437         (cloog_matrix_to_ppl_constraint): Same.
16438         (new_Constraint_System_from_Cloog_Matrix): Same.
16439         * graphite-ppl.h:
16440         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
16441         graphite-cloog-util.h.
16442         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16443         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16444         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16445         (insert_constraint_into_matrix): Same.
16446
16447 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16448
16449         * graphite-clast-to-gimple.c
16450         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
16451         (precision_for_interval): Same.
16452         (gcc_type_for_interval): Same.
16453         (compute_type_for_level): Same.
16454         * graphite-interchange.c
16455         (lst_interchange_profitable_p): Same.
16456         * graphite-poly.c
16457         (psct_scattering_dim_for_loop_depth): Same.
16458         * graphite-ppl.c
16459         (ppl_max_for_le_pointset): Same.
16460         (ppl_min_for_le_pointset): Same.
16461
16462 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16463
16464         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
16465         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
16466
16467 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16468
16469         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
16470         rewrite_close_phi_out_of_ssa.
16471
16472 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16473
16474         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
16475
16476 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16477
16478         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
16479         rename_map.
16480         * sese.c (debug_rename_map): Same.
16481         (get_rename): Same.
16482         (set_rename): Same.
16483         (rename_variables_in_stmt): Same.
16484         (expand_scalar_variables_call): Same.
16485         (expand_scalar_variables_ssa_name): Same.
16486         (expand_scalar_variables_expr): Same.
16487         (expand_scalar_variables_stmt): Same.
16488         (expand_scalar_variables): Same.
16489         (rename_variables): Same.
16490         (graphite_copy_stmts_from_block): Same.
16491         (copy_bb_and_scalar_dependences): Same.
16492
16493 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16494
16495         * graphite-clast-to-gimple.c (copy_renames): Removed.
16496         (translate_clast_for): Do not call copy_renames.
16497         (translate_clast_guard): Same.
16498
16499 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16500
16501         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
16502         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
16503         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
16504         before rewrite_cross_bb_scalar_deps.
16505
16506 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16507
16508         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
16509         Early return in when flag_associative_math is not set.
16510
16511 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16512
16513         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
16514         of SSA copies on edges except for loop->latch.
16515
16516 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16517
16518         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
16519         Split out of rewrite_reductions_out_of_ssa.
16520         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
16521         Declared.
16522         * graphite.c (graphite_transform_loops): Call it.
16523
16524 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16525
16526         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
16527
16528 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
16529
16530         * dbgcnt.def (graphite_scop): New counter.
16531         * graphite.c: Include dbgcnt.h.
16532         (graphite_transform_loops): Use new counter to limit transformations.
16533         * Makefile.in (graphite.o): Depend on DBGCNT_H.
16534
16535 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16536
16537         * passes.c (init_optimization_passes): Add pass_graphite.
16538         Schedule a pass_copy_prop before pass_graphite_transforms.
16539         * timevar.def (TV_GRAPHITE): Declared.
16540         * tree-pass.h (pass_graphite): Declared.
16541         * tree-ssa-loop.c (pass_graphite): New.
16542
16543 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16544
16545         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
16546         Remove calls to rename_nb_iterations and rename_sese_parameters.
16547         * graphite-clast-to-gimple.h (gloog): Update declaration.
16548         * graphite.c (graphite_transform_loops): Update call to gloog.
16549         * sese.c (rename_variables_in_expr): Removed.
16550         (rename_nb_iterations): Removed.
16551         (rename_sese_parameters): Removed.
16552         * sese.h (rename_nb_iterations): Removed.
16553         (rename_sese_parameters): Removed.
16554
16555 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16556
16557         * graphite-clast-to-gimple.c (gloog): Remove call to
16558         sese_adjust_liveout_phis.
16559         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
16560         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
16561         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
16562         rewrite_phi_out_of_ssa.
16563         * sese.c (get_vdef_before_sese): Removed.
16564         (sese_adjust_vphi): Removed.
16565         (sese_adjust_liveout_phis): Removed.
16566         * sese.h (sese_adjust_liveout_phis): Removed.
16567
16568 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16569
16570         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
16571         argument for the place after which to insert the out of SSA copy.
16572         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
16573         (rewrite_phi_out_of_ssa): Same.
16574         (rewrite_cross_bb_scalar_deps): Same.
16575         (insert_copyout): Removed.
16576         (insert_copyin): Removed.
16577         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
16578         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
16579         insert_copyin.
16580
16581 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16582
16583         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
16584         (rewrite_reductions_out_of_ssa): Same.
16585         (rewrite_commutative_reductions_out_of_ssa): Same.
16586         (build_poly_scop): Do not call these functions.
16587         * graphite-sese-to-poly.h (build_poly_scop): Declared.
16588         (rewrite_reductions_out_of_ssa): Declared.
16589         (rewrite_commutative_reductions_out_of_ssa): Declared.
16590         * graphite.c (graphite_transform_loops): Call on every scop
16591         rewrite_commutative_reductions_out_of_ssa before calling
16592         rewrite_reductions_out_of_ssa and build_scop_bbs.
16593
16594 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16595
16596         * graphite-dependences.c (dot_deps): Make system call to dotty run
16597         in background.
16598         (dot_deps_stmt): Same.
16599         * graphite-poly.c (dot_lst): Same.
16600
16601 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16602
16603         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
16604         phi_arg_in_outermost_loop.
16605         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
16606         (remove_invariant_phi): Same.
16607
16608 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
16609
16610         * target.def (output_addr_const_extra): New hook.
16611         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
16612         * doc/tm.texi: Regenerate.
16613         * targhooks.c (default_asm_output_addr_const_extra): New function.
16614         * targhooks.h (default_asm_output_addr_const_extra): Declare.
16615         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
16616         target hook.
16617
16618         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16619         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
16620         * config/i386/i386.h (output_addr_const_extra): Rename to...
16621         (i386_asm_output_addr_const_extra): ...this. Make static.
16622         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16623
16624 2010-08-11  Richard Henderson  <rth@redhat.com>
16625
16626         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
16627
16628 2010-08-11  Nick Clifton  <nickc@redhat.com>
16629
16630         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
16631         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
16632         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16633         stormy16-lib2-cmpsi.c.
16634
16635         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
16636         -O2.
16637
16638 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
16639
16640         * opts.h (struct cl_option_handler_func): Make handler take
16641         cl_decoded_option structure as parameter, not individual elements.
16642         (struct cl_option_handlers): Make callbacks take cl_decoded_option
16643         structure as parameter, not individual elements.
16644         (handle_option): Take cl_decoded_option structure as parameter,
16645         not individual elements.
16646         (handle_generated_option): Declare.
16647         * opts-common.c (handle_option): Take cl_decoded_option structure
16648         as parameter, not individual elements.  Update calls to callback
16649         and handler functions.
16650         (handle_generated_option): New.
16651         (read_cmdline_option): Update calls to callback functions and
16652         handle_option.
16653         * opts.c (common_handle_option, complain_wrong_lang,
16654         unknown_option_callback, post_handling_callback,
16655         lang_handle_option, target_handle_option): Take cl_decoded_option
16656         structure as parameter, not individual elements.
16657         (lang_handle_option, target_handle_option, common_handle_option):
16658         Assert option has at most one argument.
16659         (enable_warning_as_error): Call handle_generated_option instead of
16660         handle_option.  Do not pass -Werror argument as argument of
16661         generated option.
16662
16663 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16664
16665         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16666         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16667         (SUBWORD_BOOL_CAS): Likewise.
16668         (SUBWORD_SYNC_OP): Likewise.
16669         (SUBWORD_TEST_AND_SET): Likewise.
16670         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16671         (SUBWORD_SYNC_OP): Likewise.
16672         (OP_AND_FETCH_WORD): Likewise.
16673
16674 2010-08-10  Xinliang David Li  <davidxl@google.com>
16675
16676         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
16677         compute max/min offset in address.
16678
16679 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
16680
16681         * ira-live.c: Include sbitmap.h.
16682         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
16683         Compress live ranges even more.
16684
16685 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16686
16687         * coverage.c (ctr_labels): Delete.
16688
16689 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16690
16691         PR bootstrap/45177
16692         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
16693         test here from arm_gen_load_multiple_1.
16694         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
16695         multiple_operation_profitable_p.
16696
16697 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16698
16699         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
16700         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
16701
16702 2010-08-10  Richard Henderson  <rth@redhat.com>
16703
16704         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
16705         after saving registers.  Assert that SSE registers are only saved
16706         with a sufficiently aligned frame.
16707         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
16708         remove stack_realign_fp handling.
16709         (ix86_expand_prologue): Save int registers before stack_realign_fp,
16710         and do not mark the stack alignment as frame related.
16711         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
16712
16713         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
16714         saves when re-aligning the stack.
16715
16716 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16717
16718         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
16719         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
16720         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
16721
16722 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16723
16724         * dwarf2out.c (struct die_struct): Move die_tag to the end.
16725
16726 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
16727
16728         * config/arm/iterators.md: New file.
16729         * config/arm/arm.md: Include iterators.md.
16730         (QHSI): Move to new file.
16731         (LTUGEU, cnb, optab, ior_xor): Likewise.
16732         * config/arm/iwmmxt.md (VMMX): Move to new file.
16733         (VSHFT, MMX_char): Likewise.
16734         * config/arm/neon.md (VD): Move to new file.
16735         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
16736         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
16737         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
16738         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
16739         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
16740         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
16741         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
16742         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
16743         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
16744         (Is_d_reg, V_mode_nunits): Likewise.
16745         * config/arm/vec-common.md (VALL): Move to new file.
16746         (VALLW, VINT, VINTW): Likewise.
16747
16748 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16749
16750         PR middle-end/45182
16751         * combine.c (make_compound_operation): Don't try to convert
16752         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
16753
16754 2010-08-10  Richard Guenther  <rguenther@suse.de>
16755
16756         * tree.h (get_object_alignment): Adjust prototype.
16757         * builtins.c (get_object_alignment): Return unsigned int,
16758         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
16759         and TARGET_MEM_REF properly.
16760         (get_pointer_alignment): Adjust.
16761         * emit-rtl.c (get_mem_align_offset): Adjust comment.
16762         (set_mem_attributes_minus_bitpos): Adjust.
16763         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
16764
16765 2010-08-10  Richard Guenther  <rguenther@suse.de>
16766
16767         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
16768         (copy_prop_visit_assignment): Simplify.
16769         (copy_prop_visit_stmt): Also visit assignments from
16770         constants.
16771         (copy_prop_visit_phi_node): Use operand_equal_p.
16772
16773 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16774
16775         * ipa-split.c (find_split_points): Free stack.
16776
16777 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16778
16779         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
16780         * tree.c (tree_node_kind): Delete corresponding entries.
16781
16782 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16783
16784         * alias.c (may_alias_p): Remove unused ret.
16785
16786 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
16787
16788         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
16789         alias_sets_conflict_p.
16790         (walk_mems_1): Moved from alias.c.
16791         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
16792         in alias.c.
16793         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
16794         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
16795         * alias.c (walk_mems_2): Moved to ddg.c.
16796         (walk_mems_1): Ditto.
16797         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
16798         to ddg.c.
16799         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
16800         disambiguation.
16801         *(may_alias_p): New function to check whether two memory expression
16802         may alias or not. Currently used in buidling inter-iteration memory
16803         dependence.
16804         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
16805         (insn_alias_sets_conflict_p): Removed
16806         *rtl.h (may_alias_p): New function prototype.
16807
16808 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16809
16810         * tree.c (nreverse): Assert that we don't have a BLOCK.
16811
16812 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16813
16814         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
16815         * config/arm/arm.c (arm_get_pcs_model): Likewise.
16816         * config/avr/avr.c (init_cumulative_args): Likewise.
16817         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16818         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
16819         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
16820         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
16821         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
16822         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16823         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
16824         * dwarf2out.c (gen_subprogram_die): Likewise.
16825         * function.c (allocate_struct_function): Likewise.
16826         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
16827         (deserves_ellipsis): Delete.
16828
16829 2010-08-09  Richard Guenther  <rguenther@suse.de>
16830
16831         * tree-ssa-copy.c (cached_last_copy_of): Remove.
16832         (valueize_val): New function.
16833         (get_last_copy_of): Remove.
16834         (set_copy_of_val): Simplify.
16835         (dump_copy_of): Likewise.
16836         (copy_prop_visit_cond_stmt): Use valueize_val.
16837         (copy_prop_visit_phi_node): Properly handle unvisited names.
16838         Drop code managing copy-of chains.
16839         (init_copy_prop): Adjust.
16840         (fini_copy_prop): Likewise.
16841         (execute_copy_prop): Remove obsolete comment.
16842
16843 2010-08-09  Richard Guenther  <rguenther@suse.de>
16844
16845         PR middle-end/44632
16846         * function.c (gimplify_parameters): Do not clear addressable
16847         bit of the original parameter.
16848
16849 2010-08-09  Richard Guenther  <rguenther@suse.de>
16850
16851         PR middle-end/45212
16852         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
16853         alignment from MEM_REF offset only if we took it from the
16854         base object.
16855
16856 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
16857
16858         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
16859
16860 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16861
16862         * c-tree.h (build_arg_info): Declare.
16863         * c-decl.c (build_arg_info): Define.
16864         (get_parm_info): Call it.  Delete initialization code.
16865         * c-parser.c (c_parser_parms_declarator): Likewise.
16866         (c_parser_parms_list_declaractor): Likewise.
16867
16868 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16869
16870         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16871         (struct c_arg_info): Change type of tags field.
16872         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16873         (get_parm_info): Likewise.
16874         (store_parm_decls_newstyle): Likewise.
16875
16876 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16877
16878         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16879         (branch_island_list): Delete.
16880         (branch_islands): Declare.
16881         (add_compiler_branch_island): Adjust for branch_islands instead of
16882         branch_island_list.
16883         (macho_branch_islands): Likewise.
16884         (no_previous_def): Likewise.
16885         (get_prev_label): Likewise.
16886
16887 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16888
16889         PR boehm-gc/34544
16890         * gthr-posix.h (__gthread_start): Delete.
16891         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16892         pthread_create to determine if hpux pthreads are active.
16893         * gthr-posix95.h (__gthread_start): Delete.
16894         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16895
16896 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16897
16898         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16899         _WIN64 not expanded.
16900
16901 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16902             H.J. Lu  <hongjiu.lu@intel.com>
16903
16904         PR target/45213
16905         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16906         to output 32bit SFmode immediate as 8 byte sign extended value.
16907
16908 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16909
16910         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16911         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16912         (SUBWORD_BOOL_CAS): Likewise.
16913         (SUBWORD_SYNC_OP): Likewise.
16914         (SUBWORD_TEST_AND_SET): Likewise.
16915         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16916         (SUBWORD_SYNC_OP): Likewise.
16917         (OP_AND_FETCH_WORD): Likewise.
16918
16919 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16920
16921         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
16922         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
16923         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
16924         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
16925         generic part.
16926         (cortex_a9_sched_adjust_cost): New function.
16927         (xscale_sched_adjust_cost): New function.
16928         * config/arm/arm-protos.h (struct tune_params): New field
16929         sched_adjust_cost.
16930         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
16931
16932 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
16933
16934         PR target/44942
16935         * config/sparc/sparc.c (function_arg_advance): Always take into account
16936         the padding, if any.
16937
16938 2010-08-06  Richard Guenther  <rguenther@suse.de>
16939
16940         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
16941         (dump_lattice_value): Dump it.
16942         (get_default_value): Adjust.
16943         (get_constant_value): Likewise.
16944         (set_value_varying): Likewise.
16945         (set_lattice_value): Make sure to not go up the lattice
16946         with bitwise constant values.
16947         (get_value_for_expr): Handle ADDR_EXPRs.
16948         (value_to_double_int): New function.
16949         (get_value_from_alignment): Likewise.
16950         (do_dbg_cnt): Adjust.
16951         (ccp_lattice_meet): Handle partially constant values.
16952         (bit_value_unop_1): New function.
16953         (bit_value_binop_1): Likewise.
16954         (bit_value_unop): Likewise.
16955         (bit_value_binop): Likewise.
16956         (evaluate_stmt): Track partially constant values if
16957         flag_tree_bit_ccp is set.
16958         (ccp_fold_stmt): Dump if we folded a predicate.
16959         (ccp_visit_stmt): Adjust.
16960         * common.opt (ftree-bit-ccp): New flag.
16961         * doc/invoke.texi (ftree-bit-ccp): Document.
16962         * opts.c (decode_options): Enable bit-CCP at -O1.
16963
16964 2010-08-06  Alan Modra  <amodra@gmail.com>
16965
16966         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
16967         and -mrelocatable-lib description.
16968
16969 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
16970
16971         From Martin Thuresson  <martint@google.com>
16972         * postreload.c (reload_cse_simplify_operands): Use
16973         SET_REGNO_RAW instead of SET_REGNO.
16974         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
16975         SET_REGNO.
16976         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
16977         instead of SET_REGNO.
16978         * rtl.h (SET_REGNO_RAW): New macro.
16979
16980 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
16981
16982         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
16983         computations.  Fix formatting issues.
16984         (num_sign_bit_copies1): Likewise.
16985         (canonicalize_condition): Likewise.
16986
16987 2010-08-05  Richard Henderson  <rth@redhat.com>
16988
16989         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
16990         (floor_log2): Use clz_hwi.
16991         (exact_log2): Use ctz_hwi.
16992         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
16993         * builtins.c (fold_builtin_bitop): Use them.
16994         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16995         * combine.c (get_pos_from_mask): Use ctz_hwi.
16996         * double-int.c (double_int_ctz): Likewise.
16997         * explow.c (force_reg): Likewise.
16998         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
16999
17000 2010-08-05  Richard Henderson  <rth@redhat.com>
17001
17002         PR target/45189
17003         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
17004         the alignment constant is properly sign-extended.
17005
17006 2010-08-05  Richard Guenther  <rguenther@suse.de>
17007
17008         * expr.c (store_expr): Use emit_block_move only if both
17009         source and target are MEMs.  Use store_bit_field if only
17010         the target is a MEM.
17011
17012 2010-08-05  Richard Henderson  <rth@redhat.com>
17013
17014         PR debug/45188
17015         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
17016         (INCOMING_RETURN_ADDR_RTX): Likewise.
17017         (dwarf2out_do_frame): Remove conditional compilation.
17018         (dwarf2out_frame_init): Likewise.
17019
17020 2010-08-05  Nicolas Setton  <setton@adacore.com>
17021
17022         * gcov.c (flag_display_progress): New static variable.
17023         (main): Display progress info on standard output if requested.
17024         (options): Add -d/--display-progress.
17025         (print_usage): Print them.
17026         (process_args): Handle them.
17027         * doc/gcov.texi: Document them.
17028
17029 2010-08-05  Martin Jambor  <mjambor@suse.cz>
17030
17031         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
17032         (ipcp_insert_stage): Redirect only edges not flagged with
17033         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
17034         discovered constants.
17035
17036 2010-08-05  Martin Jambor  <mjambor@suse.cz>
17037
17038         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
17039         (struct ipa_param_descriptor): New fields types and
17040         cannot_devirtualize.
17041         (ipa_param_cannot_devirtualize_p): New function.
17042         (ipa_param_types_vec_empty): Likewise.
17043         (ipa_make_edge_direct_to_target): Declare.
17044         * ipa-cp.c: Fixed first stage driver name in initial comment,
17045         described devirtualization there too.
17046         (ipcp_analyze_node): Call ipa_analyze_params_uses.
17047         (ipcp_print_all_lattices): Print devirtualization info.
17048         (ipa_set_param_cannot_devirtualize): New function.
17049         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
17050         lattice to BOTTOM.
17051         (ipcp_init_stage): Merged into...
17052         (ipcp_generate_summary): ...its caller.
17053         (ipcp_change_tops_to_bottom): Also process type lists.
17054         (ipcp_add_param_type): New function.
17055         (ipcp_copy_types): Likewise.
17056         (ipcp_propagate_types): Likewise.
17057         (ipcp_propagate_stage): Also propagate types.
17058         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
17059         Also return true if propagated types require it.
17060         (ipcp_update_callgraph): Dump redirection info.
17061         (ipcp_process_devirtualization_opportunities): New function.
17062         (ipcp_const_param_count): Include known type information.
17063         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
17064         on new node.  Fixed formatting.
17065         * ipa-prop.c (make_edge_direct_to_target): Renamed to
17066         ipa_make_edge_direct_to_target and changed all callers.  Made
17067         externally visible.
17068         (ipa_node_duplication_hook): Duplicate types vector.
17069         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
17070         redirect outgoing calls for which we can't get a decl from the
17071         statement.  Check that we can get a decl from the call statement.
17072         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
17073         ipa_analyze_params_uses only when ipa-cp is disabled.
17074         * tree-inline.c (get_indirect_callee_fndecl): Removed.
17075         (expand_call_inline): Do not call get_indirect_callee_fndecl.
17076         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
17077         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
17078
17079 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
17080
17081         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
17082         temporary. Emit move from temporary to accum, so REG_EQUAL note will
17083         be attached to this insn in correct mode.
17084
17085 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
17086
17087         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
17088         using REGNO of base_reg directly.
17089
17090 2010-08-05  Jie Zhang  <jie@codesourcery.com>
17091
17092         PR tree-optimization/45144
17093         * tree-sra.c (type_consists_of_records_p): Return false
17094         if the record contains bit-field.
17095
17096 2010-08-04  Richard Henderson  <rth@redhat.com>
17097
17098         * config/i386/i386.c (struct ix86_frame): Remove padding and
17099         to_allocate members.
17100         (ix86_compute_frame_layout): Don't store them.
17101         (ix86_can_use_return_insn_p): Use a more direct and more obviously
17102         correct condition for the position of the stack pointer.
17103         (ix86_expand_prologue): Compute remaining stack allocation based
17104         on the ultimate stack pointer offset.
17105         (ix86_expand_epilogue): Use more obvious expressions testing for
17106         the stack pointer already pointing to the saved registers.
17107
17108         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
17109         duplication deconstructing the frame pointer.  Simplify
17110         deallocation of the local stack frame.
17111
17112         * reg-notes.def (CFA_EXPRESSION): New.
17113         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
17114         (dwarf2out_frame_debug_cfa_expression): New.
17115         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
17116
17117         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
17118         * config/i386/i386.c (ix86_expand_prologue): Set it.
17119         (ix86_expand_epilogue): Clear it.
17120         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
17121         context, add REG_CFA_EXPRESSION notes.
17122
17123         * config/i386/i386.h (struct machine_frame_state): Rename from
17124         machine_cfa_state.  Add members tracking SP and FP regardless
17125         of the current CFA register.
17126         (ix86_cfa_state): Remove.
17127         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
17128         and sse_reg_save_offset members.
17129         (ix86_compute_frame_layout): Set them.
17130         (gen_push): Increment sp_offset too.
17131         (choose_baseaddr_len, choose_baseaddr): New.
17132         (ix86_emit_save_reg_using_mov): New.
17133         (ix86_emit_save_regs_using_mov): Use it.
17134         (ix86_emit_save_sse_regs_using_mov): Likewise.
17135         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
17136         compare vs the saved red_zone_offset.
17137         (pro_epilogue_adjust_stack): Adjust sp_offset.
17138         (ix86_adjust_stack_and_probe): Likewise.
17139         (ix86_expand_prologue): Set up, use, and validate the new
17140         frame_state_info members.  Use gen_frame_mem.
17141         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
17142         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
17143         new frame_state_info members.
17144         (ix86_emit_leave): Likewise.
17145         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
17146         out-of-range stack pointer offsets here.
17147         (ix86_emit_restore_sse_regs_using_mov): Likewise.
17148         (ix86_expand_epilogue): Use and validate the new frame_state_info
17149         members.  Break up and simplify the logic selecting the
17150         restore_regs_via_mov code path.  Ensure that there will be no
17151         out-of-range stack pointer offsets.
17152
17153         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
17154
17155         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
17156         argument name to reflect the expected tree; fix indentation.
17157         (ix86_asm_output_function_label): Output the entire 32-bit
17158         ms_hook here as bytes ...
17159         (ix86_expand_prologue): ... not here as insns.  Attach the
17160         unwind info for the ms_hook to a blockage insn.
17161         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
17162         (ix86_ms_bitfield_layout_p): Fix indentation.
17163         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
17164
17165         * config/i386/i386.c (ix86_using_red_zone): New.
17166         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
17167         ix86_expand_prologue, ix86_force_to_memory): Use it.
17168
17169         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
17170         saving the int registers.
17171
17172         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
17173         and DWARF2_UNWIND_INFO conditional compilation.
17174
17175 2010-08-04  Richard Henderson  <rth@redhat.com>
17176
17177         PR debug/45171
17178         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
17179         an is_naming_typedef_decl.
17180
17181 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
17182
17183         PR rtl-optimization/45162
17184         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
17185         * dce.c (word_dce_process_block): Likewise.
17186
17187 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
17188
17189         PR target/44583
17190         * config/ia64/constraints.md (Z): New.
17191         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
17192         (xfreg_or_signed_fp01_operand): New.
17193         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
17194         with fr_reg_or_signed_fp01_operand and constraint G with Z.
17195         (subsf3): Ditto.
17196         (*maddsf4): Ditto.
17197         (*msubsf4): Ditto.
17198         (adddf3): Ditto.
17199         (adddf3_trunc): Ditto.
17200         (subdf3): Ditto.
17201         (*subdf3_trunc): Ditto.
17202         (*madddf4): Ditto.
17203         (*madddf4_trunc): Ditto.
17204         (*msubdf4): Ditto.
17205         (*msubdf4_trunc): Ditto.
17206         (addxf3): Replace xfreg_or_fp01_operand with
17207         xfreg_or_signed_fp01_operand and constraint G with Z.
17208         (*addxf3_truncsf): Ditto.
17209         (*addxf3_truncdf): Ditto.
17210         (subxf3): Ditto.
17211         (*subxf3_truncsf): Ditto.
17212         (*subxf3_truncdf): Ditto.
17213         (*maddxf4): Ditto.
17214         (*maddxf4_truncsf): Ditto.
17215         (*maddxf4_truncdf): Ditto.
17216         (*msubxf4): Ditto.
17217         (*msubxf4_truncsf): Ditto.
17218         (*msubxf4_truncdf): Ditto.
17219
17220 2010-08-04  Richard Guenther  <rguenther@suse.de>
17221
17222         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
17223         if either alias-set is zero.
17224
17225 2010-08-04  Richard Guenther  <rguenther@suse.de>
17226
17227         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
17228         * tree-ssa-ccp.c: ... here.
17229         * tree-ssa-copy.c: ... and here.
17230         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
17231         value_range_t): Move ...
17232         * tree-vrp.c: ... here.
17233         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
17234         (substitute_and_fold): Adjust prototype.
17235         * tree-ssa-propagate.c (replace_uses_in): Adjust.
17236         (replace_phi_args_in): Likewise.
17237         (substitute_and_fold): Take callback to query lattice instead
17238         of pointer to lattice.  Replace SSA name defs with lattice
17239         values first.
17240         * tree-ssa-ccp.c (ccp_finalize): Adjust.
17241         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
17242         (get_value): New function.
17243         (fini_copy_prop): Adjust.
17244         * tree-vrp.c (vrp_finalize): Adjust.
17245
17246 2010-08-04  Richard Guenther  <rguenther@suse.de>
17247
17248         PR middle-end/45176
17249         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
17250         points-to set for original MEM_REF.
17251
17252 2010-08-04  Richard Guenther  <rguenther@suse.de>
17253
17254         * tree-ssa-ccp.c (get_constant_value): New function.
17255         (get_rhs_assign_op_for_ccp): Remove.
17256         (valueize_op): New function.
17257         (ccp_fold): Use get_constant_value and valueize_op.
17258         (fold_const_aggregate_ref): Likewise.
17259         (ccp_fold_stmt): Likewise.
17260         (visit_assignment): Simplify.
17261
17262 2010-08-04  Richard Guenther  <rguenther@suse.de>
17263
17264         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
17265         * double-int.h (double_int_ctz): Declare.
17266         * double-int.c (double_int_ctz): New function.
17267
17268 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
17269
17270         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
17271         Define.
17272         picochip_expand_movmemhi : Expand movmem pattern.
17273         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
17274         Declare.
17275         * config/picochip/picochip.md (movmemhi) : New pattern.
17276
17277 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
17278
17279         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
17280
17281 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
17282
17283         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
17284         NEG as operand of a MULT by merging it with the other operand.
17285         * combine.c (make_compound_operation): Use trunc_int_for_mode when
17286         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
17287         MULT.
17288         * config/arm/constraints.md (M): Examine only 32 bits of a
17289         HOST_WIDE_INT.
17290         * config/arm/predicates.md (power_of_two_operand): Likewise.
17291
17292 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17293
17294         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
17295         non-NOTE insns.
17296
17297 2010-08-03  Jan Hubicka  <jh@suse.cz>
17298
17299         * ipa-split.c (struct split_point): Add split_part_set_retval.
17300         (find_retval): Forward declare.
17301         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
17302         (consider_split): Compute current->split_part_set_retval.
17303         (visit_bb): Do not look into return value.
17304         (split_function): Handle !split_part_set_retval
17305
17306 2010-08-03  Martin Jambor  <mjambor@suse.cz>
17307
17308         * tree-sra.c (completely_scalarize_record): New parameter REF, create
17309         its own access->expr intead of using build_ref_for_offset.
17310
17311 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
17312
17313         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
17314         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
17315         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
17316         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
17317         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
17318         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
17319         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
17320         DEFAULT_SWITCH_TAKES_ARG.
17321         * config/rx/rx.opt (-patch=): Remove option.
17322         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
17323         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
17324         * doc/invoke.texi (RX Options): Remove -patch=.
17325         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
17326         (option_map): Remove --profile-blocks, --quiet and --silent.
17327
17328 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
17329
17330         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
17331         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
17332         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
17333         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
17334         Update calls to ix86_expand_compare and ix86_expand_branch.
17335         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
17336         ix86_expand_compare.
17337         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
17338         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
17339         Make static.
17340         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
17341         and ix86_compare_op1.  Update calls to ix86_expand_compare.
17342         (ix86_expand_int_movcc): Ditto.
17343         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
17344         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
17345         (ix86_expand_setcc): Ditto.
17346         (ix86_expand_compare): Remove prototype.
17347         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
17348         ix86_compare_op0 and ix86_compare_op1.  Update calls
17349         to ix86_expand_branch to directly pass operands[1] and operands[2].
17350         (cbranchxf4): Ditto.
17351         (cbranch<MODEF:mode>4): Ditto.
17352         (cbranchcc4): Ditto.
17353         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
17354         Update calls to ix86_expand_setcc to directly pass operands[2] and
17355         operands[3].
17356         (cstorexf4): Ditto.
17357         (cstore<MODEF:mode>4): Ditto.
17358         (cstorecc4): Ditto.
17359
17360 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
17361
17362         PR target/45063
17363         * caller-save.c (save_call_clobbered_regs): Remove regs from
17364         hard_regs_saved when they are set.
17365
17366 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
17367
17368         PR target/41089
17369         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
17370         as volatile.
17371
17372 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
17373
17374         * common.opt (ftree-loop-distribute-patterns): New.
17375         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
17376         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
17377         at -O3.
17378         * tree-data-ref.c (stores_zero_from_loop): New.
17379         * tree-data-ref.h (stores_zero_from_loop): Declared.
17380         * tree-loop-distribution.c (tree_loop_distribution): Call
17381         stores_zero_from_loop.
17382         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
17383
17384 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
17385
17386         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
17387         into account.
17388
17389         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
17390         * config/arm/arm.c (thumb1_code): New variable.
17391         (arm_override_options): Set it.
17392         (thumb1_final_prescan_insn): Keep track of condition code status.
17393         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
17394         jumps that depend on them.
17395         * config/arm/arm.h (thumb1_code): Declare variable.
17396         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
17397         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
17398         thumb1_cc_mode.
17399         (CC_STATUS_INIT): New macro.
17400         * config/arm/constraints.md (Pd): New constraint.
17401         * config/arm/predicates.md (noov_comparison_operator): New predicate.
17402         * config/arm/arm.md (is_thumb1): New define_attr.
17403         (conds): Set default to "clob" when generating Thumb1 code.
17404         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
17405         code are set.  Use two-operand assembly syntax.
17406         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
17407         pattern.
17408         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
17409         codes are set.  Use two-operand assembly syntax.
17410         (zero_extendhisi splitter): Remove constraints.
17411         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
17412         thumb1_movsf_insn): Set conds attribute as appropriate.
17413         (cbranchsi4_insn): Use condition code status from struct
17414         machine_function to determine whether the comparison can be eliminated.
17415         Discourage the alternative using high registers.
17416         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
17417         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
17418         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
17419         subsi3_cbranch): Delete.
17420         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
17421         one subtract and one cbranch insn.
17422
17423         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
17424         thumb2_movdf_soft_insn): Delete patterns.
17425         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
17426         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
17427         (pool_range, neg_pool_range): Use them to define defaults.
17428         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
17429         and allow for TARGET_32BIT.
17430
17431         PR target/40457
17432         * config/arm/arm.h (arm_regs_in_sequence): Declare.
17433         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
17434         load_multiple_sequence, store_multiple_sequence): Delete
17435         declarations.
17436         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
17437         declarations.
17438         * config/arm/ldmstm.md: New file.
17439         * config/arm/arm.c (arm_regs_in_sequence): New array.
17440         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
17441         CHECK_REGS.  All callers changed.
17442         If SAVED_ORDER is nonnull, copy the computed order into it.
17443         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
17444         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
17445         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
17446         If SAVED_ORDER is nonnull, copy the computed order into it.
17447         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
17448         like REGS.  Handle Thumb mode.
17449         (arm_gen_load_multiple_1): New function, broken out of
17450         arm_gen_load_multiple.
17451         (arm_gen_store_multiple_1): New function, broken out of
17452         arm_gen_store_multiple.
17453         (arm_gen_multiple_op): New function, with code from
17454         arm_gen_load_multiple and arm_gen_store_multiple moved here.
17455         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
17456         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
17457         changed.
17458         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
17459         * config/arm/predicates.md (commutative_binary_operator): New.
17460         (load_multiple_operation, store_multiple_operation): Handle more
17461         variants of these patterns with different starting offsets.  Handle
17462         Thumb-1.
17463         * config/arm/arm.md: Include "ldmstm.md".
17464         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
17465         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
17466         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
17467         peepholes): Delete.
17468         * config/arm/ldmstm.md: New file.
17469         * config/arm/arm-ldmstm.ml: New file.
17470
17471         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
17472         if statement which adds extra costs to frame-related expressions.
17473
17474 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17475
17476         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
17477
17478 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
17479
17480         PR target/45142
17481         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
17482         alternative 2.
17483         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
17484         split V4SI operands.
17485
17486 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
17487
17488         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17489         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
17490         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
17491         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17492
17493 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
17494
17495         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
17496         LOCAL_INCLUDE_DIR.
17497
17498 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
17499
17500         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
17501         used in the call to optab_for_tree_code.  Fix the second
17502         is_widening_mult_p call.  Check that both unwidened operands
17503         have the same sign.
17504
17505 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
17506
17507         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
17508
17509 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
17510
17511         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17512
17513 2010-07-30  DJ Delorie  <dj@redhat.com>
17514
17515         * config/rx/predicates.md (rx_constshift_operand): New.
17516         * config/rx/rx.md (zs_cond): New.
17517         (cbranchsi4): Remove mode.
17518         (*cbranchsi4_<code>): Likewise.
17519         (*tstbranchsi4_<code>): New.
17520         (*tstbranchsi4r_<code>): New.
17521         (*tstbranchsi4m_eq): New.
17522         (*tstbranchsi4m_ne): New.
17523         (cbranchsf4): Remove mode.
17524         (*cbranchsf4_<code>): Likewise.
17525
17526 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
17527
17528         * rtlanal.c (simplify_subreg_regno): Don't treat
17529         HARD_FRAME_POINTER_REGNUM specially.
17530
17531 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
17532
17533         * common.opt (-G): Don't define option here.
17534         * config/g.opt: New.
17535         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
17536         rs6000/powerpc and score targets.
17537         * opts.c (common_handle_option): Don't handle -G here.
17538         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
17539         * config/frv/frv.c (frv_handle_option): Handle -G.
17540         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
17541         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
17542         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
17543         * config/mips/mips.c (mips_handle_option): Handle -G.
17544         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
17545         * config/score/score.c (score_handle_option): Handle -G.
17546
17547 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
17548
17549         * config/mmix/mmix.c: Include basic-block.h.
17550
17551 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
17552
17553         PR debug/45055
17554         PR rtl-optimization/45137
17555         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
17556         prototypes.
17557         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
17558         New functions.
17559         * combine.c (next_nonnote_nondebug_insn): Removed.
17560         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
17561         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
17562         * sched-deps.c (sched_analyze_insn): Likewise.
17563         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
17564         * rtlanal.c (canonicalize_condition): Likewise.
17565         * postreload.c (reload_combine_recognize_pattern): Likewise.
17566         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
17567
17568 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
17569
17570         * config/i386/i386.md (int_cond): Remove code iterator.
17571         (fp_cond): Ditto.
17572         (cbranch<mode>4): Use ordered_comparison_operator predicate
17573         for operator0.
17574         (cstore<mode>4): Ditto for operator1.
17575         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
17576         (add<mode>cc): ditto.
17577
17578 2010-07-30  Richard Guenther  <rguenther@suse.de>
17579
17580         PR middle-end/45141
17581         * expr.c (expand_expr_real_1): Check for not handled base address.
17582
17583 2010-07-30  Richard Guenther  <rguenther@suse.de>
17584
17585         * ipa-prop.c (ipa_modify_formal_parameters): Use
17586         build_distinct_type_copy.
17587
17588 2010-07-30  Anthony Green  <green@moxielogic.com>
17589
17590         * config/moxie/rtems.h: New file.
17591         * config.gcc: Add moxie-rtems support.
17592
17593 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
17594
17595         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
17596         df flags as in run_fast_df_dce.
17597
17598 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
17599
17600         Revert:
17601         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17602
17603         * rtl.def (NOTE): Swap operands 4 and 5.
17604         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
17605         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
17606         Adjust accordingly.
17607         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
17608
17609 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
17610
17611         PR debug/45110
17612         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
17613         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
17614         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
17615         formal parameters.
17616         (gen_decl_die): Change return type to dw_die_ref, return what
17617         gen_formal_parameter_die returned.
17618
17619 2010-07-29  Martin Jambor  <mjambor@suse.cz>
17620
17621         * dbgcnt.def (eipa_sra): New counter.
17622         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
17623
17624 2010-07-29  Xinliang David Li  <davidxl@google.com>
17625
17626         PR bootstrap/45119
17627         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
17628         in revision 162652.
17629
17630 2010-07-29  Richard Guenther  <rguenther@suse.de>
17631
17632         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
17633         (TV_TREE_STORE_CCP): Likewise.
17634         (TV_TREE_REDPHI): Likewise.
17635
17636 2010-07-29  Richard Guenther  <rguenther@suse.de>
17637
17638         * double-int.h (double_int_and_not): New function.
17639         * combine.c (try_combine): Use it.
17640         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
17641
17642 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
17643
17644         PR rtl-optimization/42575
17645         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
17646         Argument AU removed.  All callers changed.  Ignore artificial refs.
17647         Use return value of df_word_lr_simulate_defs to decide whether an insn
17648         is necessary.
17649         (fast_dce): Rename arg to WORD_LEVEL.
17650         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
17651         static.
17652         (pass_fast_rtl_byte_dce): Delete.
17653         * dce.h (run_word_dce): Declare.
17654         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
17655         All callers changed.  Simplify code to only deal with two-word regs.
17656         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
17657         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
17658         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
17659         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
17660         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
17661         (df_word_lr_mark_ref): Declare.
17662         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
17663         df_word_lr_simulate_uses): Declare or rename from byte variants.
17664         (df_byte_lr_simulate_artificial_refs_at_top,
17665         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
17666         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
17667         declarations.
17668         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
17669         (enum df_mm): Delete.
17670         * df-byte-scan.c: Delete file.
17671         * df-problems.c (df_word_lr_problem_data): Renamed from
17672         df_byte_lr_problem_data, all members deleted except for
17673         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
17674         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
17675         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
17676         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
17677         df_byte_lr_confluence_0): Delete functions.
17678         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
17679         callers changed.
17680         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
17681         Don't initialize members that were deleted, don't try to discover data
17682         about registers.  Ignore hard regs.
17683         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
17684         (df_word_lr_mark_ref): New function.
17685         (df_word_lr_bb_local_compute): Renamed from
17686         df_byte_bb_lr_local_compute; all callers changed.  Use
17687         df_word_lr_mark_ref.  Assert that artificial refs don't include
17688         pseudos.  Ignore hard registers.
17689         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
17690         Assert that exit block uses don't contain pseudos.
17691         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
17692         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
17693         callers changed.  Ignore hard regs.
17694         (df_word_lr_transfer_function): Renamed from
17695         df_byte_lr_transfer_function; all callers changed.
17696         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
17697         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
17698         changed.
17699         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
17700         callers changed.
17701         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
17702         confluence operator 0 set to NULL.
17703         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
17704         callers changed.
17705         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
17706         Return bool, true if bitmap changed or insn otherwise necessary.
17707         All callers changed.  Simplify using df_word_lr_mark_ref.
17708         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
17709         all callers changed.  Simplify using df_word_lr_mark_ref.
17710         * lower-subreg.c: Include "dce.h"
17711         (decompose_multiword_subregs): Call run_word_dce if df available.
17712         * Makefile.in (lower-subreg.o): Adjust dependencies.
17713         (df-byte-scan.o): Delete.
17714         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
17715
17716 2010-07-29  Richard Guenther  <rguenther@suse.de>
17717
17718         * tree.c (build_vector): Assert that the vector constant
17719         has enough elements.
17720         (build_vector_from_ctor): Pad with trailing zeros.
17721
17722 2010-07-29  Richard Guenther  <rguenther@suse.de>
17723
17724         PR tree-optimization/45120
17725         * tree-ssa-structalias.c (get_constraint_for_component_ref):
17726         Handle offset in DEREFs properly.
17727         (get_constraint_for_1): Handle MEM_REF offset properly.
17728
17729 2010-07-29  Richard Guenther  <rguenther@suse.de>
17730
17731         PR middle-end/45034
17732         * convert.c (convert_to_integer): Always use an unsigned
17733         type for narrowed negate and bitwise not.
17734
17735 2010-07-29  Ira Rosen  <irar@il.ibm.com>
17736
17737         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
17738         to outer loop when creating reduction epilogue for double reduction,
17739         and switch back to the inner loop when updating the phi nodes.
17740         Update uses of outer loop exit phi nodes in double reduction (instead
17741         of uses of reduction).
17742
17743 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
17744
17745         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
17746         popcount on power7 and parity on power6 systems.
17747         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
17748         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
17749         instructions.
17750
17751         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
17752         (UNSPEC_PARITY): Ditto.
17753         (SFDF): New iterator for SF/DF.
17754         (rreg2): New mode attribute for floating register constraint.
17755         (TARGET_FLOAT): New mode attribute for whether single/double float
17756         is supported.
17757         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
17758         pattern.
17759         (parity<mode>2_cmpb): New insn for parity on power6 and newer
17760         machines.
17761         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
17762         pattern.  Add support for fcpsgn instruction added in power6.
17763         (copysignsf3): Delete.
17764         (copysigndf3): Delete.
17765         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
17766         instead of if_then_else in RTL to avoid problems with -0.
17767
17768         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
17769         of if_then_else to mirror scalar code.
17770         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
17771         rs6000.md.
17772
17773         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
17774         instead of if_then_else.
17775
17776 2010-07-28  Xinliang David Li  <davidxl@google.com>
17777
17778         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
17779         (dump_cand): Dump var_before/after.
17780         (htab_inv_expr_eq): New function.
17781         (htab_inv_expr_hash): New function.
17782         (tree_ssa_iv_optimize_init): Support pseudo invariants.
17783         (add_candidate_1): consider base type precision.
17784         (set_use_iv_cost): New parameter.
17785         (adjust_setup_cost): Use profile information.
17786         (get_address_cost): Do not hard code width in computing address
17787         offset limits.
17788         (compare_aff_trees): New function.
17789         (get_loop_invariant_expr_id): New function.
17790         (get_computation_cost_at): New parameter and use profile information.
17791         (get_computation_cost): New parameter.
17792         (determine_use_iv_cost_generic): Pass new parameter.
17793         (determine_use_iv_cost_address): Ditto.
17794         (determine_use_iv_cost_condition): Ditto.
17795         (autoinc_possible_for_pair): Ditto.
17796         (determine_use_iv_costs): More dumps.
17797         (iv_ca_get_num_inv_exprs): New function.
17798         (iv_ca_recount_cost): Consider loop invariants in register pressure
17799         cost.
17800         (iv_ca_add_use): New parameter.
17801         (iv_ca_dump): Better dumping.
17802         (iv_ca_extend): New parameter.
17803         (try_add_cand_for): Attempt to get better partial solution.
17804         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
17805         (create_new-ivs): More dumps.
17806         (rewrite_use_compare): Ditto.
17807         (free_loop_data): More cleanup.
17808         (treee_ssa_iv_optimize_finalize): Ditto.
17809
17810 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
17811
17812         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
17813         * config/i386/i386.c (ix86_profile_before_prologue): New.
17814         (override_options): Add special handling for -mfentry.
17815         (ix86_function_regparm): Likewise.
17816         (ix86_function_sseregparm): Likewise.
17817         (ix86_frame_pointer_required): Likewise.
17818         (ix86_expand_prologue): Check for ms_hook_prologue.
17819         (x86_function_profiler): Adjust mcount output.
17820         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
17821         * config/i386/i386.opt (mfentry): New.
17822         * doc/invoke.texi (mfentry): Add documentation.
17823         * doc/tm.texi: Regenerated..
17824         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
17825         * final.c (final_start_function): Replace macro
17826         PROFILE_BEFORE_PROLOGUE by target hook.
17827         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17828         * target.def (profile_before_prologue): New hook.
17829         * targhooks.c (default_profile_before_prologue): New.
17830         * targhooks.h (default_profile_before_prologue): New.
17831
17832 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
17833
17834         PR debug/45105
17835         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
17836
17837         PR debug/45103
17838         * dwarf2out.c (dwarf2out_var_location): Always consider
17839         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
17840
17841 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17842
17843         PR rtl-optimization/45107
17844         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
17845
17846 2010-07-28  Richard Guenther  <rguenther@suse.de>
17847
17848         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
17849         (set_lattice_value): Do not query an old default value.
17850         (get_value_for_expr): New function.  Properly canonicalize
17851         float values.
17852         (ccp_visit_phi_node): Use it.
17853
17854 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
17855
17856         * config/arm/arm.c (arm_pcs_default): Remove static.
17857         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
17858         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
17859         (arm_pcs_default): Declare.
17860
17861 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
17862
17863         * config/rs6000/rs6000.c (rs6000_override_options):
17864         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
17865         ... to darwin_rs6000_override_options.
17866         (rs6000_return_in_memory): Update preceding comment for darwin
17867         64 bit ABI.  Use TARGET_MACHO inline.
17868         (rs6000_darwin64_struct_check_p): New.
17869         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17870         (function_arg): Likewise.
17871         (rs6000_arg_partial_bytes): Likewise.
17872         (rs6000_function_value): Likewise.
17873
17874 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17875
17876         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17877
17878 2010-07-28  Richard Guenther  <rguenther@suse.de>
17879
17880         PR middle-end/44903
17881         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17882         targets try harder to not generate unaligned accesses.
17883
17884 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17885
17886         PR rtl-optimization/45101
17887         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17888         for gcse-las.
17889
17890 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17891
17892         PR tree-optimization/44885
17893         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17894         with non-aliased component.
17895
17896 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17897
17898         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17899         WORD_SWITCH_TAKES_ARG): Remove.
17900         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17901         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17902         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17903         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17904         definitions from gcc.c.
17905         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17906         defaults.h.
17907         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17908         Move to defaults.h.
17909         * opts-common.c: Include tm.h.
17910         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
17911         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
17912         Handle more than one argument.  Set canonical_option_num_elements.
17913         (decode_cmdline_options_to_array): Set
17914         canonical_option_num_elements and trailing elements of
17915         canonical_option.
17916         * opts.h (struct cl_decoded_option): Allow four elements in
17917         canonical_option.  Add field canonical_option_num_elements.
17918         * Makefile.in (opts-common.o): Update dependencies.
17919
17920 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17921
17922         PR middle-end/44790
17923         PR middle-end/44993
17924         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
17925         sure the base has address_mode before adding the offset.
17926
17927 2010-07-27  Xinliang David Li  <davidxl@google.com>
17928
17929         * tree-flow.h (create_mem_ref): Add one new parameter.
17930         * tree-ssa-address.c (create_mem_ref): New parameter.
17931         (addr_to_parts): Ditto.
17932         (move_variant_to_index): New function.
17933         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
17934
17935 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17936
17937         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
17938         4 and 5.
17939         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
17940         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
17941         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
17942         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
17943         CODE_LABELs and NOTEs.
17944         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
17945         * combine.c (try_combine): Likewise.
17946         * ira.c (setup_prohibited_mode_move_regs): Likewise.
17947         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
17948
17949 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17950
17951         * coretypes.h (struct cl_option_handlers): Declare.
17952         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
17953         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
17954         * langhooks-def.h (lhd_handle_option): Declare.
17955         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
17956         * langhooks.c (lhd_handle_option): New.
17957         * langhooks.h (struct lang_hooks): Update prototype and return
17958         value type of handle_option hook.
17959         * optc-gen.awk: Generate target_flags_explicit definition for the
17960         driver.
17961         * opts-common.c: Include diagnostic.h.
17962         (handle_option): Move from opts.c.  Update prototype and return
17963         value type.  Use handlers structure.
17964         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
17965         handlers structure.
17966         (set_option): Move from opts.c.
17967         * opts.c (common_handle_option): Update prototype and return value
17968         type.  Update calls to handle_option and enable_warning_as_error.
17969         (unknown_option_callback, post_handling_callback,
17970         lang_handle_option, target_handle_option): New.
17971         (handle_option, read_cmdline_option): Move to opts-common.c.
17972         (read_cmdline_options): Update prototype.  Update call to
17973         read_cmdline_option.
17974         (decode_options): Initialize and use handlers structure.
17975         (set_option): Move to opts-common.c.
17976         (enable_warning_as_error): Update prototype.  Update call to
17977         handle_option.
17978         * opts.h (struct cl_option_handler_func, struct
17979         cl_option_handlers): New.
17980         (handle_option, enable_warning_as_error): Update prototypes.
17981         (read_cmdline_option): Declare.
17982         * Makefile.in (opts-common.o): Update dependencies.
17983
17984 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17985
17986         * config/arm/arm.c (params.h): Include.
17987         (arm_override_options): Tune gcse-unrestricted-cost.
17988         * config/arm/t-arm (arm.o): Define dependencies.
17989
17990 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17991
17992         PR target/42495
17993         PR middle-end/42574
17994         * basic-block.h (get_dominated_to_depth): Declare.
17995         * dominance.c (get_dominated_to_depth): New function, use
17996         get_all_dominated_blocks as a base.
17997         (get_all_dominated_blocks): Use get_dominated_to_depth.
17998
17999         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
18000         (hoist_exprs): Remove.
18001         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
18002         (compute_code_hoist_vbeinout): Add debug print outs.
18003         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
18004
18005         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
18006         quadratic behavior.
18007         * params.h (MAX_HOIST_DEPTH): New macro.
18008         * doc/invoke.texi (max-hoist-depth): Document.
18009
18010 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18011
18012         PR rtl-optimization/40956
18013         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
18014         constants.
18015
18016 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18017
18018         PR target/42495
18019         PR middle-end/42574
18020         * config/arm/arm.c (legitimize_pic_address): Use
18021         gen_calculate_pic_address pattern to emit calculation of PIC address.
18022         (will_be_in_index_register): New function.
18023         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
18024         (thumb1_legitimate_address_p): Use it provided !strict_p.
18025         * config/arm/arm.md (calculate_pic_address): New expand and split.
18026
18027 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18028
18029         PR target/42495
18030         PR middle-end/42574
18031         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
18032         * config/arm/arm.md (define_split "J", define_split "K"): Make
18033         IRA/reload friendly.
18034
18035 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18036
18037         * gcse.c (insert_insn_end_basic_block): Update signature, remove
18038         unused checks.
18039         (pre_edge_insert, hoist_code): Update.
18040
18041 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18042
18043         PR target/42495
18044         PR middle-end/42574
18045         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
18046
18047 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18048
18049         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
18050
18051 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18052
18053         PR rtl-optimization/40956
18054         PR target/42495
18055         PR middle-end/42574
18056         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
18057         for hoisting.
18058         (hoist_code): Count occurences in current block too.
18059
18060 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18061
18062         * gcse.c (struct expr:max_distance): New field.
18063         (doing_code_hoisting_p): New static variable.
18064         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
18065         simple expressions, don't change behavior for PRE.  Set max_distance.
18066         (insert_expr_in_table): Set new max_distance field.
18067         (hash_scan_set): Update.
18068         (hoist_expr_reaches_here_p): Stop search after max_distance
18069         instructions.
18070         (find_occr_in_bb): New static function.  Use it in ...
18071         (hoist_code): Calculate sizes of basic block before any changes are
18072         done.  Pass max_distance to hoist_expr_reaches_here_p.
18073         (one_code_hoisting_pass): Set doing_code_hoisting_p.
18074
18075         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
18076         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
18077         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
18078         macros.
18079         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
18080         Document.
18081
18082 2010-07-27  Jeff Law  <law@redhat.com>
18083             Maxim Kuvyrkov  <maxim@codesourcery.com>
18084
18085         * gcse.c (compute_transpout, transpout): Remove, move logic
18086         to prune_expressions.
18087         (compute_pre_data): Move pruning of trapping expressions ...
18088         (prune_expressions): ... here.  New static function.
18089         (compute_code_hoist_data): Use it.
18090         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
18091
18092 2010-07-27  Xinliang David Li  <davidxl@google.com>
18093
18094         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
18095         (rewrite_use_address): Adjust iv update position when needed.
18096
18097 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18098
18099         * dbgcnt.def (hoist_insn): New debug counter.
18100         * gcse.c (hoist_code): Use it.
18101
18102 2010-07-27  Xinliang David Li  <davidxl@google.com>
18103
18104         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
18105         (niter_for_single_dom_exit): Passes additional parameter.
18106         (iv_period): Fix comments.
18107         (may_eliminate_iv): Handles multiple exit loops properly.
18108         (free_tree_niter_desc): New function.
18109         (free_loop_data): Frees up loop iteration descriptors.
18110
18111 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
18112
18113         PR target/44542
18114         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
18115         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
18116         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
18117         (expand_one_var): Don't consider DECL_ALIGN for variables for
18118         which expand_one_stack_var_at has been already called.
18119
18120         PR testsuite/44701
18121         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
18122         constraints on IA-64.
18123
18124 2010-07-27  Jie Zhang  <jie@codesourcery.com>
18125
18126         PR target/44290
18127         Revert:
18128         2010-07-23  Jie Zhang  <jie@codesourcery.com>
18129
18130         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
18131         false if ! tree_versionable_function_p.
18132
18133 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
18134
18135         * dwarf2out.c (add_data_member_location_attribute): Use
18136         add_AT_unsigned instead of add_AT_int if offset is non-negative.
18137
18138 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18139
18140         * postreload.c (try_replace_in_use): New static function.
18141         (reload_combine_recognize_const_pattern): Use it here.  Allow
18142         substituting into a final add insn, and substituting into a memory
18143         reference in an insn that sets the reg.
18144
18145 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
18146
18147         * common.opt (o): Add MissingArgError.
18148         * doc/options.texi (MissingArgError): Document.
18149         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
18150         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
18151         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
18152         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
18153         * langhooks.h (struct lang_hooks): Remove missing_argument.
18154         * optc-gen.awk: Handle MissingArgError and output new structure
18155         field initializers.
18156         * opts.c (read_cmdline_option): Use missing_argument_error field
18157         instead of missing_argument langhook.
18158         * opts.h (struct cl_option): Add missing_argument_error field.
18159         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
18160
18161 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
18162
18163         PR target/29090
18164         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
18165         Darwin64 ABI, for zero-sized objects.
18166
18167 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
18168
18169         PR target/35491
18170         PR target/29090
18171
18172         Merge from Apple local 4.2.1.
18173         2005-05-11  Stan Shebs  <shebs@apple.com>
18174         Fix 64-bit varargs for Darwin (Radar 4028089).
18175         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
18176         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
18177         Add argument, add case for 8-byte register half-filled with a float.
18178         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
18179         single-precision floats specially.
18180
18181 2010-07-27  Ira Rosen  <irar@il.ibm.com>
18182
18183         PR tree-optimization/44152
18184         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
18185         complex numbers for further check.
18186         (vect_supported_load_permutation_p): Check nodes with
18187         complex numbers.
18188
18189 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
18190
18191         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
18192         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
18193         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
18194         (LANG_HOOKS_INITIALIZER): Add new hooks.
18195         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
18196         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
18197         and complain_wrong_lang_p.  Update init_options prototype.
18198         * c-objc-common.c (c_initialize_diagnostics): First call
18199         c_common_initialize_diagnostics.
18200         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
18201         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
18202         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
18203         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
18204         (hook_uint_void_0): New.
18205         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
18206         (hook_uint_void_0): New.
18207         * opts-common.c (decode_cmdline_option,
18208         decode_cmdline_options_to_array): Also fill in canonical_option field.
18209         * opts.c (complain_wrong_lang): Use langhook to determine whether
18210         to complain instead of special-casing LTO.
18211         (decode_options): Separate lang_mask determination with
18212         option_lang_mask hook from call of init_options hook.
18213         * opts.h (struct cl_decoded_option): Add canonical_option.
18214
18215 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
18216
18217         PR tree-optimization/45083
18218         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
18219
18220 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18221
18222         * postreload.c (reload_combine_recognize_const_pattern): Move test
18223         for limiting the insn movement to the right scope.
18224
18225         PR rtl-optimization/45051
18226         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
18227         than reg_mentioned_p.
18228
18229 2010-07-26  Richard Henderson  <rth@redhat.com>
18230
18231         PR target/44132
18232         * tree-emutls.c: New file.
18233         * Makefile.in (OBJS-common): Add it.
18234         * tree-pass.h (pass_ipa_lower_emutls): Declare.
18235         * passes.c (init_optimization_passes): Add it.
18236
18237         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
18238         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
18239         * expr.c (emutls_var_address): Delete.
18240         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
18241         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
18242         (emutls_finish): Delete.
18243         * toplev.c (compile_file): Don't call it.
18244         * tree.h (emutls_decl): Delete.
18245         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
18246         (emutls_finish, emutls_finalize_control_var): Delete.
18247         (emutls_object_type): Move to tree-emutls.c.
18248         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
18249         default_emutls_var_fields, get_emutls_object_type,
18250         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
18251         default_emutls_var_init): Likewise.
18252         (get_variable_section): Don't special case emutls.
18253         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
18254         default_elf_select_section, default_unique_section,
18255         default_encode_section_info): Likewise.
18256         * varpool.c (decide_is_variable_needed): Likewise.
18257         * gimple-iterator.c (update_call_edge_frequencies): New
18258         (gsi_insert_on_edge_immediate): Use it.
18259         (gsi_insert_seq_on_edge_immediate): Likewise.
18260         (gsi_commit_one_edge_insert): Likewise.
18261
18262         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
18263         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
18264         (x86_64_elf_unique_section): Likewise.
18265
18266 2010-07-26  Jan Hubicka  <jh@suse.cz>
18267
18268         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
18269         GTY((skip)).
18270
18271 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
18272
18273         * target.def (output_source_filename): New hook.
18274         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
18275         * doc/tm.texi: Regenerate.
18276         * toplev.c (output_file_directive) Remove function.
18277         * toplev.h (output_file_directive) Remove.
18278         * output.h (default_asm_output_source_filename,
18279         output_file_directive): Declare.
18280         * varasm.h (default_asm_output_source_filename,
18281         output_file_directive): New functions.
18282
18283         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18284         * config/mips/mips-protos.h (mips_output_filename): Remove.
18285         * config/mips/mips.c (mips_output_filename): Make Static.
18286         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
18287
18288 2010-07-26  Richard Guenther  <rguenther@suse.de>
18289
18290         PR tree-optimization/43784
18291         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
18292         if the destination is used by the call.
18293
18294 2010-07-26  Richard Guenther  <rguenther@suse.de>
18295
18296         PR middle-end/45073
18297         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
18298         SSA updating on being in SSA form.
18299
18300 2010-07-26  Richard Guenther  <rguenther@suse.de>
18301
18302         PR middle-end/45056
18303         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
18304
18305 2010-07-26  Richard Guenther  <rguenther@suse.de>
18306
18307         PR tree-optimization/45071
18308         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
18309         adjust op->opcode.
18310
18311 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
18312
18313         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
18314         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
18315         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
18316         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
18317         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
18318         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
18319         save_r31, return_r31, save_interrupt, return_interrupt,
18320         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
18321         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
18322         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
18323         new ABI requirements.
18324         (save_r6_r9, L_callt_save_r6_r9): Remove.
18325         * config/v850/predicates.md (even_reg_operand, disp23_operand,
18326         const_float_1_operand const_float_0_operand): New Predicates.
18327         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
18328         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
18329         * config/v850/t-v850: Update multilibs for new target variants.
18330         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
18331         * config/v850/t-v850e: Likewise.
18332         * config/v850/v850.c (v850_issue_rate): New.
18333         (v850_strict_argument_naming): New.
18334         (function_arg): Modify to generate a different ABI.
18335         (print_operand): Update case 'z' to support float modes.
18336         (output_move_single): Modify to generate appropriate and better
18337         assembly.
18338         (v850_float_z_comparison_operator, v850_select_cc_mode,
18339         v850_float_nz_comparison_operator,  v850_gen_float_compare,
18340         v850_gen_compare): New functions to support comparison of float values.
18341         (ep_memory_offset): Add support for V850E2 targets.
18342         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
18343         (INTERRUPT_REGPARM_NUM): Remove.
18344         (compute_register_save_size): Add extra case to save/restore long call.
18345         (use_prolog_function): New function to support prologue.
18346         (expand_prologue): Add support for V850E2 targets and modified
18347         as per the current ABI requirements.
18348         (expand_epilogue): Likewise.
18349         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
18350         (construct_save_jarl): Likewise.
18351         (construct_dispose_instruction): Update as per the current ABI
18352         requirements.
18353         (construct_prepare_instruction): Likewise.
18354         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
18355         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
18356         (CPP_SPEC): Updated to support v850e2 targets.
18357         (STRICT_ALIGNMENT): Modified.
18358         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
18359         (FIXED_REGISTERS): Likewise.
18360         (CALL_USED_REGISTERS): Likewise.
18361         (CONDITIONAL_REGISTER_USAGE): Updated.
18362         (HARD_REGNO_MODE_OK): Updated.
18363         (reg_class): Updated to add even registers.
18364         (REG_CLASS_NAMES): Likewise.
18365         (REG_CLASS_CONTENTS): Likewise.
18366         (REGNO_REG_CLASS): Updated for CC registers.
18367         (REG_CLASS_FROM_LETTER): Added support for even registers.
18368         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
18369         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
18370         ARG_POINTER_REGNUM): Updated.
18371         (FUNCTION_ARG_ADVANCE): Define.
18372         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
18373         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
18374         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
18375         (GO_IF_LEGITIMATE_ADDRESS): Updated.
18376         (SELECT_CC_MODE): Define.
18377         (REGISTER_NAMES): Updated to add psw and fcc registers.
18378         (ADDITIONAL_REGISTER_NAMES): Updated.
18379         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
18380         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
18381         * config/v850/v850.md (define_constants): Define new constants.
18382         (type): Update store,bit1,macc,div,fpu and single attributes.
18383         (cpu): New attribute.
18384         (cc): Add set_z attribute.
18385         (unsign23byte_load, sign23byte_load, unsign23hword_load,
18386         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
18387         23word_store): New instructions for 23-bit displacement load and store.
18388         (movqi_internal, movhi_internal): Update the attributes.
18389         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
18390         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
18391         the attributes.
18392         (v850_tst1): Modified using CC_REGNUM.
18393         (tstsi): Remove.
18394         (cmpsi): Modified as define_expand from define_insn.
18395         (cmpsi_insn, cmpsf, cmpdf): New instructions.
18396         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
18397         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
18398         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
18399         one_cmplsi2): Clobber the CC_REGNUM register.
18400         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
18401         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
18402         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
18403         (setf_insn, set_z_insn, set_nz_insn): New instructions for
18404         v850e2v3 target.
18405         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
18406         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
18407         targets.
18408         (sasf_1, sasf_2): Remove.
18409         (sasf): New instruction.
18410         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
18411         targets. CC_REGNUM register is clobbered and attributes are
18412         updated.
18413         (branch_z_normal, branch_z_invert, branch_nz_normal,
18414         branch_nz_invert): New branch related instructions.
18415         (jump): Updated the attributes.
18416         (switch): Update to support new targets. CC_REGNUM register is
18417         clobbered and attributes are updated.
18418         (call_internal_short, call_internal_long, call_value_internal_short,
18419         call_value_internal_long): Updated the attributes.
18420         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
18421         clobbered and attributes are updated.
18422         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
18423         Update to support new targets. CC_REGNUM register is clobbered.
18424         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
18425         instructions.
18426         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
18427         are updated.
18428         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
18429         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
18430         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
18431         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
18432         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
18433         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
18434         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
18435         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
18436         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
18437         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
18438         point instructions defined for V850e2v3 target.
18439         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
18440         Add support for V850E2 targets and CC_REGNUM register is clobbered.
18441         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
18442         support for new targets.
18443         * config/v850/v850-modes.def: New file.
18444         * config/v850/v850.opt(mstrict-align): Remove.
18445         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
18446         mv850e2v3): New command line options for V850.
18447         * config.gcc: Update the newly added files.
18448         * doc/invoke.texi: Update the newly added command line options for
18449         V850 target.
18450
18451 2010-07-26  Richard Guenther  <rguenther@suse.de>
18452
18453         PR tree-optimization/45052
18454         * ipa-pure-const.c (check_stmt): Check volatileness.
18455
18456 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
18457
18458         PR target/44707
18459         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
18460         * config/sparc/sparc.c: Include reload.h.
18461         (legitimize_tls_address): Rename into...
18462         (sparc_legitimize_tls_address): ...this.
18463         (legitimize_pic_address): Rename into...
18464         (sparc_legitimize_pic_address): ...this.
18465         (sparc_expand_move): Adjust to above renaming.
18466         (sparc_tls_referenced_p): Likewise.
18467         (sparc_legitimize_tls_address): Likewise.
18468         (sparc_legitimize_pic_address): Likewise.
18469         (sparc_legitimize_address): Likewise.
18470         (sparc_output_mi_thunk): Likewise.
18471         (sparc_legitimize_reload_address): New global function.  Recognize
18472         (lo_sum (high ...) ...) patterns generated by earlier passes.
18473         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
18474
18475 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
18476
18477         PR target/44484
18478         * config/sparc/predicates.md (memory_reg_operand): Delete.
18479         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
18480         (*sync_compare_and_swap): Encode the address form in the pattern.
18481         (*sync_compare_and_swapdi_v8plus): Likewise.
18482
18483 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
18484
18485         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
18486         Streamline paragraph on compatibility with the system compiler.
18487
18488 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
18489
18490         PR middle-end/45035
18491         * alias.c (true_dependence_1): Fix thinko in merge of old
18492         true_dependence and canon_true_dependence.
18493
18494 2010-07-23  Jan Hubicka  <jh@suse.cz>
18495
18496         * lto-streamer-out.c (write_symbol): Fix visibilities of external
18497         references.
18498
18499 2010-07-23  Le-Chun Wu  <lcwu@google.com>
18500
18501         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
18502         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
18503         and an unnecessary assignment.
18504         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
18505         self-assign warning.
18506         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
18507         unnecessary self-init.
18508
18509 2010-07-23  Richard Guenther  <rguenther@suse.de>
18510
18511         PR lto/43071
18512         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
18513         for -flto and -fwhopr.
18514
18515 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
18516
18517         PR target/41943
18518         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
18519         (stmp-int-hdrs): Prefix/postfix headers by include_next.
18520         * config.gcc (user_headers_inc_next_pre): New.
18521         (user_headers_inc_next_post): Likewise.
18522         (*-w64-mingw*): Use for float.h post-fixing, and for
18523         stddef.h/stdarg.h pre-fixing by include_next.
18524         * configure.ac (user_headers_inc_next_post): New.
18525         (user_headers_inc_next_pre): New.
18526         * configure: Regenerated.
18527
18528 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18529
18530         * configure.ac: Don't disable TLS on Solaris 8/9 by default
18531         Set tga_func for Solaris 2/x86 resp. SPARC.
18532         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
18533         (LIB_THREAD_LDFLAGS_SPEC): Define.
18534         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
18535         * configure: Regenerate.
18536         * config.in: Regenerate.
18537         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
18538         -pthread, -threads, LIB_TLS_SPEC with -pthread.
18539         * doc/install.texi (Specific, *-*-solaris2*): Document use of
18540         alternate thread libraries on Solaris 8.
18541         Document TLS patch requirements.
18542         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
18543         Document tls.
18544
18545         PR target/18788
18546         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
18547         -shared.
18548
18549 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
18550
18551         * tree.h (struct tree_base): Add nameless_flag bitfield.
18552         (TYPE_NAMELESS, DECL_NAMELESS): Define.
18553         * omp-low.c (create_omp_child_function, scan_omp_parallel,
18554         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
18555         DECL_ARTIFICIAL where needed.
18556         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
18557         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
18558         has DECL_NAMELESS set.
18559
18560 2010-07-23  Martin Jambor  <mjambor@suse.cz>
18561
18562         PR tree-optimization/44915
18563         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
18564         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
18565         (analyze_function): Likewise.
18566
18567 2010-07-23  Martin Jambor  <mjambor@suse.cz>
18568
18569         PR tree-optimization/44914
18570         * tree-sra.c (sra_modify_function_body): Return true if CFG was
18571         changed, add purging dead eh edges.
18572         (ipa_sra_modify_function_body): Return true if CFG was changed,
18573         simplify purging dead eh edges.
18574         (modify_function): Return true if CFG was changed.
18575         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
18576         was changed.
18577         (ipa_early_sra): Likewise.
18578
18579 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18580
18581         PR target/44290
18582         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
18583         if "naked".
18584         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
18585         false if ! tree_versionable_function_p.
18586
18587 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
18588
18589         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
18590         * ipa-pure-const.c (special_builtlin_state): Remove
18591         BUILT_IN_ARGS_INFO case.
18592         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
18593         * builtins.c (expand_builtin): Likewise.
18594         (expand_builtin_args_info): Remove.
18595         * doc/tm.texi (__builtin_args_info): Remove.
18596         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
18597         * doc/tm.text.in: Likewise.
18598
18599 2010-07-23  Richard Guenther  <rguenther@suse.de>
18600
18601         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
18602         (lto_symtab_merge_decls_2): Likewise.
18603         * tree-ssa.c (useless_type_conversion_p): Likewise.
18604         * lto-streamer-in.c (input_gimple_stmt): Likewise.
18605         * gimple.c (gtc_visited2, gtc_ob2): Remove.
18606         (struct type_pair_d): Make same_p an array indexed by mode.
18607         Update comment.
18608         (lookup_type_pair): Update initialization.
18609         (struct sccs): Adjust same_p type.
18610         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
18611         Adjust.
18612         (print_gimple_types_stats): Likewise.
18613         * gimple.h (enum gtc_mode): New.
18614         (gimple_types_compatible_p): Adjust prototype.
18615
18616 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
18617
18618         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
18619         again after processing insn.
18620
18621 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18622
18623         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
18624         proper words when !tree_versionable_function_p.
18625
18626 2010-07-23  Richard Guenther  <rguenther@suse.de>
18627
18628         PR tree-optimization/45037
18629         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
18630
18631 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18632
18633         * doc/extend.texi: Remove IP2K from the description of naked attribute.
18634         Add MCORE instead.
18635
18636 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18637
18638         PR lto/44992
18639         * lto-opts.c (lto_write_options): Add NULL file_data argument to
18640         lto_get_section_name.
18641         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
18642         * lto-streamer-out.c (produce_asm): Likewise.
18643         (copy_function): Likewise.
18644         (produce_symtab): Likewise.
18645         (produce_asm_for_decls): Likewise.
18646         * lto-streamer.c (lto_get_section_name): Add file_data argument.
18647         Rewrite to add random postfix to LTO sections.
18648         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
18649         (lto_get_section_name): Add file_data argument to prototype.
18650
18651 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18652
18653         * lto-section-in.c (lto_section_name): Synchronize names
18654         with lto_get_section_name.
18655
18656 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18657
18658         * lto-opts.c (lto_read_file_options): Check for missing section.
18659
18660 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18661
18662         * ira.c (check_allocation): Correctly handle the case where an allocno
18663         with two objects was allocated to a single reg.
18664
18665 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
18666
18667         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
18668         (is_widening_mult_p): Likewise.
18669         (convert_to_widen): Use them.
18670         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
18671         well as integer ones.
18672
18673 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
18674
18675         * alias.c (true_dependence_1): New function, merged version of
18676         true_dependence and canon_true_dependence.
18677         (true_dependence): Simplify.
18678         (canon_true_dependence): Simplify.
18679
18680 2010-07-22  Richard Henderson  <rth@redhat.com>
18681
18682         PR target/45027
18683         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
18684         of V4SFmode for the SSE saves; increase stack alignment if needed.
18685         (ix86_gimplify_va_arg): Don't increase stack alignment here.
18686
18687 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
18688
18689         PR bootstrap/45028
18690         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
18691         call cprop_find_used_regs again via note_uses.
18692
18693 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
18694
18695         * alias.c (get_alias_set): Fix formatting issues.
18696
18697 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
18698
18699         PR middle-end/44878
18700         * stmt.c (expand_value_return):  Call promote_function_mode with
18701         a for_return argument of 2 when returning by reference.
18702
18703 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
18704
18705         PR debug/45024
18706         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
18707         unit DIE if we can find the scope DIE.
18708
18709 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18710
18711         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
18712         changed.  Initialize OBJECT_SUBWORD.
18713         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
18714         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
18715         all callers changed.
18716         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
18717         (finish_allocno): Likewise.
18718         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
18719         (remove_low_level_allocnos): Likewise.
18720         (update_bad_spill_attribute): Likewise.
18721         (setup_min_max_allocno_live_range_point): Likewise.
18722         (sort_conflict_id_map): Likewise.
18723         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
18724         (ior_hard_reg_conflicts): New function.
18725         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
18726         (compress_conflict_vecs): Iterate over objects, not allocnos.
18727         (ira_add_live_range_to_object): New function.
18728         (object_range_compare_func): Renamed from allocno_range_compare_func.
18729         All callers changed.
18730         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
18731         subobjects, widen the min/max range of the lowest-order object to
18732         potentially include all other such low-order objects.
18733         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
18734         (check_allocation): Likewise.  Use more fine-grained tests for register
18735         conflicts.
18736         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
18737         allocno subobjects.
18738         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
18739         choices about which bits to set in each set.  Don't use
18740         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
18741         using the multiple sets we computed.
18742         (push_allocno_to_stack): Iterate over allocno subobjects.
18743         (all_conflicting_hard_regs_coalesced): New static function.
18744         (setup_allocno_available_regs_num): Use it.
18745         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
18746         subobjects.
18747         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
18748         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18749         by ALLOCNO_NUM_OBJECTS.
18750         (calculate_spill_cost): Likewise.
18751         (color_pass): Express if statement in a more normal way.
18752         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
18753         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
18754         (setup_slot_coalesced_allocno_live_ranges): Likewise.
18755         (allocno_reload_assign): Likewise.
18756         (ira_reassign_pseudos): Likewise.
18757         (fast_allocation): Likewise.
18758         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18759         (print_allocno_conflicts): Likewise.
18760         (ira_build_conflicts): Likewise.
18761         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
18762         callers changed.  Test subword 0 of each allocno for conflicts.
18763         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
18764         callers changed.  Iterate over allocno subobjects.
18765         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
18766         * ira-int.h (struct ira_allocno): New member: num_objects.
18767         Rename object to objects and change it into an array.
18768         (ALLOCNO_OBJECT): Add new argument N.
18769         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
18770         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
18771         (ior_hard_reg_conflicts): Declare.
18772         (ira_add_live_range_to_object): Declare.
18773         (ira_allocno_object_iterator): New.
18774         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
18775         (FOR_EACH_ALLOCNO_OBJECT): New macro.
18776         * ira-lives.c (objects_live): Renamed from allocnos_live; all
18777         uses changed.
18778         (allocnos_processed): New sparseset.
18779         (make_object_born): Renamed from make_allocno_born; take an
18780         ira_object_t argument.  All callers changed.
18781         (make_object_dead): Renamed from make_allocno_dead; take an
18782         ira_object_t argument.  All callers changed.
18783         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
18784         All callers changed.
18785         (mark_pseudo_regno_live): Iterate over allocno subobjects.
18786         (mark_pseudo_regno_dead): Likewise.
18787         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
18788         functions.
18789         (mark_ref_live): Detect subword accesses and call
18790         mark_pseudo_regno_subword_live as appropriate.
18791         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
18792         (process_bb_nodes_live): Deal with object-related updates first; set
18793         and test bits in allocnos_processed to avoid computing allocno
18794         statistics more than once.
18795         (create_start_finish_chains): Iterate over objects, not allocnos.
18796         (print_object_live_ranges): New function.
18797         (print_allocno_live_ranges): Use it.
18798         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
18799         and objects_live.
18800
18801 2010-07-22  Richard Guenther  <rguenther@suse.de>
18802
18803         PR lto/42451
18804         * gimple.c (gtc_next_dfs_num): New global.
18805         (struct sccs): Make value a union, add integer same_p member.
18806         (gtc_visit): New function.
18807         (gimple_types_compatible_p_1): New function, split out from ...
18808         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
18809         (iterative_hash_gimple_type): Adjust for sccs change.
18810
18811 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18812
18813         PR tree-optimization/44891
18814         * tree-sra.c: Include gimple-pretty-print.h.
18815         (replace_uses_with_default_def_ssa_name): Renamed to
18816         get_repl_default_def_ssa_name, return the new SSA name instead of
18817         replacing the old one.
18818         (sra_modify_assign): Dump a message when removing a load, if the LHS
18819         is an SSA_NAME, do not do any propagation, just set the RHS to a
18820         default definition SSA NAME, type convert if necessary.
18821         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
18822
18823 2010-07-22  Richard Guenther  <rguenther@suse.de>
18824
18825         PR tree-optimization/45017
18826         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
18827         TYPE_PRECISION of integral types in addition to size.
18828
18829 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18830
18831         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
18832         when no C library is specified.
18833
18834 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18835
18836         * ipa-prop.h (struct ipa_node_params): Updated comment.
18837         (struct ipa_edge_args): Likewise.
18838         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
18839
18840 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18841
18842         * cgraphunit.c (verify_edge_count_and_frequency): New function.
18843         (verify_cgraph_node): Verify frequencies of indirect edges.
18844         * tree-inline.c (tree_function_versioning): Update frequencies of
18845         indirect edges.
18846
18847 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18848
18849         PR target/43698
18850         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
18851         Set *arm_rev to be predicable.
18852
18853 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18854
18855         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
18856         (LINK_COMMAND_SPEC_A): New.
18857         (DSYMUTIL): New.
18858         (DSYMUTIL_SPEC): New.
18859         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
18860         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
18861
18862 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18863
18864         * calls.c (load_register_parameters): Move check for zero
18865         sized items so that only the call to
18866         mem_overlaps_already_clobbered_arg_p () is protected.
18867
18868 2010-07-22  Jan Hubicka  <jh@suse.cz>
18869
18870         * ipa-pure-const.c (varying_state): Break out from ...
18871         (get_function_state): ... here; always return varying_state
18872         when state would be NULL otherwise.
18873         (remove_node_data): Do not free varying state.
18874
18875 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18876
18877         PR bootstrap/44970
18878         PR middle-end/45009
18879         * postreload.c: Include "target.h".
18880         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18881         into account.
18882         (fixup_debug_insns): Don't copy the rtx.
18883         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18884         Don't copy when replacing.  Call fixup_debug_insns in the case where
18885         we merged one add with another.
18886         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18887         Try harder to determine whether we're picking a valid index register.
18888         Don't set store_ruid for an insn we're going to scan in the
18889         next iteration.
18890         (reload_combine): Remove unused code.
18891         (reload_combine_note_use): When updating use information for
18892         an old insn, ignore a use that occurs after store_ruid.
18893         * Makefile.in (postreload.o): Update dependencies.
18894
18895         * function.c (record_hard_reg_sets): Restrict the previous change
18896         to cases where the incoming nominal mode is the same as the
18897         incoming promoted mode and everything happens in MODE_INT.
18898
18899 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18900
18901         PR debug/45015
18902         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18903         ASM_OPERANDS_OUTPUT_IDX.
18904         (adjust_insn): For inline asm with multiple sets ensure first
18905         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18906         the insn.
18907
18908 2010-07-21  Richard Henderson  <rth@redhat.com>
18909
18910         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
18911         comparison for avoiding xmm register saves.  Emit the xmm register
18912         saves explicitly.
18913         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
18914         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
18915         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
18916         Remove patterns and the associated splitters.
18917
18918 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
18919
18920         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
18921         and imagine parts of a complex, so that they can have the same
18922         base and fall into the same group.
18923
18924 2010-07-21  Richard Guenther  <rguenther@suse.de>
18925
18926         PR lto/45018
18927         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
18928         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
18929         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
18930
18931 2010-07-21  Martin Jambor  <mjambor@suse.cz>
18932
18933         PR tree-optimization/44900
18934         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
18935         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
18936
18937 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
18938
18939         PR middle-end/44738
18940         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
18941
18942 2010-07-21  Richard Guenther  <rguenther@suse.de>
18943
18944         PR middle-end/45013
18945         * tree-ssa.c (useless_type_conversion_p): Dispatch to
18946         gimple_types_compatible_p only when in lto.
18947         * gimple.c (gimple_types_compatible_p): Use canonical types
18948         to speed up comparison.
18949
18950 2010-07-21  Richard Guenther  <rguenther@suse.de>
18951
18952         * tree-flow.h (referenced_var): Move define ...
18953         * tree-flow-inline.h (referenced_var): ... here as an inline
18954         function.  Assert here ...
18955         * tree-dfa.c (referenced_var_lookup): ... instead of here.
18956         * tree-ssa.c (maybe_optimize_var): Check if the variable
18957         is in referenced vars.
18958         (execute_update_addresses_taken): Remove old broken check.
18959         * gimple-pretty-print.c (pp_points_to_solution): Use
18960         referenced_var_lookup.
18961         * tree-into-ssa.c (dump_decl_set): Likewise.
18962
18963 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18964
18965         PR debug/45003
18966         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
18967         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
18968         ZERO_EXTEND here.
18969
18970 2010-07-20  Richard Henderson  <rth@redhat.com>
18971
18972         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
18973
18974 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18975
18976         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
18977         computing the sum of the stack pointer and a large constant.
18978         * config/arm/constraints.md (M): Remove superfluous parentheses.
18979         (Pc): New constraint.
18980
18981 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18982
18983         PR debug/45006
18984         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
18985         operand's type if exp is tcc_unary class tree.
18986
18987 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18988
18989         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
18990         Reverse sense of if_then_else condition.
18991
18992 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18993
18994         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
18995         * config/rs6000/rs6000.c (rs6000_override_options): Set
18996         rs6000_block_move_inline_limit appropriately.
18997         (expand_block_move): Use rs6000_block_move_inline_limit.
18998         * doc/invoke.texi (mblock-move-inline-limit): Document.
18999
19000 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
19001
19002         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
19003         FROM and TO.  All callers changed.  Don't look for tracked uses,
19004         just scan the RTL for DEBUG_INSNs and substitute.
19005         (reload_combine_recognize_pattern): Call fixup_debug_insns.
19006         (reload_combine): Ignore DEBUG_INSNs.
19007
19008 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
19009
19010         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
19011         depth to 8 from 5.
19012
19013         PR debug/45003
19014         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
19015         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
19016         instead of the result's type.
19017
19018 2010-07-20  Richard Guenther  <rguenther@suse.de>
19019
19020         PR tree-optimization/44977
19021         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
19022         SSA form.
19023
19024 2010-07-20  Richard Guenther  <rguenther@suse.de>
19025
19026         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
19027         (lto_symtab_merge_decls_2): Likewise.
19028         * gimple.h (gimple_types_compatible_p): Declare.
19029         * gimple.c (gimple_queue_type_fixup): Remove.
19030         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
19031         (gimple_compatible_complete_and_incomplete_type_p): New function.
19032         (gimple_types_compatible_p): Adjust.
19033         (gimple_register_type): Remove type fixup code.
19034         (print_gimple_types_stats): Adjust.
19035         (free_gimple_type_tables): Likewise.
19036         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
19037         * tree-ssa.c (useless_type_conversion_p): Likewise.
19038
19039 2010-07-20  Richard Guenther  <rguenther@suse.de>
19040
19041         PR middle-end/44971
19042         PR middle-end/44988
19043         * tree-ssa.c (maybe_optimize_var): New function split out from ...
19044         (execute_update_addresses_taken): ... here.
19045         (non_rewritable_mem_ref_base): Likewise.
19046         (execute_update_addresses_taken): Do not iterate over all referenced
19047         vars but just all local decls and parms.
19048         Properly check call and asm arguments and rewrite call arguments.
19049
19050 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
19051
19052         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
19053         to top level.
19054         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
19055         definitions ...
19056         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
19057         New macro.
19058         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
19059
19060 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
19061
19062         * gengtype.c (start_root_entry): New function, split out from
19063         write_root.  Check whether V is null and raise an error if so.
19064         (write_field_root): Check for V being null.  Don't raise an error here;
19065         set V to null instead.
19066         (write_root): Update comment above function.  Use start_root_entry.
19067
19068 2010-07-19  Xinliang David Li  <davidxl@google.com>
19069
19070         PR testsuite/44932
19071         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
19072         def edges.
19073         (find_uninit_use): Add dump.
19074         (is_use_properly_guarded): Ditto.
19075         (warn_uninitialized_phi): Ditto.
19076         (execute_late_warn_uninitialized): Ditto.
19077
19078 2010-07-19  Richard Guenther  <rguenther@suse.de>
19079
19080         PR middle-end/44941
19081         * expr.c (emit_block_move_hints): Move zero size check first.
19082         Move asserts to more useful places.
19083         * calls.c (load_register_parameters): Check for zero size.
19084
19085 2010-07-19  Richard Henderson  <rth@redhat.com>
19086
19087         * tree-optimize.c (execute_all_early_local_passes): New.  Change
19088         cgraph_state here ...
19089         (execute_early_local_optimizations): ... not here.  Remove.
19090         (pass_early_local_passes, pass_all_early_optimizations): Update.
19091
19092 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
19093
19094         * postreload.c (reload_combine_closest_single_use): Ignore the
19095         number of uses for DEBUG_INSNs.
19096         (fixup_debug_insns): New static function.
19097         (reload_combine_recognize_const_pattern): Use it.  Don't let the
19098         main loop be affected by DEBUG_INSNs.
19099         Really disallow moving adds past a jump insn.
19100         (reload_combine_recognize_pattern): Don't update use_ruid here.
19101         (reload_combine_note_use): Do it here.
19102         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
19103
19104 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
19105
19106         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
19107         of a loop.
19108         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
19109
19110 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
19111
19112         * config/i386/darwin.h: Define darwin_emit_branch_islands.
19113         (TARGET_MACHO_BRANCH_ISLANDS): New.
19114         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
19115         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
19116         default value.
19117         * config/i386/i386.c (output_pic_addr_const): Do not emit
19118         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
19119         (x86_output_mi_thunk): Adjust symbol creation.
19120         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
19121         Remove out of date comment.
19122         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
19123         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
19124         (DARWIN_GENERATE_ISLANDS): Ditto.
19125         (output_call):  Do not emit branch islands unless
19126         darwin_emit_branch_islands is set.
19127         * config/darwin.c: Declare darwin_emit_branch_islands.
19128         (machopic_indirect_data_reference): Do not emit unless
19129         darwin_emit_branch_islands is set.
19130         (darwin_override_options): Set darwin_emit_branch_islands
19131         where it is needed.
19132         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
19133
19134 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19135
19136         * doc/sourcebuild.texi (Effective-Target Keywords): Document
19137         sse_runtime, sse2_runtime.
19138
19139 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
19140
19141         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
19142         low half of a single-register SCmode return value before ORing
19143         it with the high half.
19144         * config/mips/mips16.S (MERGE_GPRf): Likewise.
19145
19146 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19147
19148         PR target/44805
19149         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
19150         on all targets.
19151
19152 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
19153
19154         PR target/42235
19155         * postreload.c (reload_cse_move2add): Return bool, true if anything.
19156         changed.  All callers changed.
19157         (move2add_use_add2_insn): Likewise.
19158         (move2add_use_add3_insn): Likewise.
19159         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
19160         reload_combine.
19161         (RELOAD_COMBINE_MAX_USES): Bump to 16.
19162         (last_jump_ruid): New static variable.
19163         (struct reg_use): New members CONTAINING_MEM and RUID.
19164         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
19165         (reload_combine_split_one_ruid, reload_combine_split_ruids,
19166         reload_combine_purge_insn_uses, reload_combine_closest_single_use
19167         reload_combine_purge_reg_uses_after_ruid,
19168         reload_combine_recognize_const_pattern): New static functions.
19169         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
19170         is true for our reg and that we have available index regs.
19171         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
19172         callers changed.  Use them to initialize fields in struct reg_use.
19173         (reload_combine): Initialize last_jump_ruid.  Be careful when to
19174         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
19175         Call reload_combine_recognize_const_pattern.
19176         (reload_combine_note_store): Update REAL_STORE_RUID field.
19177
19178 2010-07-16  Jason Merrill  <jason@redhat.com>
19179
19180         * Makefile.in (opts-common.o): Depend on options.h.
19181
19182 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
19183
19184         * tree.c (build_common_builtin_nodes): Use build_function_type_list
19185         instead of build_function_type.
19186         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
19187         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
19188
19189 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
19190
19191         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
19192         do all the work.
19193         (rs6000_emit_int_cmove): Use function pointers for insn generation.
19194         Don't force values into registers unnecessarily.
19195         (output_isel): Assert that we're not given conditions we can't handle.
19196         Delete corresponding code.
19197         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
19198         scc_comparison_operator constraint.  Permit 0 for the consequent
19199         operand.  Permit any GPR for the alternative operand.
19200         (isel_unsigned_<mode>): Likewise.
19201
19202 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
19203
19204         PR target/44942
19205         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
19206         argument to const_tree.
19207         * config/i386/i386.c (function_arg_advance): If padding needs to be
19208         inserted before argument, increment cum->words by number of padding
19209         words as well.
19210         (contains_aligned_value_p): Change argument to const_tree.
19211         (ix86_function_arg_boundary): Change second argument to const_tree.
19212
19213 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
19214
19215         PR target/42235
19216         * function.c (record_hard_reg_sets): New static function.
19217         (assign_parm_setup_reg): If an optab for extending exists and the
19218         generated code clobbbers no hard regs, emit the insn directly and
19219         create a REG_EQUIV note.
19220
19221 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
19222
19223         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
19224         TREE_CHAIN.
19225         * c-typeck.c (push_init_level): Likewise.
19226         (process_init_element): Likewise.
19227
19228 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
19229
19230         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
19231         (integer_three_node): Add.
19232         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
19233         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
19234         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
19235         of call build_int_cst.
19236         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
19237         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
19238         (find_interesting_uses_address): Ditto.
19239         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
19240         * tree-eh.c (lower_eh_constructs_2): Ditto.
19241         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
19242         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
19243         * expmed.c (expand_divmod): Ditto.
19244         * tree-mudflap.c (mx_register_decls): Ditto.
19245         * varasm.c (array_size_for_constructor): Ditto.
19246         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
19247         * c-parser.c (c_parser_postfix_expression): Ditto.
19248
19249 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
19250
19251         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
19252         New static variables.
19253         (reload_combine_recognize_pattern): New static function, broken out
19254         of reload_combine.
19255         (reload_combine): Use it.  Only initialize first_index_reg and
19256         last_index_reg once.
19257
19258 2010-07-15  Richard Henderson  <rth@redhat.com>
19259
19260         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
19261         when done.
19262
19263 2010-07-15  Jan Hubicka  <jh@suse.cz>
19264
19265         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
19266         comdats for broken gold.
19267         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
19268
19269 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
19270
19271         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
19272
19273 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
19274
19275         * tree.h (DECL_CHAIN): Define.
19276         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
19277         * c-decl.c: Likewise.
19278         * c-parser.c: Likewise.
19279         * c-typeck.c: Likewise.
19280         * cfgexpand.c: Likewise.
19281         * cgraph.c: Likewise.
19282         * cgraphunit.c: Likewise.
19283         * combine.c: Likewise.
19284         * config/alpha/alpha.c: Likewise.
19285         * config/arm/arm.c: Likewise.
19286         * config/frv/frv.c: Likewise.
19287         * config/i386/i386.c: Likewise.
19288         * config/i386/winnt-cxx.c: Likewise.
19289         * config/ia64/ia64.c: Likewise.
19290         * config/iq2000/iq2000.c: Likewise.
19291         * config/mep/mep.c: Likewise.
19292         * config/mips/mips.c: Likewise.
19293         * config/pa/som.h: Likewise.
19294         * config/rs6000/rs6000.c: Likewise.
19295         * config/s390/s390.c: Likewise.
19296         * config/sh/sh.c: Likewise.
19297         * config/sh/symbian-cxx.c: Likewise.
19298         * config/sparc/sparc.c: Likewise.
19299         * config/spu/spu.c: Likewise.
19300         * config/stormy16/stormy16.c: Likewise.
19301         * config/vxworks.c: Likewise.
19302         * config/xtensa/xtensa.c: Likewise.
19303         * coverage.c: Likewise.
19304         * dbxout.c: Likewise.
19305         * dwarf2out.c: Likewise.
19306         * emit-rtl.c: Likewise.
19307         * expr.c: Likewise.
19308         * function.c: Likewise.
19309         * gimple-low.c: Likewise.
19310         * gimple-pretty-print.c: Likewise.
19311         * gimplify.c: Likewise.
19312         * integrate.c: Likewise.
19313         * ipa-inline.c: Likewise.
19314         * ipa-prop.c: Likewise.
19315         * ipa-split.c: Likewise.
19316         * ipa-struct-reorg.c: Likewise.
19317         * ipa-type-escape.c: Likewise.
19318         * langhooks.c: Likewise.
19319         * lto-cgraph.c: Likewise.
19320         * omp-low.c: Likewise.
19321         * stor-layout.c: Likewise.
19322         * tree-cfg.c: Likewise.
19323         * tree-complex.c: Likewise.
19324         * tree-dfa.c: Likewise.
19325         * tree-dump.c: Likewise.
19326         * tree-inline.c: Likewise.
19327         * tree-mudflap.c: Likewise.
19328         * tree-nested.c: Likewise.
19329         * tree-object-size.c: Likewise.
19330         * tree-pretty-print.c: Likewise.
19331         * tree-sra.c: Likewise.
19332         * tree-ssa-live.c: Likewise.
19333         * tree-ssa-loop-niter.c: Likewise.
19334         * tree-ssa-math-opts.c: Likewise.
19335         * tree-ssa-reassoc.c: Likewise.
19336         * tree-ssa-sccvn.c: Likewise.
19337         * tree-ssa-structalias.c: Likewise.
19338         * tree-tailcall.c: Likewise.
19339         * tree-vrp.c: Likewise.
19340         * tree.c: Likewise.
19341         * var-tracking.c: Likewise.
19342         * varasm.c: Likewise.
19343
19344 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19345
19346         PR target/44877
19347         * config/spu/spu.c (spu_expand_builtin_1): Allow references
19348         (as well as pointers) as argument to mask_for_load builtins.
19349
19350 2010-07-15  Richard Guenther  <rguenther@suse.de>
19351
19352         PR tree-optimization/44946
19353         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
19354         with accessing only padding properly.
19355
19356 2010-07-15  Jan Hubicka  <jh@suse.cz>
19357
19358         * ipa.c (function_and_variable_visibility): Variables marked as used
19359         should not be localized.
19360
19361 2010-07-15  Jan Hubicka  <jh@suse.cz>
19362
19363         * cgraph.c: Include lto-streamer.h
19364         (change_decl_assembler_name): Work when assembler name hash is at place.
19365         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
19366         be sure to rename it to avoid name clash.
19367         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
19368         Localize hidden symbols only when locally defined.
19369
19370 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
19371
19372         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
19373
19374 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
19375             Kevin F. Quinn  <kevquinn@gentoo.org>
19376
19377         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
19378         * common.opt: Add -Wtrampolines.
19379         * doc/invoke.texi: Add -Wtrampolines.
19380
19381 2010-07-15  Jie Zhang  <jie@codesourcery.com>
19382
19383         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
19384         cortex_a8_issue_ls.
19385
19386 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
19387
19388         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
19389         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
19390
19391 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19392
19393         * config/spu/spu.c (reg_names): Remove prototype.
19394         (call_used_regs): Likewise.
19395
19396 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
19397
19398         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
19399         "unused" with attribute "used".
19400         (__JCR_END__): Likewise.
19401         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
19402         "used" attribute.
19403         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
19404
19405 2010-07-14  Richard Guenther  <rguenther@suse.de>
19406
19407         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
19408         (maybe_fixup_decls): Likewise.
19409         (input_gimple_stmt): Do not fixup anything.
19410         * lto-streamer-out.c (output_gimple_stmt): Make sure all
19411         non-automatic variable uses are wrapped inside a MEM_REF.
19412
19413 2010-07-14  Richard Henderson  <rth@redhat.com>
19414
19415         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
19416         for functions.
19417         * varasm.c (assemble_variable): Remove early exit for functions;
19418         assert that we're given a variable.
19419
19420 2010-07-14  Jie Zhang  <jie@codesourcery.com>
19421
19422         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
19423         cortex_a8_default when neon_type is not none.
19424
19425 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19426
19427         * lower-subreg.c (subreg_context): New static bitmap.
19428         (decompose_multiword_subregs): Allocate and free it.
19429         (find_decomposable_subregs): Set a bit in it for a register that
19430         occurs in a subreg that changes mode but not size.
19431         (can_decompose_p): Test it instead of non_decomposable_context.
19432
19433 2010-07-14  Richard Guenther  <rguenther@suse.de>
19434
19435         PR tree-optimization/44824
19436         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
19437         is_gimple_mem_ref_addr.
19438         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
19439         non-decl_address_invariant_p addresses.
19440
19441 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19442
19443         * reload.c (find_reloads): Revert code to penalize small register
19444         classes that was brought in with the IRA merge.
19445
19446 2010-07-14  Richard Guenther  <rguenther@suse.de>
19447
19448         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
19449         as base of ARRAY_REFs.
19450
19451 2010-07-14  Richard Guenther  <rguenther@suse.de>
19452
19453         PR middle-end/44930
19454         * tree-pretty-print.c (do_niy): Do not print a newline.
19455
19456 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19457
19458         * ira-int.h (struct ira_object): New.
19459         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
19460         (struct ira_allocno): Remove members min, max,
19461         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
19462         conflict_allocnos_num and conflict_vec_p.  Add new member object.
19463         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
19464         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
19465         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
19466         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
19467         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
19468         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
19469         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
19470         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
19471         an ira_object_t rather than ira_allocno_t.  All uses changed.
19472         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
19473         contains a vector of ira_object_t; all uses changed.
19474         (ira_objects_num): Declare variable.
19475         (ira_create_allocno_object): Declare function.
19476         (ira_conflict_vector_profitable_p): Adjust prototype.
19477         (ira_allocate_conflict_vec): Renamed from
19478         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
19479         (ira_allocate_object_conflicts): Renamed from
19480         ira_allocate_allocno_conflicts; first arg now ira_object_t.
19481         (struct ira_object_iterator): New.
19482         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
19483         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
19484         to conflict_vec_p.  All uses changed.
19485         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
19486         Changed to take into account that conflicts are now tracked for
19487         objects.
19488         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
19489         Args changed to accept ira_object_t.  All uses changed.
19490         (allocnos_conflict_p): New static function.
19491         (collected_conflict_objects): Renamed from collected_allocno_objects;
19492         now a vector of ira_object_t.  All uses changed.
19493         (build_conflict_bit_table): Changed to take into account that
19494         conflicts are now tracked for objects.
19495         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
19496         (print_allocno_conflicts, ira_build_conflicts): Likewise.
19497         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
19498         setup_allocno_left_conflicts_size, allocno_reload_assign,
19499         fast_allocation): Likewise.
19500         * ira-lives.c (make_hard_regno_born, make_allocno_born)
19501         process_single_reg_class_operands, process_bb_node_lives): Likewise.
19502         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
19503         Likewise.
19504         * ira-build.c (ira_objects_num): New variable.
19505         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
19506         contains a vector of ira_object_t; all uses changed.
19507         (ira_object_id_map_vec): Corresponding change.
19508         (object_pool): New static variable.
19509         (initiate_allocnos): Initialize it.
19510         (finish_allocnos): Free it.
19511         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
19512         New functions.
19513         (ira_create_allocno): Don't set members that were removed.
19514         (ira_set_allocno_cover_class): Don't change conflict hard regs.
19515         (merge_hard_reg_conflicts): Changed to take into account that
19516         conflicts are now tracked for objects.
19517         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
19518         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
19519         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
19520         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
19521         setup_min_max_conflict_allocno_ids, ):  Likewise.
19522         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
19523         to ira_object_t; all callers changed.
19524         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
19525         to ira_object_t, all callers changed.
19526         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
19527         to ira_object_t, all callers changed.
19528         (conflict_check, curr_conflict_check_tick): Renamed from
19529         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
19530         changed.
19531         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
19532         arg changed to ira_object_t, all callers changed.
19533         (create_cap_allocno): Call ira_create_allocno_object.
19534         (finish_allocno): Free the corresponding object.
19535         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
19536         callers changed.  Adjusted for dealing with objects.
19537         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
19538         dealing with objects.
19539         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
19540
19541         * ira-int.h (struct live_range): Rename allocno member to object
19542         and change type to ira_object_t.
19543         (struct ira_object): New member live_ranges.
19544         (struct ira_allocno): Remove member live_ranges.
19545         (ALLOCNO_LIVE_RANGES): Remove.
19546         (OBJECT_LIVE_RANGES): New macro.
19547         (ira_create_live_range, ira_copy_live_range_list,
19548         ira_merge_live_range_list, ira_live_ranges_intersect_p,
19549         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
19550         * ira-build.c (ira_create_object): Initialize live ranges here.
19551         (ira_create_allocno): Not here.
19552         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
19553         changed to ira_object_t, all callers changed.
19554         (copy_live_range): Rename from copy_allocno_live_range, all callers
19555         changed.
19556         (ira_copy_live_range_list): Rename from
19557         ira_copy_allocno_live_range_list, all callers changed.
19558         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
19559         all callers changed.
19560         (ira_live_ranges_intersect_p): Rename from
19561         ira_allocno_live_ranges_intersect_p, all callers changed.
19562         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
19563         callers changed.
19564         (ira_finish_live_range_list): Rename from
19565         ira_finish_allocno_live_range_list, all callers changed.
19566         (change_object_in_range_list): Rename from change_allocno_in_range_list,
19567         last arg changed to ira_object_t, all callers changed.
19568         (finish_allocno): Changed to expect live ranges in the allocno's object.
19569         (move_allocno_live_ranges, copy_allocno_live_ranges,
19570         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
19571         ira_flattening, ira_build): Likewise.
19572         * ira-color.c (allocnos_have_intersected_live_ranges_p,
19573         slot_coalesced_allocno_live_ranges_intersect,
19574         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
19575         * ira-conflicts.c (build_conflict_bit_table): Likewise.
19576         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
19577         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
19578         make_allocno_dead, create_start_finish_chains,
19579         remove_some_program_points_and_update_live_ranges,
19580         ira_debug_live_range_list): Likewise.
19581
19582         * ira-int.h (ira_object_conflict_iterator): Rename from
19583         ira_allocno_conflict_iterator.
19584         (ira_object_conflict_iter_init): Rename from
19585         ira_allocno_conflict_iter_init, second arg changed to
19586         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
19587         FOR_EACH_ALLOCNO_CONFLICT.
19588         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
19589         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
19590         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
19591         * ira-conflicts.c (print_allocno_conflicts): Likewise.
19592
19593 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
19594
19595         PR other/44874
19596         * tree-dump.c (dump_options): Add enumerate_locals entry.
19597         Add TDF_NOID exclusion to all entry.
19598         * tree-dump.h (dump_enumerated_decls): Declare.
19599         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
19600         Don't display type uid.
19601         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
19602         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
19603         * tree-ssa-live.c: Include gimple.h.
19604         (numbered_tree_d): New struct.
19605         (numbered_tree): New typedef.
19606         (DEF_VEC_O (numbered_tree): New.
19607         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
19608         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
19609         (dump_enumerated_decls): Likewise.
19610         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
19611         debug info and flag_dump_final_insns, call dump_enumerated_decls.
19612         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
19613         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
19614
19615 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
19616
19617         * expmed.h (MAX_BITS_PER_WORD): Move to...
19618         * defaults.h (MAX_BITS_PER_WORD): ...here.
19619
19620 2010-07-13  DJ Delorie  <dj@redhat.com>
19621
19622         * config/h8300/h8300.c (h8300_init_once): Default to
19623         -fstrict_volatile_bitfields.
19624
19625         * config/sh/sh.c (sh_override_options): Default to
19626         -fstrict_volatile_bitfields.
19627
19628         * config/rx/rx.c (rx_option_override): New.
19629
19630         * config/m32c/m32c.c (m32c_override_options): Default to
19631         -fstrict_volatile_bitfields.
19632
19633 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
19634
19635         * tree.h (build_function_call_expr): Delete.
19636         (build_call_expr_loc_array): New function.
19637         (build_call_expr_loc_vec): New function.
19638         * tree-flow.h (struct omp_region): Change type of ws_args field
19639         to a VEC.
19640         * builtins.c (build_function_call_expr): Delete.
19641         (build_call_expr_loc_array): New function.
19642         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
19643         (build_call_expr): Likewise.
19644         (build_call_expr_loc_vec): New function.
19645         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
19646         build_function_call_expr.
19647         * expr.c (emutls_var_address): Likewise.
19648         * varasm.c (emutls_common_1): Likewise.
19649         * omp-low.c (expand_omp_atomic_mutex): Likewise.
19650         (expand_omp_taskreg): Adjust for new type of region->ws_args.
19651         (get_ws_args_for): Return a VEC instead of a tree.
19652         (expand_parallel_call): Call build_call_expr_loc_vec instead of
19653         build_function_call_expr.
19654         * stor-layout.c (self_referential_size): Likewise.
19655
19656 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
19657
19658         PR testsuite/44701
19659         * recog.c (constrain_operands): Allow side-effects in memory
19660         operands if either < or > constraint is used, rather than if
19661         both < and > is used.
19662
19663 2010-07-13  Richard Guenther  <rguenther@suse.de>
19664
19665         PR middle-end/44911
19666         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
19667         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
19668         without name.
19669
19670 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
19671
19672         PR target/44761
19673         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
19674         to variable emited.
19675         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
19676         * config/sh/sh.md (symGOT_load): Likewise.
19677         (symDTPOFF2reg): Likewise.
19678         (symTPOFF2reg): Likewise.
19679
19680 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19681
19682         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
19683         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
19684
19685 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19686
19687         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
19688         explanation.
19689         Find ucontext_t * on Solaris 11.
19690         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
19691         Handle new Solaris 11 __sighndlr patterns.
19692
19693 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
19694
19695         PR debug/44901
19696         * vec.h (VEC_block_remove): Fix comment.
19697         * tree-ssa-live.c (remove_unused_locals): Don't use
19698         VEC_unordered_remove on local_decls, instead replace a single
19699         vector element in each iteration if at least one element had
19700         to be removed and VEC_truncate at the end.
19701         * omp-low.c (expand_omp_taskreg): Likewise.
19702
19703 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19704
19705         * c-decl.c (finish_function): Fix typo in comment.
19706
19707 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
19708
19709         PR bootstrap/44921
19710         * postreload.c (move2add_use_add3_insn): Silence gcc warning
19711         on min_regno.
19712
19713 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
19714
19715         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
19716         (simplify_stmt_using_ranges): Use it.
19717
19718 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19719
19720         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
19721         member.  Do not mark as GTY(()).
19722         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
19723         (spu_builtin_decls): New static variable.
19724         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
19725         (spu_init_builtins): Likewise.
19726         (spu_builtin_mul_widen_even): Likewise.
19727         (spu_builtin_mul_widen_odd): Likewise.
19728         (spu_builtin_mask_for_load): Likewise.
19729         (spu_builtin_vec_perm): Likewise.
19730         * config/spu/spu-c.c: Include "target.h".
19731         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
19732         of using spu_builtins[].fndecl.
19733
19734 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19735
19736         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
19737         imply -minterlink-mips16.
19738
19739 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19740
19741         * config/mips/mips.h (mips16_globals): Declare.
19742         (SWITCHABLE_TARGET): Define.
19743         * config/mips/mips.c: Include target-globals.h.
19744         (mips16_globals): New variable.
19745         (mips_set_mips16_mode): Use save_target_globals and
19746         restore_target_globals instead of target_reinit.
19747
19748 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19749
19750         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
19751         to say that the function can be called more than once.
19752         * target-globals.c (save_target_globals): Call init_reg_sets.
19753
19754 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19755
19756         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
19757         * bb-reorder.h: New file.
19758         * bb-reorder.c (default_target_bb_reorder): New variable.
19759         (this_target_bb_reorder): New conditional variable.
19760         (uncond_jump_length): Redefine as a macro.
19761         * target-globals.h (this_target_bb_reorder): Declare.
19762         (target_globals): Add a bb_reorder field.
19763         (restore_target_globals): Copy the bb_reorder field to
19764         this_target_bb-reorder.
19765         * target-globals.c: Include bb-reorder.h.
19766         (default_target_globals): Initialize the bb_reorder field.
19767         (save_target_globals): Likewise.
19768
19769 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19770
19771         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
19772         * gcse.h: New file.
19773         * gcse.c: Include gcse.h.
19774         (default_target_gcse): New variable.
19775         (this_target_gcse): New conditional variable.
19776         (can_copy): Redefine as a macro.
19777         (can_copy_init_p): New macro.
19778         (can_copy_p): Remove can_copy_init_p.
19779         * target-globals.h (this_target_gcse): Declare.
19780         (target_globals): Add a gcse field.
19781         (restore_target_globals): Copy the gcse field to this_target_gcse.
19782         * target-globals.c: Include gcse.h.
19783         (default_target_globals): Initialize the gcse field.
19784         (save_target_globals): Likewise.
19785
19786 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19787
19788         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
19789         and x_ira_prohibited_mode_move_regs_initialized_p.
19790         (ira_prohibited_mode_move_regs): Redefine as a macro.
19791         * ira.c (ira_prohibited_mode_move_regs): Delete.
19792         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
19793
19794 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19795
19796         * reload.h (target_reload): Add x_cached_reg_save_code and
19797         x_cached_reg_restore_code.
19798         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
19799         Redefine as macros.
19800
19801 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19802
19803         * Makefile.in (target-globals.o): Depend on builtins.h.
19804         * builtins.h: New file.
19805         * builtins.c: Include builtins.h.
19806         (default_target_builtins): New variable.
19807         (this_target_builtins): New conditional variable.
19808         (apply_args_mode, apply_result_mode): Redefine as macros.
19809         * target-globals.h (this_target_builtins): Declare.
19810         (target_globals): Add a builtins field.
19811         (restore_target_globals): Copy the builtins field to
19812         this_target_builtins.
19813         * target-globals.c: Include builtins.h.
19814         (default_target_globals): Initialize the builtins field.
19815         (save_target_globals): Likewise.
19816
19817 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19818
19819         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
19820         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
19821         from expmed.c.
19822         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
19823         (alg_hash, alg_hash_used_p): New macros.
19824         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
19825         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
19826         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
19827
19828 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19829
19830         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
19831         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
19832         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
19833         (this_op_costs, costs_classes): Redefine as macros.
19834         (record_reg_classes): Don't take op_costs as a parameter.
19835         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
19836         (scan_one_insn): Update call to record_operand_costs.
19837
19838 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19839
19840         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
19841         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
19842         (target_ira_int): New structure.
19843         (default_target_ira_int): Declare.
19844         (this_target_ira_int): Declare as a variable or define as a macro.
19845         (ira_reg_mode_hard_regset, ira_register_move_cost)
19846         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
19847         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
19848         (prohibited_class_mode_regs, ira_important_classes_num)
19849         (ira_important_classes, ira_reg_class_intersect)
19850         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
19851         (ira_reg_class_union): Redefine as macros.
19852         * ira.h (target_ira): New structure.
19853         (default_target_ira): Declare.
19854         (this_target_ira): Declare as a variable or define as a macro.
19855         (ira_available_class_regs, ira_hard_regno_cover_class)
19856         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
19857         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
19858         (ira_class_hard_regs_num): Redefine as macros.
19859         * ira.c (default_target_ira, default_target_ira_int): New variables.
19860         (this_target_ira, this_target_ira_int): New conditional variables.
19861         (ira_reg_mode_hard_regset, ira_memory_move_cost)
19862         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
19863         (ira_class_subset_p): Delete.
19864         (no_unit_alloc_regs): Redefine as a macro.
19865         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
19866         (ira_class_hard_regs_num, ira_class_hard_reg_index)
19867         (ira_available_class_regs): Delete.
19868         (alloc_reg_class_subclasses): Redefine as a macro.
19869         (ira_reg_class_cover_size, ira_reg_class_cover)
19870         (ira_important_classes_num, ira_important_classes)
19871         (ira_important_class_nums, ira_class_translate): Delete.
19872         (cover_class_order): Document the variable's lifetime.
19873         (reorder_important_classes): Don't set ira_important_class_nums.
19874         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19875         (ira_reg_class_super_classes, ira_reg_class_union)
19876         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19877         Delete.
19878         (setup_reg_class_nregs): Don't set ira_max_regs.
19879         (prohibited_class_mode_regs): Delete.
19880         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19881         (target_globals): Add ira and ira_int fields.
19882         (restore_target_globals): Copy the ira field to this_target_ira
19883         and the ira_int field to this_target_ira_int.
19884         * target-globals.c: Include ira-int.h.
19885         (default_target_globals): Initialize the ira and ira_int fields.
19886         (save_target_globals): Likewise.
19887
19888 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19889
19890         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19891         * cfgloop.h (target_cfgloop): New structure.
19892         (default_target_cfgloop): Declare.
19893         (this_target_cfgloop): Declare as a variable or define as a macro.
19894         (target_avail_regs, target_clobbered_regs, target_res_regs)
19895         (target_reg_cost, target_spill_cost): Redefine as macros.
19896         * cfgloopanal.c (default_target_cfgloop): New variable.
19897         (this_target_cfgloop): New conditional variable.
19898         (target_avail_regs, target_clobbered_regs, target_res_regs)
19899         (target_reg_cost, target_spill_cost): Delete.
19900         * target-globals.h (this_target_cfgloop): Declare.
19901         (target_globals): Add a cfgloop field.
19902         (restore_target_globals): Copy the cfgloop field to
19903         this_target_cfgloop.
19904         * target-globals.c: Include cfgloop.h.
19905         (default_target_globals): Initialize the cfgloop field.
19906         (save_target_globals): Likewise.
19907
19908 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19909
19910         * regs.h (target_regs): Add x_direct_load, x_direct_store and
19911         x_float_extend_from_mem.
19912         (direct_load, direct_store, float_extend_from_mem): New macros.
19913         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
19914
19915 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19916
19917         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
19918         (target-globals.o): Depend on $(LIBFUNCS_H).
19919         * libfuncs.h: Include hashtab.h.
19920         (libfunc_entry): Moved from optabs.c.
19921         (target_libfuncs): New structure.
19922         (default_target_libfuncs): Declare.
19923         (this_target_libfuncs): Declare as a variable or define as a macro.
19924         (libfunc_table): Redefine as a macro.
19925         * optabs.c (default_target_libfuncs): New variable.
19926         (this_target_libfuncs): New conditional variable.
19927         (libfunc_table): Delete.
19928         (libfunc_entry): Moved to optabs.h.
19929         (libfunc_hash): Redefine as a macro.
19930         (hash_libfunc, eq_libfunc): Fix comments.
19931         (init_optabs): Use libfunc_hash to detect cases where the function
19932         has already been called.  Clear the hash table instead of
19933         recreating it.
19934         * target-globals.h (this_target_libfuncs): Declare.
19935         (target_globals): Add a libfuncs field.
19936         (restore_target_globals): Copy the libfuncs field to
19937         this_target_libfuncs.
19938         * target-globals.c: Include libfuncs.h.
19939         (default_target_globals): Initialize the libfuncs field.
19940         (save_target_globals): Likewise.
19941
19942 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19943
19944         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
19945         in all dependency lists.
19946
19947 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19948
19949         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
19950         * optabs.h (target_optabs): New structure.
19951         (default_target_optabs): Declare.
19952         (this_target_optabs): Declare as a variable or define as a macro.
19953         (optab_table, convert_optab_table, direct_optab_table): Redefine
19954         as macros.
19955         * optabs.c (default_target_optabs): New variable.
19956         (this_target_optabs): New conditional variable.
19957         (optab_table, convert_optab_table, direct_optab_table): Delete.
19958         * target-globals.h (this_target_optabs): Declare.
19959         (target_globals): Add a optabs field.
19960         (restore_target_globals): Copy the optabs field to
19961         this_target_optabs.
19962         * target-globals.c: Include expr.h and optabs.h.
19963         (default_target_globals): Initialize the optabs field.
19964         (save_target_globals): Likewise.
19965
19966 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19967
19968         * flags.h (target_flagstate): Add x_flag_excess_precision.
19969         (flag_excess_precision): Redefine as a macro.
19970         * toplev.c (flag_excess_precision): Delete.
19971
19972 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19973
19974         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
19975         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
19976         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
19977         (no_caller_save_reg_set): Redefine as a macro.
19978         * reload.h (target_reload): Add x_caller_save_initialized_p and
19979         x_regno_save_mode.
19980         (caller_save_initialized_p): Redefine as a macro.
19981         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
19982         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
19983         (regno_save_mode): Redefine as a macro.
19984
19985 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19986
19987         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
19988         * expmed.h: New file.
19989         * expmed.c (default_target_costs): New variable.
19990         (this_target_costs): New conditional variable.
19991         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
19992         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
19993         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
19994         * target-globals.h (this_target_expmed): Declare.
19995         (target_globals): Add a expmed field.
19996         (restore_target_globals): Copy the expmed field to
19997         this_target_expmed.
19998         * target-globals.c: Include expmed.h.
19999         (default_target_globals): Initialize the expmed field.
20000         (save_target_globals): Likewise.
20001
20002 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20003
20004         * Makefile.in (target-globals.o): Depend on reload.h.
20005         * reload.h (target_reload): New structure.
20006         (default_target_reload): Declare.
20007         (this_target_reload): Declare as a variable or define as a macro.
20008         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
20009         * reload1.c (default_target_reload): New variable
20010         (this_target_reload): New conditional variable.
20011         (indirect_symref_ok, double_reg_address_ok): Delete.
20012         (spill_indirect_levels): Redefine as a macro.
20013         * target-globals.h (this_target_reload): Declare.
20014         (target_globals): Add a reload field.
20015         (restore_target_globals): Copy the reload field to
20016         this_target_reload.
20017         * target-globals.c: Include hard-reg-set.h.
20018         (default_target_globals): Initialize the reload field.
20019         (save_target_globals): Likewise.
20020
20021 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20022
20023         * rtl.h (target_rtl): Add x_static_reg_base_value.
20024         * alias.c (static_reg_base_value): Redefine as a macro.
20025
20026 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20027
20028         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
20029         (GTFILES): Remove reginfo.c.
20030         * rtl.h (target_rtl): Add x_top_of_stack.
20031         (top_of_stack): New macro.
20032         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
20033         (top_of_stack): Delete.
20034
20035 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20036
20037         * regs.h (target_regs): Add x_hard_regs_of_mode,
20038         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
20039         x_may_move_out_cost and x_last_mode_for_init_move_cost.
20040         (have_regs_of_mode, contains_reg_of_mode, move_cost)
20041         (may_move_in_cost, may_move_out_cost): Redefine as macros.
20042         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
20043         (may_move_in_cost, may_move_out_cost): Delete.
20044         (last_mode_for_init_move_cost): Redefine as a macro.
20045
20046 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20047
20048         * hard-reg-set.h (target_hard_regs): New structure.
20049         (default_target_hard_regs): Declare.
20050         (this_target_hard_regs): Declare as a variable or define as a macro.
20051         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
20052         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
20053         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
20054         (reg_class_size, reg_class_subclasses, reg_class_subunion)
20055         (reg_class_superunion, reg_names): Redefine as macros.
20056         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
20057         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
20058         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
20059         (reg_class_contents, reg_class_size, reg_class_subclasses)
20060         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
20061         (default_target_hard_regs): New variable
20062         (this_target_hard_regs, initial_call_really_used_regs)
20063         (initial_reg_alloc_order): New conditional variables.
20064         (initial_reg_names): New variable.
20065         (init_reg_sets): Assert that initial_call_really_used_regs,
20066         initial_reg_alloc_order and initial_reg_names
20067         are all the same size as their variable counterparts.  Use them to
20068         initialize those counterparts.
20069         * target-globals.h (this_target_hard_regs): Declare.
20070         (target_globals): Add a hard_regs field.
20071         (restore_target_globals): Copy the hard_regs field to
20072         this_target_hard_regs.
20073         * target-globals.c: Include hard-reg-set.h.
20074         (default_target_globals): Initialize the hard_regs field.
20075         (save_target_globals): Likewise.
20076
20077 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20078
20079         * Makefile.in (target-globals.o): Depend on $(RTL_H).
20080         * rtl.h (target_rtl): New structure.
20081         (default_target_rtl): Declare.
20082         (this_target_rtl): Declare as a variable or define as a macro.
20083         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
20084         Redefine as macros.
20085         * emit-rtl.c (default_target_rtl): New variable.
20086         (this_target_rtl): New conditional variable.
20087         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
20088         (return_address_pointer_rtx): Delete.
20089         (initial_regno_reg_rtx): New macro.
20090         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
20091         (init_emit_regs): Likewise.
20092         * target-globals.h (this_target_rtl): Declare.
20093         (target_globals): Add a rtl field.
20094         (restore_target_globals): Copy the rtl field to this_target_rtl.
20095         * target-globals.c: Include rtl.h.
20096         (default_target_globals): Initialize the rtl field.
20097         (save_target_globals): Likewise.
20098
20099 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20100
20101         * Makefile.in (target-globals.o): Depend on $(REGS_H).
20102         * regs.h (target_reg_modes): New structure.
20103         (default_target_reg_modes): Declare.
20104         (this_target_reg_modes): Declare as a variable or define as a macro.
20105         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
20106         * reginfo.c (default_target_reg_modes): New variable.
20107         (this_target_reg_modes): New conditional variable.
20108         (hard_regno_nregs, reg_raw_mode): Delete.
20109         * target-globals.h (this_target_regs): Declare.
20110         (target_globals): Add a regs field.
20111         (restore_target_globals): Copy the regs field to this_target_regs.
20112         * target-globals.c: Include regs.h.
20113         (default_target_globals): Initialize the regs field.
20114         (save_target_globals): Likewise.
20115
20116 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20117
20118         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
20119         * doc/tm.texi: Regenerate.
20120         * Makefile.in (OBJS-common): Add target-globals.o.
20121         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
20122         and target-globals.h.
20123         (target-globals.o): New rule.
20124         (GTFILES): Include $(srcdir)/target-globals.h.
20125         * defaults.h (SWITCHABLE_TARGET): Define.
20126         * gengtype.c (open_base_files): Add target-globals.h to the
20127         list of includes.
20128         * target-globals.h: New file.
20129         * target-globals.c: Likewise.
20130
20131         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
20132         * flags.h (target_flag_state): New structure.
20133         (default_target_flag_state): Declare.
20134         (this_target_flag_state): Declare as a variable or define as a macro.
20135         (align_loops_log): Redefine as a macro.
20136         (align_loops_max_skip, align_jumps_log): Likewise.
20137         (align_jumps_max_skip, align_labels_log): Likewise.
20138         (align_labels_max_skip, align_functions_log): Likewise.
20139         * toplev.c (default_target_flag_state): New variable.
20140         (this_target_flag_state): New conditional variable.
20141         (align_loops_log): Delete.
20142         (align_loops_max_skip, align_jumps_log): Likewise.
20143         (align_jumps_max_skip, align_labels_log): Likewise.
20144         (align_labels_max_skip, align_functions_log): Likewise.
20145         * target-globals.h (this_target_flag_state): Declare.
20146         (target_globals): Add a flag_state field.
20147         (restore_target_globals): Copy the flag_state field to
20148         this_target_flag_state.
20149         * target-globals.c: Include flags.h.
20150         (default_target_globals): Initialize the flag_state field.
20151         (save_target_globals): Likewise.
20152
20153 2010-07-12  Jie Zhang  <jie@codesourcery.com>
20154
20155         * postreload.c (reg_symbol_ref[]): New.
20156         (move2add_use_add2_insn): New.
20157         (move2add_use_add3_insn): New.
20158         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
20159         (move2add_note_store): Likewise.
20160
20161 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
20162
20163         PR rtl-optimization/44752
20164         * genautomata.c (main): Don't emit an empty file even if there
20165         is no automaton.
20166
20167 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20168
20169         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
20170         ix86_solaris_return_in_memory.
20171         * config/i386-protos.h: Reflect this.
20172         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
20173         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
20174         Move ...
20175         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
20176
20177 2010-07-12  Jie Zhang  <jie@codesourcery.com>
20178
20179         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
20180         align the stack when it's going to be saved.
20181
20182 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20183
20184         PR pch/14940
20185         * config/host-solaris.c (mmap_fixed): New function.
20186         (sol_gt_pch_get_address): Use it.
20187         (sol_gt_pch_use_address): Likewise.
20188
20189 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20190
20191         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
20192         pentiumpro on Solaris 8 and 9/x86.
20193         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
20194         Document SSE/SSE2 support.
20195         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
20196
20197 2010-07-12  Andi Kleen  <ak@linux.intel.com>
20198
20199         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
20200         instead of gcc_assert to print better error message for multiple
20201         prevailing defs.
20202
20203 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
20204
20205         * config/i386/i386.c (ix86_asm_output_function_label): Change format
20206         string placeholder from 0x%x to %#x.
20207         (ix86_code_end): Use putc to output '\n'.
20208         (ix86_print_operand) <case ';'>: Use putc to output ';'.
20209
20210 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
20211
20212         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
20213         in directive -export.
20214
20215 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
20216
20217         * reginfo.h (reg_classes_intersect_p): Change arguments type to
20218         reg_class_t.
20219         * rtl.h (reg_classes_intersect_p): Adjust prototype.
20220
20221         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20222         Remove macros.
20223         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
20224         rs6000_memory_move_cost): Remove
20225         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
20226         TARGET_MEMORY_MOVE_COST): Define.
20227         (rs6000_register_move_cost): Make static. Change arguments type from
20228         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
20229         (rs6000_memory_move_cost): Make static. Change arguments type from
20230         'enum reg_class' to reg_class_t.
20231
20232 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
20233
20234         PR middle-end/42505
20235         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
20236         lookup code into....
20237         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
20238         new functions.
20239         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
20240         * cfgloopanal.c (target_clobbered_regs): Define.
20241         (init_set_costs): Initialize target_clobbered_regs.
20242         (estimate_reg_pressure_cost): Add call_p argument.  When true,
20243         adjust the number of available registers to exclude the
20244         call-clobbered registers.
20245         * cfgloop.h (target_clobbered_regs): Declare.
20246         (estimate_reg_pressure_cost): Adjust declaration.
20247         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
20248         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
20249         (determine_set_costs): Dump target_clobbered_regs.
20250         (loop_body_includes_call): New function.
20251         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
20252         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
20253         call_p flag through.
20254         (best_gain_for_invariant): Likewise.
20255         (find_invariants_to_move): Likewise.
20256         (move_single_loop_invariants): Likewise, using already-computed
20257         has_call field.
20258
20259 2010-07-10  Richard Guenther  <rguenther@suse.de>
20260             Joern Rennecke  <joern.rennecke@embecosm.com>
20261
20262         PR debug/44832
20263         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
20264         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
20265         unless they have DECL_IGNORED_P set.
20266
20267 2010-07-10  Richard Guenther  <rguenther@suse.de>
20268
20269         PR lto/44889
20270         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
20271         helper function.
20272         (gimple_types_compatible_p): Similar to pointed-to
20273         types allow and merge a mix of complete and incomplete aggregate.
20274         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
20275         (iterative_hash_gimple_type): Adjust for that.
20276
20277 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
20278
20279         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
20280
20281 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
20282
20283         PR objc/44140
20284         * config/darwin.c (output_objc_section_asm_op): Save and restore
20285         section when outputting ObjC section list.
20286
20287 2010-07-09  Jan Hubicka  <jh@suse.cz>
20288
20289         * lto-streamer-out.c (produce_symtab): Do not write alias
20290         cgraph/varpool nodes.
20291
20292 2010-07-09  Jan Hubicka  <jh@suse.cz>
20293
20294         * tree-inline.c (declare_return_variable): Fix ICE while
20295         inlining DECL_BY_VALUE function not in SSA form
20296
20297 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
20298
20299         PR tree-optimization/44576
20300         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
20301         New.  Pull out from is_loop_prefetching_profitable to implement
20302         the trip count to ahead ratio heuristic.
20303         (mem_ref_count_reasonable_p): New.  Pull out from
20304         is_loop_prefetching_profitable to implement the instruction to
20305         memory reference ratio heuristic.  Also consider not reasonable if
20306         the memory reference count is above a threshold (to avoid
20307         explosive compilation time.
20308         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
20309         is_loop_prefetching_profitable to implement the instruction to
20310         prefetch ratio heuristic.
20311         (is_loop_prefetching_profitable): Removed.
20312         (loop_prefetch_arrays): Distribute the cost analysis across the
20313         function to allow early exit of the prefetch analysis.
20314         is_loop_prefetching_profitable is splitted into three functions,
20315         with each one called as early as possible.
20316         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
20317         number of memory references in a loop is considered too many.
20318
20319 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
20320
20321         * reload.c (find_reloads): Don't clear badop if we have a winreg
20322         alternative, but not win, and the class only has fixed regs.
20323         * hard-reg-set.h (class_only_fixed_regs): Declare.
20324         * reginfo.c (class_only_fixed_regs): New array.
20325         (init_reg_sets_1): Initialize it.
20326         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
20327         discourage alternatives using the stack pointer.
20328
20329         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
20330
20331         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
20332
20333         * config/arm/arm.md (cbranchqi4): Fix array size.
20334         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
20335         calculating length.
20336
20337 2010-07-09  Richard Guenther  <rguenther@suse.de>
20338
20339         * gimple.c (struct type_fixup_s): New struct and VEC type.
20340         (gimple_register_type_fixups): New static global.
20341         (gimple_queue_type_fixup): New function.
20342         (gimple_types_compatible_p): Queue type fixups instead of
20343         applying them here.
20344         (gimple_register_type): Apply queued fixups for the
20345         canonical type.  Empty the type fixup queue.
20346
20347 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
20348
20349         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
20350         * configure: Regenerate.
20351         * config.in: Ditto.
20352
20353 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
20354             Denys Vlasenko  <dvlasenk@redhat.com>
20355             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
20356
20357         PR tree-optimization/28632
20358         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
20359         (extract_range_from_binary_expr): Further optimize
20360         BIT_AND_EXPR and BIT_IOR_EXPR.
20361
20362 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
20363
20364         * tree-if-conv.c (fold_or_predicates): New.
20365         (add_to_predicate_list): Call it.
20366
20367 2010-07-09  Richard Guenther  <rguenther@suse.de>
20368
20369         PR middle-end/44890
20370         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
20371         if base is a pointer.
20372         * tree-cfg.c (verify_expr): Update MEM_REF checking.
20373
20374 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
20375
20376         PR target/44877
20377         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
20378         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
20379         builtin mask for load/store builtins.
20380
20381 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
20382
20383         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
20384         for "lock addl".
20385         * configure: Regenerate.
20386         * config/i386/i386.c (ix86_print_operand) <case ';'>:
20387         Remove TARGET_MACHO.
20388
20389 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
20390
20391         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
20392         default ISA flags.
20393         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
20394
20395 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
20396
20397         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
20398
20399 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
20400
20401         * config/picochip/picochip.md (commsTestPort): Emit more
20402         efficient sequence for tstport instruction.
20403
20404 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
20405
20406         * config/i386/i386.c (ix86_veclib_handler): Make static.
20407
20408 2010-07-09  Richard Guenther  <rguenther@suse.de>
20409
20410         PR tree-optimization/44852
20411         * tree-ssa-alias.c: Include toplev.h for exact_log2.
20412         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
20413         in MEM_REF.
20414         (indirect_refs_may_alias_p): Likewise.
20415         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
20416
20417 2010-07-09  Richard Guenther  <rguenther@suse.de>
20418
20419         PR tree-optimization/44882
20420         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
20421         sets do conflict.
20422         (vectorizable_load): Likewise.
20423
20424 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
20425
20426         PR target/40657
20427         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
20428         All callers changed.
20429         Handle the case when we're called for the epilogue.
20430         (thumb_unexpanded_epilogue): Use it.
20431         (thumb1_expand_epilogue): Likewise.
20432
20433 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
20434
20435         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
20436         both ranges are range_int_cst_p with non-negative minimum,
20437         try harder to derive smaller range.
20438
20439 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20440
20441         * genrecog.c: Include diagnostic-core.h before toplev.h.
20442         * genoutput.c: Likewise.
20443         * genextract.c: Likewise.
20444         * genautomata.c: Likewise.
20445         * genemit.c: Likewise.
20446         * genpeep.c: Likewise.
20447         * genattrtab.c: Likewise.
20448         * genconditions.c: Likewise.
20449         * genpreds.c: Likewise.
20450
20451 2010-07-08  Andi Kleen  <ak@linux.intel.com>
20452
20453         * lto-section-in.c (lto_section_name): Add missing comma.
20454
20455 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
20456
20457         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
20458         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
20459         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
20460         (ia64_override_options): Rename to...
20461         (ia64_option_override): ... this one. Make static.
20462
20463 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20464
20465         PR middle-end/44843
20466         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
20467         pointed-to type of the offset in a MEM_REF to compute the alignment.
20468
20469 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
20470
20471         * final.c (final_scan_insn): Replace
20472         TARGET_UNWIND_INFO macro check by unwind_emit
20473         hook NULL check.
20474         * targhooks.c (default_unwind_emit): Removed.
20475         * targhooks.h (default_unwind_emit): Likewise.
20476         * target.def (unwind_emit): Set default value to NULL.
20477
20478         * config/i386/i386-protos.h (ix86_asm_output_function_label):
20479         New prototype.
20480         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
20481         for NULL fntype argument and allow 64-bit targets.
20482         (ix86_asm_output_function_label): New function.
20483         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
20484         (ix86_handle_fndecl_attribute): Likewise.
20485         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
20486         * doc/doc/tm.texi: Regenerated.
20487         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
20488         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
20489         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
20490         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
20491         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
20492         * config/elfos.h: Likewise.
20493         * config/i386/cygming.h: Likewise.
20494         * config/netbsd-aout.h: Likewise.
20495         * config/openbsd.h: Likewise.
20496         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
20497         by ix86_asm_output_function_label function call.
20498         * varasm.c (assemble_start_function): Use
20499         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
20500
20501 2010-07-08  Jan Hubicka  <jh@suse.cz>
20502
20503         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
20504         New function.
20505         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
20506         Declare.
20507         * ipa-cp.c (ipcp_estimate_growth): Use it.
20508         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
20509         Likewise.
20510
20511 2010-07-08  Jan Hubicka  <jh@suse.cz>
20512
20513         * tree-inline.c (declare_return_variable): Allocate annotation for new
20514         temporary.
20515
20516 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
20517
20518         PR tree-optimization/44710
20519         * tree-if-conv.c (parse_predicate): New.
20520         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
20521         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
20522
20523 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
20524
20525         * common.opt (ftree-loop-if-convert): New flag.
20526         * doc/invoke.texi (ftree-loop-if-convert): Documented.
20527         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
20528         when flag_tree_loop_if_convert is set.
20529
20530 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
20531
20532         * config/i386/i386.c: Use short syntax for function calls
20533         through function pointers.
20534         * config/i386/i386.md: Ditto.
20535
20536 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20537
20538         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
20539
20540 2010-07-08  Richard Guenther  <rguenther@suse.de>
20541
20542         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
20543         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
20544
20545 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
20546
20547         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
20548         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
20549         (loc_list_from_tree): Likewise.
20550         (output_loc_operands): Handle outputting DW_OP_const[48]u
20551         with loc->dtprel set.
20552         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
20553
20554 2010-07-08  Jan Hubicka  <jh@suse.cz>
20555
20556         * ipa.c: Include pointer-set.h
20557         (cgraph_externally_visible_p): New attribute ALIASED;
20558         when in LTO, hidden symbols are local unless they are aliased.
20559         (function_and_variable_visibility): Compute aliased nodes;
20560         handle LTO and hidden symbol on functions and vars.
20561         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
20562         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
20563
20564 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20565
20566         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20567         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20568         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20569         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20570         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20571         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
20572         (ix86_gen_probe_stack_range): Likewise.
20573         (override_options): Set them.
20574         (ix86_target_stack_probe): New function.
20575         (ix86_compute_frame_layout): Force use of push instructions to
20576         save registers if stack checking with probes is enabled.
20577         (get_scratch_register_on_entry): New function.
20578         (release_scratch_register_on_entry): Likewise.
20579         (ix86_adjust_stack_and_probe): Likewise.
20580         (output_adjust_stack_and_probe): Likewise.
20581         (ix86_emit_probe_stack_range): Likewise.
20582         (output_probe_stack_range): Likewise.
20583         (ix86_expand_prologue): Emit stack checking code if static built-in
20584         stack checking is enabled.
20585         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
20586         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
20587         (output_adjust_stack_and_probe): Likewise.
20588         (output_probe_stack_range): Likewise.
20589         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20590         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
20591         TARGET_STACK_PROBE.
20592         (allocate_stack_worker_64): Likewise.
20593         (allocate_stack): Likewise.
20594         (adjust_stack_and_probe): New insn.
20595         (probe_stack_range): Likewise.
20596
20597 2010-07-08  Richard Guenther  <rguenther@suse.de>
20598
20599         PR tree-optimization/44831
20600         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
20601         a MEM_REF preserving TBAA info of the original dereference.
20602         Dereference the original pointer if the address is not invariant.
20603         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
20604         at least one invariant address that we are going to dereference.
20605
20606 2010-07-08  Richard Guenther  <rguenther@suse.de>
20607
20608         PR tree-optimization/44861
20609         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
20610         information when building MEM_REFs.
20611         (vectorizable_load): Likewise.
20612         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
20613
20614 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20615
20616         * config/sol2-c.c: Do not include diagnostic-core.h.
20617
20618 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20619
20620         PR bootstrap/44768
20621         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
20622         with respect to current_function_decl. Pass decl of the function.
20623         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
20624         * ipa-inline.c (compute_inline_parameters): Pass decl to
20625         estimated_stack_frame_size.
20626
20627 2010-07-08  Richard Guenther  <rguenther@suse.de>
20628
20629         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
20630         New function.
20631         (valueize_refs): Call it.
20632
20633 2010-07-08  Richard Guenther  <rguenther@suse.de>
20634
20635         PR rtl-optimization/44838
20636         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
20637         SSA form do not use pointer equivalence.
20638
20639 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20640
20641         * dwarf2out.c (AT_linkage_name): Delete.
20642         (add_linkage_attr): New function.
20643         (add_linkage_name): Call it to emit the linkage attribute.
20644         (dwarf2out_finish): Likewise.
20645         (move_linkage_attr): Explicitly accept both attribute variants.
20646
20647 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20648
20649         * toplev.h: Do not include diagnostic-core.h.
20650         Include diagnostic-core.h in every file that includes toplev.h.
20651         * c-tree.h: Do not include toplev.h.
20652         * pretty-print.h: Update comment.
20653         * Makefile.in: Update dependencies.
20654         * alias.c: Include diagnostic-core.h in every file that includes
20655         toplev.h.
20656         * attribs.c: Likewise.
20657         * auto-inc-dec.c: Likewise.
20658         * bb-reorder.c: Likewise.
20659         * bt-load.c: Likewise.
20660         * caller-save.c: Likewise.
20661         * calls.c: Likewise.
20662         * cfg.c: Likewise.
20663         * cfganal.c: Likewise.
20664         * cfgbuild.c: Likewise.
20665         * cfgcleanup.c: Likewise.
20666         * cfghooks.c: Likewise.
20667         * cfgloop.c: Likewise.
20668         * combine.c: Likewise.
20669         * config/alpha/alpha.c: Likewise.
20670         * config/arc/arc.c: Likewise.
20671         * config/arm/arm.c: Likewise.
20672         * config/arm/pe.c: Likewise.
20673         * config/avr/avr.c: Likewise.
20674         * config/bfin/bfin.c: Likewise.
20675         * config/cris/cris.c: Likewise.
20676         * config/crx/crx.c: Likewise.
20677         * config/darwin-c.c: Likewise.
20678         * config/darwin.c: Likewise.
20679         * config/fr30/fr30.c: Likewise.
20680         * config/frv/frv.c: Likewise.
20681         * config/h8300/h8300.c: Likewise.
20682         * config/host-darwin.c: Likewise.
20683         * config/i386/i386.c: Likewise.
20684         * config/i386/netware.c: Likewise.
20685         * config/i386/nwld.c: Likewise.
20686         * config/i386/winnt-cxx.c: Likewise.
20687         * config/i386/winnt-stubs.c: Likewise.
20688         * config/i386/winnt.c: Likewise.
20689         * config/ia64/ia64-c.c: Likewise.
20690         * config/ia64/ia64.c: Likewise.
20691         * config/iq2000/iq2000.c: Likewise.
20692         * config/lm32/lm32.c: Likewise.
20693         * config/m32c/m32c-pragma.c: Likewise.
20694         * config/m32c/m32c.c: Likewise.
20695         * config/m32r/m32r.c: Likewise.
20696         * config/m68hc11/m68hc11.c: Likewise.
20697         * config/m68k/m68k.c: Likewise.
20698         * config/mcore/mcore.c: Likewise.
20699         * config/mep/mep-pragma.c: Likewise.
20700         * config/mep/mep.c: Likewise.
20701         * config/mmix/mmix.c: Likewise.
20702         * config/mn10300/mn10300.c: Likewise.
20703         * config/moxie/moxie.c: Likewise.
20704         * config/pa/pa.c: Likewise.
20705         * config/pdp11/pdp11.c: Likewise.
20706         * config/picochip/picochip.c: Likewise.
20707         * config/rs6000/rs6000-c.c: Likewise.
20708         * config/rs6000/rs6000.c: Likewise.
20709         * config/rx/rx.c: Likewise.
20710         * config/s390/s390.c: Likewise.
20711         * config/score/score.c: Likewise.
20712         * config/score/score3.c: Likewise.
20713         * config/score/score7.c: Likewise.
20714         * config/sh/sh.c: Likewise.
20715         * config/sh/symbian-base.c: Likewise.
20716         * config/sh/symbian-c.c: Likewise.
20717         * config/sh/symbian-cxx.c: Likewise.
20718         * config/sol2-c.c: Likewise.
20719         * config/sol2.c: Likewise.
20720         * config/sparc/sparc.c: Likewise.
20721         * config/spu/spu.c: Likewise.
20722         * config/stormy16/stormy16.c: Likewise.
20723         * config/v850/v850-c.c: Likewise.
20724         * config/v850/v850.c: Likewise.
20725         * config/vax/vax.c: Likewise.
20726         * config/vxworks.c: Likewise.
20727         * config/xtensa/xtensa.c: Likewise.
20728         * convert.c: Likewise.
20729         * cse.c: Likewise.
20730         * cselib.c: Likewise.
20731         * dbgcnt.c: Likewise.
20732         * dbxout.c: Likewise.
20733         * ddg.c: Likewise.
20734         * dominance.c: Likewise.
20735         * emit-rtl.c: Likewise.
20736         * explow.c: Likewise.
20737         * expmed.c: Likewise.
20738         * fixed-value.c: Likewise.
20739         * fold-const.c: Likewise.
20740         * fwprop.c: Likewise.
20741         * gcse.c: Likewise.
20742         * ggc-common.c: Likewise.
20743         * ggc-page.c: Likewise.
20744         * ggc-zone.c: Likewise.
20745         * gimple-low.c: Likewise.
20746         * gimplify.c: Likewise.
20747         * graph.c: Likewise.
20748         * haifa-sched.c: Likewise.
20749         * ifcvt.c: Likewise.
20750         * implicit-zee.c: Likewise.
20751         * integrate.c: Likewise.
20752         * ira-build.c: Likewise.
20753         * ira-color.c: Likewise.
20754         * ira-conflicts.c: Likewise.
20755         * ira-costs.c: Likewise.
20756         * ira-lives.c: Likewise.
20757         * ira.c: Likewise.
20758         * lists.c: Likewise.
20759         * loop-doloop.c: Likewise.
20760         * loop-iv.c: Likewise.
20761         * lto-opts.c: Likewise.
20762         * lto-symtab.c: Likewise.
20763         * main.c: Likewise.
20764         * modulo-sched.c: Likewise.
20765         * optabs.c: Likewise.
20766         * params.c: Likewise.
20767         * plugin.c: Likewise.
20768         * postreload-gcse.c: Likewise.
20769         * postreload.c: Likewise.
20770         * predict.c: Likewise.
20771         * profile.c: Likewise.
20772         * real.c: Likewise.
20773         * regcprop.c: Likewise.
20774         * reginfo.c: Likewise.
20775         * regmove.c: Likewise.
20776         * reorg.c: Likewise.
20777         * resource.c: Likewise.
20778         * rtl.c: Likewise.
20779         * rtlanal.c: Likewise.
20780         * sched-deps.c: Likewise.
20781         * sched-ebb.c: Likewise.
20782         * sched-rgn.c: Likewise.
20783         * sdbout.c: Likewise.
20784         * sel-sched-dump.c: Likewise.
20785         * sel-sched-ir.c: Likewise.
20786         * simplify-rtx.c: Likewise.
20787         * stmt.c: Likewise.
20788         * stor-layout.c: Likewise.
20789         * store-motion.c: Likewise.
20790         * targhooks.c: Likewise.
20791         * tree-cfg.c: Likewise.
20792         * tree-cfgcleanup.c: Likewise.
20793         * tree-dump.c: Likewise.
20794         * tree-eh.c: Likewise.
20795         * tree-inline.c: Likewise.
20796         * tree-nomudflap.c: Likewise.
20797         * tree-object-size.c: Likewise.
20798         * tree-optimize.c: Likewise.
20799         * tree-outof-ssa.c: Likewise.
20800         * tree-phinodes.c: Likewise.
20801         * tree-profile.c: Likewise.
20802         * tree-ssa-ccp.c: Likewise.
20803         * tree-ssa-coalesce.c: Likewise.
20804         * tree-ssa-live.c: Likewise.
20805         * tree-ssa-loop-niter.c: Likewise.
20806         * tree-ssa-loop-prefetch.c: Likewise.
20807         * tree-ssa-loop.c: Likewise.
20808         * tree-ssa-structalias.c: Likewise.
20809         * tree-ssa-uninit.c: Likewise.
20810         * tree-ssa.c: Likewise.
20811         * tree-vect-data-refs.c: Likewise.
20812         * tree-vect-loop-manip.c: Likewise.
20813         * tree-vect-loop.c: Likewise.
20814         * tree-vect-patterns.c: Likewise.
20815         * tree-vect-stmts.c: Likewise.
20816         * tree-vrp.c: Likewise.
20817         * varasm.c: Likewise.
20818         * vec.c: Likewise.
20819         * web.c: Likewise.
20820         * xcoffout.c: Likewise.
20821
20822 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
20823
20824         * gengtype.c (write_field_root): New function.
20825         (write_root): Use it.
20826
20827 2010-07-07  Wei Guozhi  <carrot@google.com>
20828
20829         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20830         of lowest bits to lshift/compare): Add a missing line.
20831
20832 2010-07-07  Wei Guozhi  <carrot@google.com>
20833
20834         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20835         of lowest bits to lshift/compare): New.
20836
20837 2010-07-07  Tom Tromey  <tromey@redhat.com>
20838
20839         * doc/tm.texi: Update.
20840         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
20841         Add @hook.
20842         * target.def (want_debug_pub_sections): New hook.
20843         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
20844         * dwarf2out.c (add_pubname_string): Check
20845         targetm.want_debug_pub_sections.
20846         (add_pubname): Likewise.
20847         (add_pubtype): Likewise.
20848
20849 2010-07-07  Jie Zhang  <jie@codesourcery.com>
20850
20851         * genautomata.c (output_automata_list_min_issue_delay_code):
20852         Correctly decompress min_issue_delay.
20853
20854 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20855
20856         PR rtl-optimization/44404
20857         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
20858         possible, use reg_overlap_mentioned_p instead.
20859
20860 2010-07-07  Duncan Sands  <baldrick@free.fr>
20861
20862         PR middle-end/41355
20863         * tree.c (build_function_type_skip_args): Copy the original type using
20864         build_distinct_type_copy rather than copy_node.
20865
20866 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20867
20868         PR target/44850
20869         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20870         revision 161876.
20871         (ix86_expand_prologue): Likewise.
20872         (ix86_handle_fndecl_attribute): Likewise.
20873         (ix86_asm_declare_function_name): Likewise.
20874         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20875         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20876         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20877         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20878         * doc/extend.texi: Likewise.
20879
20880 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20881
20882         PR target/44844
20883         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20884         retry if the carry flag isn't valid.
20885         (rdrand<mode>_1): New.
20886
20887 2010-07-07  Richard Guenther  <rguenther@suse.de>
20888
20889         PR middle-end/44790
20890         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20891         for expanding the constant offset for MEM_REFs.
20892
20893 2010-07-07  Richard Guenther  <rguenther@suse.de>
20894
20895         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20896         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20897         * gimple.h (is_gimple_operand): Remove.
20898         * gimple.c (is_gimple_operand): Likewise.
20899         (walk_gimple_op): Fix wi->val_only setting for calls.
20900         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20901         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20902         invalid gimple calls.
20903
20904 2010-07-06  Jan Hubicka  <jh@suse.cz>
20905
20906         * lto-cgraph.c (output_cgraph): Add missing declaration.
20907
20908 2010-07-06  Jan Hubicka  <jh@suse.cz>
20909
20910         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
20911         partition.
20912
20913 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
20914
20915         * doc/gimple.texi (GIMPLE_DEBUG): Document.
20916         * doc/rtl.texi (Debug Information): New node.
20917         (NOTE_INSN_VAR_LOCATION): Document.
20918         (debug_insn): Likewise.
20919         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
20920
20921 2010-07-07  Jan Hubicka  <jh@suse.cz>
20922
20923         With parts by Richard Guenther.
20924
20925         PR middle-end/44813
20926         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
20927         for functions passed by reference.
20928         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
20929         in memory when passed by reference.
20930         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
20931         beggining.
20932         * ipa-split.c (split_function): Cleanup way return value is passed;
20933         handle SSA DECL_BY_REFERENCE retvals.
20934         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
20935         DECL_BY_REFERENCE is set.
20936         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
20937         find_what_p_points_to): Handle RESULT_DECL.
20938         * tree-inline.c (declare_return_variable): Get new entry_block argument;
20939         when passing by reference ensure that RESULT_DECL is gimple_val.
20940         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
20941         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
20942
20943 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20944
20945         PR rtl-optimization/44787
20946         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
20947         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
20948
20949 2010-07-06  Jan Hubicka  <jh@suse.cz>
20950
20951         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
20952         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
20953         with body can prevail.
20954         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
20955         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
20956         * cgraph.c (cgraph_get_node_or_alias): New function.
20957         * cgraph.h (cgraph_get_node_or_alias): Declare.
20958
20959 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
20960
20961         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
20962         support.
20963         (ix86_expand_prologue): Likewise.
20964         (ix86_handle_fndecl_attribute): Likewise.
20965         (ix86_asm_declare_function_name): New function for
20966         ASM_DECLARE_FUNCTION_NAME.
20967         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
20968         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
20969         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
20970         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
20971         * doc/extend.texi: Adjust documentation about ms_hook_prologue
20972         attribute.
20973
20974 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20975
20976         * config/i386/i386.md (immediate_operand): New mode attribute.
20977
20978         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
20979         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
20980         using P mode iterator.
20981         (pro_epilogue_adjust_stack_di_2): Rename from
20982         pro_epilogue_adjust_stack_rex64_2.
20983
20984         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
20985
20986 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20987
20988         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
20989         through gen_mov_insv_1 function pointer.
20990         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
20991         gen_truncxf<mode>2 through gen_truncxf function pointer.
20992         (remainder<mode>3): Ditto.
20993         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
20994         (allocate_stack): Call gen_allocate_stack_worker_64 or
20995         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
20996         function pointer.
20997         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
20998         function pointer.
20999
21000 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
21001
21002         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
21003         operand constraint instead of <r><i>m.
21004
21005 2010-07-06  Richard Guenther  <rguenther@suse.de>
21006
21007         PR middle-end/44828
21008         * convert.c (convert_to_integer): Watch out for overflowing
21009         MULT_EXPR as well.
21010
21011 2010-07-05  Jan Hubicka  <jh@suse.cz>
21012
21013         * lto-streamer.c (write_symbol_vec): Rename to ...
21014         (write_symbol) ... this one; write only symbol given and when
21015         present in cache. Sanity check that what is defined is present
21016         in cgraph/varpool with body/finalized decl.
21017         (write_symbols_of_kind): Remove.
21018         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
21019         pairs to produce symtab.
21020         (produce_asm_for_decls): Update call of produce_symtab; don't do so
21021         when doing WPA streaming.
21022
21023 2010-07-05  Jan Hubicka  <jh@suse.cz>
21024
21025         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
21026         function is still available to fold into.
21027
21028 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
21029
21030         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
21031         * function.h (struct_function): Change type of local_decls field
21032         to a VEC.
21033         (add_local_decl): New function.
21034         (FOR_EACH_LOCAL_DECL): New macro.
21035         * cfgexpand.c (init_vars_expansion): Adjust for new type of
21036         cfun->local_decls.
21037         (estimated_stack_frame_size): Likewise.
21038         (expand_used_vars): Likewise.
21039         * cgraphbuild.c (build_cgraph_edges): Likewise.
21040         * function.c (instantiate_decls_1): Likewise.
21041         * ipa-struct-reorg.c (build_data_structure): Likewise.
21042         * ipa-type-escape.c (analyze_function): Likewise.
21043         * lto-streamer-in.c (input_function): Likewise.
21044         * lto-streamer-out.c (output_function): Likewise.
21045         * tree-ssa-live.c (remove_unused_locals): Likewise.
21046         * tree.c (free_lang_data_in_decl): Likewise.
21047         (find_decls_types_in_node): Likewise.
21048         * omp-low.c (remove_exit_barrier): Likewise.
21049         (expand_omp_taskreg): Likewise.
21050         (list2chain): Rename to...
21051         (vec2chain): ...this.  Adjust.
21052         * cgraphunit.c (assemble_thunk): Call add_local_decl.
21053         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
21054         * gimple-low.c (record_vars_into): Likewise.
21055         * tree-inline.c (remap_decls): Likewise.
21056         (declare_return_variable): Likewise.
21057         (declare_inline_vars): Likewise.
21058         (copy_forbidden): Adjust for new type of cfun->local_decls.
21059         (add_local_variables): New function.
21060         (expand_call_inline): Call it.
21061         (tree_function_versioning): Likewise.
21062
21063 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
21064
21065         AVX Programming Reference (June, 2010)
21066         * config/i386/cpuid.h (bit_F16C): New.
21067         (bit_RDRND): Likewise.
21068         (bit_FSGSBASE): Likewise.
21069
21070         * config/i386/i386-builtin-types.def: Add
21071         "DEF_FUNCTION_TYPE (UINT16)", function types for
21072         float16 <-> float conversions and
21073         "DEF_FUNCTION_TYPE (VOID, UINT64)".
21074
21075         * config/i386/i386-c.c (ix86_target_macros_internal): Support
21076         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
21077         OPTION_MASK_ISA_F16C.
21078
21079         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
21080         (OPTION_MASK_ISA_RDRND_SET): Likewise.
21081         (OPTION_MASK_ISA_F16C_SET): Likewise.
21082         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
21083         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
21084         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
21085         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
21086         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
21087         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
21088         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
21089         (override_options): Handle them.
21090         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
21091         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
21092         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
21093         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
21094         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
21095         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
21096         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
21097         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
21098         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
21099         (bdesc_args): Likewise.
21100         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
21101         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
21102         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
21103         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
21104         Handle non-memory store.
21105
21106         * config/i386/i386.h (TARGET_FSGSBASE): New.
21107         (TARGET_RDRND): Likewise.
21108         (TARGET_F12C): Likewise.
21109
21110         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
21111         (UNSPEC_VCVTPS2PH): Likewise.
21112         (UNSPECV_RDFSBASE): Likewise.
21113         (UNSPECV_RDGSBASE): Likewise.
21114         (UNSPECV_WRFSBASE): Likewise.
21115         (UNSPECV_WRGSBASE): Likewise.
21116         (UNSPECV_RDRAND): Likewise.
21117         (rdfsbase<mode>): Likewise.
21118         (rdgsbase<mode>): Likewise.
21119         (wrfsbase<mode>): Likewise.
21120         (wrgsbase<mode>): Likewise.
21121         (rdrand<mode>): Likewise.
21122
21123         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
21124
21125         * config/i386/immintrin.h (_rdrand_u16): New.
21126         (_rdrand_u32): Likewise.
21127         (_readfsbase_u32): Likewise.
21128         (_readfsbase_u64): Likewise.
21129         (_readgsbase_u32): Likewise.
21130         (_readgsbase_u64): Likewise.
21131         (_writefsbase_u32): Likewise.
21132         (_writefsbase_u64): Likewise.
21133         (_writegsbase_u32): Likewise.
21134         (_writegsbase_u64): Likewise.
21135         (_rdrand_u64): Likewise.
21136         (_cvtsh_ss): Likewise.
21137         (_mm_cvtph_ps): Likewise.
21138         (_mm256_cvtph_ps): Likewise.
21139         (_cvtss_sh): Likewise.
21140         (_mm_cvtps_ph): Likewise.
21141         (_mm256_cvtps_ph): Likewise.
21142
21143         * config/i386/sse.md (vcvtph2ps): New.
21144         (*vcvtph2ps_load): Likewise.
21145         (vcvtph2ps256): Likewise.
21146         (vcvtps2ph): Likewise.
21147         (*vcvtps2ph): Likewise.
21148         (*vcvtps2ph_store): Likewise.
21149         (vcvtps2ph256): Likewise.
21150
21151         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
21152
21153         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
21154
21155 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
21156
21157         PR bootstrap/44512
21158         * genenums.c (main): Output include of insn-constants.h
21159         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
21160
21161 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
21162
21163         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
21164         (override_options): Initialize it.
21165         (ix86_expand_prologue): Use it.
21166
21167 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
21168
21169         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
21170
21171 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
21172
21173         * double-int.h (fit_double_type): Remove declaration.
21174         * double-int.c (fit_double_type): Remove function.
21175         * tree.h (int_fits_type_p): Adjust prototype.
21176         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
21177         instead of fit_double_type.
21178         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
21179         instead of fit_double_type and build_int_cst_wide.
21180         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
21181         instead of fit_double_type and build_int_cst_wide.
21182         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
21183         of fit_double_type.
21184
21185 2010-07-05  Jan Hubicka  <jh@suse.cz>
21186
21187         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
21188         in_other_partition.
21189         * lto-cgraph.c (referenced_from_other_partition_p,
21190         reachable_from_other_partition_p): Use in_other_partition flags.
21191         (output_node, output_varpool_node): COMDAT nodes always have private
21192         copies and thus are never used from other partition.
21193
21194 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
21195
21196         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
21197         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
21198         * config/ia64/ia64.c Include reload.h.
21199         (ia64_memory_move_cost): New function.
21200         (TARGET_MEMORY_MOVE_COST): Define.
21201         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
21202         memory_move_cost.
21203
21204 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
21205
21206         PR middle-end/42505
21207         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
21208         comments about cost model.
21209         (try_add_cand_for):  Add second strategy for choosing initial set
21210         based on original IVs, controlled by ORIGINALP argument.
21211         (get_initial_solution): Add ORIGINALP argument.
21212         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
21213         (find_optimal_iv_set): Try two different strategies for choosing
21214         the IV set, and return the one with lower cost.
21215
21216 2010-07-05  Richard Guenther  <rguenther@suse.de>
21217
21218         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
21219
21220 2010-07-05  Richard Guenther  <rguenther@suse.de>
21221
21222         * tree.c (reference_alias_ptr_type): New function.
21223         * tree.h (reference_alias_ptr_type): Declare.
21224         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
21225         allow non-TARGET_MEM_REF new refs.
21226         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
21227         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
21228         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
21229         (create_mem_ref): Get alias pointer type.  Adjust calls to
21230         create_mem_ref_raw.
21231         (maybe_fold_tmr): Likewise.
21232         * tree-flow.h (create_mem_ref): Adjust prototype.
21233
21234 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
21235
21236         PR c++/44808
21237         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
21238         *from_p is VAR_DECL.
21239
21240 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
21241
21242         * tree.h (build_call_list): Remove.
21243         * tree.c (build_call_list): Remove.
21244
21245 2010-07-05  Richard Guenther  <rguenther@suse.de>
21246
21247         * double-int.h (double_int_sub): Declare.
21248         * double-int.c (double_int_sub): New function.
21249         * dwarf2out.c (field_byte_offset): Use it.
21250         * fixed-value.c (do_fixed_add): Likewise.
21251         (do_fixed_multiply): Likewise.
21252         (do_fixed_divide): Likewise.
21253         * tree-predcom.c (add_ref_to_chain): Likewise.
21254         (determine_roots_comp): Likewise.
21255         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
21256
21257 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
21258
21259         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
21260         implementations.
21261
21262 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
21263
21264         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
21265         * arm-modes.def (CC_NOTB): Don't define.
21266         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
21267         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
21268         (LTUGEU): New code_iterator.
21269         (cnb, optab): New corresponding code_attrs.
21270         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
21271         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
21272         using LTUGEU.
21273         (addsi3_carryin_shift_<optab>): Likewise.
21274         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
21275         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
21276         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
21277         (subsi3_compare): Renamed from subsi3_compare0_c.
21278         Change CC_NOTB to CC.
21279         (arm_subsi3_insn): Allow constants for operand 0.
21280         (compare_scc peephole for eq case): New.
21281         (compare_scc splitters): Change CC_NOTB to CC.
21282
21283 2010-07-05  Richard Guenther  <rguenther@suse.de>
21284
21285         * tree-ssa-loop-im.c (for_each_index): Do not handle
21286         ALIGN_INDIRECT_REF.
21287         (gen_lsm_tmp_name): Likewise.
21288         * tree-dump.c (dequeue_and_dump): Likewise.
21289         * tree-pretty-print.c (dump_generic_node): Likewise.
21290         (op_code_prio): Likewise.
21291         (op_symbol_code): Likewise.
21292         * tree.c (staticp): Likewise.
21293         (build1_stat): Likewise.
21294         * tree.h (INDIRECT_REF_P): Likewise.
21295         * fold-const.c (maybe_lvalue_p): Likewise.
21296         (operand_equal_p): Likewise.
21297         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
21298         (ao_ref_init_from_vn_reference): Likewise.
21299         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
21300         (find_interesting_uses_address): Likewise.
21301         * dwarf2out.c (loc_list_from_tree): Likewise.
21302         * gimplify.c (gimplify_expr): Likewise.
21303         * tree-eh.c (tree_could_trap_p): Likewise.
21304         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
21305         * cfgexpand.c (expand_debug_expr): Likewise.
21306         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
21307         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
21308         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
21309         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
21310         * tree-ssa-operands.c (get_expr_operands): Likewise.
21311         * expr.c (safe_from_p): Likewise.
21312         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
21313         * tree-vect-data-refs.c (vect_setup_realignment): Build
21314         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
21315         * tree-vect-stmts.c (vectorizable_load): Likewise.
21316         * tree.def (ALIGN_INDIRECT_REF): Remove.
21317
21318 2010-07-05  Richard Guenther  <rguenther@suse.de>
21319
21320         PR tree-optimization/44784
21321         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
21322         for inserted stmts.
21323         (find_or_generate_expression): Fix SCCVN insertion check.
21324
21325 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
21326
21327         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
21328         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
21329         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
21330         directives.
21331
21332 2010-07-05  Ira Rosen  <irar@il.ibm.com>
21333
21334         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
21335         statements that are not vectorized.
21336         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
21337         in INSIDE_COST.
21338
21339 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
21340
21341         PR bootstrap/44820
21342         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
21343
21344 2010-07-05  Richard Guenther  <rguenther@suse.de>
21345
21346         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
21347         RESULT_DECLs properly.
21348
21349 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
21350
21351         PR rtl-optimization/44695
21352         * config/i386/i386.md (extract_code): Removed.
21353         (<u>divmodqi4): Likewise.
21354         (divmodqi4): New.
21355         (udivmodqi4): Likewise.
21356         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
21357         (udivmodhiqi3): Likewise.
21358
21359 2010-07-04  Jan Hubicka  <jh@suse.cz>
21360
21361         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
21362
21363 2010-07-04  Jan Hubicka  <jh@suse.cz>
21364
21365         * cgraphunit.c (init_cgraph): Only initialize dump file if it
21366         is not already initialized.
21367
21368 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21369
21370         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
21371         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
21372         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
21373         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
21374         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
21375         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
21376         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
21377         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
21378         (sync_new_nand_optab): Redefine as macros.
21379         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
21380         Delete.
21381         (direct_optab_index): New enum.
21382         (direct_optab_d): New structure.
21383         (direct_optab): New typedef.
21384         (direct_optab_table): Declare.
21385         (direct_optab_handler, set_direct_optab_handler): New functions.
21386         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
21387         (sync_lock_release_optab): New macros.
21388         * optabs.c (direct_optab_table): New variable.
21389         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
21390         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
21391         cmpstr_optab and cmpstrn_optab.
21392         (emit_conditional_move): Likewise for movcc_optab.
21393         (can_conditionally_move_p): Likewise for movcc_gen_code.
21394         (init_insn_codes): Clear direct_optab_table.
21395         (init_optabs): Don't initialize the new "direct optabs" here.
21396         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
21397         vcond_gen_code.
21398         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
21399         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
21400         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
21401         (expand_sync_operation): Likewise other sync_*_optabs.
21402         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
21403         to sync_compare_and_swap_optab.
21404         (expand_sync_lock_test_and_set): Use direct_optab_handler for
21405         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
21406         to the names of both.
21407         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
21408         cmpstr_optab and cmpstrn_optab.
21409         (expand_builtin_lock_release): Likewise sync_lock_release.
21410         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
21411         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
21412         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
21413         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
21414         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
21415         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
21416         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
21417         (sync_lock_test_and_set, sync_lock_release): Delete.
21418         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
21419         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
21420         * genopinit.c (optabs): Use set_direct_optab_handler for the new
21421         macro optabs.
21422         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
21423         the "optab" local variable.  Use direct_optab_handler for optab and
21424         sync_compare_and_swap_optab.
21425         * reload1.c (reload_in_optab, reload_out_optab): Delete.
21426         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
21427         reload_in_optab and reload_out_optab.
21428         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21429         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
21430         * config/pa/pa.c (pa_secondary_reload): Likewise.
21431         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
21432         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
21433         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
21434         (VMSupportsCS8_builtin): Likewise.
21435
21436 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21437
21438         * optabs.h (optab_handlers): Change type of insn_code to int.
21439         (optab_handler, set_optab_handler, convert_optab_handler)
21440         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
21441         CODE_FOR_nothing".
21442         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
21443         (init_insn_codes): Zero both the above arrays.
21444         (init_optabs): Never call init_insn_codes first time around.
21445
21446 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21447
21448         * optabs.h (optab_handler, convert_optab_handler): Turn into
21449         inline functions that return an insn code.
21450         (set_optab_handler, set_convert_optab_handler): New functions.
21451         * builtins.c: Replace optab_handler(X)->insn_code with
21452         optab_handler or set_optab_handler thoughout.  Likewise
21453         convert_optab_handler(X)->insn_code with convert_optab_handler
21454         and set_convert_optab_handler.
21455         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
21456         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
21457         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
21458         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
21459         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
21460         config/spu/spu.c: Likewise.
21461
21462 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
21463
21464         PR target/44531
21465         * config.gcc (sh*-*-*): Use regular expressions instead of
21466         the 'i' modifier for sed substitutions.
21467
21468 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
21469
21470         * gimple.c (gimple_body): Comments added.
21471
21472 2010-07-04  Richard Guenther  <rguenther@suse.de>
21473
21474         PR middle-end/44809
21475         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
21476         of an INDIRECT_REF.
21477
21478 2010-07-04  Richard Guenther  <rguenther@suse.de>
21479
21480         PR tree-optimization/44479
21481         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
21482         extra SSA name copy statements which preserves points-to
21483         information.
21484         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
21485         Copy points-to information for all pointers.  Properly handle
21486         MEM_REFs.
21487         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
21488         copy statements.
21489         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
21490         dependency.
21491
21492 2010-07-04  Richard Guenther  <rguenther@suse.de>
21493
21494         PR middle-end/44785
21495         * tree-inline.c (initialize_inlined_parameters): Do not
21496         re-use pointer-map slot over remap_type call.
21497
21498 2010-07-04  Richard Guenther  <rguenther@suse.de>
21499
21500         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
21501
21502 2010-07-04  Richard Guenther  <rguenther@suse.de>
21503
21504         PR tree-optimization/44656
21505         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
21506         again after value-replacing in the defintions lhs.
21507
21508 2010-07-04  Ira Rosen  <irar@il.ibm.com>
21509             Revital Eres  <eres@il.ibm.com>
21510
21511         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
21512         Document new arguments.
21513         * doc/tm.texi: Regenerate.
21514         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
21515         Handle unaligned store.
21516         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
21517         * target.def (builtin_vectorization_cost): Add new arguments.
21518         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
21519         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
21520         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
21521         (vect_vfa_segment_size): Fix indentation.
21522         * tree-vectorizer.h (struct _vect_peel_info): New.
21523         (struct _vect_peel_extended_info): New.
21524         (struct _loop_vec_info): Add new field for peeling hash table and a
21525         macro for its access.
21526         (VECT_MAX_COST): Define.
21527         (vect_get_load_cost): Declare.
21528         (vect_get_store_cost, vect_get_known_peeling_cost,
21529         vect_get_single_scalar_iteraion_cost): Likewise.
21530         (vect_supportable_dr_alignment): Add new argument.
21531         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
21532         field.
21533         (destroy_loop_vec_info): Free peeling hash table.
21534         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
21535         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
21536         vect_analyze_slp. Fix indentation.
21537         (vect_get_single_scalar_iteraion_cost): New function.
21538         (vect_get_known_peeling_cost): Likewise.
21539         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
21540         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
21541         statement. Move outside cost calculation inside unknown peeling case.
21542         Call vect_get_known_peeling_cost for known amount of peeling.
21543         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
21544         reference to the print message of forced alignment.
21545         (vect_verify_datarefs_alignment): Update call to
21546         vect_supportable_dr_alignment.
21547         (vect_get_data_access_cost): New function.
21548         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
21549         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
21550         vect_peeling_hash_choose_best_peeling): Likewise.
21551         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
21552         to store all the accesses in the loop and find best possible access to
21553         align using peeling for known alignment case. For unknown alignment
21554         check if stores are preferred or if peeling is worthy.
21555         (vect_find_same_alignment_drs): Analyze pairs of loads too.
21556         (vect_supportable_dr_alignment): Add new argument and check aligned
21557         accesses according to it.
21558         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
21559         (cost_for_stmt): Call vect_get_stmt_cost.
21560         (vect_model_simple_cost): Likewise.
21561         (vect_model_store_cost): Call vect_get_stmt_cost. Call
21562         vect_get_store_cost to calculate the cost of the statement.
21563         (vect_get_store_cost): New function.
21564         (vect_model_load_cost): Call vect_get_stmt_cost. Call
21565         vect_get_load_cost to calculate the cost of the statement.
21566         (vect_get_load_cost): New function.
21567         (vectorizable_store): Update call to vect_supportable_dr_alignment.
21568         (vectorizable_load): Likewise.
21569         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
21570         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
21571         arguments. Handle unaligned store.
21572         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
21573         (rs6000_builtin_support_vector_misalignment): Return true for word and
21574         double word alignments for VSX.
21575         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
21576         vect_supportable_dr_alignment and builtin_vectorization_cost.
21577
21578 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21579
21580         PR target/44597
21581         * config/pa/predicates.md (prefetch_cc_operand): Remove.
21582         (prefetch_nocc_operand): Likewise.
21583         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
21584         (prefetch_20): New insn.
21585         (prefetch_cc): Remove.
21586         (prefetch_nocc): Likewise.
21587
21588 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21589
21590         * expr.c (vector_mode_valid_p): Move to c-common.c.
21591         * expr.h (vector_mode_valid_p): Do not declare here.
21592         * system.h: Poison GCC_EXPR_H in front-ends.
21593         * Makefile.in: Update dependencies.
21594
21595 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21596
21597         PR target/44705
21598         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
21599
21600 2010-07-03  Jan Hubicka  <jh@suse.cz>
21601
21602         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
21603         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
21604         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
21605         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
21606         Likewise.
21607
21608         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
21609         Update timevars.V
21610         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
21611         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
21612         TV_IPA_LTO_DECL_OUT): New.
21613         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
21614
21615 2010-07-03  Jan Hubicka  <jh@suse.cz>
21616
21617         * ipa-inline.c (update_edge_key): Break out from ...
21618         update_callers_keys): ... here;
21619         (update_callee_keys): Update only the edges from caller to callee.
21620         (update_all_calle_keys): Do what update_calle_keys did.
21621         (decide_inlining_of_small_functions): Avoid recomputing of all
21622         callees when badness increase.
21623
21624 2010-07-03  Jie Zhang  <jie@codesourcery.com>
21625
21626         * config/arm/arm.c (arm_attr_length_move_neon): New.
21627         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
21628         * config/arm/neon.md (define_mode_attr V_slen): Remove.
21629         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
21630         to compute length attribute.
21631
21632 2010-07-03  Jie Zhang  <jie@codesourcery.com>
21633
21634         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
21635         as predicate for operand 1 and remove its constraint.
21636         * config/arm/predicates.md (vfp_register_operand): New.
21637         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
21638         (*push_fp_multi): Likewise.
21639
21640 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
21641
21642         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
21643
21644 2010-07-03  Jan Hubicka  <jh@suse.cz>
21645
21646         * config/i386/i386.c (override_options): Revert accidental commit.
21647
21648 2010-07-02  Le-Chun Wu  <lcwu@google.com>
21649
21650         PR c++/44128
21651         * doc/invoke.texi: Update documentation of -Wshadow.
21652
21653 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
21654             Julian Brown  <julian@codesourcery.com>
21655             Sandra Loosemore  <sandra@codesourcery.com>
21656
21657         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
21658         comparisons.  Adjust to take both operands.
21659         (arm_select_cc_mode): Handle DImode comparisons.
21660         (arm_gen_compare_reg): Generate a scratch register for DImode
21661         comparisons which require one.  Use xor for Thumb equality checks.
21662         (arm_const_double_by_immediates): New.
21663         (arm_print_operand): Allow 'Q' and 'R' for constants.
21664         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
21665         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
21666         arm_canonicalize_comparison.
21667         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
21668         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
21669         prototype.
21670         (arm_const_double_by_immediates): Declare.
21671         * config/arm/constraints.md (Di): New constraint.
21672         * config/arm/predicates.md (arm_immediate_di_operand)
21673         (arm_di_operand, cmpdi_operand): New.
21674         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
21675         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
21676         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
21677         (cstoredi4): Handle non-Cirrus also.
21678
21679 2010-07-02  Julian Brown  <julian@codesourcery.com>
21680             Sandra Loosemore  <sandra@codesourcery.com>
21681
21682         PR target/43703
21683         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
21684         (smax<mode>3): Disable for NEON float modes when
21685         flag_unsafe_math_optimizations is false.
21686         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
21687         (*mul<mode>3_neon)
21688         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
21689         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
21690         for NEON float modes when flag_unsafe_math_optimizations is false.
21691         (quad_halves_<code>v4sf): Only enable if
21692         flag_unsafe_math_optimizations is true.
21693         * doc/invoke.texi (ARM Options): Add note about floating point
21694         vectorization requiring -funsafe-math-optimizations.
21695
21696 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21697             Julian Brown  <julian@codesourcery.com>
21698
21699         * config/arm/neon.md (UNSPEC_VABA): Delete.
21700         (UNSPEC_VABAL): Delete.
21701         (UNSPEC_VABS): Delete.
21702         (UNSPEC_VMUL_N): Delete.
21703         (adddi3_neon): New.
21704         (subdi3_neon): New.
21705         (mul<mode>3add<mode>_neon): Make the pattern named.
21706         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
21707         (neon_vadd<mode>): Replace with define_expand, and move the remaining
21708         unspec parts...
21709         (neon_vadd<mode>_unspec): ...to this.
21710         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
21711         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
21712         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
21713         (neon_vaba<mode>): Rewrite in terms of vabd.
21714         (neon_vabal<mode>): Rewrite in terms of vabdl.
21715         (neon_vabs<mode>): Rewrite without unspec.
21716         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
21717         (*arm_subdi3): Likewise.
21718         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
21719         No_op attribute to disable assembly output checks.
21720         * config/arm/arm_neon.h: Regenerated.
21721         * doc/arm-neon-intrinsics.texi: Regenerated.
21722
21723 2010-07-02  Jan Hubicka  <jh@suse.cz>
21724
21725         * ipa-split.c (split_function): For aggregate values, set the return
21726         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
21727         *<retval> = fncall.part ().
21728         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
21729
21730 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21731
21732         * config/arm/neon.md (UNSPEC_VAND): Delete.
21733         (UNSPEC_VBIC): Delete.
21734         (UNSPEC_VCLZ): Delete.
21735         (UNSPEC_VCNT): Delete.
21736         (UNSPEC_VEOR): Delete.
21737         (UNSPEC_VORN): Delete.
21738         (UNSPEC_VORR): Delete.
21739         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
21740         core registers too.
21741         (anddi3_neon): Likewise.
21742         (orndi3_neon): Likewise.
21743         (bicdi3_neon): Likewise.
21744         (xordi3_neon): Likewise.
21745         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
21746         rid of unspec and handle unused operand.
21747         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
21748         * config/arm/predicates.md (imm_for_neon_logic_operand):
21749         Require TARGET_NEON.
21750         (imm_for_neon_inv_logic_operand): Likewise.
21751         * config/arm/arm.md (define_split for logical_binary_operator):
21752         Disable for NEON registers.
21753         (anddi3): Add new define_expand, and rename the insn.  Disable
21754         this insn for NEON, where anddi3_neon now applies.
21755         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
21756         (iordi3): As for anddi3.
21757         (xordi3): Likewise.
21758         * config/arm/neon.ml (Vand): Split DImode variants and mark them
21759         as No_op to disable testing for exact instruction match.
21760         (Vorr): Likewise.
21761         (Veor): Likewise.
21762         (Vbic): Likewise.
21763         (Vorn): Likewise.
21764         * config/arm/arm_neon.h: Regenerated.
21765         * doc/arm-neon-intrinsics.texi: Regenerated.
21766
21767 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21768
21769         * expr.h (emit_stack_probe): Declare.
21770         * explow.c (emit_stack_probe): Make global.
21771         (anti_adjust_stack_and_probe): Fix comments.
21772         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21773         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21774         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21775         * config/sparc/sparc.c: Include except.h.
21776         (sparc_emit_probe_stack_range): New function.
21777         (output_probe_stack_range): Likewise.
21778         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
21779         built-in stack checking is enabled.
21780         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
21781         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21782         (probe_stack_range): New insn.
21783
21784 2010-07-02  Richard Guenther  <rguenther@suse.de>
21785
21786         PR target/43958
21787         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
21788         for argument alignment.
21789
21790 2010-07-02  Jan Hubicka  <jh@suse.cz>
21791
21792         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
21793         walk backwards from entry_bb to check only those basic block of header
21794         that might lead to execution of split part.
21795         (consider_split) ... here.
21796         (find_return_bb): Allow assignment in return BB.
21797         (find_retval): New.
21798         (split_function): Fix name of cloned function; take care of updating
21799         return value in return_bb containing move.
21800
21801 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
21802
21803         PR target/44771
21804         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
21805         used variable insn.
21806
21807 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21808
21809         * implicit-zee.c (combine_reaching_defs): Fix long lines.
21810         (is_set_with_extension_DI): Delete.
21811         (struct zero_extend_info): New structure.
21812         (add_removable_zero_extend): New function.
21813         (find_removable_zero_extends): Use note_stores to find SETs.
21814         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
21815
21816 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21817
21818         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
21819         is_miss_rate_acceptable. Pull total_positions computation
21820         out of the loops.  Early return if miss_positions exceeds
21821         the acceptable threshold.
21822         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
21823         is_miss_rate_acceptable after renaming of compute_miss_rate.
21824
21825 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21826
21827         PR middle-end/44576
21828         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
21829         of 1000) for miss rate if the address diference is greater than or
21830         equal to the cache line size (the two reference will never hit the
21831         same cache line).
21832
21833 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
21834
21835         PR target/42835
21836         * config/arm/arm-modes.def (CC_NOTB): New mode.
21837         * config/arm/arm.c (get_arm_condition_code): Handle it.
21838         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
21839         * config/arm/arm.md (subsi3_compare0_c): New pattern.
21840         (compare_scc): Now a define_and_split.  Add a number of extra
21841         splitters before it.
21842
21843         PR target/42172
21844         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
21845         and ZERO_EXTEND.
21846         (arm_rtx_costs_1): Likewise.
21847         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
21848         * config/arm/arm.md (is_arch6): New attribute.
21849         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
21850         extendqisi2): Tighten the code somewhat, avoiding invalid
21851         RTL to occur in the expander patterns.
21852         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
21853         (thumb1_zero_extendhisi2_v6): Delete.
21854         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
21855         (thumb1_extendhisi2_v6): Delete.
21856         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
21857         (thumb1_extendqisi2_v6): Delete.
21858         (zero_extendhisi2 for register input splitter): New.
21859         (zero_extendqisi2 for register input splitter): New.
21860         (thumb1_extendhisi2 for register input splitter): New.
21861         (extendhisi2 for register input splitter): New.
21862         (extendqisi2 for register input splitter): New.
21863         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
21864         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
21865         and add support for a register alternative requiring a split.
21866         (thumb1_zero_extendqisi2): Likewise.
21867         (arm_zero_extendqisi2): Likewise.
21868         (arm_extendhisi2): Likewise.
21869         (arm_extendqisi2): Likewise.
21870
21871 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21872
21873         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21874         instead of an unspec.
21875         (neon_expand_vector_init): Likewise.
21876         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21877         (UNSPEC_VDUP_LANE): Delete.
21878         (UNSPEC VDUP_N): Delete.
21879         (UNSPEC_VGET_HIGH): Delete.
21880         (UNSPEC_VGET_LANE): Delete.
21881         (UNSPEC_VGET_LOW): Delete.
21882         (UNSPEC_VMVN): Delete.
21883         (UNSPEC_VSET_LANE): Delete.
21884         (V_double_vector_mode): New.
21885         (vec_set<mode>_internal): Make code emitted match that for the
21886         corresponding intrinsics.
21887         (vec_setv2di_internal): Likewise.
21888         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21889         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21890         (neon_vset_lane<mode>): Combine double and quad patterns and
21891         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21892         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21893         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21894         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21895         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21896         with neon_vdup_lanev2di, adjusting the pattern from the latter
21897         to be predicable for consistency.
21898         (neon_vdup_lane<mode>_internal): New.
21899         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21900         to avoid using an unspec.
21901         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21902         (neon_vdup_lanev2di): Turn into a define_expand.
21903         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21904         (neon_vget_high<mode>): Replace with....
21905         (neon_vget_highv16qi): New pattern using canonical RTL.
21906         (neon_vget_highv8hi): Likewise.
21907         (neon_vget_highv4si): Likewise.
21908         (neon_vget_highv4sf): Likewise.
21909         (neon_vget_highv2di): Likewise.
21910         (neon_vget_low<mode>): Replace with....
21911         (neon_vget_lowv16qi): New pattern using canonical RTL.
21912         (neon_vget_lowv8hi): Likewise.
21913         (neon_vget_lowv4si): Likewise.
21914         (neon_vget_lowv4sf): Likewise.
21915         (neon_vget_lowv2di): Likewise.
21916
21917         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
21918         test for this emitting vmov.
21919         (Vset_lane): Likewise.
21920         (Vdup_n): Likewise.
21921         (Vmov_n): Likewise.
21922
21923         * doc/arm-neon-intrinsics.texi: Regenerated.
21924
21925 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21926
21927         * config/arm/neon.md (vec_extractv2di): Correct error in register
21928         numbering to reconcile with neon_vget_lanev2di.
21929
21930 2010-07-02  Richard Guenther  <rguenther@suse.de>
21931
21932         * tree-ssa-structalias.c (pt_solution_set_var): New function.
21933         * tree-ssa-alias.h (pt_solution_set_var): Declare.
21934         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
21935         points-to information.
21936
21937 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
21938
21939         * config/s390/s390.c (override_options): Adopt prefetching
21940         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
21941
21942 2010-07-02  Jan Hubicka  <jh@suse.cz>
21943
21944         * df-problems.c (df_kill_notes): Do not collect dead  notes.
21945         (df_set_note): Just call add_reg_note.
21946         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
21947         df_create_unused_note): Do not deal with lists of old notes.
21948         (df_note_bb_compute): Likewise.
21949
21950 2010-07-02  Richard Guenther  <rguenther@suse.de>
21951
21952         * tree-ssa-structalias.c (find_func_aliases): Handle
21953         pointer alignment via BIT_AND_EXPR.
21954         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
21955
21956 2010-07-02  Richard Guenther  <rguenther@suse.de>
21957
21958         * tree-data-ref.c (initialize_data_dependence_relation): Handle
21959         mismatching number of dimensions properly.
21960
21961 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21962
21963         PR target/44707
21964         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
21965         (lo_sum (high ...) ...) patterns generated by earlier passes.
21966
21967 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21968
21969         * doc/install.texi (Prerequisites): Document Perl requirement on
21970         Solaris 2.
21971         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
21972
21973 2010-07-02  Richard Guenther  <rguenther@suse.de>
21974
21975         PR middle-end/44777
21976         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
21977
21978 2010-07-02  Jan Hubicka  <jh@suse.cz>
21979
21980         PR middle-end/44706
21981         * predict.c (predict_paths_for_bb): Handle case when control dependence
21982         BB has only abnormal edges.
21983
21984 2010-07-02  Richard Guenther  <rguenther@suse.de>
21985
21986         PR tree-optimization/44748
21987         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
21988         the embedded conversion in MEM_REFs.
21989
21990 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
21991
21992         * reload.c: Include toplev.h.
21993         * recog.c:  Likewise.
21994         * Makefile.in: Adjust dependencies.
21995
21996 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
21997
21998         PR debug/44694
21999         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
22000         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
22001
22002 2010-07-01  Richard Guenther  <rguenther@suse.de>
22003
22004         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
22005         types for offsets.
22006
22007 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
22008
22009         PR target/44732
22010         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
22011         Fix argument types.
22012
22013 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
22014
22015         PR target/44727
22016         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22017         Make sure operand 0 dies.
22018
22019 2010-07-01  Richard Guenther  <rguenther@suse.de>
22020
22021         PR middle-end/42834
22022         PR middle-end/44468
22023         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
22024         * doc/generic.texi (References to storage): Document MEM_REF.
22025         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
22026         (print_call_name): Likewise.
22027         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
22028         (build_simple_mem_ref_loc): New function.
22029         (mem_ref_offset): Likewise.
22030         * tree.h (build_simple_mem_ref_loc): Declare.
22031         (build_simple_mem_ref): Define.
22032         (mem_ref_offset): Declare.
22033         * fold-const.c: Include tree-flow.h.
22034         (operand_equal_p): Handle MEM_REF.
22035         (build_fold_addr_expr_with_type_loc): Likewise.
22036         (fold_comparison): Likewise.
22037         (fold_unary_loc): Fold
22038         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
22039         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
22040         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
22041         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
22042         (ptr_deref_may_alias_ref_p_1): Likewise.
22043         (ao_ref_base_alias_set): Properly differentiate base object for
22044         offset and TBAA.
22045         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
22046         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
22047         (indirect_refs_may_alias_p): Likewise.
22048         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
22049         chasing code.
22050         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
22051         (call_may_clobber_ref_p_1): Likewise.
22052         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
22053         * expr.c (expand_assignment): Handle MEM_REF.
22054         (store_expr): Handle MEM_REFs from STRING_CSTs.
22055         (store_field): If expanding a MEM_REF of a non-addressable
22056         decl use bitfield operations.
22057         (get_inner_reference): Handle MEM_REF.
22058         (expand_expr_addr_expr_1): Likewise.
22059         (expand_expr_real_1): Likewise.
22060         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
22061         * alias.c (ao_ref_from_mem): Handle MEM_REF.
22062         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
22063         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
22064         (dr_analyze_indices): Likewise.
22065         (dr_analyze_alias): Likewise.
22066         (object_address_invariant_in_loop_p): Likewise.
22067         * gimplify.c (mark_addressable): Handle MEM_REF.
22068         (gimplify_cond_expr): Build MEM_REFs.
22069         (gimplify_modify_expr_to_memcpy): Likewise.
22070         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
22071         (gimple_fold_indirect_ref): Adjust.
22072         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
22073         * tree.def (MEM_REF): New tree code.
22074         * tree-dfa.c: Include toplev.h.
22075         (get_ref_base_and_extent): Handle MEM_REF.
22076         (get_addr_base_and_unit_offset): New function.
22077         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
22078         * gimple-fold.c (may_propagate_address_into_dereference): Handle
22079         MEM_REF.
22080         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
22081         accesses if the array has just one dimension.  Remove always true
22082         parameter.  Do not require type compatibility here.
22083         (maybe_fold_offset_to_component_ref): Remove.
22084         (maybe_fold_stmt_indirect): Remove.
22085         (maybe_fold_reference): Remove INDIRECT_REF handling.
22086         Fold back to non-MEM_REF.
22087         (maybe_fold_offset_to_address): Simplify.  Deal with type
22088         mismatches here.
22089         (maybe_fold_reference): Likewise.
22090         (maybe_fold_stmt_addition): Likewise.  Also handle
22091         &ARRAY + I in addition to &ARRAY[0] + I.
22092         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
22093         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
22094         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
22095         * tree-ssa.c (useless_type_conversion_p): Make most pointer
22096         conversions useless.
22097         (warn_uninitialized_var): Handle MEM_REF.
22098         (maybe_rewrite_mem_ref_base): New function.
22099         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
22100         to SSA form.
22101         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
22102         INDIRECT_REF handling.
22103         (copy_tree_body_r): Handle MEM_REF.
22104         * gimple.c (is_gimple_addressable): Adjust.
22105         (is_gimple_address): Likewise.
22106         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
22107         invariant base are invariant.
22108         (is_gimple_min_lval): Adjust.
22109         (is_gimple_mem_ref_addr): New function.
22110         (get_base_address): Handle MEM_REF.
22111         (count_ptr_derefs): Likewise.
22112         (get_base_loadstore): Likewise.
22113         * gimple.h (is_gimple_mem_ref_addr): Declare.
22114         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
22115         * tree-cfg.c (verify_address): New function, split out from ...
22116         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
22117         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
22118         INDIRECT_REFs.
22119         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
22120         INDIRECT_REF.  Allow conversions.
22121         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
22122         a register does not change its size.
22123         (verify_types_in_gimple_reference): Verify MEM_REF.
22124         (verify_gimple_assign_single): Disallow INDIRECT_REF.
22125         Handle MEM_REF.
22126         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
22127         New.
22128         (mark_address_taken): Handle MEM_REF.
22129         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
22130         (get_asm_expr_operands): Pass opf_not_non_addressable.
22131         (get_expr_operands): Handle opf_[not_]non_addressable.
22132         Handle MEM_REF.  Remove INDIRECT_REF handling.
22133         * tree-vrp.c (check_array_ref): Handle MEM_REF.
22134         (search_for_addr_array): Likewise.
22135         (check_array_bounds): Likewise.
22136         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
22137         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
22138         (ref_always_accessed_p): Likewise.
22139         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
22140         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
22141         Handle MEM_REF.
22142         * cgraphbuild.c (mark_load): Properly check for NULL result
22143         from get_base_address.
22144         (mark_store): Likewise.
22145         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
22146         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
22147         handling for MEM_REF.
22148         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
22149         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
22150         * builtins.c (stabilize_va_list_loc): Use the function ABI
22151         valist type if we couldn't canonicalize the argument type.
22152         Always dereference with the canonical va-list type.
22153         (maybe_emit_free_warning): Handle MEM_REF.
22154         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
22155         memmove to memcpy.
22156         * builtins.c (fold_builtin_memory_op): Use ref-all types
22157         for all memcpy foldings.
22158         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
22159         (build_outer_var_ref): Likewise.
22160         (scan_omp_1_op): Likewise.
22161         (lower_rec_input_clauses): Likewise.
22162         (lower_lastprivate_clauses): Likewise.
22163         (lower_reduction_clauses): Likewise.
22164         (lower_copyprivate_clauses): Likewise.
22165         (expand_omp_atomic_pipeline): Likewise.
22166         (expand_omp_atomic_mutex): Likewise.
22167         (create_task_copyfn): Likewise.
22168         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
22169         Remove old union trick.  Initialize constant offsets.
22170         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
22171         INDIRECT_REF.  Init base_alias_set properly.
22172         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
22173         (vn_reference_fold_indirect): Adjust for MEM_REFs.
22174         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
22175         for ARRAY_REFs.
22176         (may_insert): Remove.
22177         (visit_reference_op_load): Do not test may_insert.
22178         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
22179         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
22180         a field to store the constant offset this op applies.
22181         (run_scc_vn): Adjust prototype.
22182         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
22183         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
22184         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
22185         bother about volatile qualifiers on pointers.
22186         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
22187         * tree-ssa-loop-ivopts.c
22188         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
22189         (strip_offset_1): Likewise.
22190         (find_interesting_uses_address): Replace INDIRECT_REF handling with
22191         MEM_REF handling.
22192         (get_computation_cost_at): Likewise.
22193         * ipa-pure-const.c (check_op): Handle MEM_REF.
22194         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
22195         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
22196         and constants.
22197         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
22198         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
22199         (eliminate_local_variables_1): Likewise.
22200         (create_call_for_reduction_1): Likewise.
22201         (create_loads_for_reductions): Likewise.
22202         (create_loads_and_stores_for_name): Likewise.
22203         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
22204         (ssa_accessed_in_tree): Handle MEM_REF.
22205         (ssa_accessed_in_assign_rhs): Likewise.
22206         (update_type_size): Likewise.
22207         (analyze_accesses_for_call_stmt): Likewise.
22208         (analyze_accesses_for_assign_stmt): Likewise.
22209         (transform_access_sites): Likewise.
22210         (transform_allocation_sites): Likewise.
22211         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
22212         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
22213         not handle INDIRECT_REF.
22214         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
22215         (cond_store_replacement): Likewise.
22216         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
22217         MEM_REF, no not handle INDIRECT_REFs.
22218         (insert_into_preds_of_block): Properly initialize avail.
22219         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
22220         for ARRAY_REFs.  Properly handle reference lookups that
22221         require a bit re-interpretation.
22222         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
22223         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
22224         (build_ref_for_offset_1): Remove.
22225         (build_ref_for_offset): Build MEM_REFs.
22226         (gate_intra_sra): Disable for now.
22227         (sra_ipa_modify_expr): Handle MEM_REF.
22228         (ipa_early_sra_gate): Disable for now.
22229         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
22230         MEM_REF handling.
22231         (disqualify_base_of_expr): Likewise.
22232         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
22233         MEM_REF handling.
22234         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
22235         Use mem_ref_offset.  Remove bogus folding.
22236         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
22237         (make_fancy_name_1): Add support for MEM_REF.
22238         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
22239         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
22240         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
22241         (compute_complex_ancestor_jump_func): Likewise.
22242         (ipa_analyze_virtual_call_uses): Likewise.
22243         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
22244         INDIRECT_REF folding with more generalized MEM_REF folding.
22245         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
22246         (forward_propagate_addr_into_variable_array_index): Also handle
22247         &ARRAY + I in addition to &ARRAY[0] + I.
22248         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
22249         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
22250         creates assignments with overlap.
22251         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
22252         (get_frame_field): Likewise.
22253         (get_nonlocal_debug_decl): Likewise.
22254         (convert_nonlocal_reference_op): Likewise.
22255         (struct nesting_info): Add mem_refs pointer-set.
22256         (create_nesting_tree): Allocate it.
22257         (convert_local_reference_op): Insert to be folded mem-refs.
22258         (fold_mem_refs): New function.
22259         (finalize_nesting_tree_1): Perform defered folding of mem-refs
22260         (free_nesting_tree): Free the pointer-set.
22261         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
22262         (vectorizable_load): Likewise.
22263         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
22264         (propagate_with_phi): Likewise.
22265         * tree-object-size.c (addr_object_size): Handle MEM_REFs
22266         instead of INDIRECT_REFs.
22267         (compute_object_offset): Handle MEM_REF.
22268         (plus_stmt_object_size): Handle MEM_REF.
22269         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
22270         for &MEM_REF.
22271         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
22272         (symbol_marked_for_renaming): Likewise.
22273         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
22274         (fold-const.o): Add $(TREE_FLOW_H).
22275         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
22276         (find_func_clobbers): Likewise.
22277         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
22278         (decompose_access): Likewise.
22279         (replace_field_acc): Likewise.
22280         (replace_field_access_stmt): Likewise.
22281         (insert_new_var_in_stmt): Likewise.
22282         (get_stmt_accesses): Likewise.
22283         (reorg_structs_drive): Disable.
22284         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
22285         (ix86_canonical_va_list_type): Likewise.
22286
22287 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
22288
22289         PR other/44566
22290         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
22291         * target.def (struct gcc_target): Replace enum reg_class with
22292         reg_class_t in hook argument / return types.
22293         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
22294         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
22295         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
22296         * targhooks.h (default_branch_target_register_class): Likewise.
22297         (default_ira_cover_classes, default_secondary_reload): Likewise.
22298         (default_memory_move_cost, default_register_move_cost): Likewise.
22299         * targhooks.c (default_branch_target_register_class): Likewise.
22300         (default_ira_cover_classes, default_secondary_reload): Likewise.
22301         (default_memory_move_cost, default_register_move_cost): Likewise.
22302         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
22303         * bt-load.c (branch_target_load_optimize): Likewise.
22304         * ira.c (setup_cover_and_important_classes): Likewise.
22305         * ira-costs.c (copy_cost): Likewise.
22306         * reload1.c (emit_input_reload_insns): Likewise.
22307         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
22308         * config/frv/frv.c (frv_secondary_reload): Likewise.
22309         * config/s390/s390.c (s390_secondary_reload): Likewise.
22310         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
22311         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
22312         (ix86_register_move_cost): Likewise.
22313         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
22314         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
22315         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
22316         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
22317         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
22318         (rs6000_ira_cover_classes): Likewise.
22319         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
22320         * config/picochip/picochip-protos.h (picochip_secondary_reload):
22321         Likewise.
22322         * config/pa/pa.c (pa_secondary_reload): Likewise.
22323         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
22324         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
22325         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
22326         * doc/tm.texi: Regenerate.
22327
22328 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
22329
22330         PR bootstrrap/44726
22331         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
22332         use.
22333         (build_alias_set_optimal_p): Likewise.
22334         (build_base_obj_set_for_drs): Likewise.
22335
22336 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
22337
22338         * target.def: Remove comment about licensing problems of function
22339         declarations.
22340
22341         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
22342         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
22343         * doc/tm.texi: Regenerate.
22344
22345         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
22346         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
22347
22348         * target.def (enum_va_list_p): Use DEFHOOK.
22349         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
22350         Rename ptype to ptree.
22351         * doc/tm.texi: Regenerate.
22352
22353         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
22354         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
22355         * doc/tm.texi: Regenerate.
22356
22357         * target.def (memory_move_cost): Use DEFHOOK.
22358         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
22359         Rename regclass AKA class to rclass.
22360         * doc/tm.texi: Regenerate.
22361
22362         * target.def (pragma_parse): Use DEFHOOK.
22363         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
22364         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
22365         * doc/tm.texi: Regenerate.
22366
22367         * target.def (pass_by_reference): Use DEFHOOK.
22368         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
22369         * doc/tm.texi: Regenerate.
22370
22371         * target.def (resolve_overloaded_builtin): Rename params to arglist.
22372         Use DEFHOOK.
22373         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
22374         * doc/tm.texi: Regenerate.
22375
22376         * target.def (return_pops_args): Use DEFHOOK.
22377         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
22378         Rename stack-size to size.
22379         * doc/tm.texi: Regenerate.
22380
22381         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
22382         last-sched_cycle to last_clock, cur_cycle to clock.
22383         * doc/tm.texi.in: Use @hook.
22384         * doc/tm.texi: Regenerate.
22385
22386         * target.def (print_operand, print_operand_address): Update comment.
22387         (print_operand_punct_valid_p): Likewise.
22388
22389 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22390
22391         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
22392         to rtl.h.
22393         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
22394         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
22395         * rtl-error.h: New.
22396         * regrename.c: Do not include toplev.h. Include rtl-error.h.
22397         * rtl-error.c: Likewise.
22398         * reload.c: Likewise.
22399         * recog.c:  Likewise.
22400         * sel-sched.c: Likewise.
22401         * function.c: Likewise.
22402         * reg-stack.c: Likewise.
22403         * cfgrtl.c: Likewise.
22404         * reload1.c: Likewise.
22405         * final.c: Include rtl-error.
22406         * Makefile.in: Adjust dependencies.
22407
22408 2010-06-30  Jan Hubicka  <jh@suse.cz>
22409
22410         PR middle-end/PR44706
22411         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
22412         to return the value.
22413
22414 2010-06-30  Michael Matz  <matz@suse.de>
22415
22416         PR bootstrap/44699
22417         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
22418         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
22419         a gimple reg, attach the original VDEF to the last store in the
22420         sequence.
22421
22422 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
22423
22424         PR other/44034
22425         * config/darwin.c (darwin_override_options): Use renamed
22426         targetm.asm_out.emit_unwind_label.
22427
22428 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
22429
22430         PR tree-optimization/39799
22431         * tree-inline.c (remap_ssa_name): Initialize variable only if
22432         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
22433
22434 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
22435
22436         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
22437
22438 2010-06-30  Richard Guenther  <rguenther@suse.de>
22439
22440         PR target/44722
22441         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
22442         against oscillation with reverse peephole2.
22443
22444 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22445
22446         PR target/44721
22447         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22448         Fix last commit.
22449
22450 2010-06-30  Nick Clifton  <nickc@redhat.com>
22451
22452         * config/rx/rx-modes.def: New file.
22453         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
22454         (CC_REGNUM): Define.
22455         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
22456         register.
22457         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
22458         (SELECT_CC_MODE): Define.
22459         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
22460         (reg:CC CC_REG) instead of (cc0).
22461         (attr "cc"): Delete.
22462         (cbranchsi4): Do not split compare and branch here. Instead move
22463         it to...
22464         (cbranchsi4_<code>): ... here.  New patterns.
22465         (cmpsi): Call rx-compare_redundant to find out if it is necessary
22466         to emit the compare instruction.
22467         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
22468         cc_status flags.
22469         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
22470         FIRST_PSEUDO_REGNUM.
22471         (rx_expand_prologue, rx_expand_epilogue): Likewise.
22472         (rx_notice_update_cc): Delete.
22473         (rx_cc_modes_compatible): New function.
22474         (flags_needed_for_conditional): New function.
22475         (flags_from_mode): New function.
22476         (rx_compare_redundant): New function - scans backwards through
22477         insn list to find out if condition flags are already set correctly.
22478         (TARGET_CC_MODES_COMPATIBLE): Define.
22479         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
22480
22481         * config/rx/rx.h (BRANCH_COST): Define.
22482         (REGISTER_MOVE_COST): Define.
22483         * config/rx/predicates (rx_source_operand): Allow all constant types.
22484         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
22485         (tstsi4): New pattern.
22486         * config/rx/rx.c (rx_memory_move_cost): Define.
22487         (TARGET_MEMORY_MOVE_COST): Define.
22488
22489 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22490
22491         * tree.h (block_may_fallthru): Declare here.
22492         * tree-flow.h (block_may_fallthru): Do not declare here.
22493         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
22494         bitmap.h
22495         * Makefile.in (c-typeck.o): Update dependencies.
22496
22497 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
22498
22499         PR debug/44694
22500         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
22501         * cselib.c (cfa_base_preserved_regno): New static variable.
22502         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
22503         of REGNO (cfa_base_preserved_val->locs->loc).
22504         (cselib_preserve_cfa_base_value): Add regno argument, set
22505         cfa_base_preserved_regno to it.
22506         (cselib_invalidate_regno): Allow removal of registers other than
22507         cfa_base_preserved_regno from cfa_base_preserved_val.
22508         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
22509         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
22510         of MEM addresses, if not on LHS.
22511         (reverse_op): Don't add reverse ops for cfa_base_rtx.
22512         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
22513
22514 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
22515
22516         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
22517         static variables.
22518         (peep2_buf_position): New static function.
22519         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
22520         peephole2_optimize): Use it.
22521         (peep2_attempt, peep2_update_life): New static functions, broken out
22522         of peephole2_optimize.
22523         (peep2_fill_buffer): New static function.
22524         (peephole2_optimize): Change the main loop to try to fill the buffer
22525         with the maximum number of insns before matching them against
22526         peepholes.  Use a forward scan.  Remove special case for targets with
22527         conditional execution.
22528         * genrecog.c (change_state): Delete dead code.
22529         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22530         Rewrite so as not to expect the second insn to have had a peephole
22531         applied yet.
22532
22533 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22534
22535         * genhooks.c (emit_findices): Cast field precision to int.
22536         (emit_documentation): Likewise.
22537
22538 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
22539
22540         PR tree-optimization/43801
22541         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
22542         if old_decl was DECL_ONE_ONLY.
22543
22544         PR debug/44668
22545         * dwarf2out.c (add_accessibility_attribute): New function.
22546         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
22547         instead of adding DW_AT_accessibility manually.
22548         (gen_enumeration_type_die, gen_struct_or_union_type_die,
22549         gen_typedef_die): Use it.
22550
22551 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22552
22553         * vmsdbgout.c (full_name): Just output the file name if not native.
22554
22555 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22556
22557         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
22558         (funcnam_table): New static table.
22559         (funcnum_table): New static table.
22560         (write_rtnbeg): Write value saved in funcnum_table.
22561         (write_rtnend): Write value saved in funcnum_table.
22562         (vmsdbgout_begin_function): Save current function info in
22563         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
22564         (vmsdbgout_finish): Iterate over funcnum_table.
22565
22566 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22567
22568         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
22569         (vmsdbgout_type_decl): Declare
22570         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
22571         (FUNC_EPILOGUE_LABEL): New macro
22572         (vmsdbgout_begin_epilogue): New function.
22573         (vmsdbgout_type_decl): New function.
22574
22575 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22576
22577         * vmsdbg.h: Update copyright.
22578
22579 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22580
22581         * vmsdbg.h (DST_K_TBG): New DST constant.
22582         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
22583         (write_modbeg): Cast module_language to avoid warning.
22584         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
22585
22586 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
22587
22588         PR other/44034
22589         * target.def, doc/tm.texi.in, genhooks.c: New files.
22590         * target.h: Instead of defining individual hook members,
22591         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
22592         include target.def.
22593         * target-def.h: Instead of defining individual hook initializers,
22594         include target-hooks-def.h.
22595         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
22596         targetm.live_on_entry -> targetm.extra_live_on_entry
22597         targetm.sched.md_finish ->targetm.sched.finish
22598         targetm.sched.md_init -> targetm.sched.init
22599         targetm.sched.md_init_global -> targetm.sched.init_global
22600         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
22601         targetm.asm_out.except_table_label ->
22602           targetm.asm_out.emit_except_table_label
22603         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
22604         targetm.target_help -> targetm.help
22605         targetm.vectorize.builtin_support_vector_misalignment ->
22606           targetm.vectorize.support_vector_misalignment
22607         targetm.file_start_app_off -> targetm.asm_file_start_app_off
22608         targetm.file_start_file_directive ->
22609          targetm.asm_file_start_file_directive
22610         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
22611         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
22612         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
22613         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
22614           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
22615         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
22616           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
22617         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
22618         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
22619         * Makefile.in (TARGET_H): Depend on target.def.
22620         (TARGET_DEF_H): Depend on target-hooks-def.h.
22621         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
22622         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
22623         * doc/tm.texi: Regenerate.
22624
22625         * Makefile.in (s-tm-texi): Remove stray tab / rule.
22626
22627         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
22628         (targetm.sched.init): Likewise.
22629
22630 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22631
22632         PR bootstrap/44713
22633         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
22634         (function_arg_advance_32): Const-ify TYPE parameter.
22635         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
22636         (ix86_function_arg_advance): Change type of NAMED to bool.
22637         (function_arg_32): Const-ify CUM and TYPE parameters.
22638         (function_arg_64): Likewise.  Change type of NAMED to bool.
22639         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
22640         to bool.
22641         (ix86_function_arg): Change type of NAMED to bool.
22642         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
22643         last argument as a bool.
22644
22645 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
22646
22647         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
22648         (OVERRIDE_OPTIONS): Add note of obsolescence.
22649         Replace references with references to TARGET_OPTION_OVERRIDE.
22650         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
22651          the macro).
22652         * targhooks.c (default_target_option_override): New function.
22653         * targhooks.h (default_target_option_override): Declare.
22654         * target.h (struct gcc_target): Add override member to
22655         target_option member.
22656         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
22657         targetm.target_option.override call.
22658         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
22659         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
22660
22661 2010-06-29  Jan Hubicka  <jh@suse.cz>
22662
22663         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
22664
22665 2010-06-29  Jan Hubicka  <jh@suse.cz>
22666
22667         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
22668         unreachable.
22669         (rebuild_frequencies): New function.
22670         * predict.h (rebuild_frequencies): Declare.
22671         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
22672         entry block and edge reaching new_entry.
22673         (tree_function_versioning): When doing partial cloning, rebuild
22674         frequencies when done.
22675         * passes.c (execute_function_todo): Use rebild_frequencies.
22676
22677 2010-06-29  Richard Guenther  <rguenther@suse.de>
22678
22679         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
22680         * tree-flow.h (enum noalias_state): Remove.
22681         (struct var_ann_d): Remove noalias_state member.
22682
22683 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
22684
22685         PR target/43902
22686         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
22687         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
22688         (maddhidi4): Likewise.
22689
22690         Revert parts of the change for PR25130.
22691         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
22692         MEM_ALIAS_SET.
22693
22694 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22695
22696         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
22697         targetm.calls.function_incoming_arg, and
22698         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
22699         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
22700         * target.h (struct gcc_target): Add function_arg_advance,
22701         function_arg, and function_incoming_arg fields.
22702         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
22703         (TARGET_FUNCTION_INCOMING_ARG): Define.
22704         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
22705         and TARGET_FUNCTION_INCOMING_ARG.
22706         * targhooks.h (default_function_arg_advance): Declare.
22707         (default_function_arg, default_function_incoming_arg): Declare.
22708         * targhooks.c (default_function_arg_advance): New function.
22709         (default_function_arg, default_function_incoming_arg): New function.
22710         * config/i386/i386.c (function_arg_advance): Rename to...
22711         (ix86_function_arg_advance): ...this.  Make static.
22712         (function_arg): Rename to...
22713         (ix86_function_arg): ...this.  Make static.
22714         (TARGET_FUNCTION_ARG_ADVANCE): Define.
22715         (TARGET_FUNCTION_ARG): Define.
22716         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
22717         (FUNCTION_ARG): Delete.
22718         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
22719         (function_arg): Delete prototype.
22720
22721 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22722
22723         * reginfo.c (init_reg_sets_1): Adjust comments.
22724         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
22725         * calls.c (prepare_call_address): Likewise.
22726         (emit_call_1): Use targetm.calls.return_pops_args.
22727         (expand_call): Likewise.
22728         * function.c (assign_parms): Likewise.
22729         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
22730         * target.h (struct gcc_target) [struct calls]: Add
22731         return_pops_args field.
22732         * targhooks.h (default_return_pops_args): Declare.
22733         * targhooks.c (default_return_pops_args): Define.
22734         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
22735         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
22736         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
22737         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
22738         documentation.
22739         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
22740         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
22741         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
22742         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
22743         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
22744         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
22745         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
22746         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
22747         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
22748         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
22749         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
22750         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
22751         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
22752         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
22753         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
22754         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
22755         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
22756         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
22757         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
22758         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
22759         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
22760         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
22761         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
22762         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
22763         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
22764         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
22765         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
22766         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
22767         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
22768         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
22769         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
22770         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
22771         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
22772         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
22773         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
22774         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
22775         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
22776         * config/i386/i386.c (ix86_return_pops_args): Make static.
22777         Constify arguments.
22778         (TARGET_RETURN_POPS_ARGS): Define.
22779         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
22780         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
22781         (TARGET_RETURN_POPS_ARGS): Define.
22782         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
22783         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
22784         (TARGET_RETURN_POPS_ARGS): Define.
22785
22786 2010-06-29  Richard Guenther  <rguenther@suse.de>
22787
22788         PR middle-end/44667
22789         * tree-inline.c (initialize_inlined_parameters): Make sure
22790         to remap the inlined parameter variable substitutions types.
22791
22792 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
22793
22794         PR rtl-optimization/44659
22795         * combine.c (make_compound_operation) <SUBREG>: Do not return the
22796         result of force_to_mode if it partially re-expanded the compound.
22797
22798 2010-06-28  Jan Hubicka  <jh@suse.cz>
22799
22800         PR middle-end/44671
22801         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
22802         RESULT_DECL.
22803
22804 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
22805
22806         * double-int.h (force_fit_type_double): Remove declaration.
22807         * double-int.c (force_fit_type_double): Move to tree.c.
22808         * tree.h (force_fit_type_double): Declare.
22809         * tree.h (force_fit_type_double): Moved from double-int.c. Use
22810         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
22811         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
22812         * convert.c (convert_to_pointer): Adjust call to
22813         force_fit_type_double.
22814         * tree-vrp.c (extract_range_from_assert,
22815         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
22816         * fold-const.c: Update comment.
22817         (int_const_binop, fold_convert_const_int_from_int,
22818         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
22819         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
22820         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
22821         round_up_loc): Adjust call to force_fit_type_double.
22822
22823 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22824
22825         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
22826
22827 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22828
22829         * tree-sra.c (convert_callers): New parameter, change fndecls of
22830         recursive calls.
22831         (modify_function): Pass the old decl to convert_callers.
22832
22833 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22834
22835         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
22836         ipa_check_create_node_params and ipa_initialize_node_params with
22837         checking asserts they are not necessary.
22838
22839 2010-06-28  Jan Hubicka  <jh@suse.cz>
22840
22841         PR tree-optimization/44687
22842         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
22843
22844 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22845
22846         PR c++/44535
22847         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
22848         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
22849         instead of BINFO_BASE_BINFO.
22850
22851 2010-06-28  Michael Matz  <matz@suse.de>
22852
22853         PR middle-end/44592
22854         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
22855         proper VDEF chain for intermediate stores in the sequence.
22856
22857 2010-06-28  Jan Hubicka  <jh@suse.cz>
22858
22859         PR tree-optimization/44357
22860         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
22861         uninlinable functions.
22862
22863 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22864
22865         * config.gcc (powerpc*-*-*): Handle titan.
22866         * config/rs6000/rs6000.c (titan_cost): New costs.
22867         (rs6000_override_options): Add "titan" to processor_target_table.
22868         Add Titan to branch alignment logic.
22869         Correctly set rs6000_cost for titan.
22870         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22871         * config/rs6000/titan.md: New file.
22872         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22873
22874 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22875
22876         * tree-browser.c (TB_history_stack): Convert to a VEC.
22877         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22878         (TB_history_prev): Likewise.
22879
22880 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22881
22882         * vec.h (vec_heap_free): Add parentheses around free.
22883
22884 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22885
22886         * system.h: Poison GCC_EXCEPT_H for front-end files.
22887
22888         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22889         langhook.
22890         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22891         Define to NULL by default.
22892         * except.h: Define GCC_EXCEPT_H.
22893         (doing_eh): Remove prototype.
22894         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22895         (lang_protect_cleanup_actions): Remove.
22896         * except.c (lang_protect_cleanup_actions): Remove.
22897         (doing_eh): Remove.
22898         (gen_eh_region): Don't check doing_eh here.
22899         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22900         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22901         instead of lang_protect_cleanup_actions.
22902         * omp-low.c (maybe_catch_exception): Likewise.
22903         * Makefile.in: Update dependencies.
22904
22905 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22906
22907         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22908         (struct cgraph_local_info): new used_from_object_file flag.
22909         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
22910         (cgraph_clone_node): initialize used_from_object_file.
22911         (cgraph_create_virtual_clone): initialize used_from_object_file.
22912         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
22913         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
22914         when compiling with -fwhole-program.
22915         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
22916         internal resolver.
22917         * ipa.c (function_and_variable_visibility): Set externally_visible
22918         flag of varpool_node if used_from_object_file flag is set.
22919         (cgraph_externally_visible_p): check used_from_object_file flag.
22920         * doc/invoke.texi (-fwhole-program option): Change description of
22921         externally_visible attribute accordingly.
22922         * doc/extend.texi (externally_visible): Ditto.
22923
22924 2010-06-27  Jan Hubicka  <jh@suse.cz>
22925
22926         * params.def (max-inline-insns-auto): Default to 40.
22927         * doc/invoke.texi (max-inline-insns-auto): Document the change.
22928
22929 2010-06-27  Jan Hubicka  <jh@suse.cz>
22930
22931         PR middle-end/44671
22932         PR middle-end/44686
22933         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
22934         signature change.
22935         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
22936         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
22937
22938 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
22939
22940         * target.h (struct gcc_target): Add register_move_cost field.
22941         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
22942         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
22943         * targhooks.c (default_register_move_cost): New function.
22944         * targhooks.h (default_register_move_cost): Declare function.
22945         * defaults.h (REGISTER_MOVE_COST): Delete.
22946         * ira-int.h (ira_register_move_cost): Update comment.
22947         * ira.c (ira_register_move_cost): Update comment.
22948         * reload.h (register_move_cost): Declare.
22949         * reginfo.c (register_move_cost): New function.
22950         (move_cost): Update comment.
22951         (init_move_cost, memory_move_secondary_cost): Replace
22952         REGISTER_MOVE_COST with register_move_cost.
22953         * postreload.c (reload_cse_simplify_set): (Ditto.).
22954         * reload.c (find_valid_class, find_reloads): (Ditto.).
22955         * reload1.c (choose_reload_regs): (Ditto.).
22956         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
22957         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
22958         * doc/md.texi (can_create_pseudo_p): Update documentation.
22959
22960         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22961         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22962         * config/i386/i386.h (ix86_memory_move_cost): Make static.
22963         (TARGET_MEMORY_MOVE_COST): Define.
22964
22965         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22966         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
22967         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
22968         (TARGET_MEMORY_MOVE_COST): Define.
22969
22970 2010-06-27  Richard Guenther  <rguenther@suse.de>
22971
22972         PR tree-optimization/44683
22973         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
22974         false edge from the inverted condition.
22975
22976 2010-06-27  Richard Guenther  <rguenther@suse.de>
22977
22978         PR middle-end/44684
22979         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
22980         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
22981         for register LHS.  Or non-store assignments.
22982
22983 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
22984
22985         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
22986         (sparc_emit_set_const64): Likewise.  Remove disabled code.
22987         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
22988         (sparc_emit_set_const64): Likewise.
22989
22990 2010-06-26  Catherine Moore  <clm@codesourcery.com>
22991
22992         * config/mips/mips.md (alu_type): New attribute.
22993         (type): Infer type from alu_type.
22994         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
22995         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
22996         *subsi3_extended, negsi2, negdi2, *low<mode>,
22997         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
22998         xor<mode>3, *nor<mode>3,
22999         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
23000         *zero_extendhi_truncqi):  Set alu_type instead of type.
23001
23002 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
23003
23004         * config/alpha/alpha.c (alpha_need_linkage): Adjust
23005         splay_tree_new_ggc call.
23006         (alpha_use_linkage): Likewise.
23007
23008 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
23009
23010         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
23011         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
23012         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
23013         (static_specs): Remove switches_need_spaces.
23014         (process_command, do_self_spec): Hardcode handling "-o" instead of
23015         checking switches_need_spaces.
23016         * system.h (SWITCHES_NEED_SPACES): Poison.
23017
23018 2010-06-26  Richard Guenther  <rguenther@suse.de>
23019
23020         PR tree-optimization/44393
23021         * tree-loop-distribution.c (generate_loops_for_partition): Fix
23022         stmt removal and VOP renaming.
23023         (generate_memset_zero): Remove redundant stmt updating.
23024         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
23025         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
23026
23027 2010-06-26  Jan Hubicka  <jh@suse.cz>
23028
23029         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
23030         edges comming from header are equivalent.
23031         (visit_bb): Handle PHIs correctly.
23032         * tree-inline.c (copy_phis_for_bb): Be able to copy
23033         PHI from entry edge.
23034         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
23035
23036 2010-06-26  Richard Guenther  <rguenther@suse.de>
23037
23038         PR middle-end/44674
23039         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
23040         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
23041
23042 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
23043
23044         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
23045         add_infile, alloc_switch): New.
23046         (process_command): Remove variable lang_n_infiles.  Process
23047         options in a single pass.  Use new functions for allocating
23048         infiles and switches arrays.  Properly skip operands of
23049         -Xpreprocessor and -Xassembler.
23050
23051 2010-06-26  Jan Hubicka  <jh@suse.cz>
23052
23053         PR middle-end/44671
23054         * cgraphunit.c (cgraph_function_versioning): Remove wrong
23055         cgraph_make_decl_local call; fix typo copying RTL data.
23056
23057 2010-06-25  DJ Delorie  <dj@redhat.com>
23058
23059         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
23060         (m32c_output_aligned_common): Likewise.
23061         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
23062         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
23063         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
23064         (m32c_register_pragmas): Register it.
23065         * config/m32c/m32c.c (m32c_get_pragma_address): New.
23066         (m32c_insert_attributes): Set #pragma address decls volatile.
23067         (pragma_entry_eq): New.
23068         (pragma_entry_hash): New.
23069         (m32c_note_pragma_address): New.
23070         (m32c_get_pragma_address): New.
23071         (m32c_output_aligned_common): New.
23072         * doc/extend.texi: Document the new pragma.
23073
23074         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
23075         also.
23076         * config/m32c/predicates.md (m32c_any_operand): Check the code
23077         instead of memory_operand so as to allow matching volatile MEMs.
23078         (m32c_nonimmediate_operand): Likewise.
23079         (mra_operand): Allow volatiles.
23080
23081 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
23082
23083         PR debug/44610
23084         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
23085         address if the offset is unknown.
23086
23087 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
23088
23089         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
23090         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
23091         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
23092         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
23093         to ia64_start_function. Invoke it.
23094         * config/ia64/ia64.c (ia64_start_function): Call new function
23095         dwarf2out_vms_debug_main_pointer.
23096
23097 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23098
23099         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
23100         statements computing the true predicate.
23101
23102 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23103
23104         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
23105         to boolean_true_node.
23106         (reset_bb_predicate): New.
23107         (predicate_bbs): Call reset_bb_predicate.
23108
23109 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23110
23111         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
23112         (tree_if_conversion): Returns true when something has been changed.
23113         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
23114         changed something.
23115
23116 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23117
23118         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
23119         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
23120         * tree-if-conv.c: Include dbgcnt.h.
23121         (tree_if_conversion): Use if_conversion_tree to count the number of
23122         if-convertible loops.
23123
23124 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
23125
23126         * common.opt (fprefetch-loop-arrays): Re-define
23127         -fprefetch-loop-arrays as a tri-state option with the initial
23128         value of -1.
23129         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
23130         pass only when flag_prefetch_loop_arrays > 0.
23131         * toplev.c (process_options): Note that, with tri-states,
23132         flag_prefetch_loop_arrays>0 means prefetching is enabled.
23133         * config/i386/i386.c (override_options): Enable prefetching at -O3
23134         for a set of CPUs that sw prefetching is helpful.
23135         (software_prefetching_beneficial_p): New.  Return TRUE if software
23136         prefetching is beneficial for the given CPU.
23137
23138 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
23139
23140         PR rtl-optimization/44326
23141         * implicit-zee.c (find_removable_zero_extends): Replace
23142         INSN_P with NONDEBUG_INSN_P.
23143
23144 2010-06-25  Martin Jambor  <mjambor@suse.cz>
23145
23146         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
23147         (struct ipa_node_params): Removed the modification_analysis_done flag.
23148         (ipa_is_param_modified): Removed.
23149         (ipa_analyze_node): Declare.
23150         (ipa_compute_jump_functions): Remove declaration.
23151         (ipa_count_arguments): Likewise.
23152         (ipa_detect_param_modifications): Likewise.
23153         (ipa_analyze_params_uses): Likewise.
23154         * ipa-prop.c (struct param_analysis_info): New type.
23155         (visit_store_addr_for_mod_analysis): Removed.
23156         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
23157         moved down in the file.
23158         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
23159         (ipa_count_arguments): Made static.
23160         (mark_modified): New function.
23161         (is_parm_modified_before_call): New function.
23162         (compute_pass_through_member_ptrs): New parameter parms_info, call
23163         is_parm_modified_before_call instead of ipa_is_param_modified.
23164         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
23165         it to compute_pass_through_member_ptrs.
23166         (ipa_compute_jump_functions): New parameter parms_info, pass it to
23167         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
23168         on the callee if it is analyzed.  Made static.
23169         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
23170         is_parm_modified_before_call instead of ipa_is_param_modified.
23171         (ipa_analyze_call_uses): New parameter parms_info, pass it to
23172         ipa_analyze_indirect_call_uses.
23173         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
23174         ipa_analyze_call_uses.
23175         (ipa_analyze_params_uses): New parameter parms_info, pass it to
23176         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
23177         (ipa_analyze_node): New function.
23178         (ipa_print_node_params): Do not dump the modified flag.
23179         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
23180         it.  Do not stream the modified parameter flag.
23181         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
23182         it.  Do not stream the modified parameter flag.
23183         * ipa-cp.c (ipcp_analyze_node): Removed.
23184         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
23185         with only a call to ipa_analyze_node.
23186         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
23187         node with only a call to ipa_analyze_node.
23188
23189 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23190
23191         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
23192
23193 2010-06-25  Jan Hubicka  <jh@suse.cz>
23194
23195         * tree-pass.h (pass_split_functions): Declare.
23196         * opts.c (decode_options): Enable function splitting at -O2
23197         * timevar.def (TV_IPA_FNSPLIT): New macro.
23198         * ipa-split.c: New file.
23199         * common.opt (-fpartial-inlining): New flag.
23200         * Makefile.in (ipa-split.o): New object file.
23201         * passes.c (init_optimization_passes): Add ipa-split.
23202         * params.def (partial-inlining-entry-probability): New parameters.
23203         * doc/invoke.texi (-fpartial-inlining): New.
23204
23205 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23206
23207         PR 44665
23208         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
23209         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
23210         (gimplify_expr): Likewise.
23211
23212 2010-06-25  Martin Jambor  <mjambor@suse.cz>
23213
23214         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
23215         statements instead of bailing out on them.
23216         (ipa_analyze_indirect_call_uses): Do not require that loads from the
23217         parameter are in the same BB as the condition.  Update comments.
23218
23219 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
23220
23221         PR middle-end/43866
23222         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
23223         true or always false, return NULL_TREE.
23224         (tree_unswitch_single_loop): Optimize conditions even when reaching
23225         max-unswitch-level parameter.  If num > 0, optimize first all conditions
23226         using entry checks, then do still reachable block discovery and consider
23227         only conditions in still reachable basic blocks in the loop.
23228
23229         PR tree-optimization/44539
23230         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
23231         the call doesn't have LHS, but has VDEF.
23232
23233 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
23234
23235         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
23236         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
23237         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
23238         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
23239         * system.h (MODIFY_TARGET_NAME): Poison.
23240
23241 2010-06-25  Alan Modra  <amodra@gmail.com>
23242
23243         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
23244         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
23245         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
23246         CMODEL_LARGE as default.
23247         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
23248         (offsettable_ok_by_alignment): Delete.
23249         (rs6000_emit_move): Remove mcmodel=medium optimization.
23250
23251 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
23252
23253         With large parts from Jim Wilson:
23254         PR target/43902
23255         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
23256         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
23257         * optabs.c (optab_for_tree_code): Likewise.
23258         (expand_widen_pattern_expr): Likewise.
23259         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
23260         out of execute_optimize_widening_mul.
23261         (convert_plusminus_to_widen): New function.
23262         (execute_optimize_widening_mul): Use the two new functions.
23263         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
23264         Remove code to generate widening multiply-accumulate.  Add support
23265         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
23266         * gimple-pretty-print.c (dump_ternary_rhs): New function.
23267         (dump_gimple_assign): Call it when appropriate.
23268         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
23269         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
23270         (expand_gimple_stmt_1): Likewise.
23271         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
23272         WIDEN_MULT_MINUS_EXPR.
23273         * tree-ssa-operands.c (get_expr_operands): Likewise.
23274         * tree-inline.c (estimate_operator_cost): Likewise.
23275         * gimple.c (extract_ops_from_tree_1): Renamed from
23276         extract_ops_from_tree.  Add new arg for a third operand; fill it.
23277         (gimple_build_assign_stat): Support operations with three operands.
23278         (gimple_build_assign_with_ops_stat): Likewise.
23279         (gimple_assign_set_rhs_from_tree): Likewise.
23280         (gimple_assign_set_rhs_with_ops_1): Renamed from
23281         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
23282         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
23283         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
23284         WIDEN_MULT_MINUS_EXPR.
23285         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
23286         (extract_ops_from_tree_1): Adjust declaration.
23287         (gimple_assign_set_rhs_with_ops_1): Likewise.
23288         (gimple_build_assign_with_ops): Pass NULL for last operand.
23289         (gimple_build_assign_with_ops3): New macro.
23290         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
23291         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
23292         functions.
23293         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
23294         (verify_gimple_assign): Call it.
23295         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
23296         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
23297         functions for dealing with three-operand statements.
23298         * tree.c (commutative_ternary_tree_code): New function.
23299         * tree.h (commutative_ternary_tree_code): Declare it.
23300         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
23301         ternary statements.
23302         (gimple_assign_nonzero_warnv_p): Likewise.
23303         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
23304         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
23305         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
23306         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
23307         (struct hashtable_expr): New member ternary in the union.
23308         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
23309         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
23310         (iterative_hash_hashable_expr): Likewise.
23311         (print_expr_hash_elt): Handle EXPR_TERNARY.
23312         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
23313         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
23314         statements.  Handle GIMPLE_TERNARY_RHS.
23315
23316 2010-06-25  Jan Hubicka  <jh@suse.cz>
23317
23318         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
23319
23320 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
23321
23322         PR c/44517
23323         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
23324         parameters are not good.
23325         (c_parser_parameter_declaration): Error unknown type name if the type
23326         name can't start declaration specifiers.
23327
23328 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
23329
23330         * gcc.c (translate_options): Don't mention +e in comment.
23331         (process_command): Don't handle +e specially.
23332
23333 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
23334
23335         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
23336
23337         * ira-build.c (merge_hard_reg_conflicts): New function.
23338         (create_cap_allocno, copy_info_to_removed_store_destinations,
23339         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
23340         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
23341         (remove_unnecessary_allocnos, remove_low_level_allocnos)
23342         copy_nifo_to_removed_store_destination): Use them.
23343         * ira-lives.c (make_hard_regno_born): New function, split out of
23344         make_regno_born.
23345         (make_allocno_born): Likewise.
23346         (make_hard_regno_dead): New function, split out of make_regno_dead.
23347         (make_allocno_dead): Likewise.
23348         (inc_register_pressure): New function, split out of set_allocno_live.
23349         (dec_register_pressure): New function, split out of clear_allocno_live.
23350         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
23351         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
23352         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
23353         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
23354         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
23355         mark_pseudo_regno_live.
23356         (process_bb_node_lives): Use mark_pseudo_regno_live,
23357         make_hard_regno_born and make_allocno_dead.
23358         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
23359         set_allocno_live, clear_allocno_live): Delete functions.
23360
23361         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
23362         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
23363         functions.
23364         (ira_flattening): Use ira_parent_allocno.
23365         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
23366         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
23367
23368         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
23369         statement.
23370
23371         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
23372         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
23373         minmax_set_iter_cond, minmax_set_iter_next,
23374         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
23375         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
23376         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
23377         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
23378         uses changed.
23379
23380         * ira-int.h (struct live_range, live_range_t): Renamed from struct
23381         ira_allocno_live_range and allocno_live_range_t; all uses changed.
23382         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
23383         All uses changed.
23384
23385 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
23386
23387         * thumb2.md (thumb2_tlobits_cbranch): Delete.
23388         (peephole2 to convert zero_extract/compare of single bit to
23389          lshift/compare): New.
23390
23391 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
23392
23393         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
23394         recursive call and call to 'int_const_binop'.
23395         (build_range_check, fold_cond_expr_with_comparison, unextend,
23396         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
23397         multiple_of_p): Adjust call to const_binop.
23398
23399 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
23400
23401         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
23402         determine size of XFmode operand.
23403         (XFmode extended DFmode push splitter): Ditto.
23404         (XFmode extended SFmode push splitter): Ditto.
23405
23406 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
23407
23408         PR target/44588
23409         * config/i386/i386.md (extract_code): New.
23410         (<u>divmodqi4): Likewise.
23411         (divmodhiqi3): Likewise.
23412         (udivmodhiqi3): Likewise.
23413         (<u>divqi3): Remvoved.
23414
23415 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
23416
23417         PR middle-end/44492
23418         * recog.h (struct recog_data): Add is_asm field.
23419         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
23420         present in constraints of inline-asm operand and memory operand
23421         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
23422         (extract_insn): Initialize recog_data.is_asm.
23423         * doc/md.texi (Constraints): Document operand side-effect rules.
23424
23425 2010-06-24  Andi Kleen  <ak@linux.intel.com>
23426
23427         * c-parser.c (c_parser_conditional_expression): Call
23428         warn_for_omitted_condop.
23429         * doc/invoke.texi: Document omitted condop warning.
23430
23431 2010-06-24  Nick Clifton<nickc@redhat.com>
23432
23433         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
23434         insn in the sequence is a jump insn before setting its label.
23435
23436 2010-06-24  Alan Modra  <amodra@gmail.com>
23437
23438         * collect2.c (main): Match exactly --version and --help.
23439
23440 2010-06-24  DJ Delorie  <dj@redhat.com>
23441
23442         * config/m32c/m32c-pragma.c: Don't include rtl.h.
23443
23444 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
23445
23446         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
23447         using X87MODEF mode iterator.
23448         (pushsf splitter): Macroize splitter using P mode iterator.
23449         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
23450         mode iterator.
23451
23452         (*movxf_internal): Rename from *movxf_integer.
23453         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
23454         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
23455         (*movdf_internal): Rename from *movdf_integer.
23456         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
23457         (*movsf_internal): Rename from *movdf_1.
23458
23459 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
23460
23461         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
23462         (const_gimple_seq_node): Removed typedefs.
23463
23464         * gimple.h (gimple_seq_node_d, gimple_seq_node)
23465         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
23466
23467 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
23468
23469         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
23470         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
23471         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
23472         and CODE_FOR_vec_extract_lo_v4df.
23473
23474         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
23475         Changed to define_insn_and_split.
23476         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
23477         (vec_extract_lo_v16hi): Likewise.
23478         (vec_extract_lo_v32qi): Likewise.
23479         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
23480         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
23481
23482 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
23483
23484         PR target/44640
23485         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
23486         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
23487         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
23488         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
23489         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
23490
23491         PR target/44640
23492         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
23493
23494         PR other/44644
23495         * df-core.c (struct df): Rename to df_d.
23496         * df.h (struct df): Likewise.
23497         * dse.h (struct df): Remove forward declaration.
23498         * recog.h (struct insn_data): Rename to:
23499         (struct_insn_data_d).  Adjusted all users.
23500
23501 2010-06-23  Arnaud Charlet  <charlet@adacore.com
23502
23503         PR ada/22220
23504         * doc/install.texi: Update requirements to build GNAT.
23505
23506 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
23507
23508         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
23509         enum type.
23510         (m68k_sched_attr_opx_type): Remove unreachable return.
23511         (m68k_sched_attr_opy_type): Likewise.
23512         (m68k_sched_attr_size): Likewise.
23513         (sched_get_opxy_mem_type): Likewise.
23514         (m68k_sched_attr_op_mem): Likewise.
23515
23516 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
23517
23518         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
23519         new statement and adjust VDEF only if necessary.  Remove superfluous
23520         call to maybe_clean_or_replace_eh_stmt.
23521         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
23522         copy the flags.
23523         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
23524         * tree-inline.c (copy_bb): ...and not there.
23525
23526 2010-06-22  Cary Coutant  <ccoutant@google.com>
23527
23528         * dwarf2out.c (is_nested_in_subprogram): New function.
23529         (should_move_die_to_comdat): Use it.
23530         (copy_ancestor_tree): Don't mark DIEs here.
23531         (copy_decls_walk): Start walk from root of newly-added tree;
23532         mark DIEs here instead.
23533
23534 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
23535
23536         * config/i386/i386.md (unit): Also check sseishft1.
23537
23538 2010-06-22  Jan Hubicka  <jh@suse.cz>
23539
23540         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
23541         enabled.
23542
23543 2010-06-22  Jan Hubicka  <jh@suse.cz>
23544
23545         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
23546         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
23547         Return true if something changed.
23548         * df.h (df_confluence_function_n): Return bool.
23549         * df-core.c (df_worklist_propagate_forward,
23550         df_worklist_propagate_backward): Track changes and ages.
23551         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
23552         track ages.
23553         * dse.c (dse_confluence_n): Return always true.
23554
23555 2010-06-22  Jan Hubicka  <jh@suse.cz>
23556
23557         * bitmap.c (bitmap_clear_bit): Micro optimize.
23558
23559 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
23560
23561         * config/i386/i386.md (SWI1248x): New mode iterator.
23562         (SWI48x): Ditto.
23563         (SWI12): Ditto.
23564         (SWI24): Ditto.
23565
23566         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
23567         SWI1248x mode iterator.
23568         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
23569         using SWI124 mode iterator.
23570         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
23571         mode iterator.
23572         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
23573         *pushdi2_prologue_rex64 using P mode iterator.
23574         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
23575         using SWI48 mode iterator.
23576         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
23577         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
23578         using SWI1248x mode iterator.
23579         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
23580         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
23581         SWI48 mode iterator.
23582         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
23583         iterator.
23584         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
23585         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
23586         SWI12 mode iterator.
23587         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
23588         SWI12 mode iterator.
23589         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
23590         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
23591         SWI24 mode iterator.
23592         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
23593         SWI48 mode iterator.
23594         (mov<mode>_insn_1): New expander.
23595         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
23596         using SWI48x mode iterator.
23597
23598         (*movoi_internal_avx): Rename from *movoi_internal.
23599         (*movti_internal_rex64): Rename from *movti_rex64.
23600         (*movti_internal_sse): Rename from *movti_sse.
23601         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
23602         (*movdi_internal): Rename from *movdi_2.
23603         (*movsi_internal): Rename from *movsi_1.
23604         (*movhi_internal): Rename from *movhi_1.
23605         (*movqi_internal): Rename from *movqi_1.
23606
23607         (insv): Update the call to gen_movsi_insv_1 for rename.
23608         * config/i386/i386.c (promote_duplicated_reg): Ditto.
23609
23610 2010-06-22  Jan Hubicka  <jh@suse.cz>
23611
23612         * passes.c (execute_function_todo): Move call of statistics_fini_pass
23613         to ...
23614         (execute_todo) ... this one.
23615
23616 2010-06-22  Alan Modra  <amodra@gmail.com>
23617
23618         PR target/44364
23619         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
23620         * caller-save.c (insert_restore, insert_save): Use non-validate
23621         form of adjust_address.
23622
23623 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23624
23625         PR target/39690
23626         * config/pa/pa.c (override_options): Disable
23627         -freorder-blocks-and-partition.
23628
23629 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
23630
23631         PR target/44615
23632         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
23633
23634         * config/i386/i386.md (type): Add sseishft1
23635
23636         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
23637         (ppro_insn_load): Likewise.
23638         (ppro_insn_store): Likewise.
23639         (ppro_insn_both): Likewise.
23640
23641         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
23642         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
23643         for type.
23644         (*vec_extractv2di_1_avx): Likewise.
23645         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
23646         type.  Remove atom_unit.
23647         (*vec_extractv2di_1_sse2): Likewise.
23648
23649 2010-06-21  DJ Delorie  <dj@redhat.com>
23650
23651         * diagnostic.h (diagnostic_classification_change_t): New.
23652         (diagnostic_context): Add history and push/pop list.
23653         (diagnostic_push_diagnostics): Declare.
23654         (diagnostic_pop_diagnostics): Declare.
23655         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
23656         from pragmas in a history chain instead of the global table.
23657         (diagnostic_push_diagnostics): New.
23658         (diagnostic_pop_diagnostics): New.
23659         (diagnostic_report_diagnostic): Scan history chain to find state
23660         of diagnostics as of the diagnostic location.
23661         * opts.c (set_option): Pass UNKNOWN_LOCATION to
23662         diagnostic_classify_diagnostic.
23663         (enable_warning_as_error): Likewise.
23664         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
23665         use in the history chain.
23666         * doc/extend.texi: Document pragma GCC diagnostic changes.
23667
23668 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
23669
23670         * dwarf2out.c (add_linkage_name): New function.  Don't add
23671         anything to DW_TAG_member DIEs.
23672         (add_name_and_src_coords_attributes): Use it.
23673         (gen_variable_die): Call it for C++ static data members if
23674         specification is DW_TAG_member.
23675
23676         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
23677         C++ char16_t and char32_t.
23678
23679         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
23680         * genattrtab.c: Include vecprim.h.
23681         (cached_attrs, cached_attr_count, attrs_seen_once,
23682         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
23683         attrs_cached_after): New variables.
23684         (find_attrs_to_cache): New function.
23685         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
23686         (write_test_expr): Add attrs_cached argument, return it too,
23687         attempt to cache non-const attributes used more than once in
23688         a single case handling.
23689         (write_attr_get): Use find_attrs_to_cache, for caching candidates
23690         emit cached_* variables.  Adjust write_attr_set callers.
23691         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
23692         to find attributes that should be cached in this block.  Adjust
23693         write_test_expr callers.
23694         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
23695         callers.
23696         (make_automaton_attrs): Adjust write_test_expr caller.
23697
23698         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
23699         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
23700         (make_automaton_attrs): If find_tune_attr returns non-NULL,
23701         write separate internal_dfa_insn_code_* and insn_default_latency_*
23702         functions for each attribute's value and emit init_sched_attrs
23703         function and function pointers.
23704         * genattr.c (const_attrs, reservations): New variables.
23705         (gen_attr): Add const attributes to const_attrs vector.
23706         (check_tune_attr, find_tune_attr): New functions.
23707         (main): Add reservations to reservations vector.  If find_tune_attr
23708         returns true, add prototype for init_sched_attrs and make
23709         internal_dfa_insn_code and insn_default_latency function pointers,
23710         otherwise define init_sched_attrs as dummy macro.
23711         * cfgexpand.c: Include insn-attr.h.
23712         (gimple_expand_cfg): Call init_sched_attrs.
23713
23714         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
23715
23716         PR target/44575
23717         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
23718         va_arg from a set of register save slots into a temporary,
23719         if the container is bigger than type size, do the copying
23720         using smaller mode or using memcpy.
23721
23722         PR bootstrap/44426
23723         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
23724         prototype.
23725         (sel_print_to_dot): Remove macro.
23726         (sel_print): Likewise.  New prototype.
23727         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
23728         (sel_print): New function.
23729
23730 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23731
23732         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
23733         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
23734
23735 2010-06-21  Nick Clifton  <nickc@redhat.com>
23736
23737         * config/rx/rx.h (PTRDIFF_TYPE): Define.
23738         (SMALL_REGISTER_CLASS): Define (to zero).
23739         (PRINT_OPERAND): Delete.
23740         (PRINT_OPERAND_ADDRESS): Delete.
23741         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
23742         (rx_print_operand_address): Delete prototype.
23743         * config/rx/rx.c (rx_print_operand): Make static.
23744         Allow %H and %L to handle CONST_DOUBLEs.
23745         (rx_print_operand_address): Make static.
23746         (rx_gen_move_template): Rename local variable 'template' to
23747         out_template.
23748         (rx_function_arg): Do not pass unknown sized objects in registers.
23749         (TARGET_PRINT_OPERAND): Define.
23750         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23751
23752 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
23753
23754         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
23755
23756 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
23757
23758         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
23759         stack-alignment for simple leaf-functions.
23760
23761 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23762
23763         * doc/install.texi: Document bootstrap-lto.
23764
23765 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23766
23767         PR debug/44248
23768         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
23769         (input_function): Drop them here, if VTA is disabled.
23770
23771 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
23772
23773         PR target/44546
23774         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
23775         New predicate.
23776         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
23777         ix86_swapped_fp_comparsion_operator instead of
23778         ix86_fp_comparison_operator.
23779
23780         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
23781         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
23782         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
23783         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
23784         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
23785         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
23786
23787 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
23788
23789         PR other/32998
23790         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
23791         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
23792         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
23793         (decode_cmdline_option): Update for this return value.  Set
23794         orig_option_with_args_text field.  Set arg field for unknown
23795         options.  Make static.
23796         (decode_cmdline_options_to_array): New.
23797         (prune_options): Update handling of find_opt return value.
23798         * opts.c (read_cmdline_option): Take decoded option.  Return void.
23799         (read_cmdline_options): Take decoded options.
23800         (decode_options): Add parameters for decoded options.  Use
23801         decode_cmdline_options_to_array.  Use decoded options for -O
23802         scan.  Use integral_argument for -O parameters.  Update call to
23803         read_cmdline_options.
23804         (enable_warning_as_error): Update handling of find_opt return value.
23805         * opts.h: Update comment on unknown options.
23806         (struct cl_decoded_option): Update comments on opt_index and arg.
23807         Add orig_option_with_args_text.
23808         (decode_cmdline_option): Remove.
23809         (decode_cmdline_options_to_array): Declare.
23810         (decode_options): Update prototype.
23811         * toplev.c (save_argv): Remove.
23812         (save_decoded_options, save_decoded_options_count): New.
23813         (read_integral_parameter): Remove.
23814         (print_switch_values): Use decoded options.
23815         (toplev_main): Don't set save_argv.  Update call to decode_options.
23816         * toplev.h (read_integral_parameter): Remove.
23817         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
23818
23819 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
23820
23821         PR target/44072
23822         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
23823         immediate.
23824         * constraints.md (Pw, Px): New constraints.
23825         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
23826
23827 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
23828
23829         * config/i386/sse.md (fma4modesuffixf4): Removed.
23830         (ssemodesuffixf2s): Likewise.
23831         (ssemodesuffixf4): Likewise.
23832         (ssemodesuffixf2c): Likewise.
23833         (ssescalarmodesuffix2s): Likewise.
23834         (avxmodesuffixf2c): Likewise.
23835         (ssemodesuffix): New.
23836         (ssescalarmodesuffix): Likewise.
23837         Update patterns with ssemodesuffix and ssescalarmodesuffix.
23838
23839 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
23840
23841         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
23842
23843 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
23844
23845         * stor-layout.c (debug_rli): Remove unused local variables.
23846
23847 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
23848
23849         PR rtl-optimization/40900
23850         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
23851         original expression for later reuse.
23852         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
23853         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
23854
23855 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
23856
23857         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
23858         double_int_fits_in_uhwi_p): Implement as static inline.
23859         (double_int_xor): New inline function.
23860         (double_int_lrotate, double_int_rrotate, double_int_max,
23861         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23862         double_int_smin): Declare.
23863         (lrotate_double, rrotate_double): Remove declaration.
23864         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
23865         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
23866         (double_int_lrotate, double_int_rrotate, double_int_max,
23867         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23868         double_int_smin): New function.
23869         * fold-const.c (int_const_binop): Clean up, use double_int_*
23870         functions.
23871         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23872         double_int_* and immed_double_int_const functions.
23873
23874 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23875
23876         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23877         * function.c (types_used_by_cur_var_decl): Likewise.
23878         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23879
23880 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23881
23882         * tree.h (record_layout_info): Change type of pending_statics field
23883         to a VEC.
23884         * stor-layout.c (start_record_layout): Store NULL into
23885         pending_statics.
23886         (debug_rli): Call debug_vec_tree instead of debug_tree.
23887         (place_field): Likewise.
23888         (finish_record_layout): Likewise.
23889
23890 2010-06-18  Alan Modra  <amodra@gmail.com>
23891
23892         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23893
23894 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23895
23896         PR target/43740
23897         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23898         for SET source operand from SET destination operand.
23899
23900 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23901
23902         PR rtl-optimization/39871
23903         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23904         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23905         (function_invariant_p): Rule out a plus of frame or arg pointer with
23906         a SYMBOL_REF.
23907         * ira.c (find_reg_equiv_invariant_const): Likewise.
23908
23909 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
23910
23911         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
23912         print_operand_address and puts to output the operand for CONST.
23913
23914 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
23915
23916         PR debug/44572
23917         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
23918         hook.
23919
23920 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23921
23922         * v850-protos.h (print_operand): Delete.
23923         (print_operand_address): Delete.
23924         * v850.h (PRINT_OPERAND): Delete.
23925         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23926         (PRINT_OPERAND_ADDRESS): Delete.
23927         * v850.c (print_operand_address): Rename to...
23928         (v850_print_operand_address): ...this.  Make static. Call
23929         v850_print_operand.
23930         (print_operand): Rename to...
23931         (v850_print_operand): ...this.  Make static.  Call
23932         v850_print_operand_address.
23933         (v850_print_operand_punct_valid_p): New function.
23934         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23935         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23936
23937 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23938
23939         * config/sh/sh-protos.h (print_operand): Delete.
23940         (print_operand_address): Delete.
23941         * config/sh/sh.h (PRINT_OPERAND): Delete.
23942         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23943         (PRINT_OPERAND_ADDRESS): Delete.
23944         * config/sh/sh.c (sh_print_operand_address): Make static.
23945         (sh_print_operand): Make static.  Call sh_print_operand_address
23946         and sh_print_operand.
23947         (sh_print_operand_punct_valid_p): New function.
23948         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23949         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23950
23951 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23952
23953         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
23954         (mcore_print_operand_address): Delete.
23955         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
23956         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23957         (PRINT_OPERAND_ADDRESS): Delete.
23958         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
23959         (mcore_print_operand): Make static.
23960         (mcore_print_operand_punct_valid_p): New function.
23961         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
23962         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23963
23964 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23965
23966         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
23967         (print_operand_address): Delete.
23968         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
23969         (PRINT_OPERAND_ADDRESS): Delete.
23970         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
23971         static.
23972         (m68hc11_print_operand): Make static.
23973         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23974
23975 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23976
23977         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
23978         (m32r_print_operand_address): Delete.
23979         * config/m32r/m32r.h (m32r_punct_chars): Delete.
23980         (PRINT_OPERAND): Delete.
23981         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23982         (PRINT_OPERAND_ADDRESS): Delete.
23983         * config/m32r/m32r.c (m32r_punct_chars): Make static.
23984         (m32r_print_operand_address): Make static.
23985         (m32r_print_operand): Make static.
23986         (m32r_print_operand_punct_valid_p): New function.
23987         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23988         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23989
23990 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23991
23992         * config/iq2000/iq2000-protos.h (print_operand): Delete.
23993         (print_operand_address): Delete.
23994         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
23995         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23996         (PRINT_OPERAND_ADDRESS): Delete.
23997         (iq2000_print_operand_punct): Delete.
23998         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
23999         (iq2000_print_operand_address): Make static.
24000         (iq2000_print_operand): Make static.
24001         (iq2000_print_operand_punct_valid_p): New function.
24002         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24003         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24004
24005 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24006
24007         * config/frv/frv-protos.h (frv_print_operand): Delete.
24008         (frv_print_operand_address): Delete.
24009         * config/frv/frv.h (PRINT_OPERAND): Delete.
24010         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24011         (PRINT_OPERAND_ADDRESS): Delete.
24012         * config/frv/frv.c (frv_print_operand_address): Make static.
24013         (frv_print_operand): Make static.
24014         (frv_print_operand_punct_valid_p): New function.
24015         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24016         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24017
24018 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24019
24020         * tree.h (vec_member): Declare.
24021         * tree.c (vec_member): Define.
24022
24023 2010-06-17  Richard Guenther  <rguenther@suse.de>
24024
24025         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
24026         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
24027
24028 2010-06-17  Richard Guenther  <rguenther@suse.de>
24029
24030         * tree-inline.c (declare_return_variable): Remove bogus code.
24031
24032 2010-06-17  Richard Guenther  <rguenther@suse.de>
24033
24034         * gimplify.c (gimplify_bind_expr): Always promote complex
24035         and vector variables to registers if possible.
24036
24037 2010-06-17  Richard Guenther  <rguenther@suse.de>
24038
24039         * expr.c (get_inner_reference): Use double_int for bit_offset
24040         calculation.
24041
24042 2010-06-16  DJ Delorie  <dj@redhat.com>
24043
24044         * common.opt (-fstrict-volatile-bitfields): new.
24045         * doc/invoke.texi: Document it.
24046         * fold-const.c (optimize_bit_field_compare): For volatile
24047         bitfields, use the field's type to determine the mode, not the
24048         field's size.
24049         * expr.c (expand_assignment): Likewise.
24050         (get_inner_reference): Likewise.
24051         (expand_expr_real_1): Likewise.
24052         * expmed.c (store_fixed_bit_field): Likewise.
24053         (extract_bit_field_1): Likewise.
24054         (extract_fixed_bit_field): Likewise.
24055
24056 2010-06-16  Richard Guenther  <rguenther@suse.de>
24057
24058         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
24059
24060 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
24061
24062         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
24063         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
24064         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
24065         * debug.c: Likewise.
24066         * sdbout.c: Likewise.
24067         * vmsdbgout.c: Likewise.
24068         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
24069         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
24070         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
24071         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
24072         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
24073         * dwarf2out.c (dw_fde_struct): New fields
24074         dw_fde_vms_{end,begin}_prologue.
24075         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
24076         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
24077         (dwarf2out_vms_end_prologue): New function.
24078         (dwarf2out_vms_begin_epilogue): New function.
24079         (dw_val_struct): New value dw_val_class_vms_delta.
24080         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
24081         begin_epilogue for VMS.
24082         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
24083         new static functions.
24084         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
24085         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
24086         static functions.
24087         (print_die): New case dw_val_class_vms_delta.
24088         (attr_checksum): Likewise.
24089         (same_dw_val_p: Likewise.
24090         (size_of_die): Likewise.
24091         (value_format): Likewise.
24092         (output_die): Likewise.
24093         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
24094         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
24095         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
24096         dwarf2out_cfi_begin_epilogue
24097         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
24098
24099 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
24100
24101         * config/cris/cris-protos.h (cris_print_operand): Delete.
24102         (cris_print_operand_address): Delete.
24103         * config/cris/cris.h (PRINT_OPERAND): Delete.
24104         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24105         (PRINT_OPERAND_ADDRESS): Delete.
24106         * config/cris/cris.c (cris_print_operand_address): Make static.
24107         (cris_print_operand): Make static.
24108         (cris_print_operand_punct_valid_p): New function.
24109         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24110         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24111
24112 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
24113
24114         * config/arm/arm-protos.h (arm_print_operand): Delete.
24115         (arm_print_operand_address): Delete.
24116         * config/arm/arm.h (PRINT_OPERAND): Delete.
24117         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24118         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
24119         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
24120         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
24121         (arm_print_operand): Make static.
24122         (arm_print_operand_punct_valid_p): New function.
24123         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24124         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24125
24126 2010-06-16  Nick Clifton  <nickc@redhat.com>
24127
24128         * config/rx/constraints.md (NEGint4): New constraint.
24129         * config/rx/rx.md (attr cc): Add set_zsc.
24130         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
24131         initialised.
24132         (cmpsf): Likewise.
24133         (call_internal): Clobber the cc0 register.
24134         (call_value_internal): Likewise.
24135         (cstoresi4): Likewise.
24136         (movsieq): Likewise.
24137         (movsine): Likewise.
24138         (addsi3): Add alternative to handle small negative constants.
24139         (sunsi3): Likewise.
24140         (addsi3): Do not set the O bit in the cc0 register.
24141         (adddi3): Likewise.
24142         (subsi3): Likewise.
24143         (subdi3): Likewise.
24144         (andsi3): Reorder alternatives to prefer shorter forms.
24145         (mulsi3): Likewise.
24146         (iorsi3): Likewise.
24147         (negsi2): Note that the cc0 flags are set.
24148         (rotlsi3): Note that only the Z and S bits are set in cc0.
24149         (lshrsi3): Likewise.
24150         (ashlsi3): Likewise.
24151         (subsf3): Use %Q for the MEM operand.
24152         (fix_truncsfsi2): Likewise.
24153         (floatsisf2): Likewise.
24154         (bitset): Remove early clobber from destination.
24155         (bitset_in_memory): Likewise.
24156         (lrintsf2): Clobber the cc0 register.
24157         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
24158         (rx_print_operand): Handle %N.
24159
24160 2010-06-16  Jan Hubicka  <jh@suse.cz>
24161
24162         * df-core.c (df_compact_blocks): Free problem_temps vector.
24163
24164 2010-06-16  Martin Jambor  <mjambor@suse.cz>
24165
24166         PR tree-optimization/43905
24167         * tree-sra.c: Include tree-inline.h.
24168         (create_abstract_origin): Removed.
24169         (modify_function): Version the call graph node instead of creating
24170         abstract origins and dealing with same_body aliases.
24171         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
24172         function is versionable.
24173         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
24174
24175 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
24176
24177         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
24178         (CHOOSE_DYNAMIC_LINKER): Update.
24179
24180 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
24181
24182         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
24183         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
24184         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
24185         *prefetch_3dnow_rex.
24186
24187 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
24188
24189         * target.h (struct asm_out):Add declare_constant_name field.
24190         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
24191         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
24192         * output.h (default_asm_declare_constant_name): Declare.
24193         (assemble_label): Update prototype.
24194         * varasm.c (assemble_constant_contents): Use
24195         targetm.asm_out.declare_constant_name target hook.
24196         (assemble_label): Add 'file' argument.
24197         (default_asm_declare_constant_name): New function.
24198         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
24199         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
24200         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
24201
24202         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
24203         * config/darwin.c (darwin_asm_declare_constant_name): New function.
24204         (machopic_output_indirection): Update assemble_label argument list.
24205         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
24206         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
24207
24208 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
24209
24210         PR middle-end/44391
24211         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
24212         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
24213
24214 2010-06-15  Richard Guenther  <rguenther@suse.de>
24215
24216         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
24217
24218 2010-06-15  Paul Brook  <paul@codesourcery.com>
24219
24220         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
24221         hard-float ABI.
24222
24223 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
24224
24225         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
24226         don't get a vector type for output.
24227
24228 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
24229
24230         PR fortran/44536
24231         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
24232         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
24233         (LANG_HOOKS_DECLS): Add it.
24234         * gimplify.c (omp_notice_variable): Call
24235         lang_hooks.decls.omp_report_decl.
24236
24237 2010-06-15  Martin Jambor  <mjambor@suse.cz>
24238
24239         PR lto/44464
24240         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
24241         on the newly dead SSA name.
24242
24243 2010-06-15  Alan Modra  <amodra@gmail.com>
24244
24245         * doc/invoke.texi: Add mcmodel to powerpc options.
24246         * configure.ac: Add HAVE_LD_LARGE_TOC test.
24247         * configure: Regenerate.
24248         * config.in: Regenerate.
24249         * config/rs6000/linux64.opt (mcmodel): New.
24250         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
24251         (TARGET_CMODEL, SET_CMODEL): Define.
24252         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
24253         select CMODEL_MEDIUM default.
24254         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
24255         (TARGET_CMODEL): Define default.
24256         * config/rs6000/rs6000.c (cmodel): New variable.
24257         (rs6000_explicit_options): Add cmodel field.
24258         (rs6000_handle_option): Handle -mcmodel.
24259         (create_TOC_reference): Add largetoc_reg param.  Generate high,
24260         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
24261         (rs6000_delegitimize_address): Recognise new toc reference rtl
24262         and minimal-toc rtl.
24263         (rs6000_legitimize_reload_address): Handle new toc references.
24264         (print_operand_address): Handle legitimate_constant_pool_address_p
24265         match before lo_sum.
24266         (rs6000_eliminate_indexed_memrefs): Tidy.
24267         (rs6000_emit_move): Tweak threshold for inlining constants.
24268         Keep rs6000_emit_allocate_stack large stack frame offsets
24269         loaded into r0 inline.
24270         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
24271         (tocrel_base, tocrel_offset): New variables.
24272         (toc_relative_expr_p): Set them here.
24273         (print_operand_address): Skip over any offset on constant pool address.
24274         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
24275         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
24276         (offsettable_ok_by_alignment): New function.
24277         (rs6000_emit_move): Address suitably aligned local symbol_refs
24278         relative to the toc pointer for -mcmodel=medium.
24279         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
24280         strict param.  Allow lo_sum version of addressing.  Verify reg
24281         used for -mminimal-toc and -mcmodel != small.  Update all callers.
24282         * config/rs6000/constraints.md: Update for above change.
24283         * config/rs6000/predicates.md: Likewise.
24284         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
24285         code.
24286         (tls_gd): Split for -mcmodel=medium/large.
24287         (tls_gd_high, tls_gd_low): New.
24288         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
24289         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
24290         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
24291         (largetoc_high, largetoc_low): New.
24292         (cmptf_internal2): Add clobber.
24293         * config/rs6000/rs6000-protos.h: Update.
24294
24295 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
24296
24297         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
24298         true if no prefetch is going to be generated for a given group.
24299         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
24300         estimate the prefetch_count.
24301         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
24302         prefetch count by considering the unroll_factor and prefetch_mod
24303         for is_loop_prefetching_profitable.
24304
24305 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
24306
24307         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
24308         anything if the argument is not a MEM.
24309
24310 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
24311
24312         PR debug/43650
24313         PR debug/44181
24314         PR debug/44247
24315         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
24316         debug stmts.
24317         (canonicalize_loop_ivs): Likewise.
24318
24319 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
24320
24321         PR debug/43656
24322         * haifa-sched.c (setup_insn_reg_pressure_info,
24323         update_register_pressure): Reject debug insns.
24324         (ready_sort): Don't setup reg pressure for debug insns.
24325         (schedule_insn): Don't update reg pressure for debug insns.
24326
24327 2010-06-14  Richard Guenther  <rguenther@suse.de>
24328
24329         * lto-streamer.c (cached_bp): Remove.
24330         (bitpack_delete): Likewise.
24331         (bitpack_create): Likewise.
24332         (bp_get_next_word): Likewise.
24333         (bp_pack_value, bp_unpack_value): Move ...
24334         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
24335         Re-implement.
24336         (struct bitpack_d): Likewise.
24337         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
24338         New inline functions.
24339         * lto-streamer-out.c (lto_output_bitpack): Remove.
24340         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
24341         (pack_value_fields): Adjust.
24342         (lto_write_tree): Likewise.
24343         (output_gimple_stmt): Likewise.
24344         (output_function): Likewise.
24345         * lto-streamer-in.c (input_gimple_stmt): Adjust.
24346         (input_function): Likewise.
24347         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
24348         (lto_input_bitpack): Remove.
24349         (lto_materialize_tree): Adjust.
24350         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
24351         * lto-cgraph.c (lto_output_edge): Adjust.
24352         (lto_output_node): Likewise.
24353         (lto_output_varpool_node): Likewise.
24354         (lto_output_ref): Likewise.
24355         (input_node): Likewise.
24356         (input_varpool_node): Likewise.
24357         (input_ref): Likewise.
24358         (input_edge): Likewise.
24359         (output_node_opt_summary): Likewise.
24360         (input_node_opt_summary): Likewise.
24361         * ipa-pure-const.c (pure_const_write_summary): Likewise.
24362         (pure_const_read_summary): Likewise.
24363         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
24364         (ipa_read_indirect_edge_info): Likewise.
24365         (ipa_write_node_info): Likewise.
24366         (ipa_read_node_info): Likewise.
24367
24368 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
24369
24370         PR target/44534
24371         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
24372         (vec_extract_lo_v16hi): Likewise.
24373         (vec_extract_lo_v32qi): Likewise.
24374
24375 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
24376
24377         PR bootstrap/44426
24378         * tree.h (build_call_expr): Don't define as vararg macro, instead
24379         add a prototype.
24380         * builtins.c (build_call_nofold): Remove.
24381         (expand_builtin_int_roundingfn, expand_builtin_pow,
24382         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
24383         expand_builtin_memset_args, expand_builtin_strcmp,
24384         expand_builtin_strncmp, expand_builtin_memory_chk): Use
24385         build_call_nofold_loc instead of build_call_nofold.
24386         (build_call_expr): New function.
24387
24388         PR tree-optimization/44508
24389         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
24390         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
24391         don't eliminate trivially dead stmts.
24392         * tree-vrp.c (vrp_finalize): Pass false as last argument
24393         to substitute_and_fold.
24394         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
24395         to substitute_and_fold.
24396         * tree-ssa-ccp.c (ccp_finalize): Likewise.
24397
24398         PR bootstrap/44509
24399         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
24400
24401 2010-06-14  Ira Rosen  <irar@il.ibm.com>
24402
24403         PR tree-optimization/44507
24404         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
24405         to build initial vector for BIT_AND_EXPR.
24406         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
24407
24408 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
24409
24410         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
24411         adjust z10prop set_attr.
24412
24413 2010-06-13  Jan Hubicka  <jh@suse.cz>
24414
24415         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
24416         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
24417         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
24418         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
24419         datastructure checks into checking asserts.
24420         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
24421         * tree-ssa-sccvn.c (VN_INFO): Likewise.
24422         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
24423         df_ref_create_structure): Likewise.
24424         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
24425         pool_free): Use gcc_checking_assert.
24426         * alias.c (get_alias_set): Likewise.
24427         * var-tracking.c (variable_htab_free, shared_hash_copy,
24428         canonicalize_values_mark, variable_merge_over_cur): Likewise.
24429         * lto-streamer.c (bp_unpack_value): Likewise.
24430
24431 2010-06-13  Richard Guenther  <rguenther@suse.de>
24432
24433         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
24434         Do not stream but initialize TYPE_CANONICAL to NULL.
24435         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
24436         * gimple.c (gimple_types_compatible_p): Disregard
24437         TYPE_STRUCTURAL_EQUALITY_P.
24438         (gimple_register_type): Use TYPE_CANONICAL as cache.
24439         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
24440         before registering common types.
24441         * config/i386/i386.c (ix86_function_arg_boundary): Do not
24442         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
24443         * tree.h (TYPE_CANONICAL): Clarify documentation.
24444
24445 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
24446
24447         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
24448         LIBCALL_VALUE): Remove macros.
24449         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
24450         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24451         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24452         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
24453         (ia64_function_value): Make static. Handle receiving the function
24454         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
24455
24456 2010-06-12  Jan Hubicka  <jh@suse.cz>
24457
24458         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
24459         at correct place.
24460
24461 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
24462
24463         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
24464
24465 2010-06-12  Jan Hubicka  <jh@suse.cz>
24466
24467         * df-core.c (df_clear_bb_info): New function.
24468         (df_set_blocks): bb_info is always allocated.
24469         (df_get_bb_info): Use block_info_elt_size.
24470         (df_set_bb_info): Likewise.
24471         (df_compact_blocks): Update for new block_info.
24472         (grow_bb_info): New function.
24473         * df-problems.c (df_grow_bb_info): Move to df-core.c
24474         (df_rd_set_bb_info): Remove.
24475         (df_rd_free_bb_info): Do not free block pool.
24476         (df_rd_alloc): Do not create pool, use check for
24477         obstack presence instead of NULL pointer for new blocks.
24478         (df_rd_free): DO not free alloc pool; clear block_info.
24479         (problem_RD): Add size of block info structure.
24480         (df_lr_set_bb_info): Remove.
24481         (df_lr_free_bb_info): Do not free block pool.
24482         (df_lr_alloc): Do not create pool, use check for
24483         obstack presence instead of NULL pointer for new blocks.
24484         (df_lr_free): DO not free alloc pool; clear block_info.
24485         (problem_LR): Add size of block info structure.
24486         (df_live_set_bb_info): Remove.
24487         (df_live_free_bb_info): Do not free block pool.
24488         (df_live_alloc): Do not create pool, use check for
24489         obstack presence instead of NULL pointer for new blocks.
24490         (df_live_free): DO not free alloc pool; clear block_info.
24491         (problem_LIVE): Add size of block info structure.
24492         (problem_CHAIN): Add size of block info structure.
24493         (df_byte_lr_set_bb_info): Remove.
24494         (df_byte_lr_free_bb_info): Do not free block pool.
24495         (df_byte_lr_alloc): Do not create pool, use check for
24496         obstack presence instead of NULL pointer for new blocks.
24497         (df_byte_lr_free): DO not free alloc pool; clear block_info.
24498         (problem_BYTE_LR): Add size of block info structure.
24499         (problem_NOTE): Add size of block info structure.
24500         (df_byte_MD_set_bb_info): Remove.
24501         (df_byte_MD_free_bb_info): Do not free block pool.
24502         (df_byte_MD_alloc): Do not create pool, use check for
24503         obstack presence instead of NULL pointer for new blocks.
24504         (df_byte_MD_free): DO not free alloc pool; clear block_info.
24505         (problem_BD): Add size of block info structure.
24506         * df-scan.c (df_scan_free_internal): Free block pool.
24507         (df_scan_set_bb_info): Remove.
24508         (df_scan_free_bb_info): Check for artificial_defs instead
24509         of bb_info being non-NULL.
24510         (df_scan_alloc): DO not create df_scan_block pool.
24511         (problem_SCAN): Set size of block info.
24512         (df_bb_refs_record): Do not allocate bb_info.
24513         * df.h (df_problem): Add block_info_elt_size.
24514         (struct dataflow): Change block_info to void *.
24515         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
24516         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
24517         in-line structures.
24518
24519 2010-06-12  Jan Hubicka  <jh@suse.cz>
24520
24521         PR tree-optimize/44485
24522         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
24523         containing use of return value of noreturn function.
24524
24525 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
24526
24527         * targhooks.c (default_function_value): Don't use
24528         FUNCTION_OUTGOING_VALUE.
24529         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
24530         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
24531
24532 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
24533
24534         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
24535         Add crtfastmath.o to extra_parts.
24536         * config/mips/crtfastmath.c: New.
24537         * config/mips/linux.h (ENDFILE_SPEC): New.
24538
24539 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
24540
24541         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
24542         old_type in parameter.
24543         (gcc_type_for_value): Update call to gcc_type_for_interval.
24544         (compute_type_for_level_1): Renamed compute_type_for_level.
24545         Update call to gcc_type_for_interval.
24546
24547 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
24548
24549         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
24550         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
24551
24552 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
24553
24554         * opts-common.c: Include options.h.
24555         (integral_argument): Move from opts.c.
24556         (decode_cmdline_option): New.  Based on read_cmdline_option.
24557         * opts.c (integral_argument): Move to opts-common.c.
24558         (read_cmdline_option): Move most contents to
24559         decode_cmdline_option.  Use %qs in diagnostics.
24560         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
24561         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
24562         decode_cmdline_option): New.
24563
24564 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24565
24566         PR target/44481
24567         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
24568         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
24569         (partiysi2_cmp): Ditto.
24570         (*partiyhi2_cmp): Ditto.
24571         (*parityqi2_cmp): Remove.
24572
24573 2010-06-11  Jan Hubicka  <jh@suse.cz>
24574
24575         * bitmap.h (bmp_iter_next_bit): New.
24576         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
24577
24578 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
24579             Eric Botcazou  <ebotcazou@adacore.com>
24580
24581         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
24582         computed cost.
24583
24584 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24585
24586         * config/i386/i386.md (unspec): New define_c_enum.
24587         (unspecv): Ditto.
24588
24589 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
24590
24591         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
24592
24593 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
24594
24595         PR middle-end/44483
24596         * tree-if-conv.c (bb_predicate_s): New struct.
24597         (bb_predicate_p): New.
24598         (bb_has_predicate): New.
24599         (bb_predicate): New.
24600         (set_bb_predicate): New.
24601         (bb_predicate_gimplified_stmts): New.
24602         (set_bb_predicate_gimplified_stmts): New.
24603         (add_bb_predicate_gimplified_stmts): New.
24604         (init_bb_predicate): New.
24605         (free_bb_predicate): New.
24606         (is_predicated): Use bb_predicate.
24607         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
24608         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
24609         before processing their successors.
24610         (clean_predicate_lists): Removed.
24611         (find_phi_replacement_condition): Use bb_predicate.
24612         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
24613         computations.
24614         (insert_gimplified_predicates): New.
24615         (combine_blocks): Call insert_gimplified_predicates.
24616         (tree_if_conversion): Call free_bb_predicate instead of
24617         clean_predicate_lists.
24618
24619 2010-10-11  Paul Brook  <paul@codesourcery.com>
24620
24621         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
24622         * config/arm/arm.c (all_architectures): Change v7e-m default to
24623         cortexm4.
24624         * config/arm/arm-cores.def: Add cortex-m4.
24625         * config/arm/arm-tune.md: Regenerate.
24626
24627 2010-06-11  Jan Hubicka  <jh@suse.cz>
24628
24629         * ipa-pure-const.c (special_builtlin_state): New function.
24630         (check_call): Use it instead of special casign BUILT_IN_RETURN.
24631         (propagate_pure_const): Use it.
24632
24633 2010-06-11  Jan Hubicka  <jh@suse.cz>
24634
24635         * df-problems.c (df_live_scratch): Convert to bitmap_head.
24636         (df_live_alloc): Initialize df_live_scratch when initializing
24637         problem_data.
24638         (df_live_transfer_function): Update uses of df_live_scratch.
24639         (df_live_free): Free problem_data; clear df_live_scratch before
24640         releasing the obstack.
24641         (df_md_free): Free problem data.
24642
24643 2010-06-11  Jan Hubicka  <jh@suse.cz>
24644
24645         * doc/invoke.texi (Wsuggest-attribute): Document.
24646         (Wmissing-noreturn): Remove.
24647         * ipa-pure-const.c (warn_function_noreturn): New function.
24648         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
24649         warn_missing_noreturn.
24650         * common.opt (Wsuggest-attribute=noreturn): New.
24651         * tree-flow.h (warn_function_noreturn): Declare.
24652         * tree-cfg.c (execute_warn_function_noreturn): Use
24653         warn_function_noreturn.
24654         (gate_warn_function_noreturn): New.
24655         (pass_warn_function_noreturn): Update.
24656
24657 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24658
24659         * c-typeck.c (handle_warn_cast_qual): Add loc
24660         parameter. Improve warning message.
24661         (build_c_cast): Pass location to handle_warn_cast_qual.
24662
24663 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24664
24665         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
24666         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
24667         insn mnemonic.
24668         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
24669
24670 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
24671
24672         Fix bootstap on mips
24673         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
24674         be naming typedefs.
24675
24676 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
24677
24678         * system.h (helper_const_non_const_cast): New inline for
24679         gcc version <= 4.0.
24680         (CONST_CAST2): For gcc version <= 4.0 use
24681         new helper to do const/non-const casting.
24682
24683 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24684
24685         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
24686         * Makefile.in (OBJS-common): Include insn-enums.o.
24687         (insn-enums.o): New rule.
24688         (simple_generated_c): Add insn-enums.c.
24689         (build/genenums.o): New rule.
24690         (genprogmd): Add "enums".
24691         * genconstants.c (print_enum_type): Declare a C string array
24692         for each enum.
24693         * genenums.c: New file.
24694         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
24695         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
24696         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
24697
24698 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24699
24700         * doc/md.texi (define_enum_attr): Document.
24701         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
24702         * read-md.h (lookup_enum_type): Declare.
24703         * read-md.c (lookup_enum_type): New function.
24704         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
24705         * genattrtab.c (attr_desc): Add an enum_name field.
24706         (evaluate_eq_attr): Take the associated attribute as argument.
24707         Get the enum prefix from the enum_name field, if defined.
24708         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
24709         (simplify_test_exp): Pass attr to evaluate_eq_attr.
24710         (add_attr_value): New function, split out from...
24711         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
24712         (write_test_expr): Pass attr to evaluate_eq_attr.
24713         (write_attr_get): Use the enum_name as the enum tag, if defined.
24714         (write_attr_valueq): Use the enum_name as a prefix, if defined.
24715         (find_attr): Initialize enum_name.
24716         (main): Handle DEFINE_ENUM_ATTR.
24717         * gensupport.c (process_rtx): Likewise.
24718         * config/mips/mips.h (mips_tune_attr): Delete.
24719         * config/mips/mips.md (cpu): Use define_attr_enum.
24720
24721 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24722
24723         * doc/md.texi (define_c_enum, define_enum): Document.
24724         * read-md.h (md_constant): Add a parent_enum field.
24725         (enum_value, enum_type): New structures.
24726         (upcase_string, traverse_enum_types): Declare.
24727         * read-md.c (enum_types): New variable.
24728         (upcase_string, add_constant): New functions.
24729         (handle_constants): Don't create the hash table here.
24730         Use add_constant.
24731         (traverse_md_constants): Don't check for a null md_constants.
24732         (decimal_string, handle_enum, traverse_enum_types): New functions.
24733         (read_md_files): Initialize md_constants and md_enums.
24734         * genconstants.c (print_md_constant): Ignore info argument.
24735         Only print constants that belong to no enum.
24736         (print_enum_type): New function.
24737         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
24738         for each defined enum type.
24739         * config/mips/mips.md (processor): New define_enum.
24740         (unspec): New define_c_enum.
24741         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
24742         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
24743         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
24744         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
24745         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
24746         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
24747         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
24748         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
24749         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
24750         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
24751         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
24752         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
24753         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
24754         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
24755         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
24756         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
24757         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
24758         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
24759         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
24760         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
24761         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
24762         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
24763         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24764         (UNSPEC_RDDSP): Move to mips-dsp.md.
24765         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
24766         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
24767         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
24768         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
24769         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
24770         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
24771         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
24772         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
24773         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
24774         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
24775         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
24776         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
24777         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
24778         Moved to mips-dspr2.md.
24779         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
24780         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
24781         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
24782         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
24783         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
24784         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
24785         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24786         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24787         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24788         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24789         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24790         UNSPEC_LOONGSON_PSADBH)
24791         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24792         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24793         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
24794         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24795         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24796         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24797         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
24798         (cpu): Update comment.
24799         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
24800         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
24801         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
24802         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
24803         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
24804         UNSPEC_LOONGSON_PCMPEQ)
24805         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
24806         UNSPEC_LOONGSON_PINSR_0)
24807         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24808         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24809         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24810         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24811         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24812         UNSPEC_LOONGSON_PSADBH)
24813         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24814         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24815         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
24816         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24817         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24818         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24819         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
24820         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
24821         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
24822         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
24823         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
24824         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
24825         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
24826         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
24827         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
24828         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
24829         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
24830         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
24831         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
24832         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
24833         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
24834         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
24835         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
24836         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
24837         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
24838         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
24839         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24840         (UNSPEC_RDDSP): Moved from mips.md.
24841         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
24842         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
24843         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
24844         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
24845         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
24846         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
24847         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
24848         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
24849         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
24850         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
24851         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
24852         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
24853         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
24854         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
24855         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
24856         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
24857         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
24858         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
24859         (UNSPEC_SCC): Moved from mips.md.
24860         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
24861         "processor_type" to "processor".
24862         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
24863         * config/mips/mips.h (processor_type): Delete.
24864         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
24865         "processor_type" to "processor".
24866
24867 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24868
24869         * configure.ac (tm_include_list): Add insn-constants.h.
24870         * configure: Regenerate.
24871         * Makefile.in (GTM_H): Move insn-constants.h here from...
24872         (TM_H): ...here.
24873         * mkconfig.sh: Remove special handling for insn-constants.h.
24874
24875 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24876
24877         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24878         (BUILD_MD): ...this new variable.
24879         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24880         that include the old contents of simple_generated_h and
24881         simple_generated_c.
24882         (simple_generated_h, simple_generated_c): Include them.  Add
24883         insn-constants.h.
24884         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24885         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24886         Remove these dependencies from the main rule and include
24887         insn-conditions.md in the command line only if it appears
24888         in the dependency list.
24889         (insn-constants.h, s-constants): Delete.
24890         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24891         or gensupport.h.
24892         (build/genmddeps.o): Likewise.
24893         (genprogrtl): New variable that contains everything from genprogmd
24894         except mddeps and constants.
24895         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24896         depend on $(BUILD_MD)
24897         (genprog): New variable.  Make these programs depend on
24898         $(BUILD_ERRORS).
24899         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24900         (main): Use read_md_files instead of init_rtx_reader_args.
24901         * genconstants.c: As for genmddeps.c.
24902         * read-md.h (read_skip_construct): Declare.
24903         * read-md.c (read_skip_construct): New function.
24904         (handle_file): Allow a null handle_directive, skipping the
24905         construct if so.
24906         (parse_include): Update the comment accordingly.
24907
24908 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24909
24910         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
24911         * genmddeps.c: Include read-md.h.
24912         (main): Call init_rtx_reader_args instead of init_md_reader_args.
24913         * genattr.c (main): Likewise.
24914         * genattrtab.c (main): Likewise.
24915         * genautomata.c (main): Likewise.
24916         * gencodes.c (main): Likewise.
24917         * genconditions.c (main): Likewise.
24918         * genconfig.c (main): Likewise.
24919         * genconstants.c (main): Likewise.
24920         * genemit.c (main): Likewise.
24921         * genextract.c (main): Likewise.
24922         * genflags.c (main): Likewise.
24923         * genopinit.c (main): Likewise.
24924         * genoutput.c (main): Likewise.
24925         * genpeep.c (main): Likewise.
24926         * genrecog.c (main): Likewise.
24927         * genpreds.c (main): Likewise.
24928         * gensupport.h (in_fname): Move to read-md.h.
24929         (init_md_reader_args_cb): Rename to...
24930         (init_rtx_reader_args_cb): ...this and return a bool.
24931         (init_md_reader_args): Rename to...
24932         (init_rtx_reader_args): ...this and return a bool.
24933         (include_callback): Move to read-md.h.
24934         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
24935         (file_name_list, first_dir_md_include): Move to read-md.c
24936         (first_bracket_include): Delete unused variable.
24937         (last_dir_md_include): Move to read-md.c.
24938         (process_include): Delete, moving code to read-md.c:handle_include.
24939         (process_rtx): Don't handle INCLUDE.
24940         (save_string): Delete.
24941         (rtx_handle_directive): New function.
24942         (init_md_reader_args_cb): Rename to...
24943         (init_rtx_reader_args_cb): ...this and return a boolean success value.
24944         Use read_md_args.
24945         (init_md_reader_args): Rename to...
24946         (init_rtx_reader_args): ...this and return a boolean success value.
24947         * rtl.def (INCLUDE): Delete.
24948         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
24949         argument.
24950         * read-rtl.c (read_conditions): Don't gobble ')' here.
24951         (read_mapping): Likewise.
24952         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
24953         Handle top-level non-rtx constructs here rather than in read_rtx_1.
24954         Store the whole queue in *X.  Remove call to init_md_reader.
24955         (read_rtx_1): Rename to...
24956         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
24957         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
24958         here.
24959         (read_nested_rtx): New function.  Handle (nil) here rather than
24960         in read_rtx_code.
24961         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
24962         gobble ')' here.
24963         * read-md.h (directive_handler_t): New type.
24964         (in_fname, include_callback): Moved from read-md.h.
24965         (read_constants, init_md_reader): Delete.
24966         (read_md_files): Declare.
24967         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
24968         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
24969         from gensupport.c.
24970         (read_constants): Rename to...
24971         (handle_constants): ...this.  Don't gobble ')' here.
24972         (handle_include, handle_file, handle_toplevel_file)
24973         (parse_include): New functions, mostly taken from gensupport.c.
24974         (init_md_reader): Subsume into...
24975         (read_md_files): ...this new function.
24976
24977 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24978
24979         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
24980         (unread_char): Decrement read_md_lineno after putting back '\n'.
24981         * read-md.c (fatal_with_file_and_line): Push back any characters
24982         that we decide not to add to the context.
24983         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
24984         fatal_expected_char in cases where '/' ends a line (for example).
24985         (read_name): Don't increment read_md_lineno here.
24986         (read_escape): Likewise.
24987         (read_quoted_string): Likewise.
24988         (read_braced_string): Likewise.
24989
24990 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24991
24992         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
24993         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
24994         * genconstants.c: Include read-md.h.
24995         * read-rtl.c (md_constants): Move to read-md.c.
24996         (md_name): Move to read-md.h.
24997         (initialize_iterators): Use leading_string_hash instead of def_hash
24998         and leading_string_eq_p instead of def_name_eq_p.
24999         (read_name): Move to read-md.c.
25000         (def_hash, def_name_eq_p): Delete.
25001         (read_constants, traverse_md_constants): Move to read-md.c.
25002         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
25003         * read-md.h: Include hashtab.h.
25004         (md_name): Moved from read-rtl.c.
25005         (md_constant): Moved from read-md.h.
25006         (leading_string_hash, leading_string_eq_p, read_name)
25007         (read_constants, traverse_md_constants): Declare.
25008         * read-md.c (md_constants): Moved from read-rtl.c.
25009         (leading_string_hash, leading_string_eq_p): New functions.
25010         (read_name, read_constants, traverse_md_constants): Moved from
25011         read-rtl.c.
25012
25013 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25014
25015         * read-rtl.c (md_name): New structure.
25016         (read_name): Take an md_name instead of a buffer pointer.
25017         Use the "string" field instead of strcpy when expanding constants.
25018         (read_constants): Remove the tmp_char argument.  Update the calls
25019         to read_name, using two local name buffers instead of the tmp_char
25020         argument.  Merge the constant-creation code.
25021         (read_conditions): Remove the tmp_char argument.  Update the calls
25022         to read_name, using a local name buffer instead of the tmp_char
25023         argument.
25024         (read_mapping): Replace tmp_char variable with a local name buffer.
25025         Update the calls to read_name.
25026         (read_rtx_1): Likewise.  Update the calls to read_constants and
25027         read_conditions.
25028
25029 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25030
25031         * Makefile.in (build/read-md.o): Depend on errors.h.
25032         * read-md.h (error_with_line): Declare.
25033         * read-md.c: Include errors.h.
25034         (message_with_line_1): New function, extracted from...
25035         (message_with_line): ...here.
25036         (error_with_line): New function.
25037         * genattrtab.c: If a call to message_with_line is followed by
25038         "have_error = 1;", replace both statements with a call to
25039         error_with_line.
25040         * genoutput.c: Likewise.
25041         * genpreds.c: Likewise.
25042         * genrecog.c: If a call to message_with_line is followed by
25043         "error_count++;", replace both statements with a call to
25044         error_with_line.
25045         (errorcount): Delete.
25046         (main): Don't check it.
25047         * gensupport.c: If a call to message_with_line is followed by
25048         "errors = 1;", replace both statements with a call to error_with_line.
25049         (errors): Delete.
25050         (process_define_cond_exec): Check have_error instead of errors.
25051         (init_md_reader_args_cb): Likewise.  Don't set errors.
25052
25053 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25054
25055         * read-md.h (read_md_file): Declare.
25056         (read_char, unread_char): New functions.
25057         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
25058         (read_quoted_string, read_string): Remove FILE * argument.
25059         * read-md.c (read_md_file): New variable.
25060         (read_md_filename, read_md_lineno): Update comments and remove
25061         unnecessary initialization.
25062         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
25063         (read_escape, read_quoted_string, read_braced_string, read_string):
25064         Remove FILE * argument.  Update calls accordingly, using read_char
25065         and unread_char instead of getc and ungetc.
25066         * rtl.h (read_rtx): Remove FILE * argument.
25067         * read-rtl.c (iterator_group): Remove FILE * argument from
25068         "find_builtin".
25069         (iterator_traverse_data): Remove "infile" field.
25070         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
25071         (add_mapping, read_name, read_constants, read_conditions)
25072         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
25073         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
25074         Remove file arguments from all calls, using read_char and unread_char
25075         instead of getc and ungetc.
25076         * gensupport.c (process_include): Preserve read_md_file around
25077         the include.  Set read_md_file to the handle of the included file.
25078         Update call to read_rtx.
25079         (init_md_reader_args_cb): Set read_md_file to the handle of the file
25080         and remove local FILE *.  Update calls to read_rtx.
25081
25082 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25083
25084         * read-md.h (read_rtx_lineno): Rename to...
25085         (read_md_lineno): ...this.
25086         (read_rtx_filename): Rename to...
25087         (read_md_filename): ...this.
25088         (copy_rtx_ptr_loc): Rename to...
25089         (copy_md_ptr_loc): ...this.
25090         (print_rtx_ptr_loc): Rename to...
25091         (print_md_ptr_loc): ...this.
25092         * read-md.c: Likewise.  Update references after renaming.
25093         (string_obstack): Replace RTL with MD in comment.
25094         (set_rtx_ptr_loc): Rename to...
25095         (set_md_ptr_loc): ...this.
25096         (get_rtx_ptr_loc): Rename to...
25097         (get_md_ptr_loc): ...this.
25098         * genconditions.c: Update references after renaming.
25099         * genemit.c: Likewise.
25100         * genoutput.c: Likewise.
25101         * genpreds.c: Likewise.
25102         * gensupport.c: Likewise.
25103         * read-rtl.c: Likewise.
25104
25105 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25106
25107         * Makefile.in (READ_MD_H): New variable.
25108         (BUILD_RTL): Add build/read-md.o.
25109         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
25110         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
25111         (build/genattrtab.o, build/genconditions.o build/genemit.o)
25112         (build/genextract.o, build/genflags.o, build/genoutput.o)
25113         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
25114         (build/read-md.o): New rule.
25115         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
25116         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
25117         * coretypes.h: ...here.
25118         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
25119         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
25120         * genattr.c: Include read-md.h.
25121         * genattrtab.c: Likewise.
25122         * genconditions.c: Likewise.
25123         * genemit.c: Likewise.
25124         * genextract.c: Likewise.
25125         * genflags.c: Likewise.
25126         * genoutput.c: Likewise.
25127         * genpreds.c: Likewise.
25128         * genrecog.c: Likewise.
25129         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
25130         (join_c_conditions, print_c_condition, read_rtx_filename)
25131         (read_rtx_lineno): Move to read-md.h.
25132         * read-rtl.c: Include read-md.h.
25133         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
25134         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
25135         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
25136         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
25137         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
25138         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
25139         (read_braced_string, read_string): Move to read-md.c.
25140         (read_rtx): Move some initialization to init_md_reader and call
25141         init_md_reader here.
25142         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
25143         Move to read-md.h.
25144         * gensupport.c: Include read-md.h.
25145         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
25146         * read-md.h, read-md.c: New files.
25147
25148 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
25149
25150         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25151         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25152         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
25153         * config/moxie/moxie.c (moxie_function_value): Make static.
25154         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
25155         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
25156
25157 2010-06-10  Martin Jambor  <mjambor@suse.cz>
25158
25159         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
25160         * dbgcnt.def (tree_sra): New counter.
25161         * tree-sra.c: Include dbgcnt.h.
25162         (gate_intra_sra): Check tree_sra debug counter.
25163
25164 2010-06-10  Martin Jambor  <mjambor@suse.cz>
25165
25166         PR tree-optimization/44258
25167         * tree-sra.c (build_access_subtree): Return false iff there is a
25168         partial overlap.
25169         (build_access_trees): Likewise.
25170         (analyze_all_variable_accesses): Disqualify candidates if
25171         build_access_trees returns true for them.
25172
25173 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
25174
25175         PR debug/41371
25176         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
25177         tail-recurse into canonical node.  Fast-forward over
25178         non-canonical VALUEs.
25179
25180 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
25181
25182         PR boostrap/44470
25183         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
25184         (*addsi_1_zext) <TYPE_LEA>: Likewise.
25185         (add lea splitter): Likewise.
25186         (add_zext lea splitter): Likewise.
25187
25188 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
25189
25190         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
25191
25192 2010-06-10  Jan Hubicka  <jh@suse.cz>
25193
25194         * df-problems.c (df_live_problem_data): Add live_bitmaps.
25195         (df_live_alloc): Initialize problem data and live_osbtacks.
25196         (df_live_finalize): Remove obstack, problem data; do not
25197         clear all bitmaps.
25198         (df_live_top_dump, df_live_bottom_dump): Do not dump old
25199         data when not allocated.
25200         (df_live_verify_solution_start): Do not allocate problem data.
25201         (df_live_verify_solution_end): Check if out is allocated.
25202         (struct df_md_problem_data): New structure.
25203         (df_md_alloc): Allocate problem data.
25204         (df_md_free): Free problem data; do not clear bitmaps.
25205
25206 2010-06-10  Jan Beulich  <jbeulich@novell.com>
25207
25208         PR bootstrap/37304
25209         * configure.ac: Replace $() with ${} when intending to expand
25210         variables rather than invoking commands.
25211         * configure: Re-generate.
25212
25213 2010-06-10  Jan Hubicka  <jh@suse.cz>
25214
25215         PR rtl-optimization/44460
25216         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
25217         TYPE_NEEDS_CONSTRUCTING sanity check.
25218
25219 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
25220
25221         * doc/include/fdl.texi: Move to GFDL version 1.3.
25222
25223         * doc/cpp.texi: Move to GFDL version 1.3.
25224         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
25225         * doc/gccint.texi: Move to GFDL version 1.3.
25226         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
25227         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
25228         * doc/invoke.texi: Move to GFDL version 1.3.
25229
25230 2010-06-09  Jan Hubicka  <jh@suse.cz>
25231
25232         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
25233         Break out from ...
25234         (propagate) ... here; swap the order.
25235
25236 2010-06-09  Jan Hubicka  <jh@suse.cz>
25237
25238         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
25239         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
25240         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
25241         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
25242
25243 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
25244
25245         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
25246         Do not the gather memory reference in the outer loop if the step
25247         is not a constant.
25248
25249 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
25250
25251         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
25252         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
25253         8 to 4.  Minor change of the related comments.
25254
25255 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
25256
25257         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
25258         the scev analysis when the variable is not used outside the loop
25259         in a close phi node: call compute_overall_effect_of_inner_loop.
25260
25261 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
25262
25263         * graphite-sese-to-poly.c (single_pred_cond): Renamed
25264         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
25265         (build_sese_conditions_before): Renamed call to single_pred_cond.
25266         (build_sese_conditions_after): Same.
25267
25268 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
25269
25270         * graphite-poly.h: Fix comments and indentation.
25271         * graphite-sese-to-poly.c: Same.
25272         (build_sese_conditions_before): Compute stmt and gbb only when needed.
25273         * tree-chrec.c: Fix comments and indentation.
25274         (tree-ssa-loop-niter.c): Same.
25275
25276 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
25277
25278         PR rtl-optimization/42461
25279         * dce.c (deletable_insn_p): Return true for const or pure calls again.
25280         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
25281
25282 2010-06-09  Jan Hubicka  <jh@suse.cz>
25283
25284         * bitmap.c (bitmap_and): Walk array forward.
25285         (bitmap_and_compl_into): Likewise.
25286         (bitmap_xor): Likewise.
25287         (bitmap_xor_into):  Likewise.
25288         (bitmap_equal_p): Likewise.
25289         (bitmap_intersect_p): Likewise.
25290         (bitmap_intersect_compl_p): Likewise.
25291         (bitmap_ior_and_into): Likewise.
25292         (bitmap_elt_copy): Likewise.
25293         (bitmap_and_compl): Likewise.
25294         (bitmap_elt_ior): Likewise.
25295
25296 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
25297
25298         * opts-common.c (prune_options): Ensure replacement argv array
25299         is correctly terminated by a NULL entry.
25300
25301 2010-06-09  Jan Hubicka  <jh@suse.cz>
25302
25303         * cgraph.h (varpool_first_static_initializer,
25304         varpool_next_static_initializer): Make checking only when
25305         checking enabled.
25306         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
25307         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
25308         gcc_assert to gcc_checking_assert.
25309         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
25310         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
25311         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
25312         op_iter_init_phiuse, op_iter_init_phidef,
25313         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
25314         gcc_checking_assert.
25315         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
25316         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
25317         partition_is_global, live_on_entry, live_on_exit,
25318         live_merge_and_clear): Likewise.
25319         * system.h (gcc_checking_assert): New macro.
25320         * gimple.h (set_bb_seq): Use gcc_checking_assert.
25321
25322 2010-06-09  Jason Merrill  <jason@redhat.com>
25323
25324         * Makefile.in (TAGS): Collect tags info from c-family.
25325
25326 2010-06-09  Jan Hubicka  <jh@suse.cz>
25327
25328         * gimple.h (gcc_gimple_checking_assert): New macro.
25329         (gimple_set_def_ops, gimple_set_use_ops,
25330         gimple_set_vuse, gimple_set_vdef,
25331         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
25332         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
25333         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
25334         gimple_asm_output_op, gimple_asm_output_op_ptr,
25335         gimple_asm_set_output_op, gimple_asm_clobber_op,
25336         gimple_asm_set_clobber_op, gimple_asm_label_op,
25337         gimple_asm_set_label_op, gimple_try_set_kind,
25338         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
25339         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
25340         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
25341         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
25342         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
25343         gimple_omp_for_set_initial, gimple_omp_for_final,
25344         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
25345         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
25346         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
25347         conditional with ENABLE_GIMPLE_CHECKING.
25348         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
25349
25350 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
25351
25352         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
25353         (get_computation_cost_at): Use it.
25354         (determine_use_iv_cost_condition): Likewise.
25355         (determine_iv_cost): Likewise.
25356
25357 2010-06-09  Richard Guenther  <rguenther@suse.de>
25358
25359         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
25360         replace constants.
25361
25362 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
25363
25364         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
25365
25366 2010-06-09  Martin Jambor  <mjambor@suse.cz>
25367
25368         PR tree-optimization/44423
25369         * tree-sra.c (dump_access): Dump also grp_assignment_read.
25370         (analyze_access_subtree): Pass negative allow_replacements to children
25371         if the current type is scalar.
25372
25373 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
25374
25375         PR testsuite/42843
25376         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
25377         * doc/plugins.texi (Plugin license check): Update information
25378         on type of plugin_is_GPL_compatible.
25379         * Makefile.in (PLUGINCC): Define as $(COMPILER).
25380         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
25381
25382 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
25383
25384         * config/arm/arm.c (thumb2_reorg): New function.
25385         (arm_reorg): Call it.
25386         * config/arm/thumb2.md (define_peephole2 for flag clobbering
25387         arithmetic operations): Delete.
25388
25389 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
25390
25391         PR target/44067
25392         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
25393         e500v2 target.
25394
25395 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
25396
25397         PR plugins/44459
25398         * gcc-plugin.h: Encapsulate all declarations in extern "C".
25399
25400 2010-06-08  Jan Hubicka  <jh@suse.cz>
25401
25402         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
25403         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
25404
25405 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
25406
25407         PR tree-optimization/39874
25408         PR middle-end/28685
25409         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
25410         Declare.
25411         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
25412         same_bool_result_p): New.
25413         (and_var_with_comparison, and_var_with_comparison_1,
25414         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
25415         (or_var_with_comparison, or_var_with_comparison_1,
25416         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
25417         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
25418         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
25419         of combine_comparisons.
25420         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
25421
25422 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
25423
25424         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25425         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25426         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
25427         pdp11_function_value_regno_p): New functions.
25428         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25429         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25430
25431 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
25432
25433         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
25434         Thumb-2 in the MINUS case.
25435
25436 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25437
25438         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
25439
25440         * doc/gty.texi (GTY Options): Document typed GC allocation and
25441         variable_size GTY option.
25442
25443         * ggc-internal.h: New.
25444
25445         * ggc.h: Update copyright year.
25446         (digit_string): Move to stringpool.c.
25447         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
25448         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
25449         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
25450         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
25451         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
25452         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
25453         (ggc_force_collect, ggc_get_size, ggc_statistics)
25454         (ggc_print_common_statistics): Move to ggc-internal.h.
25455         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
25456         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
25457         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
25458         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
25459         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
25460         (ggc_alloc_zone_pass_stat): Remove.
25461         (ggc_internal_alloc_stat, ggc_internal_alloc)
25462         (ggc_internal_cleared_alloc_stat): New.
25463         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
25464         (ggc_internal_vec_alloc_stat)
25465         (ggc_internal_cleared_vec_alloc_stat)
25466         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
25467         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
25468         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
25469         (ggc_cleared_alloc_ptr_array_two_args): New.
25470         (htab_create_ggc, splay_tree_new_ggc): Redefine.
25471         (ggc_splay_alloc): Change the type of the first argument to
25472         enum gt_types_enum.
25473         (ggc_alloc_string): Make macro.
25474         (ggc_alloc_string_stat): New.
25475         (ggc_strdup): Redefine.
25476         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
25477         (ggc_alloc_rtvec_sized): New.
25478         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
25479         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
25480         (ggc_internal_cleared_alloc_zone_stat)
25481         (ggc_internal_zone_alloc_stat)
25482         (ggc_internal_zone_cleared_alloc_stat)
25483         (ggc_internal_zone_vec_alloc_stat)
25484         (ggc_alloc_zone_rtx_def_stat)
25485         (ggc_alloc_zone_tree_node_stat)
25486         (ggc_alloc_zone_cleared_tree_node_stat)
25487         (ggc_alloc_cleared_gimple_statement_d_stat): New.
25488
25489         * ggc-common.c: Include ggc-internal.h.
25490         (ggc_internal_cleared_alloc_stat): Rename from
25491         ggc_alloc_cleared_stat.
25492         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
25493         (ggc_calloc): Remove.
25494         (ggc_cleared_alloc_htab_ignore_args): New.
25495         (ggc_cleared_alloc_ptr_array_two_args): New.
25496         (ggc_splay_alloc): Add obj_type parameter.
25497         (init_ggc_heuristics): Formatting fixes.
25498
25499         * ggc-none.c: Update copyright year.
25500         (ggc_alloc_stat): Rename to ggc_alloc_stat.
25501         (ggc_alloc_cleared_stat): Rename to
25502         ggc_internal_cleared_alloc_stat.
25503         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
25504
25505         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
25506         Remove references to ggc_alloc in comments.
25507         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
25508         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
25509         (new_ggc_zone, destroy_ggc_zone): Remove.
25510         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
25511
25512         * ggc-zone.c: Include ggc-internal.h.  Remove references to
25513         ggc_alloc in comments.
25514         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
25515         (ggc_internal_alloc_zone_pass_stat): New.
25516         (ggc_internal_cleared_alloc_zone_stat): New.
25517         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
25518         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
25519         (new_ggc_zone, destroy_ggc_zone): Remove.
25520
25521         * stringpool.c: Update copyright year.  Include ggc-internal.h
25522         (digit_vector): Make static.
25523         (digit_string): Moved from ggc.h.
25524         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
25525         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
25526
25527         * Makefile.in (GGC_INTERNAL_H): New.
25528         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
25529         $(GGC_INTERNAL_H) to dependencies.
25530
25531         * gengtype.c: Update copyright year.
25532         (walk_type): Accept variable_size GTY option.
25533         (USED_BY_TYPED_GC_P): New macro.
25534         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
25535         whitespace at the end of strings.
25536         (get_type_specifier, variable_size_p): New functions.
25537         (alloc_quantity, alloc_zone): New enums.
25538         (write_typed_alloc_def): New function.
25539         (write_typed_struct_alloc_def): Likewise.
25540         (write_typed_typed_typedef_alloc_def): Likewise.
25541         (write_typed_alloc_defns): Likewise.
25542         (output_typename, write_splay_tree_allocator_def): Likewise.
25543         (write_splay_tree_allocators): Likewise.
25544         (main): Call write_typed_alloc_defns and
25545         write_splay_tree_allocators.
25546
25547         * lto-streamer.h (lto_file_decl_data_ptr): New.
25548
25549         * passes.c (order): Define using cgraph_node_ptr.
25550
25551         * strinpool.c (struct string_pool_data): Declare nested_ptr using
25552         ht_identifier_ptr.
25553
25554         * gimple.h (union gimple_statement_d): Likewise.
25555
25556         * rtl.h (struct rtx_def): Likewise.
25557         (struct rtvec_def): Likewise.
25558
25559         * tree.h (union tree_node): Likewise.
25560
25561         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
25562
25563         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
25564
25565         * tree-scalar-evolution.c (scev_initialize): Likewise.
25566
25567         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
25568
25569         * dwarf2asm.c (dw2_force_const_mem): Likewise.
25570
25571         * omp-low.c (lower_omp_critical): Likewise.
25572
25573         * bitmap.h (struct bitmap_head_def): Update comment to not
25574         reference ggc_alloc.
25575
25576         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
25577
25578         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
25579
25580         * ipa-prop.c (duplicate_ggc_array): Rename to
25581         duplicate_ipa_jump_func_array.  Use typed GC allocation.
25582         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
25583
25584         * gimple.c (gimple_alloc_stat): Use
25585         ggc_alloc_cleared_gimple_statement_d_stat.
25586
25587         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
25588
25589         * tree.c (make_node_stat): Use
25590         ggc_alloc_zone_cleared_tree_node_stat.
25591         (make_tree_vec_stat): Likewise.
25592         (build_vl_exp_stat): Likewise.
25593         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
25594         (make_tree_binfo_stat): Likewise.
25595         (tree_cons_stat): Likewise.
25596
25597         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
25598         (shallow_copy_rtx_stat): Likewise.
25599         (make_node_stat): Likewise.
25600
25601         * lto-symtab.c: Fix comment.
25602
25603         * tree-cfg.c (create_bb): Update comment to not reference
25604         ggc_alloc_cleared.
25605         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
25606
25607         * varpool.c (varpool_node): Use typed GC allocation.
25608         (varpool_extra_name_alias): Likewise.
25609
25610         * varasm.c (emutls_decl): Likewise.
25611         (get_unnamed_section): Likewise.
25612         (get_noswitch_section): Likewise.
25613         (get_section): Likewise.
25614         (get_block_for_section): Likewise.
25615         (build_constant_desc): Likewise.
25616         (create_constant_pool): Likewise.
25617         (force_const_mem): Likewise.
25618
25619         * tree.c (build_vl_exp_stat): Likewise.
25620         (build_real): Likewise.
25621         (build_string): Likewise.
25622         (decl_debug_expr_insert): Likewise.
25623         (decl_value_expr_insert): Likewise.
25624         (type_hash_add): Likewise.
25625         (build_omp_clause): Likewise.
25626
25627         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
25628
25629         * tree-ssa.c (init_tree_ssa): Likewise.
25630
25631         * tree-ssa-structalias.c (heapvar_insert): Likewise.
25632
25633         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
25634
25635         * tree-ssa-loop-niter.c (record_estimate): Likewise.
25636
25637         * tree-ssa-alias.c (get_ptr_info): Likewise.
25638
25639         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
25640
25641         * tree-phinodes.c (allocate_phi_node): Likewise.
25642
25643         * tree-iterator.c (tsi_link_before): Likewise.
25644         (tsi_link_after): Likewise.
25645
25646         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
25647
25648         * tree-dfa.c (create_var_ann): Likewise.
25649
25650         * tree-cfg.c (create_bb): Likewise.
25651
25652         * toplev.c (alloc_for_identifier_to_locale): Likewise.
25653         (general_init): Likewise.
25654
25655         * stringpool.c (stringpool_ggc_alloc): Likewise.
25656         (gt_pch_save_stringpool): Likewise.
25657
25658         * sese.c (if_region_set_false_region): Likewise.
25659
25660         * passes.c (do_per_function_toporder): Likewise.
25661
25662         * optabs.c (set_optab_libfunc): Likewise.
25663         (set_conv_libfunc): Likewise.
25664
25665         * lto-symtab.c (lto_symtab_register_decl): Likewise.
25666
25667         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
25668         (input_eh_region): Likewise.
25669         (input_eh_lp): Likewise.
25670         (make_new_block): Likewise.
25671         (unpack_ts_real_cst_value_fields): Likewise.
25672
25673         * lto-section-in.c (lto_new_in_decl_state): Likewise.
25674
25675         * lto-cgraph.c (input_node_opt_summary): Likewise.
25676
25677         * loop-init.c (loop_optimizer_init): Likewise.
25678
25679         * lambda.h (lambda_vector_new): Likewise.
25680
25681         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
25682
25683         * ira.c (update_equiv_regs): Likewise.
25684
25685         * ipa.c (cgraph_node_set_new): Likewise.
25686         (cgraph_node_set_add): Likewise.
25687         (varpool_node_set_new): Likewise.
25688         (varpool_node_set_add): Likewise.
25689
25690         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
25691         (duplicate_ipa_jump_func_array): Likewise.
25692         (ipa_read_node_info): Likewise.
25693
25694         * ipa-cp.c (ipcp_create_replace_map): Likewise.
25695
25696         * integrate.c (get_hard_reg_initial_val): Likewise.
25697
25698         * gimple.c (gimple_alloc_stat): Likewise.
25699         (gimple_build_omp_for): Likewise.
25700         (gimple_seq_alloc): Likewise.
25701         (gimple_copy): Likewise.
25702
25703         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
25704         (gsi_insert_after_without_update): Likewise.
25705
25706         * function.c (add_frame_space): Likewise.
25707         (insert_temp_slot_address): Likewise.
25708         (assign_stack_temp_for_type): Likewise.
25709         (allocate_struct_function): Likewise.
25710         (types_used_by_var_decl_insert): Likewise.
25711
25712         * except.c (init_eh_for_function): Likewise.
25713         (gen_eh_region): Likewise.
25714         (gen_eh_region_catch): Likewise.
25715         (gen_eh_landing_pad): Likewise.
25716         (add_call_site): Likewise.
25717
25718         * emit-rtl.c (get_mem_attrs): Likewise.
25719         (get_reg_attrs): Likewise.
25720         (start_sequence): Likewise.
25721         (init_emit): Likewise.
25722
25723         * dwarf2out.c (new_cfi): Likewise.
25724         (queue_reg_save): Likewise.
25725         (dwarf2out_frame_init): Likewise.
25726         (new_loc_descr): Likewise.
25727         (find_AT_string): Likewise.
25728         (new_die): Likewise.
25729         (add_var_loc_to_decl): Likewise.
25730         (clone_die): Likewise.
25731         (clone_as_declaration): Likewise.
25732         (break_out_comdat_types): Likewise.
25733         (new_loc_list): Likewise.
25734         (loc_descriptor): Likewise.
25735         (add_loc_descr_to_each): Likewise.
25736         (add_const_value_attribute): Likewise.
25737         (tree_add_const_value_attribute): Likewise.
25738         (add_comp_dir_attribute): Likewise.
25739         (add_name_and_src_coords_attributes): Likewise.
25740         (lookup_filename): Likewise.
25741         (store_vcall_insn): Likewise.
25742         (dwarf2out_init): Likewise.
25743
25744         * dbxout.c (dbxout_init): Likewise.
25745
25746         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25747
25748         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25749
25750         * config/score/score7.c (score7_output_external): Likewise.
25751
25752         * config/score/score3.c (score3_output_external): Likewise.
25753
25754         * config/s390/s390.c (s390_init_machine_status): Likewise.
25755
25756         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25757         (rs6000_init_machine_status): Likewise.
25758         (output_toc): Likewise.
25759
25760         * config/pa/pa.c (pa_init_machine_status): Likewise.
25761         (get_deferred_plabel): Likewise.
25762
25763         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25764
25765         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25766
25767         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25768
25769         * config/mep/mep.c (mep_init_machine_status): Likewise.
25770         (mep_note_pragma_flag): Likewise.
25771
25772         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25773
25774         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25775
25776         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25777
25778         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25779         (i386_pe_maybe_record_exported_symbol): Likewise.
25780
25781         * config/i386/i386.c (get_dllimport_decl): Likewise.
25782         (ix86_init_machine_status): Likewise.
25783         (assign_386_stack_local): Likewise.
25784
25785         * config/frv/frv.c (frv_init_machine_status): Likewise.
25786
25787         * config/darwin.c (machopic_indirection_name): Likewise.
25788
25789         * config/cris/cris.c (cris_init_machine_status): Likewise.
25790
25791         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25792
25793         * config/avr/avr.c (avr_init_machine_status): Likewise.
25794
25795         * config/arm/arm.c (arm_init_machine_status): Likewise.
25796
25797         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25798         (alpha_need_linkage): Likewise.
25799         (alpha_use_linkage): Likewise.
25800
25801         * cgraph.c (cgraph_allocate_node): Likewise.
25802         (cgraph_create_edge_1): Likewise.
25803         (cgraph_create_indirect_edge): Likewise.
25804         (cgraph_add_asm_node): Likewise.
25805
25806         * cfgrtl.c (init_rtl_bb_info): Likewise.
25807
25808         * cfgloop.c (alloc_loop): Likewise.
25809         (rescan_loop_exit): Likewise.
25810
25811         * cfg.c (init_flow): Likewise.
25812         (alloc_block): Likewise.
25813         (unchecked_make_edge): Likewise.
25814
25815         * c-parser.c (c_parse_init): Likewise.
25816         (c_parse_file): Likewise.
25817
25818         * c-decl.c (bind): Likewise.
25819         (record_inline_static): Likewise.
25820         (push_scope): Likewise.
25821         (make_label): Likewise.
25822         (lookup_label_for_goto): Likewise.
25823         (finish_struct): Likewise.
25824         (finish_enum): Likewise.
25825         (c_push_function_context): Likewise.
25826
25827         * bitmap.c (bitmap_element_allocate): Likewise.
25828         (bitmap_gc_alloc_stat): Likewise.
25829
25830         * alias.c (record_alias_subset): Likewise.
25831         (init_alias_analysis): Likewise.
25832
25833 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
25834
25835         * fold-const.c (fold_comparison): Remove redundant parenthesis.
25836         * tree-inline.c (expand_call_inline): Pass translated return value of
25837         cgraph_inline_failed_string to diagnostic function.
25838
25839 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
25840             Shujing Zhao  <pearly.zhao@oracle.com>
25841
25842         PR c/37724
25843         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
25844         implicit bad conversions is initialization.
25845         (error_init): Use gmsgid instead of msgid for argument name and change
25846         the call for error.
25847         (pedwarn_init): Use gmsgid instead of msgid for argument name and
25848         change the call for pedwarn.
25849         (warning_init): Use gmsgid instead of msgid for argument name and
25850         change the call for warning.
25851
25852 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
25853
25854         * config/mips/mips-protos.h (mips_print_operand): Delete.
25855         (mips_print_operand_address): Delete.
25856         * config/mips/mips.h (mips_print_operand_punct): Delete.
25857         (PRINT_OPERAND): Delete.
25858         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25859         (PRINT_OPERAND_ADDRESS): Delete.
25860         * config/mips/mips.c (mips_print_operand_punct): Make static.
25861         (mips_print_operand_address): Make static.
25862         (mips_print_operand): Make static.  Call
25863         mips_print_operand_punct_valid_p.
25864         (mips_print_operand_punct_valid_p): New function.
25865         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25866         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25867
25868 2010-06-07  Jan Hubicka  <jh@suse.cz>
25869
25870         PR middle-end/44454
25871         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25872         are allocated.
25873
25874 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25875
25876         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25877         name of RECORD.
25878
25879 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25880
25881         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25882         attributes): Document gas.
25883
25884 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25885
25886         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25887         <TYPE_LEA>: Split instruction.
25888         <default>: Remove alternative 2 handling.
25889         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25890         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25891         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25892
25893         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25894         (ashift_zext lea splitter): Use DImode for multiplication.
25895
25896         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25897         to generate addition.
25898
25899 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25900
25901         * common.opt (fira-verbose): Use Var.
25902         (fpcc-struct-return): Use Init instead of VarExists.
25903         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25904         toplev.c.
25905         * flags.h (flag_signed_char, flag_short_enums,
25906         flag_pcc_struct_return, flag_ira_verbose,
25907         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25908         * toplev.c (flag_detailed_statistics, flag_signed_char,
25909         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
25910         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
25911         * toplev.h (flag_crossjumping, flag_if_conversion,
25912         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
25913         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
25914         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
25915         flag_cprop_registers, time_report, flag_ira_loop_pressure,
25916         flag_ira_coalesce, flag_ira_move_spills,
25917         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
25918
25919 2010-06-07  Jan Hubicka  <jh@suse.cz>
25920
25921         * df-core.c (df_analyze_problem): Do verification after allocation.
25922
25923         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
25924         (df_lr_alloc): Initialize problem data; move bitmaps to
25925         lr_bitmaps obstack.
25926         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
25927         (df_lr_verify_solution_start): Do not initialize problem data;
25928         allocate bitmaps in lr_bitmaps.
25929         (df_lr_verify_solution_end): Do not free problem data.
25930
25931 2010-06-07  Jan Hubicka  <jh@suse.cz>
25932
25933         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
25934         if caller is noreturn.
25935         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
25936         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
25937         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
25938         * ipa-pure-const.c (check_decl): Add IPA parameter.
25939         (state_from_flags): New function.
25940         (better_state, worse_state): New functions.
25941         (check_call): When in IPA mode, do not care about callees.
25942         (check_load, check_store): Update.
25943         (check_ipa_load, check_ipa_store): New.
25944         (check_stmt): When in IPA mode, use IPA checkers.
25945         (analyze_function): Use state_from_flags.
25946         (propagate): Check indirect edges and references.
25947
25948 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
25949
25950         PR rtl-optimization/44404
25951         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
25952         of count_occurrences to see if it's safe to modify mem_insn.
25953
25954 2010-06-07  Richard Guenther  <rguenther@suse.de>
25955
25956         * gimplify.c (gimplify_cleanup_point_expr): For empty body
25957         and EH-only cleanup drop the cleanup instead of inserting it
25958         unconditionally.
25959
25960 2010-06-07  Ira Rosen  <irar@il.ibm.com>
25961
25962         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
25963         documentation.
25964         * targhooks.c (default_builtin_vectorization_cost): New function.
25965         * targhooks.h (default_builtin_vectorization_cost): Declare.
25966         * target.h (enum vect_cost_for_stmt): Define.
25967         (builtin_vectorization_cost): Change argument and comment.
25968         * tree-vectorizer.h: Remove cost model macros.
25969         * tree-vect-loop.c: Include target.h.
25970         (vect_get_cost): New function.
25971         (vect_estimate_min_profitable_iters): Replace cost model macros with
25972         calls to vect_get_cost.
25973         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
25974         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
25975         default implementation.
25976         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
25977         calls to target hook builtin_vectorization_cost.
25978         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
25979         Likewise.
25980         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
25981         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
25982         implementation to return costs.
25983         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
25984         * config/spu/spu.h: Remove vectorizer cost model macros.
25985         * config/i386/i386.h: Likewise.
25986         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
25987         a call to target hook builtin_vectorization_cost.
25988
25989 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
25990
25991         PR target/44319
25992         * config/i386/i386.c (override_options): Turn zee pass on for level 2
25993         and above and defer till target is known.
25994         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
25995         turn off otherwise.
25996
25997 2010-05-25  Jan Hubicka  <jh@suse.cz>
25998
25999         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
26000         (df_compact_blocks): Likewise.
26001         * df.h (struct df): Turn hardware_regs_used,
26002         regular_block_artificial_uses, eh_block_artificial_uses,
26003         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
26004         bitmap_head.
26005         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
26006         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
26007         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
26008         df_scan_blocks, df_insn_delete, df_insn_rescan,
26009         df_insn_rescan_debug_internal, df_insn_rescan_all,
26010         df_process_deferred_rescans, df_process_deferred_rescans,
26011         df_notes_rescan, df_get_call_refs, df_get_call_refs,
26012         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
26013         df_record_entry_block_defs, df_record_exit_block_uses,
26014         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
26015         df_scan_verify): Update.
26016
26017 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
26018
26019         PR c++/44188
26020         * c-common.c (is_typedef_decl): Move this definition ...
26021         * tree.c (is_typedef_decl): ... here.
26022         (typdef_variant_p): Move definition here from cp/tree.c.
26023         * c-common.h (is_typedef_decl): Move this declaration ...
26024         * tree.h (is_typedef_decl): ... here.
26025         (typedef_variant_p): Move declaration here from cp/cp-tree.h
26026         * dwarf2out.c (is_naming_typedef_decl): New function.
26027         (gen_tagged_type_die): Split out of ...
26028         (gen_type_die_with_usage): ... this function. When an anonymous
26029         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
26030         is emitted for the typedef.
26031         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
26032         anonymous tagged types.
26033
26034 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26035
26036         PR c/20000
26037         * c-decl.c (grokdeclarator): Delete warning.
26038
26039 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
26040
26041         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
26042         newly built CALL_EXPR.
26043         * tree-profile.c (tree_profiling): Don't profile functions produced
26044         for built-in stuff.
26045
26046 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
26047
26048         PR bootstrap/44427
26049         PR bootstrap/44428
26050         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
26051         endianness-independent.
26052
26053 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
26054
26055         * c-common.c: Move to c-family/.
26056         * c-common.def: Likewise.
26057         * c-common.h: Likewise.
26058         * c-cppbuiltin.c: Likewise.
26059         * c-dump.c: Likewise.
26060         * c-format.c: Likewise.
26061         * c-format.h : Likewise.
26062         * c-gimplify.c: Likewise.
26063         * c-lex.c: Likewise.
26064         * c-omp.c: Likewise.
26065         * c.opt: Likewise.
26066         * c-opts.c: Likewise.
26067         * c-pch.c: Likewise.
26068         * c-ppoutput.c: Likewise.
26069         * c-pragma.c: Likewise.
26070         * c-pragma.h: Likewise.
26071         * c-pretty-print.c: Likewise.
26072         * c-pretty-print.h: Likewise.
26073         * c-semantics.c: Likewise.
26074         * stub-objc.c: Likewise.
26075
26076         * gengtype.c (get_file_langdir): Special-case files in c-family/.
26077         (get_output_file_with_visibility): Fix name for c-common.h.
26078         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
26079
26080         * c-tree.h: Update include path for moved files.
26081         * c-lang.c: Likewise.
26082         * c-lang.h: Likewise.
26083         * c-parser.c: Likewise.
26084         * c-convert.c: Likewise.
26085         * c-decl.c: Likewise.
26086         * c-objc-common.c: Likewise.
26087         * configure.ac: Make sure c-family/ exists in the build directory.
26088         * configure: Regenerate.
26089         * Makefile.in: Update paths for moved files.  Regroup files per
26090         location and update dependencies.  Move generated_files down after
26091         ALL_GTFILES_H.
26092
26093         * config/spu/spu-c.c: Update paths for moved files.
26094         * config/mep/mep-pragma.c: Likewise.
26095         * config/darwin-c.c: Likewise.
26096         * config/i386/msformat-c.c: Likewise.
26097         * config/i386/i386-c.c: Likewise.
26098         * config/avr/avr-c.c: Likewise.
26099         * config/sol2-c.c: Likewise.
26100         * config/ia64/ia64-c.c: Likewise.
26101         * config/rs6000/rs6000-c.c: Likewise.
26102         * config/arm/arm.c: Likewise.
26103         * config/arm/arm-c.c: Likewise.
26104         * config/h8300/h8300.c: Likewise.
26105         * config/v850/v850-c.c: Likewise.
26106
26107         * config/t-darwin: Fix dependencies for moved files.
26108         * config/t-sol2: Fix dependencies for moved files.
26109         * config/mep/t-mep: Fix dependencies for moved files.
26110         * config/ia64/t-ia64: Fix dependencies for moved files.
26111         * config/rs6000/t-rs6000: Fix dependencies for moved files.
26112         * config/v850/t-v850: Fix dependencies for moved files.
26113         * config/v850/t-v850e: Fix dependencies for moved files.
26114
26115         * config/m32c/m32c-pragma.c
26116
26117         * po/exgettext: Look in c-family/ also.
26118
26119 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
26120
26121         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
26122         (mark_control_dependent_edges_necessary): Call it instead of marking
26123         the last statement manually.
26124         (propagate_necessity): Likewise.
26125
26126 2010-06-05  Jan Hubicka  <jh@suse.cz>
26127
26128         * basic-block.h (compute_dominance_frontiers): Updated.
26129         (compute_idf): Likewise.
26130
26131         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
26132         for dominance frontiers.
26133         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
26134         (insert_updated_phi_nodes_for): Likewise.
26135         (update_ssa): Likewise.
26136         * cfganal.c (compute_dominance_frontiers_1): Likewise.
26137         (compute_dominance_frontiers): Likewise.
26138         (compute_idf): Likewise.
26139         * df-problems.c (df_md_local_compute): Likewise.
26140
26141 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
26142
26143         * target.h (struct gcc_target): Add memory_move_cost field.
26144         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
26145         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
26146         * targhooks.c (default_memory_move_cost): New function.
26147         * targhooks.h (default_memory_move_cost): Declare function.
26148         * reload.h (memory_move_cost): Declare.
26149         (memory_move_secondary_cost): Change type of 'in' argument to bool.
26150         * reginfo.c (memory_move_cost): New function.
26151         (memory_move_secondary_cost): Change type of 'in' argument to bool.
26152         * ira.h (ira_memory_move_cost): Update comment.
26153         * ira.c (ira_memory_move_cost): Update comment.
26154         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
26155         with memory_move_cost.
26156         * postreload.c (reload_cse_simplify_set): (Ditto.).
26157         * reload1.c (choose_reload_regs): (Ditto.).
26158         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
26159         (MEMORY_MOVE_COST):  Revise documentation.
26160
26161         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
26162         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
26163         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
26164         type of 'in' argument to bool.
26165         (TARGET_MEMORY_MOVE_COST): Define.
26166
26167 2010-06-05  Jan Hubicka  <jh@suse.cz>
26168
26169         * ipa-pure-const.c (propagate): Fix typo in handling of functions
26170         that cannot return.  Be more careful when merging the results with
26171         previously known ones.
26172
26173 2010-06-05  Matthias Klose  <doko@ubuntu.com>
26174
26175         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
26176         function to add the -iplugindir option.
26177         (find_plugindir_spec_function): Add new declaration and function.
26178         (static_spec_func): Use it for "find-plugindir".
26179
26180 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
26181
26182         PR c++/44361
26183         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
26184         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
26185         statement expression.
26186
26187 2010-06-05  Jan Hubicka  <jh@suse.cz>
26188
26189         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
26190         (df_rd_problem_data): Convert sparse_invalidated_by_call,
26191         dense_invalidated_by_call to bitmap head.
26192         (df_rd_alloc, df_rd_bb_local_compute_process_def,
26193         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
26194         df_rd_start_dump, df_lr_verify_transfer_functions,
26195         df_live_verify_transfer_functions, df_chain_create_bb,
26196         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
26197         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
26198         df_simulate_one_insn_forwards, df_md_alloc,
26199         df_md_bb_local_compute_process_def,
26200         df_md_bb_local_compute_process_def, df_md_local_compute,
26201         df_md_transfer_function df_md_free): Update.
26202
26203 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
26204
26205         PR c/44322
26206         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
26207         target type for ADDR_EXPR; require no changes to qualifiers except
26208         for function types.
26209         * c-tree.h (c_build_type_variant): Remove.
26210
26211 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
26212
26213         * genautomata.c (get_excl_set): Do work per element, not per char.
26214         (check_presence_pattern_sets): Similar.
26215         (check_absence_pattern_sets): Similar.
26216
26217 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
26218
26219         * genautomata.c (curr_state_pass_num): Delete.
26220         (min_issue_delay_pass_states): Delete.
26221         (min_issue_delay): Delete.
26222         (initiate_min_issue_delay_pass_states): Delete.
26223         (output_min_issue_delay_table): Compute min_issue_delay_vect
26224         using a breadth-first search variant.
26225         (output_tables): Don't call initiate_min_issue_delay_pass_states.
26226
26227 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
26228
26229         PR boostrap/44421
26230         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
26231         (df_byte_lr_bb_local_compute): Likewise.
26232
26233 2010-06-03  Jason Merrill  <jason@redhat.com>
26234
26235         Implement noexcept operator (5.3.7)
26236         * c-common.c (c_common_reswords): Add noexcept.
26237         * c-common.h (enum rid): Add RID_NOEXCEPT.
26238
26239 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
26240
26241         * config/darwin-driver.c (darwin_default_min_version): Use
26242         GCC-specific formats in diagnostics.
26243         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
26244         diagnostics.
26245         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
26246         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
26247         eval_spec_function, handle_braces, process_brace_body, main,
26248         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
26249         getenv_spec_function, compare_version_strings,
26250         version_compare_spec_function): Use GCC-specific formats in
26251         diagnostics.
26252
26253 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
26254
26255         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
26256         that operand 0 and operand 1 are equal.
26257         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
26258         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
26259         and operand 1 are equal.
26260         <default>: Ditto.  Remove ??? comment.
26261         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
26262         and operand 1 are equal.
26263         <default>: Ditto.  Remove ??? comment.
26264         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
26265         are equal.
26266         (*add<mode>_4) <default>: Ditto.
26267         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
26268
26269 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
26270
26271         * config/i386/i386-protos.h (ix86_print_operand): Declare.
26272         * config/i386/i386.c (ix86_print_operand): Make non-static.
26273         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
26274         * output.h (output_operand): Declare.
26275         * final.c (output_operand): Make non-static.
26276
26277 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
26278
26279         PR rtl-optimization/44013
26280         * sched-deps.c (add_dependence_list_and_free): Don't free lists
26281         when processing debug insns.
26282
26283         PR debug/41371
26284         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
26285         recursing.  Check that recursion is bounded.  Rename inner var
26286         to avoid hiding incoming argument.
26287
26288 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
26289
26290         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
26291         operands[2] == 255.
26292         (*addqi_3): Ditto.
26293         (*addqi_4): Ditto.
26294         (*addqi_5): Ditto.
26295         (*addqi_ext_1_rex64): Ditto.
26296         (*addqi_ext_1): Ditto.
26297
26298         (*addqi_4): Check for incdec_operand in QImode.
26299
26300         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
26301         using SWI mode iterator.
26302         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
26303         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
26304         mode iterator.
26305         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
26306         using SWI mode iterator.
26307
26308 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26309
26310         PR c/25880
26311         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
26312         * c-format.c (gcc_diag_flag_specs): Add hash.
26313         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
26314         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
26315         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
26316         pp_c_cv_qualifiers. Handle qualifiers spelling here.
26317         (pp_c_type_qualifier_list): Call the function above.
26318         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
26319         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
26320         (WARN_FOR_QUALIFIERS): New macro.
26321         (convert_for_assignment): Use it.
26322
26323 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
26324
26325         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
26326
26327 2010-06-04  Jan Hubicka  <jh@suse.cz>
26328
26329         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
26330         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
26331         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
26332         DF_BYTE_LR_OUT): Update for embedded bitmaps.
26333         * fwprop.c (single_def_use_enter_block): Likewise.
26334         * ddg.c (create_ddg_dep_from_intra_loop_link,
26335         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
26336         * loop-iv.c (latch_dominating_def): Likewise.
26337         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
26338         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
26339         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
26340         df_rd_transfer_function, df_rd_top_dump,
26341         df_rd_bottom_dump): Update.
26342         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
26343         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
26344         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
26345         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
26346         df_lr_verify_solution_start, df_lr_verify_solution_end,
26347         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
26348         df_live_free_bb_info, df_live_alloc, df_live_reset,
26349         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
26350         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
26351         df_live_verify_solution_start, df_live_verify_solution_end,
26352         df_live_verify_transfer_functions, df_chain_create_bb,
26353         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
26354         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
26355         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
26356         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
26357         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
26358         df_byte_lr_transfer_function, df_byte_lr_top_dump,
26359         df_byte_lr_bottom_dump, df_create_unused_note,
26360         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
26361         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
26362         df_md_transfer_function, df_md_init, df_md_confluence_0,
26363         df_md_confluence_n,
26364         df_md_top_dump, df_md_bottom_dump): Update.
26365         (struct df_lr_problem_data): Embedd bitmap headers.
26366
26367 2010-06-04  Jan Hubicka  <jh@suse.cz>
26368
26369         * dce.c (dce_process_block): Do not re-scan already marked
26370         instructions.
26371
26372 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
26373
26374         PR rtl-optimization/39871
26375         PR rtl-optimization/40615
26376         PR rtl-optimization/42500
26377         PR rtl-optimization/42502
26378         * ira.c (init_reg_equiv_memory_loc: New function.
26379         (ira): Call it twice.
26380         * reload.h (calculate_elim_costs_all_insns): Declare.
26381         * ira-costs.c: Include "reload.h".
26382         (regno_equiv_gains): New static variable.
26383         (init_costs): Allocate it.
26384         (finish_costs): Free it.
26385         (ira_costs): Call calculate_elim_costs_all_insns.
26386         (find_costs_and_classes): Take estimated elimination costs
26387         into account.
26388         (ira_adjust_equiv_reg_cost): New function.
26389         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
26390         * reload1.c (init_eliminable_invariants, free_reg_equiv,
26391         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
26392         (elim_bb): New static variable.
26393         (reload): Move code out of here into init_eliminable_invariants and
26394         free_reg_equiv.  Call them.
26395         (calculate_elim_costs_all_insns): New function.
26396         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
26397         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
26398         but call note_reg_elim_costly if we turned a valid memory address
26399         into an invalid one.
26400         * Makefile.in (ira-costs.o): Depend on reload.h.
26401
26402 2010-06-04  Julian Brown  <julian@codesourcery.com>
26403
26404         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
26405         for pool ranges.
26406
26407 2010-06-04  Richard Guenther  <rguenther@suse.de>
26408
26409         PR lto/41584
26410         * cgraph.h (struct varpool_node): Add lto_file_data field.
26411         * lto-cgraph.c (input_varpool_node): Initialize it.
26412
26413 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
26414
26415         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
26416         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
26417         predicate in "type" attribute calculation.
26418         (*addsi_1_zext): Ditto.
26419         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
26420         (*addsi_2_zext): Ditto.
26421         (*add<mode>_3): Ditto.
26422         (*addsi_3_zext): Ditto.
26423         (*add<mode>_5): Ditto.
26424
26425 2010-06-03  Jan Hubicka  <jh@suse.cz>
26426
26427         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
26428         of bitmap_bit_p.
26429         * cfganal.c (compute_dominance_frontiers_1): Likewise.
26430
26431 2010-06-03  Jan Hubicka  <jh@suse.cz>
26432
26433         * df-problems.c (df_create_unused_note, df_note_bb_compute):
26434         micro-optimize the checks when to add new note.
26435
26436 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
26437
26438         * final.c (output_asm_insn): Call
26439         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
26440         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
26441         (output_address): Call targetm.asm_out.print_operand_address.
26442         Update comments.
26443         * target.h (struct gcc_target): Add print_operand,
26444         print_operand_address, and print_operand_punct_valid_p fields.
26445         * targhooks.h (default_print_operand): Declare.
26446         (default_print_operand_address): Declare.
26447         (default_print_operand_punct_valid_p): Declare.
26448         * targhooks.c (default_print_operand): Define.
26449         (default_print_operand_address): Define.
26450         (default_print_operand_punct_valid_p): Define.
26451         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
26452         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
26453         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
26454         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
26455         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
26456         * vmsdbgout.c (addr_const_to_string): Update comment.
26457         * config/i386/i386.c (print_operand): Rename to...
26458         (ix86_print_operand): ...this.  Make static.
26459         (print_operand_address): Rename to...
26460         (ix86_print_operand_address): ...this.  Make static.  Call
26461         ix86_print_operand instead of PRINT_OPERAND.
26462         (ix86_print_operand_punct_valid_p): New function.
26463         (TARGET_PRINT_OPERAND): Define.
26464         (TARGET_PRINT_OPERAND_ADDRESS): Define.
26465         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
26466         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
26467         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
26468         (PRINT_OPERAND): Delete.
26469         (PRINT_OPERAND_ADDRESS): Delete.
26470         * config/i386/i386-protos.h (print_operand): Delete prototype.
26471         (print_operand_address): Delete prototype.
26472
26473 2010-06-03  Richard Guenther  <rguenther@suse.de>
26474
26475         PR tree-optimization/44403
26476         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
26477         Preserve pointer qualifiers.
26478         (vect_create_data_ref_ptr): Likewise.
26479
26480 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
26481
26482         PR c++/44294
26483         * defaults.h (MAX_FIXED_MODE_SIZE): New.
26484
26485         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
26486
26487 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
26488
26489         PR debug/44375
26490         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
26491         return false if merging the bbs would lead to goto_locus
26492         location being lost from the IL.
26493
26494 2010-06-03  Jan Hubicka  <jh@suse.cz>
26495             Jakub Jelinek  <jakub@redhat.com>
26496
26497         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
26498         set->regs[i] is NULL or has just one entry.
26499
26500 2010-06-03  Jan Hubicka  <jh@suse.cz>
26501
26502         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
26503         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
26504
26505 2010-06-03  Paul Brook  <paul@codesourcery.com>
26506
26507         * config/arm/arm.c (FL_TUNE): Define.
26508         (arm_default_cpu, arm_cpu_select): Remove.
26509         (all_cores): Populate core field.
26510         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
26511         (arm_find_cpu): New function.
26512         (arm_handle_option): Lookup cpu/architecture names.
26513         (arm_override_options): Cleanup mcpu/march/mtune handling.
26514         (arm_file_start): Ditto.
26515
26516 2010-06-03  Alan Modra  <amodra@gmail.com>
26517
26518         PR target/44169
26519         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
26520         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
26521         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
26522         (rs6000_emit_load_toc_table): Likewise.
26523
26524 2010-06-02  Jan Hubicka  <jh@suse.cz>
26525
26526         * passes.c (init_optimization_passes): Put ipa reference
26527         after ipa pure-const.
26528
26529 2010-06-02  Jan Hubicka  <jh@suse.cz>
26530
26531         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
26532         calls_read_all and calls_write_all.
26533         (get_reference_optimization_summary): Fix formatting.
26534         (is_proper_for_analysis): Check that decl is not readonly.
26535         (propagate_bits): Check CONST/PURE/noreturn flags.
26536         (ipa_init): Move all_module_statics to optimization_summary_obstack.
26537         (analyze_function): Ignore indirect edges.
26538         (copy_global_bitmap): For all module statics, do nothing.
26539         (generate_summary): Do not print calls_read_all/calls_write_all.
26540         (read_write_all_from_decl): Take node as argument; check
26541         cgraph_node_cannot_return.
26542         (propagate): Reorganize read_all/write_all computation;
26543         check indirect edges; check ecf flags; use all_module_statics
26544         in the results; do not free all_module_statics.
26545         (stream_out_bitmap): Handle all_module_statics.
26546         (ipa_reference_write_optimization_summary): Likewise; use
26547         varpool/cgraph encoders to get boundaries.
26548         (ipa_reference_read_optimization_summary): Read in all_module_statics;
26549         use it when possible.
26550
26551 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
26552
26553         PR target/44218
26554         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
26555         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
26556
26557         * doc/extend.texi (powerpc builtins): Document vec_recip,
26558         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
26559
26560         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
26561         (rs6000_emit_swrsqrt): Ditto.
26562         (rs6000_emit_swdivsf): Delete.
26563         (rs6000_emit_swdivdf): Ditto.
26564         (rs6000_emit_swrsqrtsf): Ditto.
26565
26566         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
26567         describe the reciprocal estimate support for each type.
26568         (recip_options): Map -mrecip=<opt> into option bits.
26569         (gen_2arg_fn_t): New typedef for binary rtx gen function.
26570         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
26571         reciprocal estimate instructions.
26572         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
26573         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
26574         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
26575         cost information if -mdebug=cost or -mdebug=reg.
26576         (rs6000_override_options): Set -mrecip-precision for power6, and
26577         power7 machines.  If -mvsx or -mdfp, enable various options that
26578         came in previous instruction set ISAs, unless the option was
26579         explicitly disabled by the command line option.  Parse
26580         -mrecip=<opt> options.
26581         (rs6000_builtin_vectorized_function): Add support for vectorizing
26582         the reciprocal estimate builtins and expansions.
26583         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
26584         (bdesc_2arg): Add reciprocal estimate builtins.
26585         (bdesc_1arg): Add reciprocal square root estimate builtins.
26586         (rs6000_expand_builtin): Rewrite to use a switch statement,
26587         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
26588         (rs6000_init_builtins): Create declarations for reciprocal
26589         estimate builtins.
26590         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
26591         sized, prefer traditional floating point registers, if integer
26592         vector types, prefer altivec registers.  Don't actually look at
26593         the memory address any more.
26594         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
26595         builtins.
26596         (rs6000_load_constant_and_splat): New helper function to load up
26597         the constant for reciprocal estimate instructions.
26598         (rs6000_emit_madd): New helper function for generating
26599         multiply/add type instructions, based on the current switches.
26600         (rs6000_emit_msub): Ditto.
26601         (rs6000_emit_mnsub): Ditto.
26602         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
26603         replace a divide with a reciprocal estimate and fixup, adding
26604         support for machines with high precision and vectors.
26605         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
26606         low precision machines.
26607         (rs6000_emit_swdiv): New common function to be called to replace a
26608         division with reciprocal estimate and fixup.
26609         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
26610         for double and vector types.  Add support for high precision machines.
26611
26612         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
26613         the reciprocal estimate instructions can be generated.
26614         (TARGET_FRE): Ditto.
26615         (TARGET_FRSQRTES): Ditto.
26616         (TARGET_FRSQRTE): Ditto.
26617         (RS6000_RECIP_*): New macros for reciprocal estimate support.
26618
26619         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
26620         square root estimate on vectors.
26621         (re<mode>2): New insn for reciprocal division estimate on vectors.
26622
26623         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
26624         New builtin.
26625         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
26626         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
26627         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
26628         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
26629         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
26630         (RS6000_BUILTIN_RSQRT): Ditto.
26631         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
26632         floating point builtin.
26633
26634         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
26635         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
26636         __RECIP_PRECISION__ based on the command line switches.
26637         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
26638
26639         * config/rs6000/rs6000.opt (-mrecip): Document add support for
26640         replacing division instructions with reciprocal estimate and fixup.
26641         (-mrecip=<opt>): New option.
26642         (-mrecip-precision): Ditto.
26643
26644         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
26645         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
26646         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
26647         precision scalar.
26648
26649         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
26650         (UNSPEC_VREFP): Ditto.
26651         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
26652         conterparts with regard to support of -mno-fused-madd and -ffast-math.
26653         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
26654         reciprocal estimate instructions to be generated.
26655         (altivec_vrefp): Ditto.
26656
26657         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
26658         estimate support.
26659         (rreg): New mode attribute for reciprocal estimate support.
26660         (recip<mode>3): New insn for division using reciprocal estimate
26661         and fixup builtins.
26662         (divide define_split): New define_split to convert floating point
26663         division to use reciprocal estimate if the user used the
26664         appropriate options and the split is run when we can add new
26665         pseudo registers for the fixup.
26666         (rsqrt<mode>2): New insn for reciprocal square root support.
26667         (recipsf3): Move into recip<mode>3.
26668         (recipdf3): Ditto.
26669         (fres): Use TARGET_FRES.
26670         (rsqrtsf2): Move into rsqrt<mode>2.
26671         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
26672         (copysignsf3): Add support for VSX.
26673         (fred): Use TARGET_FRE.
26674         (fred_fpr): Ditto.
26675         (rsqrtdf_internal1): New function for frsqrte instruciton.
26676
26677         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
26678         (vec_rsqrt): Ditto.
26679
26680 2010-06-03  Richard Guenther  <rguenther@suse.de>
26681
26682         PR middle-end/44291
26683         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
26684         (set_user_assembler_libfunc): Likewise.
26685
26686 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26687
26688         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
26689         defaults.h.
26690         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
26691         to defaults.h
26692         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
26693         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
26694         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
26695         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
26696         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
26697         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
26698         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
26699         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
26700         * defaults.h: Updated for above mentioned changes.
26701
26702 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
26703
26704         * c-common.c: Remove header include of tm_p.h.
26705         * Makefile.in (c-common.o): Remove TM_P_H dependency.
26706
26707 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
26708
26709         * tree.h (struct tree_decl_map): New type.
26710         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
26711         (tree_decl_map_hash): New prototype.
26712         (debug_expr_for_decl, value_expr_for_decl): Change into
26713         tree_decl_map hashtab from tree_map.
26714         (init_ttree): Adjust initialization.
26715         (tree_decl_map_hash): New function.
26716         (decl_debug_expr_lookup, decl_debug_expr_insert,
26717         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
26718
26719 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26720
26721         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
26722         linker emulations.
26723         * configure: Regenerate.
26724         * config.in: Regenerate.
26725
26726         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
26727         (X86_64_EMULATION): Define.
26728         (TARGET_LD_EMULATION): Use them.
26729
26730         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
26731         (SPARC64_EMULATION): Define.
26732         (LINK_ARCH_SPEC): Use them.
26733
26734 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26735
26736         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
26737         smallest_mode_for_size for computing the precision types of new
26738         graphite IVs.  Do not call lang_hooks.types.type_for_size.
26739
26740 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26741
26742         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
26743         information.
26744         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
26745
26746 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26747
26748         PR middle-end/44363
26749         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
26750         return false instead.
26751
26752 2010-06-02  Jan Hubicka  <jh@suse.cz>
26753
26754         PR middle-end/44295
26755         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
26756         create new cgraph node to check callee.
26757
26758 2010-06-02  Richard Guenther  <rguenther@suse.de>
26759
26760         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
26761
26762 2010-06-02  Richard Guenther  <rguenther@suse.de>
26763
26764         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
26765         (lto_wrapper_cleanup): ... this.  Do not exit.
26766         (fatal): Adjust.  Exit here.
26767         (fatal_perror): Likewise.
26768         (fatal_signal): New function.
26769         (main): Set up signal handlers to cleanup temporary files.
26770         * Makefile.in (lto-wrapper.o): Adjust dependencies.
26771
26772 2010-06-02  Richard Guenther  <rguenther@suse.de>
26773
26774         PR tree-optimization/44377
26775         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
26776
26777 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26778
26779         * config/s390/2097.md (z10_fhex): Remove insn reservation.
26780         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
26781         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
26782         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
26783         instruction.
26784         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
26785
26786 2010-06-02  Jan Hubicka  <jh@suse.cz>
26787
26788         * bitmap.c (bitmap_descriptor): Add search_iter.
26789         (bitmap_find_bit): Increment it.
26790         (print_statistics): Print it.
26791
26792 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
26793
26794         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
26795         instead of gimple_build_call_vec.  Delete unnecessary local variable.
26796
26797 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26798
26799         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
26800         change from yesterday.
26801
26802 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26803
26804         * c-ada-spec.c: Clean up redundant includes.
26805
26806 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
26807
26808         * gimplify.c: Do not include except.h and optabs.h.
26809         (gimplify_body): Do not initialize RTL profiling.
26810         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
26811         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
26812         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
26813         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
26814         langhooks.h.
26815
26816         * tree-pretty-print.h: Include pretty-print.h.
26817         * gimple-pretty-print.h: Include pretty-print.h.
26818
26819         * tree-pretty-print.c: Do not include diagnostic.h.
26820         * tree-vrp.c: Likewise.
26821         * tree-tailcall.c: Likewise
26822         * tree-scalar-evolution.c: Likewise
26823         * tree-ssa-dse.c: Likewise
26824         * tree-chrec.c: Likewise
26825         * tree-ssa-sccvn.c: Likewise
26826         * tree-ssa-copyrename.c: Likewise
26827         * tree-nomudflap.c: Likewise
26828         * tree-call-cdce.c: Likewise
26829         * tree-stdarg.c: Likewise
26830         * tree-ssa-math-opts.c: Likewise
26831         * tree-nrv.c: Likewise
26832         * tree-ssa-sink.c: Likewise
26833         * tree-browser.c: Likewise
26834         * tree-ssa-loop-ivcanon.c: Likewise
26835         * tree-ssa-loop.c: Likewise
26836         * tree-parloops.c: Likewise
26837         * tree-ssa-address.c: Likewise
26838         * tree-ssa-ifcombine.c: Likewise
26839         * tree-if-conv.c: Likewise
26840         * tree-data-ref.c: Likewise
26841         * tree-affine.c: Likewise
26842         * tree-ssa-phiopt.c: Likewise
26843         * tree-ssa-coalesce.c: Likewise
26844         * tree-ssa-pre.c: Likewise
26845         * tree-ssa-live.c: Likewise
26846         * tree-predcom.c: Likewise
26847         * tree-ssa-forwprop.c: Likewise
26848         * tree-ssa-dce.c: Likewise
26849         * tree-ssa-ter.c: Likewise
26850         * tree-ssa-loop-prefetch.c: Likewise
26851         * tree-optimize.c: Likewise
26852         * tree-ssa-phiprop.c: Likewise
26853         * tree-object-size.c: Likewise
26854         * tree-outof-ssa.c: Likewise
26855         * tree-ssa-structalias.c: Likewise
26856         * tree-switch-conversion.c: Likewise
26857         * tree-ssa-reassoc.c: Likewise
26858         * tree-ssa-operands.c: Likewise
26859         * tree-vectorizer.c: Likewise
26860         * tree-vect-data-refs.c: Likewise
26861         * tree-vect-generic.c: Likewise
26862         * tree-vect-stmts.c: Likewise
26863         * tree-vect-patterns.c: Likewise
26864         * tree-vect-slp.c: Likewise
26865         * tree-vect-loop.c: Likewise
26866         * tree-ssa-loop-ivopts.c: Likewise
26867         * tree-ssa-loop-im.c: Likewise
26868         * tree-ssa-loop-niter.c: Likewise
26869         * tree-ssa-loop-unswitch.c: Likewise
26870         * tree-ssa-loop-manip.c: Likewise
26871         * tree-ssa-loop-ch.c: Likewise
26872         * tree-dump.c: Likewise
26873         * tree-complex.c: Likewise
26874
26875         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26876         * tree-ssa-uninit.c: Likewise
26877         * tree-ssa-threadupdate.c: Likewise
26878         * tree-ssa-uncprop.c: Likewise
26879         * tree-ssa-ccp.c: Likewise
26880         * tree-ssa-dom.c: Likewise
26881         * tree-ssa-propagate.c: Likewise
26882         * tree-ssa-alias.c: Likewise
26883         * tree-dfa.c: Likewise
26884         * tree-cfgcleanup.c: Likewise
26885         * tree-sra.c: Likewise
26886         * tree-ssa-copy.c: Likewise
26887         * tree-ssa.c: Likewise
26888         * tree-profile.c: Likewise
26889         * tree-cfg.c: Likewise
26890         * tree-ssa-threadedge.c: Likewise
26891         * tree-vect-loop-manip.c: Likewise
26892
26893         * tree-inline.c: Do not include diagnostic.h and expr.h.
26894         Include rtl.h.
26895         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26896
26897         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26898         * tree-loop-distribution.c: Likewise.
26899
26900 2010-06-01  Jan Hubicka  <jh@suse.cz>
26901
26902         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26903
26904 2010-06-01  Jan Hubicka  <jh@suse.cz>
26905
26906         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26907         remove return value.
26908         (split_bbs_on_noreturn_calls) .... here.
26909         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
26910         * tree-flow.h (fixup_noreturn_call): New.
26911
26912 2010-06-01  Jan Hubicka  <jh@suse.cz>
26913
26914         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
26915
26916 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
26917
26918         * tree.h (build_nt_call_list): Delete.
26919         * tree.c (build_nt_call_list): Delete.
26920
26921 2010-06-01  Jan Hubicka  <jh@suse.cz>
26922
26923         * fwprop.c: Make emit-rtl.h include last.
26924         * rtlanal.c: Include emit-rtl.h.
26925         * genautomata.c: Output emit-rtl include into insn-automata.c
26926         * df-scan.c: Include emit-rtl.h.
26927         * haifa-sched.c: Indlude emit-rtl.h.
26928         * mode-switching.c: Indlude emit-rtl.h.
26929         * graph.c: Indlude emit-rtl.h.
26930         * sel-sched.c: Include emit-rtl.h.
26931         * sel-sched-ir.c: Include emit-rtl.h.
26932         * ira-build.c: Include emit-rtl.h.
26933         * emit-rtl.c (first_insn, last_insn): Remove defines.
26934         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
26935         Move to emit-rtl.h.
26936         (set_new_first_and_last_insn, get_last_insn_anywhere,
26937         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
26938         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
26939         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
26940         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
26941         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
26942         Use accessor functions.
26943         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26944          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26945         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26946         mem_expr_equal_p): Move here from rtl.h.
26947         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
26948         Move here from emit-rtl.c; make inline.
26949         * cfglayout.h: Include emit-rtl.h.
26950         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26951          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26952         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26953         mem_expr_equal_p, get_insns, set_first-insn,
26954         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
26955         * reg-stack.c: Include emit-rtl.h.
26956         * dce.c: Likewise.
26957
26958 2010-06-01  Jan Hubicka  <jh@suse.cz>
26959
26960         * cgraph.h (tree_function_versioning): Update prototype.
26961         (cgraph_function_versioning): Update prototype.
26962         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
26963         bitmap.
26964         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
26965         (cgraph_materialize_clone, save_inline_function_body): Update use of
26966         tree_function_versioning.
26967         * tree-inline.c (copy_bb): Look for previous copied block to link
26968         after; fix debug output.
26969         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
26970         (copy_body): Likewise.
26971         (expand_call_inline): Update use of copy_body.
26972         (tree_function_versioning): Update use of copy body; accept
26973         blocks_to_copy and new_entry.
26974
26975 2010-06-01  Jan Hubicka  <jh@suse.cz>
26976
26977         * gegenrtl.c: Remove unnecesary prototypes.
26978         (gendecl): Remove.
26979         (gendef): Produce static inline.
26980         (gencode): Remove.
26981         (main): Do not decode parameters; generate header only.
26982         * Makefile.in (genrtl.c): Remove.
26983
26984 2010-06-01  Jan Hubicka  <jh@suse.cz>
26985
26986         * tree-switch-conversion.c (build_one_array): Make it readonly.
26987
26988 2010-06-01  Richard Guenther  <rguenther@suse.de>
26989
26990         * optabs.c (init_optabs): Guard all accesses to reinit.
26991         * ipa-pure-const.c (propagate): Fix another typo.
26992         * opts.c (common_handle_option): Split assignment to bool.
26993         * c-opts.c (c_common_handle_option): Likewise.
26994
26995 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
26996             Matthew Gingell  <gingell@adacore.com>
26997
26998         * doc/invoke.texi: Mention -fdump-ada-spec.
26999         * tree-dump.c (dump_files): Add ada-spec.
27000         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
27001         * tree-pass.h (tree_dump_index): Add TDI_ada.
27002         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
27003         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
27004         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
27005         * c-decl.c: Include c-ada-spec.h.
27006         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
27007         functions.
27008         (c_write_global_declarations): Add handling of -fdump-ada-spec.
27009         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
27010         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
27011         * c-ada-spec.h, c-ada-spec.c: New files.
27012
27013 2010-06-01  Richard Guenther  <rguenther@suse.de>
27014
27015         PR lto/43853
27016         * ipa-pure-const.c (get_function_state): Hand back varying state
27017         if we do not have one.
27018         (has_function_state): New function.
27019         (duplicate_node_data): Adjust.
27020         (remove_node_data): Likewise.
27021         (pure_const_write_summary): Likewise.
27022         (propagate): Likewise.  Fix typo.
27023
27024 2010-06-01  Jan Hubicka  <jh@suse.cz>
27025
27026         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
27027         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
27028         (execute_all_ipa_transforms): Do not play with the states.
27029
27030 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
27031
27032         * config/arm/t-linux-androideabi: New.
27033         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
27034
27035 2010-06-01  Jan Hubicka  <jh@suse.cz>
27036
27037         * tree-inline.c (estimate_num_insns): For stdarg functions look
27038         into call statement to count cost of argument passing.
27039
27040 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
27041
27042         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
27043         argument for fprintf.
27044         (ix86_output_addr_diff_elt): Likewise.
27045         (x86_function_profiler): Likewise.
27046         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
27047         (LPREFIX): Likewise.
27048         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
27049
27050 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
27051
27052         PR target/44338
27053         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
27054         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
27055         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
27056         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
27057         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
27058         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
27059         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
27060         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
27061         TARGET_FUSED_MADD.
27062
27063 2010-05-31  Jan Hubicka  <jh@suse.cz>
27064
27065         * tree.h (tree_range_check_failed): Declare noreturn.
27066
27067 2010-05-31  Jan Hubicka  <jh@suse.cz>
27068
27069         * gimple.c (gimple_call_builtin_p): New function.
27070         * gimple.h (gimple_call_builtin_p): Declare.
27071         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
27072         to exit.
27073         (execute_warn_function_return): BUILT_IN_RETURN is return.
27074         (split_critical_edges): Return edges are not critical.
27075         (is_ctrl_altering_stmt): Builtin_in_return is altering.
27076         (gimple_verify_flow_info): Handle built_in_return.
27077         (execute_warn_function_return): Handle built_in_return.
27078         * ipa-pure-const.c (check_call): Ignore builtin_return.
27079
27080 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
27081
27082         PR middle-end/44337
27083         * expr.c (expand_assignment): Don't store anything for out-of-bounds
27084         array accesses with non-MEM.
27085
27086         PR tree-optimization/44182
27087         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
27088         newly needs to end a bb is followed by debug stmts, instead return
27089         true from the function at the end.
27090         (maybe_move_debug_stmts_to_successors): New function.
27091         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
27092
27093 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
27094
27095         PR target/44161
27096         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
27097
27098 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
27099
27100         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
27101         for nested functions in non-optimized compilation.
27102
27103 2010-05-31  Richard Guenther  <rguenther@suse.de>
27104
27105         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
27106
27107 2010-05-30  Jan Hubicka  <jh@suse.cz>
27108
27109         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
27110
27111 2010-05-30  Richard Guenther  <rguenther@suse.de>
27112
27113         PR lto/42975
27114         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
27115         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
27116         no longer needed.
27117
27118 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
27119
27120         * config/darwin.c (output_objc_section_asm_op): Add comment.
27121         (name_needs_quotes): Add '_' to list of valid comment chars.
27122         (machopic_output_function_base_name): Remove unneeded quotes.
27123         (darwin_encode_section_info): Adjust asm whitespace.
27124         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
27125         (ASM_OUTPUT_LOCAL): Ditto.
27126         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
27127         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
27128         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
27129
27130 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
27131
27132         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
27133         RS6000_OUTPUT_BASENAME unconditionally.
27134         (rs6000_output_function_epilogue): Likewise.
27135
27136 2010-05-30  Jan Hubicka  <jh@suse.cz>
27137
27138         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
27139         nodes.
27140
27141 2010-05-30  Richard Guenther  <rguenther@suse.de>
27142
27143         * tree-cfg.c (verify_gimple_assign_single): Implement
27144         verification for COND_EXPR rhs.
27145
27146 2010-05-30  Jan Hubicka  <jh@suse.cz>
27147
27148         * cgraph.h (cgraph_dump_file): Declare.
27149         * cgraphunit.c (cgraph_dump_file): Export.
27150         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
27151
27152 2010-05-30  Jan Hubicka  <jh@suse.cz>
27153
27154         * dwarf2out.c (reference_to_unused,
27155         premark_types_used_by_global_vars_helper): Avoid creation of new
27156         varpool nodes.
27157
27158 2010-05-30  Jan Hubicka  <jh@suse.cz>
27159
27160         * cgraph.h (cgraph_node_cannot_return,
27161         cgraph_edge_cannot_lead_to_return): New functions.
27162         * cgraph.c (cgraph_node_cannot_return,
27163         cgraph_edge_cannot_lead_to_return): Use them.
27164         * ipa-pure-const.c (pure_const_names): New static var.
27165         (check_call): Handle calls not leading to return.
27166         (pure_const_read_summary): Dump info read.
27167         (propagate): Dump info about propagation process; ignore side effects
27168         of functions not leading to exit; fix handling of pure functions.
27169
27170 2010-05-30  Jan Hubicka  <jh@suse.cz>
27171
27172         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
27173         for tail call epilogues.
27174
27175 2010-05-30  Jan Hubicka  <jh@suse.cz>
27176
27177         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
27178         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
27179         dump files.
27180
27181 2010-05-29  Jan Hubicka  <jh@suse.cz>
27182
27183         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
27184         node; remove references in node we no longer keep in cgrpah but need
27185         body of.
27186
27187 2010-05-29  Jan Hubicka  <jh@suse.cz>
27188
27189         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
27190
27191 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27192
27193         PR target/44165
27194         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
27195
27196 2010-05-29  Jan Hubicka  <jh@suse.cz>
27197
27198         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
27199         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
27200         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
27201         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
27202         debug_names_replaced_by, debug_update_ssa): Likewise.
27203         * sbitmap.c (debug_sbitmap): Likewise.
27204         * genrecog.c (debug_decision, debug_decision_list): Likewise.
27205         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
27206         debug_tree_chain): Likewise.
27207         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
27208         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
27209         * optabs.c (debug_optab_libfuncs): Likewise.
27210         (verify_loop_closed_ssa): Likewise.
27211         * value-prof.c (verify_histograms): Likewise.
27212         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
27213         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
27214         * cfghooks.c (verify_flow_info): Likewise.
27215         * fold-const.c (debug_fold_checksum): Likewise.
27216         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
27217         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
27218         Likewise.
27219         * omega.c (debug_omega_problem): Likewise.
27220         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
27221         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
27222         * dominance.c (verify_dominators, debug_dominance_info,
27223         debug_dominance_tree): Likewise.
27224         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
27225         * df_regno_debug, df_ref_debug,
27226         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
27227         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
27228         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
27229         * sel-sched.c (debug_state): Likewise.
27230         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
27231         Likewise.
27232         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
27233         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
27234         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
27235         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
27236         Likewise.
27237         * c-pretty-print.c (debug_c_tree): Likewise.
27238         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
27239         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
27240         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
27241         * ebitmap.c (debug_ebitmap): Likewise.
27242         * function.c (debug_find_var_in_block_tree): Likewise.
27243         * print-rtl.c (debug_rtx): Likewise.
27244         (debug_rtx_count): Likewise.
27245         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
27246         * stor-layout.c (debug_rli): Likewise.
27247         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
27248         * tree-data-ref.c (debug_data_references,
27249         debug_data_dependence_relations, debug_data_reference,
27250         debug_data_dependence_relation, debug_rdg_vertex,
27251         debug_rdg_component, debug_rdg): Likewise.
27252         * tree-affine.c (debug_aff): Likewise.
27253         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
27254         Likewise.
27255         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
27256         * emit-rtl.c (verify_rtl_sharing): Likewise.
27257         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
27258         debug_value_expressions): Likewise.
27259         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
27260         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
27261         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
27262         * cfglayout.c (verify_insn_chain): Likewise.
27263         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
27264         debug_clast_stmt, debug_generated_program): Likewise.
27265         * ggc-page.c (debug_print_page_list): Likewise.
27266         * tree-ssa-ter.c (debug_ter): Likewise.
27267         * graphite-dependences.c (debug_pddr): Likewise.
27268         * sched-deps.c (debug_ds): Likewise.
27269         * tree-ssa.c (verify_ssa): Likewise.
27270         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
27271         debug_scattering_functions, debug_iteration_domains, debug_pdr,
27272         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
27273         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
27274         * tree-inline.c (debug_find_tree): Likewise.
27275         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
27276         debug_ppl_powerset_matrix): Likewise.
27277         * var-tracking.c (debug_dv): Likewise.
27278         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
27279         * cfgloop.c (verify_loop_structure): Likewise.
27280         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
27281         * c-common.c (verify_sequence_points): Likewise.
27282         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
27283         debug_candidates, debug_rgn_dependencies): Likewise.
27284         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
27285         * debug_constraint_graph, debug_solution_for_var,
27286         debug_sa_points_to_info): Likewise.
27287         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
27288         Likewie.
27289         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
27290         debug_loops, debug_loop, debug_loop_num): Likewise.
27291         * passes.c (debug_pass): Likewise.
27292         (dump_properties): Likewise; add cfglayout property.
27293         (debug_properties): Likewise.
27294         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
27295         * varpool.c (debug_varpool): Likewise.
27296         * regcprop.c (debug_value_data): Likewise.
27297         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
27298         debug_immediate_uses_for): Likewise.
27299
27300 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
27301
27302         PR bootstrap/44315
27303         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
27304         Filter out insn-flags.h.
27305
27306 2010-05-29  Jan Hubicka  <jh@suse.cz>
27307
27308         * cgraph.h (struct varpool_node_set_def,
27309         struct cgraph_node_set_def): Remove unused AUX pointer.
27310         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
27311         VEC_empty macro.
27312
27313 2010-05-29  Jan Hubicka  <jh@suse.cz>
27314
27315         PR middle-end/44324
27316         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
27317
27318 2010-05-29  Richard Guenther  <rguenther@suse.de>
27319
27320         * lto-streamer.c (cached_bp): New global variable.
27321         (bitpack_create): Return the cached bitpack, if available.
27322         (bitpack_delete): Clear and cache the bitpack, if appropriate.
27323         (bp_pack_value): Remove redundant asserts.
27324
27325 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
27326
27327         PR middle-end/44306
27328         * tree-if-conv.c (is_true_predicate): New.
27329         (is_predicated): Use is_true_predicate.
27330         (add_to_predicate_list): Same.  Do not use unshare_expr.
27331         (add_to_dst_predicate_list): Same.
27332
27333 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
27334
27335         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
27336         field on edges.
27337         (predicate_bbs): Same.
27338         (clean_predicate_lists): Same.
27339         (find_phi_replacement_condition): Do not AND the predicate from
27340         edge->aux.
27341
27342 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
27343
27344         PR bootstrap/44315
27345         * Makefile.in (build/gencondmd.o): Add a missing `\'.
27346
27347 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27348
27349         PR target/44261
27350         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
27351         (negdf2): Adjust expander pattern and use negdf2_slow.
27352         (negsf2): Likewise.
27353
27354 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
27355
27356         * basic-block.h (struct control_flow_graph): Move last_label_uid field
27357         up.
27358         * df.h (struct df_base_ref): Move regno field up.
27359         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
27360         * expr.h (struct separate_ops): Move location field up.
27361         * optabs.h (struct optab_d): Move libcall_basename field down.
27362         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
27363         * config/i386/i386.h (struct machine_function): Convert call_abi field
27364         into a bitfield.  Move cfa field to the end of the structure.
27365
27366 2010-05-29  Jan Hubicka  <jh@suse.cz>
27367
27368         * varpool.c (varpool_get_node): Fix lookup.
27369
27370 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27371
27372         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
27373         RTL specific prototypes with #ifdef RTX_CODE.
27374         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
27375         * config/spu/t-spu-elf: Fix dependencies.
27376
27377         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
27378
27379 2010-05-29  Mike Stump  <mikestump@comcast.net>
27380
27381         PR bootstrap/44315
27382         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
27383         TM_H when building to avoid dependency loops.
27384
27385 2010-05-29  Jan Hubicka  <jh@suse.cz>
27386
27387         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
27388         refs and body; not the whole node for masters of materialized clones.
27389
27390 2010-05-29  Mike Stump  <mikestump@comcast.net>
27391
27392         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
27393
27394 2010-05-29  Jan Hubicka  <jh@suse.cz>
27395
27396         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
27397         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
27398         use of clone_function_name.
27399         * cgraph.h (cgraph_create_virtual_clone,
27400         cgraph_function_versioning): update prototypes.
27401         (clone_function_name): Declare.
27402         * ipa-cp.c (ipcp_insert_stage): Update call of
27403         cgraph_create_virtual_clone.
27404         * omp-low.c (create_omp_child_function_name): Use
27405         cgraph_create_virtual_clone.
27406         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
27407         (cgraph_function_versioning): Take SUFFIX argument; produce new name
27408         and make decl local.
27409
27410 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27411
27412         * vec.h: Include statistics.h
27413         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
27414         with VEC_H.
27415
27416 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27417
27418         * c-lex.c: Do not include c-tree.h.
27419         * c-pretty-print.c: Likewise.
27420         * c-opts.c: Likewise.
27421         * c-gimplify.c: Likewise.
27422         * c-common.c: Likewise.
27423         * c-dump.c: Likewise.  Include c-common.h.
27424
27425 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27426
27427         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
27428         before including diagnostic-core.h.
27429         (c_cpp_error): New prototype moved from c-tree.h.
27430         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
27431         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
27432         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
27433         (c_cpp_error): Prototype moved to c-common.h.
27434         * Makefile.in: Update dependency for C_COMMON_H.
27435
27436 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27437
27438         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
27439         * c-common.c (c_register_addr_space): Remove here.
27440         * c-decl.c (c_register_addr_space): Re-add here.
27441
27442 2010-05-28  Mike Stump  <mikestump@comcast.net>
27443
27444         * config/darwin-c.c: Remove c-tree.h include.
27445
27446 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27447
27448         * gcc.c: Include diagnostic.h.
27449         (error_count): Remove.  All users changed to use errorcount.
27450         (programname): Remove.  All users changed to use progname.
27451         (fancy_abort, internal_error, fatal_error, error, warning, inform,
27452         fnotice): Remove.
27453         (execute): Don't include "Internal error" and bug reporting
27454         information in argument of internal_error call.
27455         (process_command): Don't increment error_count after calling
27456         perror_with_name.
27457         (input_filename): Rename to gcc_input_filename.  All users
27458         changed.
27459         (main): Call diagnostic_initialize.  Register delete_temp_files
27460         with atexit.  Use seen_error to test for errors.
27461         * gcc.h: Include diagnostic-core.h.
27462         (fatal_error, error, warning): Remove.
27463         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
27464         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
27465         (gcc.o): Update dependencies.
27466
27467 2010-05-28  Jeff Law  <law@redhat.com>
27468
27469         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
27470         functions.
27471         * ira.h (ira_bad_reload_regno): Declare
27472         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
27473
27474         * ira-color.c (update_curr_costs): Free updated hard reg costs.
27475         (ira_reassign_conflict_allocnos): Remove bogus asserts.
27476         (allocno_reload_assign): Likewise.
27477
27478 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
27479
27480         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
27481         build1_stat.
27482
27483 2010-05-28  Richard Guenther  <rguenther@suse.de>
27484
27485         PR lto/44312
27486         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
27487         Stream fixed-point constants mode.
27488         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
27489         and TYPE_PRECISION.
27490         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
27491         Stream fixed-point constants mode.
27492         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
27493         and TYPE_PRECISION.
27494
27495 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27496
27497         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
27498         only place it was called from.
27499         (number_of_latch_executions): Do not return chrec_dont_know when the
27500         may_be_zero is a runtime condition: instead, return a COND_EXPR
27501         including the may_be_zero condition.
27502         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
27503         of nb_iterations.
27504         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
27505         COND_EXPRs.
27506
27507 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27508
27509         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
27510         generate COND_EXPRs for degenerate_phi_result.
27511
27512 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27513
27514         PR middle-end/44293
27515         * tree-if-conv.c (if_convertible_loop_p): Check the
27516         if-convertibility of phi nodes in non predicated BBs.
27517
27518 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27519
27520         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
27521
27522 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27523
27524         PR driver/15303
27525         * gcc.c (inform, warning, inform): New functions.
27526         (fatal_ice): Rename to internal_error; change cmsgid parameter to
27527         gmsgid.  All callers changed.
27528         (notice): Rename to fnotice; add parameter fp.  All callers changed.
27529         (fatal_error): Rename to fatal_signal.  All users changed.
27530         (fatal): Rename to fatal_error; change cmsgid parameter to
27531         gmsgid.  All callers changed.
27532         (process_command): Use warning instead of error for warnings.
27533         (end_going_arg): Don't use _() around argument of error.
27534         (do_spec_1): Use inform for message from %n specs.  Use warning
27535         instead of error for warnings.
27536         (main): Use inform for comparison messages.  Use warning for
27537         message about unused linker input.
27538         (error): Increment error_count.  Print "error: ".
27539         * gcc.h (fatal): Change to fatal_error.
27540         (warning): Declare.
27541         * config/darwin-driver.c (darwin_default_min_version): Use warning
27542         instead of fprintf for warnings.
27543         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
27544
27545 2010-05-28  Julian Brown  <julian@codesourcery.com>
27546
27547         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
27548         (*thumb2_addsi3_compare0_scratch): New.
27549         * config/arm/constraints.md (Pv): New.
27550         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
27551         for ARM mode only.
27552         (*addsi3_compare0_scratch): Likewise.
27553
27554 2010-05-28  Jan Hubicka  <jh@suse.cz>
27555
27556         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
27557         check.
27558         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
27559         only on local statics.
27560
27561 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
27562
27563         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
27564
27565 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
27566
27567         PR bootstrap/44314
27568         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
27569         (OPTION_GLIBC): Define.
27570
27571 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
27572
27573         PR debug/41048
27574         * dwarf2out.c (double_int_type_size_in_bits): New function.
27575         (round_up_to_align): Change first argument and return value to
27576         double_int.
27577         (field_byte_offset): Work internally on double_ints.
27578
27579         PR target/43636
27580         * builtins.c (expand_movstr): Use a temporary pseudo instead
27581         of target even when target is not NULL and not const0_rtx, but
27582         fails movstr predicate.
27583         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
27584
27585 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27586
27587         * final.c (rest_of_clean_state): Use %m in errors instead of
27588         strerror (errno).
27589         * gengtype.c (read_input_list, close_output_files): Use xstrerror
27590         instead of strerror.
27591         * toplev.c (process_options): Use %m in errors instead of strerror
27592         (errno).
27593         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
27594         (errno).
27595
27596 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
27597
27598         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
27599         (ix86_canonical_va_list_type): Make static.  Add declaration.
27600         (ix86_enum_va_list): Make static.  Reindent.
27601         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
27602         (ix86_canonical_va_list_type): Ditto.
27603         (ix86_enum_va_list): Ditto.
27604
27605 2010-05-28  Richard Guenther  <rguenther@suse.de>
27606
27607         * lto-wrapper.c (run_gcc): With -save-temps generate a
27608         user-visible ltrans filename.  Fixup ltrans unit numbering.
27609
27610 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
27611
27612         * c-common.c (c_common_nodes_and_builtins): Replace use
27613         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
27614         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
27615         to ix86_enum_va_list.
27616         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
27617         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
27618         (TARGET_ENUM_VA_LIST_P): Add hook description.
27619         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
27620         * target.h (gcc_target): Add enum_va_list hook.
27621
27622         PR bootstrap/44299
27623         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
27624         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
27625         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
27626
27627 2010-05-28  Alan Modra  <amodra@gmail.com>
27628
27629         PR target/44266
27630         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
27631         emit_library_call machinery to set up __tls_get_addr calls.
27632
27633 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27634
27635         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
27636
27637 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
27638
27639         Revert fix for PR c++/44188
27640         * c-common.c (is_typedef_decl): Revert the moving of  this
27641         definition ...
27642         * tree.c (is_typedef_decl): ... here.
27643         (typdef_variant_p): Revert the moving of this  definition
27644         here from cp/tree.c.
27645         * c-common.h (is_typedef_decl): Revert the moving of this
27646         declaration ...
27647         * tree.h (is_typedef_decl): ... here.
27648         (typedef_variant_p): Revert the moving of this  declaration here
27649         from cp/cp-tree.h
27650         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
27651         (gen_tagged_type_die): Revert the splitting out of ...
27652         (gen_type_die_with_usage): ... this function. Revert the anonymous
27653         tagged type handling.
27654         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
27655         typedefs naming anonymous tagged types.
27656
27657 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
27658
27659         * config/rs6000/rs6000-modes.def (PSImode): Delete.
27660
27661 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
27662
27663         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
27664         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
27665         throughout.
27666         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
27667         "xer" to "ca".
27668         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
27669         XER_REGS to CA_REGS throughout.
27670         * config/rs6000/rs6000.h: Same.
27671         (ADDITIONAL_REGISTER_NAMES): Add "xer".
27672         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
27673         that mode_iterator "P" is the size for arithmetic carries as well.
27674         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
27675
27676 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
27677
27678         PR bootstrap/44255
27679         * combine.c (struct rtx_subst_pair): Define unconditionally.
27680         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
27681         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
27682         Call make_compound_operation on pair->to.
27683         (propagate_for_debug): Don't call make_compound_operation here.
27684         Always use simplify_replace_fn_rtx.
27685
27686 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
27687
27688         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
27689         * config/xtensa/xtensa.c (override_options): Check
27690           TARGET_FORCE_NO_PIC and set flag_pic.
27691         * config/xtensa/xtensa.opt: Document -mforce-no-pic
27692
27693 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27694
27695         PR bootstrap/44299
27696         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
27697         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
27698
27699 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27700
27701         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
27702         toplev.h.
27703         * diagnostic.c: Don't include toplev.h.
27704         (progname): Define.  Moved from toplev.c.
27705         (seen_error): New function.
27706         * diagnostic.h: Include diagnostic-core.h.
27707         (diagnostic_t, emit_diagnostic): Don't declare here.
27708         * toplev.c (progname): Move to toplev.c.
27709         (emit_debug_global_declarations, compile_file, finalize,
27710         do_compile, toplev_main): Use seen_error.
27711         * toplev.h: Include diagnostic-core.h.
27712         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
27713         internal_error, warning, warning_at, error, error_n, error_at,
27714         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
27715         verbatim, fnotice, progname): Move to diagnostic-core.h.
27716         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
27717         (expand_builtin_expect): Use seen_error.
27718         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
27719         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
27720         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
27721         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
27722         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
27723         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
27724         errorcount for errors.
27725         * c-opts.c (c_common_finish): Use seen_error.
27726         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27727         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
27728         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
27729         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
27730         (get_coverage_counts): Use seen_error.
27731         * dwarf2out.c (dwarf2out_finish): Use seen_error.
27732         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
27733         gimplify_body): Use seen_error.
27734         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
27735         * ipa-pure-const.c (gate_pure_const): Use seen_error.
27736         * ipa-reference.c (gate_reference): Use seen_error.
27737         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
27738         * lambda-code.c: Include diagnostic-core.h instead of
27739         diagnostic.h.
27740         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27741         * lto-compress.c: Include diagnostic-core.h instead of
27742         diagnostic.h.
27743         * lto-section-in.c: Include diagnostic-core.h instead of
27744         diagnostic.h.
27745         * lto-streamer-out.c: Include diagnostic-core.h instead of
27746         diagnostic.h.
27747         * lto-streamer.c: Include diagnostic-core.h instead of
27748         diagnostic.h.
27749         (gate_lto_out): Use seen_error.
27750         * matrix-reorg.c: Include diagnostic-core.h instead of
27751         diagnostic.h.
27752         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
27753         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
27754         (gate_expand_omp, lower_omp_1): Use seen_error.
27755         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
27756         (rest_of_decl_compilation, rest_of_type_compilation,
27757         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
27758         * tree-cfg.c (label_to_block_fn): Use seen_error.
27759         * tree-inline.c (optimize_inline_calls): Use seen_error.
27760         * tree-mudflap.c (mudflap_finish_file): Use
27761         seen_error.
27762         * tree-optimize.c (gate_all_optimizations,
27763         gate_all_early_local_passes, gate_all_early_optimizations): Use
27764         seen_error.
27765         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
27766         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
27767         (varpool_remove_unreferenced_decls,
27768         varpool_assemble_pending_decls): Use seen_error.
27769         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
27770         (TOPLEV_H, DIAGNOSTIC_H): Update.
27771         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
27772         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
27773         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
27774         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
27775         coverage.o, lambda-code.o): Update dependencies.
27776
27777 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27778
27779         PR c++/44188
27780         * c-common.c (is_typedef_decl): Move this definition ...
27781         * tree.c (is_typedef_decl): ... here.
27782         (typdef_variant_p): Move definition here from cp/tree.c.
27783         * c-common.h (is_typedef_decl): Move this declaration ...
27784         * tree.h (is_typedef_decl): ... here.
27785         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27786         * dwarf2out.c (is_naming_typedef_decl): New function.
27787         (gen_tagged_type_die): Split out of ...
27788         (gen_type_die_with_usage): ... this function. When an anonymous
27789         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27790         is emitted for the typedef.
27791         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27792         anonymous tagged types.
27793
27794 2010-05-27  Jason Merrill  <jason@redhat.com>
27795
27796         * print-tree.c (debug_vec_tree): New fn.
27797         (print_vec_tree): New fn.
27798         * tree.h: Declare them.
27799         * gdbinit.in (pvt): New command.
27800
27801         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
27802
27803         * gdbinit.in (pdd): New command.
27804
27805 2010-05-27  Jan Hubicka  <jh@suse.cz>
27806
27807         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
27808         (update_caller_keys): Return early if there are no callers;
27809         only update fibheap when decresing the key.
27810         (update_callee_keys): Avoid recursion.
27811         (decide_inlining_of_small_functions): When badness does not match;
27812         re-insert into fibheap.
27813
27814 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
27815
27816         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
27817         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
27818         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
27819         (ALL_HOST_OBJS): Now a union of the above two.
27820         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
27821         all files in ALL_HOST_FRONTEND_OBJS.
27822         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
27823
27824         * c-common.c: Pretend to be a backend file by undefining
27825         IN_GCC_FRONTEND (still need rtl.h here).
27826
27827 2010-05-27  Jan Hubicka  <jh@suse.cz>
27828
27829         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
27830         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
27831
27832 2010-05-27  Jan Hubicka  <jh@suse.cz>
27833
27834         * sched-ebb.c: Rename struct deps to struct deps_desc.
27835         * ddg.c: Likewise.
27836         * sel-sched-ir.c: Likewise.
27837         * sched-deps.c: Likewise.
27838         * sched-int.h: Likewise.
27839         * sched-rgn.c: Likewise.
27840
27841 2010-05-27  Jon Beniston  <jon@beniston.com>
27842
27843         PR 43726
27844         * config/lm32/lm32.h: Remove definition of
27845         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
27846
27847 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27848
27849         PR lto/44230
27850         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
27851
27852 2010-05-27  Richard Guenther  <rguenther@suse.de>
27853
27854         PR tree-optimization/44284
27855         * tree-vect-stmts.c (vectorizable_assignment): Handle
27856         sign-changing conversions as simple copy.
27857
27858 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27859
27860         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
27861         Bionic C library.
27862         (__gthread_active_p): Check for pthread_create if compiling against
27863         Bionic C library.
27864
27865 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27866
27867         Support compilation for Android platform.  Reimplement -mandroid.
27868
27869         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27870         (*android*): Set ANDROID_DEFAULT.
27871         (arm*-*-linux*): Include linux-android.h.
27872         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27873         * config/arm/eabi.h: Remove, move Android-specific parts ...
27874         * config/linux-android.h: ... here.  New file.
27875         * config/arm/eabi.opt: Rename to ...
27876         * config/linux-android.opt: ... this.
27877         (mandroid): Allow -mno-android option.  Initialize based on
27878         ANDROID_DEFAULT.
27879         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27880         Move logic to corresponding LINUX_TARGET_* macros.
27881         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27882         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27883         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27884         Android definitions.
27885         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27886         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27887         Document.
27888
27889 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27890
27891         Add support for Bionic C library
27892
27893         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27894         macro.
27895         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27896         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27897
27898         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27899         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27900         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27901         to support multiple C libraries.  Handle Bionic.
27902         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27903         (BIONIC_DYNAMIC_LINKER64): Define.
27904         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27905         Update.
27906         (TARGET_HAS_SINCOS): Enable for Bionic.
27907
27908         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
27909         the last option specified on command line take effect.
27910         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
27911         (mbionic): New.
27912         (mglibc, muclibc): Update.
27913
27914         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
27915         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
27916         DEFAULT_LIBC.
27917
27918         * doc/invoke.texi (-mglibc, -muclibc): Update.
27919         (-mbionic): Document.
27920
27921 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27922
27923         * c-common.h (c_register_addr_space): Add prototype.
27924         (ADDR_SPACE_KEYWORD): Remove.
27925         * c-common.c (c_register_addr_space): New function.
27926         (c_addr_space_name): Reimplement.
27927         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
27928
27929         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
27930         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
27931
27932         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
27933         Remove TARGET_ADDR_SPACE_KEYWORDS.
27934
27935 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27936
27937         * input.c: New file.
27938         * input.h (main_input_filename): Move declaration to toplev.h.
27939         * toplev.c (input_location, line_table): Move to input.c
27940         * toplev.h (main_input_filename): Move declaration from input.h.
27941         * tree.c (expand_location): Move to input.c.
27942         * Makefile.in (OBJS-common): Add input.o.
27943         (input.o): Add dependencies.
27944
27945 2010-05-27  Richard Guenther  <rguenther@suse.de>
27946
27947         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
27948         for non-existant files.
27949         (fork_execute): Mark args_name file as deleted.
27950
27951 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27952
27953         PR bootstrp/44287
27954         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
27955         (narrow_signed_type): Likewise.
27956
27957 2010-05-26  Jan Hubicka  <jh@suse.cz>
27958
27959         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
27960         edge only when checking is enabled; check using former_clone_of;
27961         check inline clones too.
27962         (cgraph_materialize_clone): Record former_clone_of pointer.
27963         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
27964         combining redirections; dump args_to_skip bitmap
27965         (cgraph_materialize_all_clones): Do no redirection here.
27966         * ipa-inline.c (inline_transform): Do redirection here.
27967         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
27968         cheking only).
27969
27970 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27971
27972         * config/avr/avr-c.c: Do not include regs.h.
27973         Include cpplib.h for cpp_define and tree.h for c-common.h.
27974         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
27975         * config/avr/t-avr: Fix dependencies for avr-c.o.
27976
27977 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27978
27979         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
27980         string instead of SYMBOL_REF rtx.
27981         * rtl.h (set_stack_check_libfunc): Move prototype from here...
27982         * libfuncs.h: ...to here.  Adjust for explow.c change.
27983
27984 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27985
27986         * pretty-print.c: Don't include ggc.h.
27987         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
27988         (identifier_to_locale): Use them for allocation.
27989         * pretty-print.h (identifier_to_locale_alloc,
27990         identifier_to_locale_free): Declare.
27991         * toplev.c (alloc_for_identifier_to_locale): New.
27992         (general_init): Set identifier_to_locale_alloc and
27993         identifier_to_locale_free.
27994         * Makefile.in (pretty-print.o): Update dependencies.
27995
27996 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27997
27998         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
27999         pointer types if they have different alignment or mode.
28000
28001 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
28002
28003         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28004         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28005         * config/sparc/sparc-protos.h (function_value): Remove declaration.
28006         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
28007         sparc_function_value_regno_p): New functions.
28008         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28009         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28010         (function_value): Rename to...
28011         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
28012         argument to 'outgoing'.
28013         (function_arg_record_value, function_arg_union_value,
28014         function_arg_vector_value): Update comment.
28015
28016 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
28017
28018         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
28019         (fde_needed_for_eh_p): New predicate.
28020         (output_call_frame_info): Use it throughout to decide whether FDEs
28021         are needed for EH purpose.
28022         (dwarf2out_begin_prologue): Reorder assignments.
28023
28024 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28025
28026         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
28027         special case loop->header.
28028         (is_predicated): New.
28029         (if_convertible_loop_p): Call it.
28030
28031 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28032
28033         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
28034         iterator in parameter.  Do not generate code during the analysis.
28035         (tree_if_convert_cond_stmt): Removed.
28036         (tree_if_convert_stmt): Removed.
28037         (predicate_bbs): New.
28038         (if_convertible_loop_p): Call predicate_bbs.
28039         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
28040         now contains all the analysis part.
28041
28042 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28043
28044         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
28045         statements in the analysis part.
28046         (tree_if_convert_stmt): Update comment.
28047         (remove_conditions_and_labels): New.
28048         (combine_blocks): Call remove_conditions_and_labels.
28049         (tree_if_conversion): Update comment.
28050
28051 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28052
28053         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
28054         than 2 predecessors or more than 2 successors.
28055
28056 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28057
28058         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
28059         of loops in which the data dependence analysis fails.
28060
28061 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28062
28063         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
28064         CDI_POST_DOMINATORS.
28065         (tree_if_conversion): Same.
28066
28067 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28068
28069         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
28070
28071 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28072
28073         * tree-if-conv.c: Update copyright years.  Fix comments.
28074         Fix indentation.
28075
28076 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
28077
28078         * builtin-types.def (BT_INT128): New primitive type.
28079         (BT_UINT128): Likewise.
28080         * c-common.c (c_common_r): Add __int128 keyword.
28081         (c_common_type_for_size): Handle __int128.
28082         (c_common_type_for_mode): Likewise.
28083         (c_common_signed_or_unsigned_type): Likewise.
28084         (c_common_nodes_and_builtins): Add builtin type
28085         if target supports 128-bit integer scalar.
28086         * c-common.h (enum rid): Add RID_INT128.
28087         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
28088         if target supports 128-bit integer scalar.
28089         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
28090         (finish_declspecs): Likewise.
28091         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
28092         (c_token_starts_declspecs): Likewise.
28093         (c_parser_declspecs): Likewise.
28094         (c_parser_attributes): Likewise.
28095         (c_parser_objc_selector): Likewise.
28096         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
28097         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
28098         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
28099         * tree.c (make_or_reuse_type): Likewise.
28100         (make_unsigned_type): Likewise.
28101         (build_common_tree_nodes_2): Likewise.
28102         * tree.h (enum integer_type_kind): Add itk_int128 and
28103         itk_unsigned_int128.
28104         (int128_integer_type_node): New define.
28105         (int128_unsigned_type_node): New define.
28106         * doc/extend.texi: Add documentation about __int128 type.
28107
28108 2010-05-26  Richard Guenther  <rguenther@suse.de>
28109
28110         * tree-ssa-sccvn.c (copy_nary): Adjust.
28111         (copy_phis): Rename to ...
28112         (copy_phi): ... this.  Adjust.
28113         (copy_references): Rename to ...
28114         (copy_reference): ... this.  Adjust.
28115         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
28116         result into the valid table.
28117
28118 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28119
28120         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
28121         insn-config.h, insn-codes.h, recog.h, and optabs.h.
28122
28123 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28124
28125         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
28126
28127 2010-05-26  Richard Guenther  <rguenther@suse.de>
28128
28129         * opts.c (common_handle_option): Handle OPT_Ofast.
28130
28131 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
28132
28133         * diagnostic.c: Don't include opts.h.
28134         (permissive_error_option): Define.
28135         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
28136         for classify_diagnostic.  Don't use memset for
28137         classify_diagnostic.  Initialize new and recently added fields.
28138         (diagnostic_classify_diagnostic): Use context->n_opts instead of
28139         N_OPTS.
28140         (diagnostic_report_diagnostic): Pass context parameter to
28141         diagnostic_report_warnings_p.  Use option_enabled and option_name
28142         hooks from context.
28143         (emit_diagnostic): Use permissive_error_option.
28144         (permerror): Likewise.
28145         * diagnostic.h: Don't include options.h.
28146         (struct diagnostic_context): Add n_opts, opt_permissive,
28147         inhibit_warnings, warn_system_headers, option_enabled and
28148         option_name fields.  Change classify_diagnostic to a pointer.
28149         * opts-diagnostic.h: New file.
28150         * opts.c: Include opts-diagnostic.h.
28151         (common_handle_option): Set global_dc fields for -Wfatal-errors,
28152         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
28153         (option_name): New function.
28154         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
28155         (c_common_handle_option): Set global_dc->permissive for
28156         -fpermissive.
28157         * c-common.c (c_cpp_error): Save and restore
28158         global_dc->warn_system_headers, not variable warn_system_headers.
28159         * toplev.c: Include opts-diagnostic.h.
28160         (general_init): Update call to diagnostic_initialize.  Set
28161         global_dc->show_column, global_dc->option_enabled and
28162         global_dc->option_name.
28163         (process_options): Don't set global_dc fields here.
28164         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
28165         (diagnostic.o, opts.o, toplev.o): Update dependencies.
28166
28167 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
28168
28169         * config/picochip/picochip.md (movsi): Split a movsi from a
28170         const after reload.
28171
28172 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28173
28174         * ggc-zone.c: Update copyright year.
28175         (poison_region): Mark memory for Valgrind as undefined before
28176         memset () call and inaccessible afterwards.
28177         (ggc_pch_total_size): Change type of i to int.
28178
28179 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28180
28181         * ggc-common.c (ggc_free_overhead): Allow empty slot.
28182
28183 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28184
28185         * ggc-common.c: Update copyright year.
28186         (ggc_rlimit_bound): Remove prototype.  Compile only if
28187         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
28188         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
28189         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
28190         (ggc_min_heapsize_heuristic): Likewise.
28191
28192 2010-05-26  Richard Guenther  <rguenther@suse.de>
28193
28194         PR rtl-optimization/44164
28195         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
28196         no-common access-path disambiguation.
28197         (indirect_ref_may_alias_decl_p): Adjust.
28198         (indirect_refs_may_alias_p): Likewise.
28199         (refs_may_alias_p_1): Likewise.
28200
28201 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28202
28203         * c-typeck.c: Do not include expr.h.
28204
28205 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28206
28207         * rtl.h (decl_default_tls_model): Move prototype from here...
28208         * output.h: ...to here.
28209         * c-decl.c: Do not include rtl.h.
28210         * c-pragma.c: Likewise.
28211         * c-parser.c: Likewise.
28212         * c-gimplify.c: Likewise.  And also not hard-reg-set.
28213         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
28214         FIXME note for it.  Add a FIXME note for expr.h.
28215         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
28216         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
28217         defined.
28218
28219 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
28220
28221         PR target/44199
28222         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
28223         or total_size is larger than red zone size for non-V4 ABI, emit a
28224         stack_tie resp. frame_tie insn before stack pointer restore.
28225         * config/rs6000/rs6000.md (frame_tie): New insn.
28226
28227 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
28228
28229         * function.h (struct function): Add can_throw_non_call_exceptions bit.
28230         * lto-streamer-in.c (input_function): Stream it in.
28231         * lto-streamer-out.c (output_function): Stream it out.
28232         * function.c (allocate_struct_function): Set it.
28233         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
28234         for flag_non_call_exceptions.
28235         * cfgbuild.c (control_flow_insn_p): Likewise.
28236         (make_edges): Likewise.
28237         * cfgexpand.c (expand_stack_alignment): Likewise.
28238         * combine.c (distribute_notes): Likewise.
28239         * cse.c (cse_extended_basic_block): Likewise.
28240         * except.c (insn_could_throw_p): Likewise.
28241         * gcse.c (simple_mem): Likewise.
28242         * ipa-pure-const.c (check_call): Likewise.
28243         (check_stmt ): Likewise.
28244         * lower-subreg.c (lower-subreg.c): Likewise.
28245         * optabs.c (emit_libcall_block): Likewise.
28246         (prepare_cmp_insn): Likewise.
28247         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
28248         * postreload.c (rest_of_handle_postreload): Likewise.
28249         * reload1.c (reload_as_needed): Likewise.
28250         (emit_input_reload_insns): Likewise.
28251         (emit_output_reload_insns): Likewise.
28252         (fixup_abnormal_edges): Likewise.
28253         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
28254         * store-motion.c (find_moveable_store): Likewise.
28255         * tree-eh.c (stmt_could_throw_p): Likewise.
28256         (tree_could_throw_p): Likewise.
28257         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
28258         * config/arm/arm.c (arm_expand_prologue): Likewise.
28259         (thumb1_expand_prologue): Likewise.
28260         * config/rx/rx.md (cbranchsf4): Likewise.
28261         (cmpsf): Likewise.
28262         * config/s390/s390.c (s390_emit_prologue): Likewise.
28263         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
28264         (inline_forbidden_into_p): New predicate.
28265         (expand_call_inline): Use it to forbid inlining.
28266         (tree_can_inline_p): Likewise.
28267
28268 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
28269
28270         * config/i386/i386-c.c: Do not include rtl.h.
28271         * config/i386/t-i386: Update dependencies.
28272
28273 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
28274
28275         * attribs.c: Do not include rtl.h.
28276         * Makefile.in: Update dependencies.
28277
28278 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
28279
28280         * double-int.h (double_int_and): New.
28281         * combine.c (try_combine): Clean up, use double_int_* and
28282         immed_double_int_const functions.
28283
28284 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28285
28286         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
28287         stderr to /dev/null instead of grep -q.
28288         * configure: Regenerate.
28289
28290 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
28291
28292         * Makefile.in (EXCEPT_H): Fix typo.
28293
28294 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
28295
28296         * ira-build.c (update_conflict_hard_reg_costs): New.
28297         (ira_build): Call update_conflict_hard_reg_costs.
28298
28299 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
28300
28301         PR debug/41371
28302         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
28303         ENABLE_CHECKING.
28304         (intersect_loc_chains): Walk the s2var's loc_chain together
28305         with s1node chain as long as the locations are equal, don't
28306         call find_loc_in_1pdv in that case.
28307
28308         PR debug/42801
28309         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
28310         (copy_bind_expr): ... instead of here.
28311         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
28312         if the block hasn't been remapped.
28313         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
28314         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
28315
28316 2010-05-25  Richard Guenther  <rguenther@suse.de>
28317
28318         PR middle-end/44069
28319         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
28320         out-of-bounds array accesses.
28321
28322 2010-05-25  Richard Guenther  <rguenther@suse.de>
28323
28324         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
28325         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
28326         (run_gcc): Re-organize to make cleanup easier.
28327
28328 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28329
28330         * config/s390/s390.c (optimization_options): Fix and move the
28331         flag_prefetch_loop_arrays override ...
28332         (override_options): ... here.
28333
28334 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
28335
28336         * diagnostic.c: Don't include plugin.h.
28337         (diagnostic_report_diagnostic): Don't handle plugins specially
28338         here.  Pass context to internal_error callback.
28339         * diagnostic.h (struct diagnostic_context): Add context parameter
28340         to internal_error callback.
28341         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
28342         * plugin.h (struct diagnostic_context): Declare.
28343         (warn_if_plugins, plugins_internal_error_function): Declare.
28344         * toplev.c (general_init): Set global_dc->internal_error.
28345         * Makefile.in (diagnostic.o): Update dependencies.
28346
28347 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
28348
28349         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
28350         * config/rs6000/t-darwin64: New.
28351         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
28352         build crt2.
28353
28354 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
28355
28356         PR 44203
28357         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
28358         match the original (and intended) behaviour before r159557.  This
28359         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
28360         in two ways.
28361
28362 2010-05-25  Richard Guenther  <rguenther@suse.de>
28363
28364         * doc/invoke.texi: Document -Ofast.
28365         * target.h (struct gcc_target): Add handle_ofast.
28366         * target-def.h (TARGET_HANDLE_OFAST): Add.
28367         (TARGET_INITIALIZER): Adjust.
28368         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
28369         * common.opt (Ofast): Add.
28370
28371 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
28372
28373         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
28374         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
28375
28376 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
28377
28378         PR target/43610
28379         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
28380         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
28381         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
28382         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
28383
28384 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
28385
28386         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
28387         DW_OP_minus with negated offset instead of DW_OP_plus.
28388         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
28389
28390 2010-05-25  Wei Guozhi  <carrot@google.com>
28391
28392         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
28393         tst instruction and a new alternative.
28394         * config/arm/constraints.md (Pu): New constraint.
28395
28396 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
28397
28398         * function.c (assign_stack_local_1): Initialize variable
28399         to avoid warning when bootstrapping at -O3.
28400
28401 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
28402
28403         * configure.ac (all_lang_makefiles): Remove everything related to it.
28404         * configure: Regenerate.
28405         * Makefile.in: Fix reference to ada Make-lang.in.
28406         Remove support for LANG_MAKEFILES.
28407
28408 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
28409             Sandra Loosemore  <sandra@codesourcery.com>
28410
28411         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
28412         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
28413         description.  Add arm_neon_fp16_ok.
28414         (Add Options): Add arm_neon and arm_neon_fp16.
28415
28416 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
28417
28418         * diagnostic.c: Don't include flags.h.
28419         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
28420         context parameters.  Check flags in the context passed as a parameter.
28421         (diagnostic_build_prefix): Add context parameter.  Check
28422         show_column flag in context.
28423         (diagnostic_action_after_output): Check fatal_errors flag in context.
28424         (diagnostic_report_current_module): Check show_column flag in context.
28425         (default_diagnostic_starter): Update call to
28426         diagnostic_build_prefix.
28427         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
28428         (emit_diagnostic): Pass context to permissive_error_kind.
28429         (permerror): Pass context to permissive_error_kind.
28430         * diagnostic.h (struct diagnostic_context): Add show_column,
28431         pedantic_errors, permissive and fatal_errors fields.
28432         (diagnostic_build_prefix): Update prototype.
28433         * langhooks.c
28434         * toplev.c (process_options): Set flags in global_dc from
28435         flag_show_column, flag_pedantic_errors, flag_permissive,
28436         flag_fatal_errors.
28437         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
28438         to diagnostic_build_prefix.
28439         * Makefile.in (diagnostic.o): Update dependencies.
28440
28441 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
28442
28443         * config/i386/ia32intrin.h (__crc32q): Define only if
28444         __SSE4_2__ is defined.
28445
28446 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
28447
28448         PR target/44132
28449         PR middle-end/43602
28450         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
28451         DECL_VISIBILITY_SPECIFIED.
28452         (emutls_decl): Set DECL_PRESERVE_P and copy
28453         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
28454         (emutls_finalize_control_var): New callback.
28455         (emutls_finish): Finalize emutls control variables.
28456         * toplev.c (compile_file): Move the call to emutls_finish ()
28457         before varpool_assemble_pending_decls ().
28458
28459 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
28460
28461         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
28462         added to the preprocessor condition.
28463
28464 2010-05-24  Paul Brook  <paul@codesourcery.com>
28465
28466         * gengtype-lex.l: Add HARD_REG_SET.
28467         * expr.c (expand_expr_real_1): Record writes to hard registers.
28468         * function.c (rtl_data): Add asm_clobbers.
28469         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
28470         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
28471         Use crtl->asm_clobbers.
28472
28473 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28474
28475         * doc/makefile.texi (Makefile): Mention stages 'profile'
28476         and 'feedback' for profiledbootstrap.
28477
28478 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
28479
28480         PR target/44245
28481         * config/i386/i386.c (def_builtin): Properly check
28482         OPTION_MASK_ISA_64BIT.
28483
28484 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
28485
28486         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
28487         typedefs with different but compatible types.  Allow duplicate
28488         typedefs with the same type except for pedantic non-C1X, but give
28489         warning for variably modified types.
28490         * c-typeck.c (tagged_types_tu_compatible_p,
28491         function_types_compatible_p, type_lists_compatible_p,
28492         comptypes_internal): Add parameter different_types_p; set
28493         *different_types_p for different but compatible types.  All
28494         callers changed.
28495         (comptypes_check_different_types): New.
28496         * c-tree.h (comptypes_check_different_types): Declare.
28497
28498 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
28499
28500         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
28501         * jump.c: Include basic-block.h.
28502         * profile.c: Likewise.
28503         * tree-profile.c: Likewise.
28504         * coverage.c: Likewise.
28505         * basic-block.h (optimize_function_for_size_p): Move to function.h.
28506         (optimize_function_for_speed_p): Likewise.
28507         * function.h (optimize_function_for_size_p,
28508         optimize_function_for_speed_p): Moved here from basic-block.h.
28509         * Makefile.in: Update dependencies.
28510
28511 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28512
28513         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
28514         before calling make; allow override through $MAKE.
28515         * doc/invoke.texi (Optimize Options): Document override.
28516
28517 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
28518
28519         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
28520         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28521         (rs6000_mode_dependent_address_ptr): Make static.
28522         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28523         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
28524         Remove.
28525
28526 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
28527
28528         PR target/43869
28529         * config/i386/i386.c: Make sure that the correct regparm is passed.
28530
28531 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
28532
28533         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
28534         * sbitmap.c: ...to here to internalize sbitmap element access.
28535         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
28536         Explain why basic-block.h is included.
28537         * function.h: Include tm.h for CUMULATIVE_ARGS.
28538         * Makefile.in: Update dependencies.
28539
28540 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
28541
28542         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
28543         New core types.
28544         * sbitmap.h (struct sbitmap_def): Do not typedef here.
28545         * sbitmap.c: Include sbitmap.h.
28546         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
28547         hard-reg-set.h.  Split everything related to regsets out from here...
28548         * regset.h: ...to here.  New file.
28549         * df.h: Include regset.h and sbitmap.h.
28550         * tree-flow.h: Likewise.
28551         * cfgloop.h: Likewise.
28552         * except.h: Do not include sbitmap.h.  Include hashtab.h.
28553         * cgraph.h: Include vec.h and function.h.
28554         * reload.h (struct insn_chain): Change types of live_throughout
28555         and dead_or_set from regset_head to bitmap_head.
28556         (compute_use_by_pseudos): Be defined also if regset.h is not included.
28557         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
28558         spilled_regs from regset_head to bitmap_head to avoid dependency
28559         in regset.h.
28560         * sel-sched-ir.h: Include regset.h.
28561         * reload.c: Include df.h before reload.h.
28562         * caller-save.c: Likewise.
28563         * reload1.c: Likewise.
28564         * ira.c: Likewise.
28565         (mark_elimination): Update type of r to bitmap, consistent with
28566         DF_LR_IN.
28567         * dominance.c: Include bitmap.h.
28568         * modulo-sched.c: Include df.h.
28569         * cfganal.c: Include bitmap.h and sbitmap.h.
28570         * cfgbuild.c: Include sbitmap.h.
28571         * lcm.c: Include sbitmap.h.
28572         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
28573         * domwalk.c: Include sbitmap.h, exclude ggc.h.
28574         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
28575         * cselib.c: Include bitmap.h.
28576         * tree-optimize.c: Include regset.h.
28577         * stmt.c: Include bitmap.h.
28578         * Makefile.in: Update dependencies.
28579
28580 2010-05-22  Jan Hubicka  <jh@suse.cz>
28581
28582         * cgraph.h (struct varpool_node): Add same_comdat_group.
28583         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
28584         pointer.
28585         (output_varpool): Update call of lto_output_varpool_node.
28586         (input_varpool): Read same_comdat_group pointer.
28587         (input_varpool_1): Fixup same_comdat_group pointer.
28588         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
28589         group is needed, all are.
28590         * varpool.c (varpool_remove_node): Remove node from same comdat group
28591         linklist too.
28592         (varpool_analyze_pending_decls): Walk same comdat groups.
28593
28594 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
28595
28596         * rtl.h (union rtunion_def): Remove rt_bit member.
28597         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
28598         * print-rtl (print_rtx): Do not print the member.
28599         * gengtype.c (adjust_field_rtx_def): Do not handle it.
28600         * gengenrtl.c (type_from_format): Likewise.
28601         (accessor_from_format): Likewise.
28602
28603 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
28604
28605         * dbgcnt.c: Include toplev.h instead of errors.h.
28606         * ira-emit.c: Don't include errors.h.
28607         * ira.c: Include toplev.h instead of errors.h.
28608         * lto-compress.c: Include toplev.h instead of errors.h.
28609         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
28610         ira.o, dbgcnt.o): Update dependencies.
28611
28612 2010-05-22  Richard Guenther  <rguenther@suse.de>
28613
28614         * gimple.c (gimple_types_compatible_p): Check type qualifications
28615         before merging pointer to complete and pointer to incomplete type.
28616         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
28617         we use our own resolution algorithm.  The gold linker plugin
28618         doesn't do the job we want it to do here.
28619
28620 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
28621
28622         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28623         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28624         (sparc_mode_dependent_address_p): New function.
28625
28626 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28627
28628         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
28629
28630         * timevar.c: Do not include any core headers.
28631         (timevar_print): De-i18n-ize.
28632         (print_time): Likewise.
28633         * timevar.h (timevar_push, timevar_pop): Make inline functions.
28634
28635 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
28636
28637         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
28638         langhooks-def.h.
28639         (diagnostic_initialize): Initialize x_data not last_function.
28640         (diagnostic_report_current_function): Move to tree-diagnostic.c.
28641         (default_diagnostic_starter): Call
28642         diagnostic_report_current_module not
28643         diagnostic_report_current_function.
28644         (diagnostic_report_diagnostic): Initialize x_data not
28645         abstract_origin.
28646         (verbatim): Likewise.
28647         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
28648         x_data.
28649         (struct diagnostic_context): Change last_function to x_data.
28650         (diagnostic_auxiliary_data): Replace with
28651         diagnostic_context_auxiliary_data and
28652         diagnostic_info_auxiliary_data.
28653         (diagnostic_last_function_changed, diagnostic_set_last_function,
28654         diagnostic_report_current_function): Move to tree-diagnostic.h.
28655         (print_declaration, dump_generic_node, print_generic_stmt,
28656         print_generic_stmt_indented, print_generic_expr,
28657         print_generic_decl, debug_c_tree, dump_omp_clauses,
28658         print_call_name, debug_generic_expr, debug_generic_stmt,
28659         debug_tree_chain, default_tree_printer): Move to
28660         tree-pretty-print.h.
28661         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
28662         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
28663         gimple-pretty-print.h.
28664         * pretty-print.c: Don't include tree.h
28665         (pp_base_format): Don't handle %K here.
28666         (pp_base_tree_identifier): Move to tree-pretty-print.c.
28667         * pretty-print.h (text_info): Change abstract_origin to x_data.
28668         (pp_tree_identifier, pp_unsupported_tree,
28669         pp_base_tree_identifier): Move to tree-pretty-print.h.
28670         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
28671         tree-pretty-print.h: New files.
28672         * tree-pretty-print.c: Include tree-pretty-print.h.
28673         (percent_K_format): New.  Moved from pretty-print.c.
28674         (pp_base_tree_identifier): Move from pretty-print.c.
28675         * c-objc-common.c: Include tree-pretty-print.h.
28676         (c_tree_printer): Handle %K here.
28677         * langhooks.c: Include tree-diagnostic.h.
28678         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
28679         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
28680         (default_tree_printer): Handle %K using percent_K_format.
28681         (general_init): Use default_tree_diagnostic_starter.
28682         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
28683         (free_lang_data): Use default_tree_diagnostic_starter.
28684         * c-pretty-print.c: Include tree-pretty-print.h.
28685         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28686         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28687         * dwarf2out.c: Include tree-pretty-print.h.
28688         * except.c: Include tree-pretty-print.h.
28689         * gimple-pretty-print.c: Include tree-pretty-print.h and
28690         gimple-pretty-print.h.
28691         * gimplify.c: Include tree-pretty-print.h.
28692         * graphite-poly.c: Include tree-pretty-print.h and
28693         gimple-pretty-print.h.
28694         * ipa-cp.c: Include tree-pretty-print.h.
28695         * ipa-inline.c: Include gimple-pretty-print.h.
28696         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28697         * ipa-pure-const.c: Include gimple-pretty-print.h.
28698         * ipa-struct-reorg.c: Include tree-pretty-print.h and
28699         gimple-pretty-print.h.
28700         * ipa-type-escape.c: Include tree-pretty-print.h.
28701         * print-rtl.c: Include tree-pretty-print.h.
28702         * print-tree.c: Include gimple-pretty-print.h.
28703         * sese.c: Include tree-pretty-print.h.
28704         * tree-affine.c: Include tree-pretty-print.h.
28705         * tree-browser.c: Include tree-pretty-print.h.
28706         * tree-call-cdce.c: Include gimple-pretty-print.h.
28707         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28708         * tree-chrec.c: Include tree-pretty-print.h.
28709         * tree-data-ref.c: Include tree-pretty-print.h and
28710         gimple-pretty-print.h.
28711         * tree-dfa.c: Include tree-pretty-print.h.
28712         * tree-if-conv.c: Include tree-pretty-print.h and
28713         gimple-pretty-print.h.
28714         * tree-inline.c: Include tree-pretty-print.h.
28715         * tree-into-ssa.c: Include tree-pretty-print.h and
28716         gimple-pretty-print.h.
28717         * tree-nrv.c: Include tree-pretty-print.h.
28718         * tree-object-size.c: Include tree-pretty-print.h and
28719         gimple-pretty-print.h.
28720         * tree-outof-ssa.c: Include tree-pretty-print.h and
28721         gimple-pretty-print.h.
28722         * tree-parloops.c: Include tree-pretty-print.h and
28723         gimple-pretty-print.h.
28724         * tree-predcom.c: Include tree-pretty-print.h and
28725         gimple-pretty-print.h.
28726         * tree-scalar-evolution.c: Include tree-pretty-print.h and
28727         gimple-pretty-print.h.
28728         * tree-sra.c: Include tree-pretty-print.h.
28729         * tree-ssa-address.c: Include tree-pretty-print.h.
28730         * tree-ssa-alias.c: Include tree-pretty-print.h.
28731         * tree-ssa-ccp.c: Include tree-pretty-print.h and
28732         gimple-pretty-print.h.
28733         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
28734         * tree-ssa-copy.c: Include tree-pretty-print.h and
28735         gimple-pretty-print.h.
28736         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
28737         * tree-ssa-dce.c: Include tree-pretty-print.h and
28738         gimple-pretty-print.h.
28739         * tree-ssa-dom.c: Include tree-pretty-print.h and
28740         gimple-pretty-print.h.
28741         * tree-ssa-dse.c: Include gimple-pretty-print.h.
28742         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
28743         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
28744         * tree-ssa-live.c: Include tree-pretty-print.h and
28745         gimple-pretty-print.h.
28746         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
28747         gimple-pretty-print.h.
28748         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
28749         gimple-pretty-print.h.
28750         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
28751         gimple-pretty-print.h.
28752         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
28753         gimple-pretty-print.h.
28754         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
28755         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
28756         * tree-ssa-operands.c: Include tree-pretty-print.h and
28757         gimple-pretty-print.h.
28758         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
28759         gimple-pretty-print.h.
28760         * tree-ssa-pre.c: Include tree-pretty-print.h and
28761         gimple-pretty-print.h.
28762         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
28763         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
28764         gimple-pretty-print.h.
28765         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
28766         gimple-pretty-print.h.
28767         * tree-ssa-sink.c: Include gimple-pretty-print.h.
28768         * tree-ssa-ter.c: Include tree-pretty-print.h and
28769         gimple-pretty-print.h.
28770         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
28771         * tree-ssa.c: Include tree-pretty-print.h and
28772         gimple-pretty-print.h.
28773         * tree-stdarg.c: Include gimple-pretty-print.h.
28774         * tree-switch-conversion.c: Include gimple-pretty-print.h.
28775         * tree-tailcall.c: Include tree-pretty-print.h and
28776         gimple-pretty-print.h.
28777         * tree-vect-data-refs.c: Include tree-pretty-print.h and
28778         gimple-pretty-print.h.
28779         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
28780         gimple-pretty-print.h.
28781         * tree-vect-loop.c: Include tree-pretty-print.h and
28782         gimple-pretty-print.h.
28783         * tree-vect-patterns.c: Include gimple-pretty-print.h.
28784         * tree-vect-slp.c: Include tree-pretty-print.h and
28785         gimple-pretty-print.h.
28786         * tree-vect-stmts.c: Include tree-pretty-print.h and
28787         gimple-pretty-print.h.
28788         * tree-vectorizer.c: Include tree-pretty-print.h.
28789         * tree-vrp.c: Include tree-pretty-print.h and
28790         gimple-pretty-print.h.
28791         * value-prof.c: Include tree-pretty-print.h and
28792         gimple-pretty-print.h.
28793         * var-tracking.c: Include tree-pretty-print.h.
28794         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
28795         (tree-diagnostic.o): New dependencies.
28796         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
28797         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
28798         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
28799         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
28800         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
28801         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
28802         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
28803         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
28804         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
28805         tree-ssa-address.o, tree-ssa-loop-niter.o,
28806         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
28807         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
28808         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
28809         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
28810         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
28811         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
28812         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
28813         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
28814         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
28815         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
28816         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
28817         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
28818         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
28819         tree-switch-conversion.o, var-tracking.o, value-prof.o,
28820         cfgexpand.o, pretty-print.o): Update dependencies.
28821
28822 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
28823
28824         * tree-ssa-structalias.c: Remove tm_p.h from include.
28825
28826 2010-05-21  Jeff Law  <law@redhat.com>
28827
28828         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
28829
28830 2010-05-21  Jason Merrill  <jason@redhat.com>
28831
28832         * tree-eh.c (cleanup_is_dead_in): New.
28833         (lower_try_finally): Don't generate a dead cleanup region.
28834         (lower_cleanup): Likewise.
28835
28836 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28837
28838         PR debug/44223
28839         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
28840         unchain each use from the cyclic next_regno_use chain first.
28841
28842 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28843
28844         * real: Do not include gmp.h, mpfr.h, and mpc.h.
28845         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
28846         (real_value_negate, real_value_abs): New prototypes.
28847         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
28848         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
28849         new include file for interface between MPFR and REAL_VALUE_TYPE.
28850         * real.c: Include realmpfr.h.
28851         (real_arithmetic2): Remove legacy function.
28852         (real_value_negate): New.
28853         (real_value_abs): New.
28854         (mfpr_from_real, real_from_mpfr): Move from here...
28855         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
28856         * builtins.c: Include realmpfr.h.
28857         * fold-const.c: Include realmpfr.h.
28858         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
28859         (fold_negate_const): Likewise.
28860         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
28861         * toplev.c: Include realmpfr.h.
28862         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
28863         and real_value_negate.
28864         * fixed-value.c (check_real_for_fixed_mode): Likewise.
28865         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
28866         (vfp3_const_double_index): Likewise.
28867         (arm_print_operand): Likewise.
28868         * Makefile.in: Update dependencies.
28869
28870 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28871
28872         * config/s390/s390.c (override_options): Increase the default
28873         of max-completely-peel-times.
28874
28875 2010-05-21  Julian Brown  <julian@codesourcery.com>
28876             Mark Mitchell  <mark@codesourcery.com>
28877
28878         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28879         sibling calls for Thumb-1.
28880         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28881         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28882         Thumb-2.
28883         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28884         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28885         for Thumb-2.
28886         (return): New expander.
28887         (*arm_return): New name for ARM return insn.
28888         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28889
28890 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28891
28892         * config.gcc (sparc64-*-rtems*): New target.
28893
28894 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28895
28896         * tree.c (build_function_decl_skip_args): Fix grammar.
28897         (build_function_type_list_1): Fix typos, adjust formatting.
28898
28899 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28900
28901         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28902         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28903         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28904         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28905         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28906         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28907         tree-pretty-print.c, tree-loop-distribution.c,
28908         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
28909         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
28910         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
28911         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
28912         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
28913         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
28914         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
28915         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
28916         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
28917         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
28918         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
28919         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
28920         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
28921         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
28922         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
28923         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
28924         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
28925         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28926         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
28927         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
28928         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
28929         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
28930         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
28931         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
28932         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
28933         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
28934         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
28935         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
28936         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
28937         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
28938         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
28939         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
28940         config/score/score7.c, config/score/score.c, config/arm/arm.c,
28941         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
28942         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
28943         config/bfin/bfin.c: Clean up redundant includes.
28944         * Makefile.in: Update accordingly.
28945
28946 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28947
28948         PR middle-end/44204
28949         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
28950         statement has no arguments.
28951
28952 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
28953
28954         PR/44139
28955         * varasm.c (emutls_decl): Merge attributes to new decl.
28956
28957 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
28958
28959         PR middle-end/44101
28960         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
28961         around the uniquized constructor if its type requires a conversion.
28962
28963 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28964
28965         PR debug/44205
28966         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
28967         at -O0 goto_locus of any of the incoming edges differs from
28968         goto_locus of outgoing edge, or gimple_location of any of the
28969         labels differs.
28970
28971 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
28972
28973         * ira.c (ira_non_ordered_class_hard_regs): Define.
28974         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
28975         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
28976         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
28977         cost of unaligned hard regs when allocating multi-reg pseudos.
28978
28979 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
28980
28981         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
28982         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
28983         for TARGET_NO_FLOAT.
28984         * config/mips/mips.c (mips_file_start): Expand conditional expression
28985         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
28986         (mips_override_options): Move -mno-float override -msoft-float and
28987         -mhard-float.
28988         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
28989         Condition(TARGET_SUPPORTS_NO_FLOAT).
28990         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
28991         __mips_no_float here.
28992         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
28993         (TARGET_SUPPORTS_NO_FLOAT): Define.
28994         * config/mips/sdemtk.opt: Delete.
28995
28996 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
28997
28998         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
28999
29000 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
29001
29002         PR target/43733
29003         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
29004         * configure: Regenerate.
29005         * config.in: Regenerate.
29006         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
29007         instead of sahf only for 64bit targets.
29008
29009 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
29010
29011         PR debug/44178
29012         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
29013         setup_ref_regs for DEBUG_INSNs.
29014
29015 2010-05-20  Jan Hubicka  <jh@suse.cz>
29016
29017         PR middle-end/44197
29018         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
29019
29020 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
29021
29022         PR bootstrap/43870
29023         * df-scan.c (df_ref_compare): Stabilize sort.
29024
29025 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
29026
29027         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
29028         argument.  Don't use DW_OP_piece if offset is non-zero,
29029         put offset into second DW_OP_bit_piece argument.
29030         (dw_sra_loc_expr): Adjust callers.  For memory expressions
29031         compute offset.
29032
29033 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
29034
29035         PR target/44202
29036         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
29037         settings for 16-bit-constant "addo" alternative.
29038
29039 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
29040
29041         * config/mips/mips-dsp.md (add<DSPV:mode>3,
29042         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
29043
29044         PR target/43764
29045         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
29046         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
29047         Use it.
29048
29049 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
29050
29051         * diagnostic.c (FLOAT, FFS): Don't undefine.
29052         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
29053         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
29054         include ordering.
29055
29056 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
29057
29058         * combine.c (propagate_for_debug): Call make_compound_operation
29059         on the source value.
29060         (try_combine): When implementing a split chosen by find_split_point,
29061         either copy i2src or set it to null.  Assert that i2src is not null
29062         before substituting into CALL_INSN_FUNCTION_USAGE.
29063
29064 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
29065
29066         * double-int.h (double_int_ior): New function.
29067         * tree.h (build_int_cst_wide_type): Remove.
29068         * tree.c (build_int_cst_wide_type): Remove.
29069         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
29070         of build_int_cst_wide_type.
29071         * stor-layout.c (set_sizetype): (Ditto.).
29072         * dojump.c (do_jump): Use build_int_cstu instead of
29073         build_int_cst_wide_type.
29074
29075 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
29076
29077         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
29078         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
29079         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
29080         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
29081         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
29082         propagate the 'data' argument to copy_tree_r.
29083         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
29084         Propagate 'data' argument to walk_tree.
29085         (copy_if_shared): New function.
29086         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
29087         (unmark_visited): New function.
29088         (unshare_body): Call copy_if_shared instead of doing it manually.
29089         (unvisit_body): Call unmark_visited instead of doing it manually.
29090
29091 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
29092
29093         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
29094         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
29095         * hooks.c: Likewise.
29096         * target-def.h (TARGET_FOLD_BUILTIN): Define to
29097         hook_tree_tree_int_treep_bool_null.
29098         * target.h (struct gcc_target): Update signature of fold_builtin
29099         field.
29100         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
29101         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
29102         instead of the call expression.
29103         (fold_builtin_call_array): Pass n and argarray directly.
29104         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
29105         consing a list.
29106         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
29107         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
29108         `i' and use it in place of `arity'.
29109         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
29110         Dereference `args' directly.
29111         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
29112
29113 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29114
29115         * doc/sourcebuild.texi (Effective-Target Keywords): Document
29116         3dnow, sse3, sse2.
29117         (Directives): Document optional dg-require-effective-target
29118         selector.
29119
29120 2010-05-19  Richard Guenther  <rguenther@suse.de>
29121
29122         PR lto/44196
29123         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
29124
29125 2010-05-19  Richard Guenther  <rguenther@suse.de>
29126
29127         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
29128         * common.opt (fwhopr=): New.
29129         * opts.c (common_handle_option): Handle OPT_fwhopr.
29130         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
29131         * collect2.c (main): Match -fwhopr*.
29132         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
29133         Execute ltrans stage in parallel when jobs is bigger than 1.
29134
29135 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29136
29137         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
29138         pentiumpro on Solaris 8/x86 with Sun as.
29139         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
29140         hidden alias bug.
29141         (gcc_cv_as_ix86_quad): Check for .quad directive.
29142         * configure: Regenerate.
29143         * config.in: Regenerate.
29144         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
29145
29146 2010-05-19  Martin Jambor  <mjambor@suse.cz>
29147
29148         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
29149         also for indirect edges.  Actual printing moved...
29150         (ipa_print_node_jump_functions_for_edge): ...here.
29151         (ipa_compute_jump_functions): Renamed to
29152         ipa_compute_jump_functions_for_edge and made static.
29153         (ipa_compute_jump_functions): New function.
29154         (make_edge_direct_to_target): Check if the number of arguments on
29155         the newly direct edge is the same as the number of parametrs of
29156         the callee.
29157         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
29158         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
29159         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
29160         analysis functions unconditionally, call the new
29161         ipa_analyze_params_uses on the node instead of every edge.
29162
29163 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
29164
29165         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
29166         to tree.
29167         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
29168         also checks for a constant int vs.  non-constant but
29169         loop-invariant steps.
29170         (find_or_create_group): Change the sort algorithm to only consider
29171         steps that are constant ints.
29172         (idx_analyze_ref): Adopt code to handle a tree instead of a
29173         HOST_WIDE_INT for step.
29174         (gather_memory_references_ref): Handle tree instead of int and be
29175         prepared to see a NULL_TREE.
29176         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
29177         prefetches if the step cannot be calculated at compile time.
29178         (issue_prefetch_ref): Issue prefetches for non-constant but
29179         loop-invariant steps.
29180
29181 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
29182
29183         Revert:
29184         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
29185
29186         * tree.h (build_call_list): Remove.
29187         * tree.c (build_call_list): Remove.
29188
29189 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
29190
29191         * tree.h (build_call_list): Remove.
29192         * tree.c (build_call_list): Remove.
29193
29194 2010-05-18  Jan Hubicka  <jh@suse.cz>
29195
29196         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
29197
29198 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
29199
29200         PR rtl-optimization/43332
29201         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
29202
29203 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
29204
29205         * tree.h (build_int_cstu): Implement as static inline.
29206         * tree.c (build_int_cstu): Remove function.
29207         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
29208         sign extended.
29209
29210 2010-05-18  Richard Guenther  <rguenther@suse.de>
29211
29212         PR lto/44143
29213         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
29214         (debug): Initialize from -save-temps.
29215         (collect_execute): Print command-line when verbose.
29216         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
29217         for ltrans invocation.  Produce -dumpbase flag again.
29218         (process_args): Remove.
29219         (main): Simplify.
29220         * collect2.c (maybe_run_lto_and_relink): Only pass object
29221         files to lto-wrapper.
29222         * gcc.c (LINK_COMMAND_SPEC): Likewise.
29223
29224 2010-05-18  Jan Hubicka  <jh@suse.cz>
29225
29226         * opts.c (decode_options): Do not disable whopr at ipa_cp.
29227         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
29228
29229 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
29230
29231         PR lto/44184
29232         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
29233         in a GIMPLE_ASM.
29234         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
29235         in a GIMPLE_ASM.
29236
29237 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
29238
29239         PR debug/41371
29240         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
29241         rtx_equal_p inline.
29242
29243 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
29244
29245         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
29246         lto-macho as lto_binary_reader.
29247
29248         * darwin.c (darwin_asm_named_section): Do not add assembler comment
29249         after .section directive; just print it before the directive instead.
29250
29251 2010-05-17  Jan Hubicka  <jh@suse.cz>
29252
29253         * cgraph.c (cgraph_create_virtual_clone): Only check
29254         versionable_function_p when not in wpa and checking is enabled.
29255         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
29256         there are no more functions to materialize.
29257
29258 2010-05-17  Jan Hubicka  <jh@suse.cz>
29259
29260         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
29261         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
29262         New functions.
29263         (output_cgraph): Call output_cgraph_opt_summary.
29264         (input_cgrpah): Call input_cgraph_opt_summary.
29265         (output_cgraph_opt_summary_p, output_node_opt_summary,
29266         input_node_opt_summary, input_cgraph_opt_section): New functions.
29267         * lto-section-in.c (lto_section_name): Add cgraphopt.
29268         * tree-inline.c (tree_function_versioning): Handle parm_num.
29269         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
29270         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
29271
29272 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
29273
29274         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
29275         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
29276         the insn to prefetch ratio heuristic to loops with known trip count.
29277
29278 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
29279
29280         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
29281         (schedule_prefetches): Do not generate a prefetch if the unroll factor
29282         is far from what is required by the prefetch.
29283
29284 2010-05-17  Jan Hubicka  <jh@suse.cz>
29285
29286         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
29287         (ipcp_estimate_growth): Likewise.
29288         (ipcp_const_param_count): Likewise.
29289         (ipcp_insert_stage): Likewise.
29290         * ipa-prop.c (visit_load_for_mod_analysis): New function.
29291         (visit_store_addr_for_mod_analysis): Set used flag.
29292         (ipa_detect_param_modifications): Set used flag for SSE params;
29293         update use of walk_stmt_load_store_addr_ops.
29294         (ipa_print_node_params): Print used flag.
29295         (ipa_write_node_info): Stream used flag.
29296         (ipa_read_node_info): Likewise.
29297         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
29298         (ipa_is_param_used): New function.
29299         (lto_ipa_fixup_call_notes): Remove unused declaration.
29300
29301 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29302
29303         PR target/44074
29304         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
29305         * configure: Regenerate.
29306         * config.in: Regenerate.
29307         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
29308         !HAVE_AS_IX86_REP_LOCK_PREFIX.
29309         Don't emit whitespace.
29310         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
29311         (*rep_movsi): Likewise.
29312         (*rep_movsi_rex64): Likewise.
29313         (*rep_movqi): Likewise.
29314         (*rep_movqi_rex64): Likewise.
29315         (*rep_stosdi_rex64): Likewise.
29316         (*rep_stossi): Likewise.
29317         (*rep_stossi_rex64): Likewise.
29318         (*rep_stosqi): Likewise.
29319         (*rep_stosqi_rex64): Likewise.
29320         (*cmpstrnqi_nz_1): Use {%;} after repz.
29321         (*cmpstrnqi_nz_rex_1): Likewise.
29322         (*cmpstrnqi_1): Likewise.
29323         (*cmpstrnqi_rex_1): Likewise.
29324         (*strlenqi_1): Use {%;} after repnz.
29325         (*strlenqi_rex_1): Likewise.
29326         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
29327         (*sync_compare_and_swap<mode>): Likewise.
29328         (sync_double_compare_and_swap<mode>): Likewise.
29329         (*sync_double_compare_and_swapdi_pic): Likewise.
29330         (sync_old_add<mode>): Likewise.
29331         (sync_add<mode>): Likewise.
29332         (sync_sub<mode>): Likewise.
29333         (sync_<code><mode>): Likewise.
29334
29335 2010-05-17  Martin Jambor  <mjambor@suse.cz>
29336
29337         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
29338         otr_token and polymorphic.
29339         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
29340         (cgraph_clone_edge): Copy the above fields.
29341         * tree.c (get_binfo_at_offset): New function.
29342         * tree.h (get_binfo_at_offset): Declare.
29343         * ipa-prop.h (enum jump_func_type): Added known_type jump function
29344         type, reordered items, updated comments.
29345         (union jump_func_value): Added base_type field, reordered fields.
29346         (enum ipa_lattice_type): Moved down in the file.
29347         (struct ipa_param_descriptor): New field polymorphic.
29348         (ipa_is_param_polymorphic): New function.
29349         * ipa-prop.c: Include gimple.h and gimple-fold.h.
29350         (ipa_print_node_jump_functions): Print known type jump functions.
29351         (compute_complex_pass_through): Renamed to...
29352         (compute_complex_assign_jump_func): this.
29353         (compute_complex_ancestor_jump_func): New function.
29354         (compute_known_type_jump_func): Likewise.
29355         (compute_scalar_jump_functions): Create known type and complex ancestor
29356         jump functions.
29357         (ipa_note_param_call): New parameter polymorphic, set the corresponding
29358         flag in the call note accordingly.
29359         (ipa_analyze_call_uses): Renamed to...
29360         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
29361         variable var only in the block where it is used.
29362         (ipa_analyze_virtual_call_uses): New function.
29363         (ipa_analyze_call_uses): Likewise.
29364         (combine_known_type_and_ancestor_jfs): Likewise.
29365         (update_jump_functions_after_inlining): Implemented handling of a
29366         number of new jump function types combination.
29367         (print_edge_addition_message): Removed.
29368         (make_edge_direct_to_target): New function.
29369         (try_make_edge_direct_simple_call): Likewise.
29370         (try_make_edge_direct_virtual_call): Likewise.
29371         (update_call_notes_after_inlining): Renamed to...
29372         (update_indirect_edges_after_inlining): this.  Moved edge creation for
29373         indirect calls to try_make_edge_direct_simple_call, also calls
29374         try_make_edge_direct_virtual_call for virtual calls.
29375         (ipa_print_node_params): Changed the header message.
29376         (ipa_write_jump_function): Stream also known type jump functions.
29377         (ipa_read_jump_function): Likewise.
29378         (ipa_write_indirect_edge_info): Stream new fields in
29379         cgraph_indirect_call_info.
29380         (ipa_read_indirect_edge_info): Likewise.
29381         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
29382         GIMPLE_FOLD_H.
29383
29384 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29385
29386         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
29387
29388 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
29389
29390         * tree.h (CALL_EXPR_ARGS): Delete.
29391         (call_expr_arglist): Delete.
29392         * tree.c (call_expr_arglist): Delete.
29393         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
29394         targetm.fold_builtin.
29395         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
29396         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
29397         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
29398         arglist parameter.  Use CALL_EXPR_ARG.
29399         (picochip_expand_builtin_3op): Likewise.
29400         (picochip_expand_builtin_2opvoid): Likewise.
29401         (picochip_expand_array_get): Likewise.
29402         (picochip_expand_array_put): Likewise.
29403         (picochip_expand_array_testport): Likewise.
29404         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
29405         rather than arglist.
29406         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
29407         CALL_EXPR_ARGS.
29408         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
29409         than TREE_VALUE and TREE_CHAIN.
29410         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
29411         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
29412         the arglist.
29413
29414 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
29415
29416         PR bootstrap/42347
29417         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
29418         to have no fallthru edge.
29419
29420         PR middle-end/44102
29421         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
29422         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
29423         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
29424         add BARRIER after previous bb if needed.
29425
29426 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
29427
29428         * tree.c (build_function_type_list_1): Remove bogus assert condition.
29429
29430 2010-05-17  Alan Modra  <amodra@gmail.com>
29431
29432         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
29433         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
29434         with copy_reg rtx param.
29435         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
29436         Correct cases where code for ABI_V4 did not initialise the reg
29437         used to access frame.  Also leave frame_reg_rtx as sp for large
29438         frames that save no regs.
29439
29440 2010-05-17  Martin Jambor  <mjambor@suse.cz>
29441
29442         PR middle-end/44133
29443         * tree-sra.c (create_access_replacement): New parameter rename, mark
29444         the replaement for renaming only when it is true.
29445         (get_access_replacement): Pass true in the rename parameter of
29446         create_access_replacement.
29447         (get_unrenamed_access_replacement): New function.
29448         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
29449         replacement declaration from it.
29450
29451 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
29452
29453         * function.c (try_fit_stack_local, add_frame_space): New static
29454         functions.
29455         (assign_stack_local_1): Use them.  Look for opportunities to use
29456         space previously wasted on alignment.
29457         * function.h (struct frame_space): New.
29458         (struct rtl_data): Add FRAME_SPACE_LIST member.
29459         * reload1.c (something_was_spilled): New static variable.
29460         (alter_reg): Set it.
29461         (reload): Test it in addition to testing if the frame size changed.
29462
29463 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
29464
29465         * config/s390/s390.c: Define sane prefetch settings and activate
29466         flag_prefetch_loop_arrays on -O3.
29467         * config/s390/s390.h: Declare that read can use write prefetch.
29468
29469 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
29470
29471         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
29472         build.
29473
29474 2010-05-16  Jan Hubicka  <jh@suse.cz>
29475
29476         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
29477         function body; do not check stdarg field of struct function.
29478
29479 2010-05-16  Jan Hubicka  <jh@suse.cz>
29480
29481         * cgraph.c (dump_cgraph_node): Dump versionable flag.
29482         * cgraph.h (cgraph_local_info): Add versionable flag.
29483         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
29484         (ipcp_versionable_function_p): Use it.
29485         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
29486         versionable flag.
29487
29488 2010-05-16  Jan Hubicka  <jh@suse.cz>
29489
29490         * cgraph.c (cgraph_clone_node): Take decl argument and insert
29491         clone into hash when it is different from orig.
29492         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
29493         * cgraph.h (cgraph_clone_node): Update prototype.
29494         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
29495         (lto_cgraph_encoder_delete): Delete body map.
29496         (lto_cgraph_encoder_size): Move to header.
29497         (lto_cgraph_encoder_encode_body_p,
29498         lto_set_cgraph_encoder_encode_body): New.
29499         (lto_output_node): Do not take written_decls argument; output clone_of
29500         pointer.
29501         (add_node_to): Add include_body_argument; call
29502         lto_set_cgraph_encoder_encode_body on master of the clone.
29503         (add_references): Update use of add_node_to.
29504         (compute_ltrans_boundary): Likewise.
29505         (output_cgraph): Do not create written_decls bitmap.
29506         (input_node): Take nodes argument; stream in clone_of correctly.
29507         (input_cgraph_1): Update use of input_node.
29508         * lto-streamer-out.c (lto_output): Use encoder info to decide
29509         what bodies to output.
29510         * ipa-inline.c (cgraph_clone_inlined_nodes,
29511         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
29512         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
29513         (lto_cgraph_encoder_size): Define here.
29514         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
29515         Declare.
29516
29517 2010-05-16  Richard Guenther  <rguenther@suse.de>
29518
29519         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
29520         -fipa-type-escape.
29521         * ipa-type-escape.c (gate_type_escape_vars): Run when
29522         -fipa-struct-reorg runs.
29523         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
29524         * common.opt (fipa-type-escape): Remove.
29525
29526 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
29527
29528         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
29529         (decode_options): Likewise.
29530         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
29531
29532 2010-05-16  Jan Hubicka  <jh@suse.cz>
29533
29534         * ipa.c (function_and_variable_visibility): Also bring local all
29535         aliases.
29536
29537 2010-05-16  Richard Guenther  <rguenther@suse.de>
29538
29539         * alias.c (nonoverlapping_memrefs_p): Remove use of
29540         IPA type-escape information.
29541
29542 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
29543
29544         * c-common.c (c_common_reswords): Add _Static_assert for C.
29545         * c-parser.c (c_token_starts_declaration,
29546         c_parser_next_token_starts_declaration,
29547         c_parser_static_assert_declaration_no_semi,
29548         c_parser_static_assert_declaration): New.
29549         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
29550         Handle static assertions if static_assert_ok.
29551         (c_parser_external_declaration, c_parser_declaration_or_fndef,
29552         c_parser_compound_statement_nostart, c_parser_label,
29553         c_parser_for_statement, c_parser_objc_methodprotolist,
29554         c_parser_omp_for_loop): All callers of
29555         c_parser_declaration_or_fndef changed.
29556         (c_parser_struct_declaration): Handle static assertions.
29557         (c_parser_compound_statement_nostart): Use
29558         c_parser_next_token_starts_declaration and
29559         c_token_starts_declaration to detect start of declarations.
29560         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
29561         Likewise.
29562
29563 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
29564
29565         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
29566         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
29567         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
29568         TARGET_FUNCTION_VALUE_REGNO_P): Define.
29569         (mmix_function_outgoing_value): Rename to...
29570         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
29571         (mmix_function_value_regno_p): Make static.
29572         (mmix_libcall_value): New function.
29573         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
29574         mmix_function_value_regno_p): Remove declaration.
29575
29576 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
29577
29578         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
29579         BUILT_IN_ALLOCA if stack checking is enabled.
29580
29581 2010-05-16  Richard Guenther  <rguenther@suse.de>
29582
29583         * var-tracking.c (vars_copy_1): Inline ...
29584         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
29585         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
29586         (variable_merge_over_cur): Adjust.  Merge asserts.
29587         (variable_merge_over_src): Likewise.
29588         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
29589         (variable_post_merge_new_vals): Merge asserts.
29590         (variable_post_merge_perm_vals): Likewise.
29591         (find_mem_expr_in_1pdv): Likewise.
29592         (dataflow_set_different_value): Remove.
29593         (onepart_variable_different_p): Merge asserts.
29594         (variable_different_p): Likewise.
29595         (dataflow_set_different_1): Inline ...
29596         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
29597         (emit_notes_for_differences_1): Merge asserts.
29598
29599 2010-05-16  Richard Guenther  <rguenther@suse.de>
29600
29601         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
29602         * optabs.c (libfunc_decl_hash): Likewise.
29603         * varasm.c (emutls_decl): Likewise.
29604
29605 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
29606
29607         * c-decl.c: Don't include gimple.h.
29608         (merge_decls): Do not copy gimple_body.
29609
29610 2010-05-15  Jason Merrill  <jason@redhat.com>
29611
29612         * c.opt: Add -fnothrow-opt.
29613
29614 2010-05-15  Jan Hubicka  <jh@suse.cz>
29615
29616         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
29617         analyzed.
29618         * passes.c (ipa_write_summaries): Write all analyzed nodes.
29619
29620 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
29621
29622         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
29623         * Makefile.in: Add it.
29624         Fix all other Makefile dependencies for changes below.
29625         * tree.h: Include it instead of defining VEC primitives here.
29626         * gimple.h: Likewise.
29627         * rtl.h: Likewise.
29628         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
29629         * except.h: Include vecir.h, break dependence on tree.h.
29630
29631         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
29632         Move from here...
29633         * tree-iterator.c: ...to here.
29634         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
29635
29636         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
29637         tm_p.h.
29638         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
29639         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
29640         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
29641         tree-mudflap.h, and target.h.
29642         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
29643         predict.h, tree-inline.h, gimple.h, and langhooks.h.
29644         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
29645         Add FIXME for why gimple.h is still included (should be unnecessary
29646         since GCC 4.5 gimplification unit-at-a-time).
29647         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
29648         * c-pragma.c: Add FIXME for why function.h needs to be included just
29649         for cfun, at front-end level.
29650         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
29651         Do not include ggc.h, but include vecprim.h for VEC(char).
29652         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
29653         Explain why target.h is included.
29654         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
29655         Explain why gimple.h is included.
29656         * c-ppoutput.c: Do not include tm.h.
29657         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
29658         * c-parses.c: Explain why rtl.h is included, and that this (and only
29659         this) is also why tm.h must be included.
29660         Do not include except.h.
29661         * c-lang.c: Do not include ggc.h.
29662
29663 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
29664
29665         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
29666
29667 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
29668
29669         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
29670         unions by default if those structs and unions have no tags.  Do
29671         not condition anonymous struct and unions handling on flag_iso.
29672         Allow anonymous structs and unions for C1X.
29673         (finish_struct): Do not diagnose lack of named fields when
29674         anonymous structs and unions present for C1X.  Accept flexible
29675         array members in structure with anonymous structs or unions but no
29676         directly named fields.
29677         * doc/extend.texi (Unnamed Fields): Update.
29678
29679 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
29680
29681         * gimple.h (compare_field_offset): Rename into...
29682         (gimple_compare_field_offset): ...this.
29683         * gimple.c (compare_field_offset): Rename into...
29684         (gimple_compare_field_offset): ...this.  Compare the full access if
29685         the offset is self-referential.
29686         (gimple_types_compatible_p): Adjust for above renaming.
29687         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
29688         DECL_NONADDRESSABLE_P flag of fields before merging them.
29689
29690 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
29691
29692         * tree.h (ctor_to_list): Delete.
29693         * tree.c (ctor_to_list): Delete.
29694
29695 2010-05-15  Jan Hubicka  <jh@suse.cz>
29696
29697         * ipa-reference.c: Include toplev.h
29698         (is_proper_for_analysis): Only add to all_module_statics
29699         if it is allocated.
29700         (write_node_summary_p, stream_out_bitmap,
29701         ipa_reference_write_optimization_summary,
29702         ipa_reference_read_optimization_summary): New.
29703         (struct ipa_opt_pass_d pass_ipa_reference): Add
29704         optimization summary streaming.
29705         * lto-cgraph.c (referenced_from_this_partition_p,
29706         reachable_from_this_partition_p): New functions.
29707         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
29708         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
29709         * opts.c (decode_options): Enable ipa_reference.
29710         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
29711         * lto-streamer.h (referenced_from_this_partition_p,
29712         reachable_from_this_partition_p): Declare.
29713
29714 2010-05-15  Richard Guenther  <rguenther@suse.de>
29715
29716         PR tree-optimization/44038
29717         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
29718         taking the address of a V_C_E of a constant.
29719
29720 2010-05-14  Jan Hubicka  <jh@suse.cz>
29721
29722         * tree.h (memory_identifier_string): Remove.
29723         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
29724         (ipa_reference_global_vars_info_d): Remove statics_not_read and
29725         statics_not_written.
29726         (ipa_reference_optimization_summary_d): New structure.
29727         (ipa_reference_optimization_summary_t): New type and vector.
29728         (ipa_reference_vars_info_d): Embedd structures instead of using
29729         pointers.
29730         (reference_vars_to_consider): Remove out of GGC space.
29731         (module_statics_escape): Remove.
29732         (global_info_obstack): Rename to ...
29733         (optimization_summary_obstack): ... this one.
29734         (initialization_status_t): Remove.
29735         (memory_identifier_string): Remove.
29736         (get_reference_vars_info): Fix indenting.
29737         (set_reference_vars_info): Likewise.
29738         (get_reference_optimization_summary): New.
29739         (set_reference_optimization_summary): New.
29740         (get_global_reference_vars_info): Remove.
29741         (ipa_reference_get_read_global): Remove.
29742         (ipa_reference_get_written_global): Remove.
29743         (ipa_reference_get_not_read_global): Update.
29744         (ipa_reference_get_not_written_global): Update.
29745         (is_proper_for_analysis): Outlaw addressable.
29746         (propagate_bits): Update for new datastructures.
29747         (analyze_variable): Remove.
29748         (init_function_info): Update for new datastructures.
29749         (clean_function_local_data): Remove.
29750         (clean_function): Remove.
29751         (copy_global_bitmap): Use optimizations_summary_obstack.
29752         (duplicate_node_data): Duplicate optimization summary only.
29753         (remove_node_data): Remove optimization summary only.
29754         (generate_summary): Do not analyze variables; do not compute
29755         module_statics_escape; do not prune solutions by it.
29756         (read_write_all_from_decl): Fix typos in comments.
29757         (propagate): Doscover readonly and nonaddressable first;
29758         update for new datastructures; share global bitmaps.
29759         * ipa-reference.h (ipa_reference_get_read_global,
29760         ipa_reference_get_written_global): Remove.
29761         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
29762         * Makefile.in: Remove ipa-refereference from GT files.
29763
29764 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29765
29766         PR debug/44112
29767         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
29768         for all SYMBOL_REF_DECLs.
29769
29770 2010-05-14  Jan Hubicka  <jh@suse.cz>
29771
29772         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
29773         (varpool_all_refs_explicit_p): New inline function.
29774         * ipa-reference.c: Update comment.
29775         (module_statics_written): Remove.
29776         (get_static_decl): Remove.
29777         (ipa_init): Do not initialize module_statics_written.
29778         (analyze_function): Likewise.
29779         (generate_summary): Likewise; do not compute module_statics_readonly
29780         and do not update variable flags.
29781         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
29782         * ipa.c: Inlucde flags.h
29783         (cgraph_local_node_p): New.
29784         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
29785         promote functions to local.
29786         (ipa_discover_readonly_nonaddressable_vars): New function.
29787         (function_and_variable_visibility): Use cgraph_local_node_p.
29788         * varpool.c (varpool_finalize_decl): Set force_output for
29789         DECL_PRESERVE_P vars.
29790
29791 2010-05-14  Jan Hubicka  <jh@suse.cz>
29792
29793         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
29794
29795 2010-05-14  Richard Guenther  <rguenther@suse.de>
29796
29797         PR tree-optimization/44119
29798         * tree-ssa-pre.c (eliminate): Properly mark replacement of
29799         a PHI node necessary.
29800
29801 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
29802
29803         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
29804
29805 2010-05-14  Jason Merrill  <jason@redhat.com>
29806
29807         PR c++/44127
29808         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
29809         (gimple_call_set_nothrow): New.
29810         * gimple.c (gimple_build_call_from_tree): Call it.
29811         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
29812
29813         PR c++/44127
29814         * gimplify.c (gimplify_seq_add_stmt): No longer static.
29815         * gimple.h: Declare it.
29816         * gimple.c (gimple_build_eh_filter): No ops.
29817
29818 2010-05-14  Jan Hubicka  <jh@suse.cz>
29819
29820         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
29821         nodes already in queue.
29822         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
29823         re-enqueueing node.
29824
29825 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29826
29827         PR debug/44136
29828         * cfgexpand.c (expand_debug_expr): If non-memory op0
29829         has BLKmode, return NULL.
29830
29831 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
29832
29833         * config.gcc: Add support for --with-cpu option for bdver1.
29834         * config/i386/i386.h (TARGET_BDVER1): New macro.
29835         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
29836         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29837         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
29838         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29839         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
29840         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
29841         (processor_type): Add PROCESSOR_BDVER1.
29842         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
29843         processor_type in config/i386/i386.h.
29844         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
29845         movaps <reg, reg> instead of movapd <reg, reg> when replacing
29846         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
29847         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
29848         to emit packed xor instead of packed double/packed integer
29849         xor for SSE and AVX when moving a zero value.
29850         * config/i386/sse.md: Add check for
29851         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
29852         movapd/movdqa for SSE and AVX.
29853         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
29854         single logical operations i.e and, or and xor instead of packed double
29855         logical operations for SSE and AVX.
29856         * config/i386/i386-c.c (ix86_target_macros_internal):
29857         Add PROCESSOR_BDVER1.
29858         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
29859         (has_fma4, has_xop): New.
29860         * config/i386/i386.c (bdver1_cost): New variable.
29861         (m_BDVER1): New macro.
29862         (m_AMD_MULTIPLE): Add m_BDVER1.
29863         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
29864         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
29865         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
29866         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
29867         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
29868         x86_tune_sse_partial_reg_dependency,
29869         x86_tune_sse_unaligned_load_optimal,
29870         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29871         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29872         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29873         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29874         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29875         Enable/disable for bdver1.
29876         (processor_target_table): Add bdver1_cost.
29877         (cpu_names): Add bdver1.
29878         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29879          processor_alias_table.
29880         (ix86_expand_vector_move_misalign): Change.
29881         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29882         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29883         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29884         of movupd/movdqu for SSE and AVX.
29885         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29886         (ix86_tune_adjust_cost): Add code for bdver1.
29887         (standard_sse_constant_opcode): Add check for
29888         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29889         of packed double xor for SSE and AVX.
29890
29891 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29892
29893         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29894         result to unsigned.
29895
29896 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29897
29898         * toplev.c (default_debug_hooks): Remove this variable.
29899         (process_options): Remove assignments to default_debug_hooks.
29900
29901 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29902
29903         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29904         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29905         * langhooks.h (struct lang_hooks_for_decls): Removed field
29906         fold_obj_type_ref.
29907         * tree.c (free_lang_data): Remove assignment to
29908         lang_hooks.fold_obj_type_ref.
29909         * tree.def (OBJ_TYPE_REF): Update comment.
29910
29911 2010-05-14  Richard Guenther  <rguenther@suse.de>
29912
29913         PR tree-optimization/44124
29914         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
29915
29916 2010-05-14  Alan Modra  <amodra@gmail.com>
29917
29918         PR target/44075
29919         * config/rs6000/rs6000.c (struct machine_function): Reorder
29920         fields for better packing.  Add lr_save_state.
29921         (rs6000_ra_ever_killed): Return lr_save_state if set.
29922         (rs6000_emit_eh_reg_restore): Set lr_save_state.
29923
29924 2010-05-13  Jan Hubicka  <jh@suse.cz>
29925
29926         * varpool.c (decide_is_variable_needed): Drop code checking
29927         TREE_SYMBOL_REFERENCED.
29928
29929 2010-05-13  Jan Hubicka  <jh@suse.cz>
29930
29931         * final.c (output_addr_const): Do not call mark_decl_referenced.
29932         * cgraphunit.c (process_function_and_variable_attributes): Use
29933         mark_needed_node dirrectly.
29934         (assemble_thunk): Do not call mark_decl_referenced.
29935
29936 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
29937
29938         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
29939
29940 2010-05-13  Jeff Law  <law@redhat.com>
29941
29942         * ira-conflicts.c (print_allocno_conflicts): New function broken out
29943         from...
29944         (print_conflicts): Call print_allocno_conflicts.
29945
29946 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29947
29948         PR debug/44104
29949         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
29950         if it is NULL.
29951
29952 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
29953
29954         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
29955         t-mingw-w64 or t-mingw-w32 for multilib configuration.
29956         * config/i386/t-mingw-w32: New.
29957         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
29958
29959 2010-05-13  Martin Jambor  <mjambor@suse.cz>
29960
29961         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
29962         gimple-fold.c).
29963         * gimple-fold.c (get_base_binfo_for_type): New function.
29964         (gimple_get_relevant_ref_binfo): Likewise.
29965         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29966         (gimple_fold_obj_type_ref): Likewise.
29967         (fold_gimple_call): Simplify condition for folding virtual calls
29968         and call gimple_fold_obj_type_ref.
29969         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
29970         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29971
29972 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
29973
29974         * config/rs6000/rs6000-protos.h
29975         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
29976         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
29977         (rs6000_debug_mode_dependent_address)
29978         (rs6000_mode_dependent_address_ptr): Likewise.
29979
29980 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29981
29982         PR debug/43983
29983         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
29984         by SRA.
29985         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
29986         * tree-sra.c (create_access_replacement): Call unshare_expr before
29987         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
29988         * dwarf2out.c: Include tree-flow.h.
29989         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
29990         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
29991         Handle DW_OP_bit_piece.
29992         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
29993         construct_piece_list, adjust_piece_list): New functions.
29994         (add_var_loc_to_decl): Handle SRA optimized variables.
29995         Adjust for var_loc_note to loc field renaming.
29996         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
29997         in VAR_LOCATION note.
29998         (new_loc_descr_op_bit_piece): New function.
29999         (dw_sra_loc_expr): New function.
30000         (dw_loc_list): Use it.  Don't handle the last range after the
30001         loop, handle it inside of the loop.  Adjust for var_loc_note
30002         to loc field renaming.
30003         (add_location_or_const_value_attribute): Only special case
30004         single entry loc lists if loc is NOTE_P.  Adjust for
30005         var_loc_note to loc field renaming.
30006         (dwarf2out_var_location): Don't set newloc->var_loc_note
30007         and newloc->next here.
30008
30009 2010-05-12  Jan Hubicka  <jh@suse.cz>
30010
30011         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
30012         flag.
30013         * cgraph.h (cgraph_only_called_directly_p,
30014         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
30015         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
30016         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
30017         (assemble
30018         * ipa.c (cgraph_remove_unreachable_nodes): Use
30019         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
30020         flags.
30021         * tree-inline.c (copy_bb): Check address_taken flag.
30022         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
30023         externally_visible flag.
30024
30025 2010-05-12  Jason Merrill  <jason@redhat.com>
30026
30027         PR bootstrap/44048
30028         PR target/44099
30029         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
30030         * sdbout.c (plain_type_1): Likewise.
30031         * dwarf2out.c (is_base_type): Likewise.
30032         (gen_type_die_with_usage): Likewise.  Generate
30033         DW_TAG_unspecified_type for any LANG_TYPE.
30034
30035 2010-05-12  Jan Hubicka  <jh@suse.cz>
30036
30037         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
30038         indrect edges too.
30039         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
30040         (cgraph_clone_edge): Update.
30041         (cgraph_node_remove_callees): Remove indirect calls too.
30042         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
30043         (cgraph_create_indirect_edge): Update prototype.
30044         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
30045         is_proper_for_analysis.
30046         (add_new_function, visited_nodes, function_insertion_hook_holder,
30047         get_local_reference_vars_info, mark_address_taken, mark_address,
30048         mark_load, mark_store, check_asm_memory_clobber, check_call,
30049         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
30050         (ipa_init): Do not initialize visited_nodes;
30051         function_insertion_hook_holder.
30052         (analyze_variable): Rewrite.
30053         (analyze_function): Rewrite.
30054         (copy_local_bitmap): Remove.
30055         (duplicate_node_dat): Do not duplicate local info.
30056         (generate_summary): Simplify to only walk cgraph.
30057         (write_node_summary_p, ipa_reference_write_summary,
30058         ipa_reference_read_summary): Remove.
30059         (propagate): Do not remove function insertion;
30060         generate summary.
30061         (pass_ipa_reference): NULLify summary handling fields.
30062         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
30063         (input_edge): Input ecf_flags.
30064         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
30065         (update_indirect_edges_after_inlining): Ignore edges with unknown
30066         param.
30067
30068 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
30069
30070         * implicit-zee.c: New file.
30071         * tree-pass.h (pass_implicit_zee): Declare.
30072         * passes.c (init_optimization_passes): Add zee pass.
30073         * common.opt (fzee): New flag.
30074         * timevar.def (TV_ZEE): Define.
30075         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
30076         and beyond.
30077         * Makefile.in (implicit-zee.o): Add new build file.
30078
30079 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30080             Nathan Froyd  <froydnj@codesourcery.com>
30081
30082         * c-common.c (sync_resolve_params): Remove write-only variable.
30083
30084 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
30085
30086         * target.h (struct gcc_target): Add mode_dependent_address_p field.
30087         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
30088         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
30089         * targhooks.c (default_mode_dependent_address_p): New function.
30090         * targhooks.h (default_mode_dependent_address_p): Declare function.
30091         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
30092         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
30093         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
30094         target hook. Change return type to bool.
30095         * recog.h (mode_dependent_address_p): Change return type to bool.
30096
30097 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30098             Nathan Froyd  <froydnj@codesourcery.com>
30099
30100         * tree-mudflap.c (build_function_type_0, build_function_type_1,
30101         build_function_type_2, build_function_type_3): Remove.
30102         (mudflap_init): Use build_function_type_list.
30103
30104 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30105             Nathan Froyd  <froydnj@codesourcery.com>
30106
30107         * coverage.c (build_fn_info_value): Call build_constructor instead of
30108         build_constructor_from_list.
30109         (build_ctr_info_value): Likewise.
30110         (build_gcov_info): Likewise.
30111
30112 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
30113
30114         * tree.c (build_constructor): Compute TREE_CONSTANT for the
30115         resultant constructor.
30116         (build_constructor_single): Don't set TREE_CONSTANT.
30117         (build_constructor_from_list): Don't compute TREE_CONSTANT.
30118
30119 2010-05-12  Jan Hubicka  <jh@suse.cz>
30120
30121         * cgraph.h (struct varpool_node): Add aux.
30122         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
30123         * varpool.c (varpool_remove_node): Do not remove initializer.
30124         (varpool_reset_queue): Export.
30125         (varpool_finalize_decl): Volatile vars are forced to be output.
30126         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
30127         replaced decl.
30128         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
30129         process_references, varpool_can_remove_if_no_refs): New functions.
30130         (cgraph_remove_unreachable_nodes): Handle variables too.
30131
30132 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
30133
30134         PR target/44088
30135         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
30136
30137 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
30138
30139         PR middle-end/44085
30140         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
30141         change value of ORT_TASK.
30142         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
30143         (omp_notice_threadprivate_variable): New function.
30144         (omp_notice_variable): Call it for threadprivate variables.
30145         If enclosing ctx is a task, print enclosing task rather than
30146         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
30147         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
30148         if task has untied clause.
30149
30150         PR debug/42278
30151         * dwarf2out.c (base_type_die): Don't add name attribute here.
30152         (modified_type_die): Instead of sizetype use
30153         its underlying original type.  If a DW_TAG_base_type doesn't
30154         have name added, add __unknown__.
30155         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
30156         always call force_type_die instead.
30157
30158 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
30159
30160         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
30161         for __stack_chk_guard.
30162
30163 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
30164
30165         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
30166         don't call start_source_file debug hook here...
30167         (finish_options): ... but here, after outputting predefined and
30168         command line defines and undefs.
30169
30170         PR middle-end/44071
30171         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
30172         no fallthru edge.
30173         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
30174         optimizing away empty bb with no successors, move over its
30175         footer chain to fallthru predecessor.
30176         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
30177         (rtl_split_edge): For asm goto call patch_jump_insn even if
30178         splitting fallthru edge.
30179
30180         PR c++/44059
30181         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
30182         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
30183         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
30184         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
30185         on DW.ref.* decls.
30186
30187         PR c++/44062
30188         * c-parser.c (c_parser_expression): Mark LHS of a comma
30189         expression as read if it is a decl, handled component or
30190         COMPOUND_EXPR with that on the RHS.
30191         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
30192         if it is a decl or handled component.
30193
30194 2010-05-11  Jan Hubicka  <jh@suse.cz>
30195
30196         * lto-symtab.c (lto_symtab_free): New function.
30197         * lto-streamer.h (lto_symtab_free): Declare.
30198
30199 2010-05-11  Jan Hubicka  <jh@suse.cz>
30200
30201         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
30202         that if function is needed it is reachable.
30203         (lto_output_node): See if it the function is reachable or referenced.
30204         (output_cgraph): Update call of lto_output_node.
30205         * lto-streamer.h (reachable_from_other_partition_p): Declare.
30206
30207 2010-05-11  Jan Hubicka  <jh@suse.cz>
30208
30209         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
30210         Mark as used.
30211
30212 2010-05-11  Jan Hubicka  <jh@suse.cz>
30213
30214         PR tree-optimize/44063
30215         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
30216         queue.
30217         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
30218         limits.
30219         (estimate_function_body_sizes): Compute sizes even when disregarding.
30220
30221 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
30222
30223         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
30224
30225 2010-05-11  Jan Hubicka  <jh@suse.cz>
30226
30227         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
30228         into every boundary.
30229
30230 2010-05-11  Jan Hubicka  <jh@suse.cz>
30231
30232         * matrix-reorg.c (matrix_reorg): Rebuild edges.
30233
30234 2010-05-11  Jan Hubicka  <jh@suse.cz>
30235
30236         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
30237         lto_streamer_cache_delete): Put nodes into heap.
30238         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
30239         heap.
30240
30241 2010-05-11  Jan Hubicka  <jh@suse.cz>
30242
30243         * cgraphbuild.c (cgraph_rebuild_references): New.
30244         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
30245         out extern inlines.
30246         * cgraph.h (cgraph_rebuild_references): Declare.
30247         * tree-inline.c (tree_function_versioning): Use it.
30248         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
30249
30250 2010-05-11  Jan Hubicka  <jh@suse.cz>
30251
30252         * cgraph.c: Include ipa-utils.h
30253         (cgraph_create_virtual_clone): Update references.
30254         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
30255
30256 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
30257
30258         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
30259         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
30260         cache size.
30261
30262 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
30263
30264         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
30265
30266 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
30267
30268         * gcc.c (execute): For -### don't quote arguments that
30269         contain just alphanumerics and _/-. characters.
30270         * doc/invoke.texi: Document that change for -###.
30271
30272         PR debug/44023
30273         * df-problems.c (struct dead_debug): Add to_rescan field.
30274         (dead_debug_init): Clear to_rescan field.
30275         (dead_debug_finish): Rescan all debug insns in to_rescan
30276         bitmap and free the bitmap.
30277         (dead_debug_insert_before): Instead of rescanning debug insns
30278         immediately queue their rescanning until dead_debug_finish.
30279         (df_note_bb_compute): After dead_debug_add do continue instead
30280         of break.
30281
30282 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
30283
30284         PR debug/44028
30285         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
30286         clear also INSN_REG_USE_LIST.
30287
30288 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30289
30290         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
30291
30292 2010-05-10  Jan Hubicka  <jh@suse.cz>
30293
30294         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
30295         commited change.
30296
30297 2010-05-10  Jan Hubicka  <jh@suse.cz>
30298
30299         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
30300         Allocate encoders.
30301         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
30302         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
30303         (lto_streamer_cache_create): Init alloc pool.
30304         (lto_streamer_cache_delete): Free alloc pool.
30305         * lto-streamer.h: Include alloc pool.
30306         (lto_streamer_cache_d): Use alloc pool.
30307         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
30308
30309 2010-05-10  Jan Hubicka  <jh@suse.cz>
30310
30311         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
30312         * cgraphbuild.c: Include except.h
30313         (record_type_list, record_eh_tables): New function.
30314         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
30315
30316 2010-05-10  Jan Hubicka  <jh@suse.cz>
30317
30318         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
30319         __frame_dummy_init_array_entry, force_to_data): Attribute as used
30320         rather than unused.
30321
30322 2010-05-10  Michael Matz  <matz@suse.de>
30323
30324         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
30325         (can_reassociate_p): Use FLOAT_TYPE_P.
30326         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
30327         (vect_force_simple_reduction): ... this.
30328         * tree-parloops.c (gather_scalar_reductions): Use
30329         vect_force_simple_reduction.
30330         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
30331         vect_is_simple_reduction, add modify argument, if true rewrite
30332         "a-b" into "a+(-b)".
30333         (vect_is_simple_reduction, vect_force_simple_reduction): New
30334         functions.
30335         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
30336
30337 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
30338             Vladimir Makarov  <vmakarov@redhat.com>
30339
30340         PR rtl-optimization/44012
30341         * ira-build.c (remove_unnecessary_allocnos): Nullify
30342         regno_allocno_map of the removed allocno.
30343
30344 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30345
30346         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
30347         to /dev/null.
30348         * configure: Regenerate.
30349
30350 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30351
30352         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
30353         unused.
30354         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
30355         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
30356         support in Sun ld.
30357         * configure: Regenerate.
30358
30359 2010-05-10  Richard Guenther  <rguenther@suse.de>
30360
30361         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
30362         marked if the entry identifier is marked.
30363
30364 2010-05-10  Richard Guenther  <rguenther@suse.de>
30365
30366         * c-common.c (struct c_common_attributes): Add fnspec attribute.
30367         (handle_fnspec_attribute): New function.
30368         * gimple.h (gimple_call_return_flags): Declare.
30369         (gimple_call_arg_flags): Likewise.
30370         * gimple.c (gimple_call_arg_flags): New function.
30371         (gimple_call_return_flags): Likewise.
30372         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
30373         New argument flags.
30374         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
30375         return value flags.
30376         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
30377         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
30378         main work to ...
30379         (make_heapvar_for): ... this new function.
30380         (handle_rhs_call): Handle fnspec attribute argument specifiers.
30381         (handle_lhs_call): Likewise.
30382         (find_func_aliases): Adjust.
30383
30384 2010-05-10  Richard Guenther  <rguenther@suse.de>
30385
30386         PR tree-optimization/44050
30387         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
30388
30389 2010-05-10  Wei Guozhi  <carrot@google.com>
30390
30391         PR target/42879
30392         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
30393
30394 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
30395
30396         PR c/10676
30397         * c-typeck.c (lookup_field): Take a type directly.  Update
30398         recursive calls.
30399         (build_component_ref): Update call to lookup_field.
30400         (set_init_label): Use lookup_field to find initialized field.
30401         Handle returned list of fields like a sequence of designators.
30402
30403 2010-05-09  Richard Guenther  <rguenther@suse.de>
30404
30405         PR middle-end/44024
30406         * fold-const.c (tree_single_nonzero_warnv_p): Properly
30407         handle &FUNCTION_DECL.
30408
30409 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
30410
30411         PR c/4784
30412         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
30413         structures and unions recursively.
30414         (detect_field_duplicates): Move duplicate detection with a hash to
30415         detect_field_duplicates_hash.  Always use a hash if anonymous
30416         structures or unions are present.
30417         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
30418         give errors.
30419
30420 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
30421
30422         PR target/44046
30423         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
30424         detect Atom, Core 2 and Core i7.
30425
30426 2010-05-09  Richard Guenther  <rguenther@suse.de>
30427
30428         * gcc.c (store_arg): Handle temporary file deletion for
30429         joined arguments.
30430
30431 2010-05-09  Richard Guenther  <rguenther@suse.de>
30432
30433         PR middle-end/44043
30434         * ipa-inline.c (estimate_function_body_sizes): Return after
30435         disregarding inline limits.
30436
30437 2010-05-09  Richard Guenther  <rguenther@suse.de>
30438
30439         * gcc.c (store_arg): Revert last change.
30440
30441 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
30442
30443         PR middle-end/28685
30444         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
30445         (optimize_ops_list): Call it.
30446
30447 2010-05-08  Richard Guenther  <rguenther@suse.de>
30448
30449         PR tree-optimization/44030
30450         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
30451         NECESSARY flag if we propagate from a inserted expression.
30452
30453 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
30454
30455         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
30456         domain types as equal if they are both PLACEHOLDER_EXPRs.
30457
30458 2010-05-08  Richard Guenther  <rguenther@suse.de>
30459
30460         * lto-wrapper.c (run_gcc): Remove linker output from
30461         command line for LTRANS invocation.
30462
30463 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
30464
30465         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
30466         lto-macho as lto_binary_reader.
30467         * target.h (struct gcc_target): New hooks lto_start and lto_end.
30468         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
30469         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
30470         in lto_start and lto_end calls.
30471         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
30472         magic numbers.
30473         (scan_prog_file): Update is_elf_or_coff call.
30474         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
30475
30476         * collect2.c (main): Fix enum comparison.
30477
30478         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
30479         Add prototypes.
30480         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
30481         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
30482         and TARGET_ASM_LTO_END.
30483         * darwin.c: Include obstack.h and lto-streamer.h.
30484         (lto_section_names_offset, lto_section_names_obstack,
30485         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
30486         global variables.
30487         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
30488         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
30489         to a temporary file.
30490         (darwin_asm_lto_end): New function.  Restore asm_out_file.
30491         (darwin_asm_named_section): For LTO sections, replace the name with
30492         the offset of the section name in a string table, and build this
30493         table.
30494         (darwin_file_start): Initialize global vars for LTO support.
30495         (darwin_file_end): If output to asm_out_file was redirected, append it
30496         to the proper asm_out_file here.  Add the section names section.
30497
30498 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
30499
30500         * c-pragma.c (pending_weak_d, pending_weak): New.
30501         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
30502         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
30503         handle_pragma_weak): Update the uses of pending_weaks.
30504
30505 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30506
30507         PR documentation/44016
30508         * doc/standards.texi (Standards): Link to unversioned
30509         cxx0x_status.html page.
30510
30511 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
30512
30513         PR target/43708
30514         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
30515         in addition to TREE_USED, to avoid "set but unused" warnings.
30516
30517 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30518
30519         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
30520         (is_loop_prefetching_profitable): Do not insert prefetches
30521         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
30522         times the prefetch ahead distance.
30523
30524 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30525
30526         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
30527         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
30528         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
30529         the unroll_factor.
30530
30531 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30532
30533         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
30534         a diagnostic info when the insn-to-mem ratio is too small.
30535
30536 2010-05-07  Richard Guenther  <rguenther@suse.de>
30537
30538         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
30539         the linker plugin.
30540         (store_arg): Queue temp_filename for deletion instead of
30541         the whole argument.
30542
30543 2010-05-07  Richard Guenther  <rguenther@suse.de>
30544
30545         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
30546         (run_gcc): Handle LTRANS phase invocation.
30547         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
30548
30549 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
30550
30551         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
30552         this is also meaningful on PARM_DECLs and RESULT_DECLs.
30553
30554 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30555
30556         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
30557
30558 2010-05-07  Richard Guenther  <rguenther@suse.de>
30559
30560         PR tree-optimization/44020
30561         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
30562         code when PRE is not yet initialized.
30563
30564 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30565
30566         * config/mips/dbxmdebug.h: Remove.
30567         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
30568
30569 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
30570
30571         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
30572         with null pointer and also warn about ordered comparison of zero with
30573         pointer if -Wextra.
30574
30575 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
30576
30577         * graphite-blocking.c
30578         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
30579         * graphite-clast-to-gimple.c
30580         (clast_to_gcc_expression): Same.
30581         (precision_for_value): Same.
30582         (precision_for_interval): Same.
30583         (gcc_type_for_interval): Same.
30584         (graphite_create_new_guard): Same.
30585         (compute_bounds_for_level): Same.
30586         (graphite_create_new_loop_guard): Same.
30587         * graphite-interchange.c
30588         (build_linearized_memory_access): Same.
30589         (pdr_stride_in_loop): Same.
30590         (memory_strides_in_loop_1): Same.
30591         (memory_strides_in_loop): Same.
30592         (extend_scattering): Same.
30593         (psct_scattering_dim_for_loop_depth): Same.
30594         (pbb_number_of_iterations): Same.
30595         * graphite-poly.h
30596         (debug_iteration_domains): Same.
30597         * graphite-ppl.c
30598         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
30599         (ppl_set_inhomogeneous_gmp): Same.
30600         (ppl_strip_loop): Same.
30601         (ppl_lexico_compare_linear_expressions): Same.
30602         (ppl_read_polyhedron_matrix): Same.
30603         (ppl_max_for_le_pointset): Same.
30604         * graphite-ppl.h
30605         (ppl_read_polyhedron_matrix): Same.
30606         (tree_int_to_gmp): Same.
30607         (gmp_cst_to_tree): Same.
30608         (ppl_set_inhomogeneous): Same.
30609         (ppl_set_inhomogeneous_tree): Same.
30610         (ppl_set_coef): Same.
30611         (ppl_set_coef_tree): Same.
30612         * graphite-sese-to-poly.c
30613         (build_pbb_scattering_polyhedrons): Same.
30614         (build_scop_scattering): Same.
30615         (scan_tree_for_params_right_scev): Same.
30616         (scan_tree_for_params): Same.
30617         (find_params_in_bb): Same.
30618         (find_scop_parameters): Same.
30619         (add_upper_bounds_from_estimated_nit): Same.
30620         (build_loop_iteration_domains): Same.
30621         (add_condition_to_domain): Same.
30622         (pdr_add_memory_accesses): Same.
30623
30624 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
30625
30626         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
30627         CLooG's value_* macros to their respective mpz_* counterparts.
30628         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
30629         (graphite_create_new_loop_guard): Same.
30630         * graphite-interchange.c (build_linearized_memory_access): Same.
30631         (pdr_stride_in_loop): Same.
30632         (memory_strides_in_loop_1): Same.
30633         (1st_interchange_profitable_p): Same.
30634         * graphite-poly.c (extend_scattering): Same.
30635         (psct_scattering_dim_for_loop_depth): Same.
30636         (pbb_number_of_iterations): Same.
30637         (pbb_number_of_iterations_at_time): Same.
30638         * graphite-poly.h (new_1st_loop): Same.
30639         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
30640         (oppose_constraint): Same.
30641         (insert_constraint_into_matrix): Same.
30642         (ppl_set_inhomogeneous_gmp): Same.
30643         (ppl_set_coef_gmp): Same.
30644         (ppl_strip_loop): Same.
30645         (ppl_lexico_compare_linear_expressions): Same.
30646         (ppl_max_for_le_pointset): Same.
30647         (ppl_min_for_le_pointset): Same.
30648         (ppl_build_realtion): Same.
30649         * graphite-ppl.h (gmp_cst_to_tree): Same.
30650         (ppl_set_inhomogeneous): Same.
30651         (ppl_set_inhomogeneous_tree): Same.
30652         (ppl_set_coef): Same.
30653         (ppl_set_coef_tree): Same.
30654         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
30655         (build_scop_scattering): Same.
30656         (add_value_to_dim): Same.
30657         (scan_tree_for_params_right_scev): Same.
30658         (scan_tree_for_params_int): Same.
30659         (scan_tree_for_params): Same.
30660         (find_params_in_bb): Same.
30661         (find_scop_parameters): Same.
30662         (add_upper_bounds_from_estimated_nit): Same.
30663         (build_loop_iteration_domains): Same.
30664         (create_linear_expr_from_tree): Same.
30665         (add_condition_to_domain): Same.
30666         (pdr_add_memory_accesses): Same.
30667
30668 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
30669             Jason Merrill  <jason@redhat.com>
30670
30671         * c-common.c (c_common_reswords): Add nullptr.
30672         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
30673         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
30674         (gen_type_die_with_usage): Likewise.
30675         * dbxout.c (dbxout_type): Likewise.
30676         * sdbout.c (plain_type_1): Likewise.
30677
30678 2010-05-06  Jason Merrill  <jason@redhat.com>
30679
30680         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
30681         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
30682         ret appropriately.
30683         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
30684
30685         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
30686         stripping WITH_SIZE_EXPR.
30687         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
30688         change.
30689
30690 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30691
30692         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
30693         list of obsolete configurations.
30694         Disabled check for obsolete configurations.
30695         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
30696         Removed support for previous versions.
30697         * config/mips/iris.h: Removed.
30698         * config/mips/iris5.h: Removed.
30699         * config/mips/iris6.h: Merged old iris.h contents.
30700         (TARGET_IRIX): Removed.
30701         (DRIVER_SELF_SPECS): Removed mabi=32.
30702         (IDENT_ASM_OP): Removed undef.
30703         (STARTFILE_SPEC): Removed mabi=32.
30704         (ENDFILE_SPEC): Likewise.
30705         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
30706         (MACHINE_TYPE): Update for IRIX 6.5.
30707         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
30708         TARGET_IRIX by TARGET_IRIX6.
30709         (mips_file_start): Likewise.
30710         (mips_output_external): Remove IRIX 5/6 O32 support.
30711         (mips_output_function_prologue): Likewise.
30712         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
30713         TARGET_IRIX6.
30714         (TARGET_CPU_CPP_BUILTINS): Likewise.
30715         (TARGET_IRIX): Removed.
30716         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
30717         (MULTILIB_DIRNAMES): Removed 32.
30718         (MULTILIB_OSDIRNAMES): Removed ../lib.
30719         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
30720         (Specific, mips-sgi-irix5): Document removal.
30721         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
30722         Remove references to older IRIX 6 releases and the O32 ABI.
30723
30724 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
30725
30726         PR bootstrap/43994
30727         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
30728         instead of DF_REF_REAL_REG.
30729
30730 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
30731
30732         PR target/43888
30733         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
30734         handling to still return true for x64 targets.
30735
30736 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30737
30738         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
30739
30740 2010-05-06  Jan Hubicka  <jh@suse.cz>
30741
30742         PR tree-optimization/43791
30743         * ipa-inline.c (update_caller_keys): Remove bogus
30744         disregard_inline_limits check.
30745
30746 2010-05-06  Michael Matz  <matz@suse.de>
30747
30748         PR tree-optimization/43984
30749         * tree-ssa-pre.c (inserted_phi_names): Remove.
30750         (inserted_exprs): Change to bitmap.
30751         (create_expression_by_pieces): Set bits, don't append to vector.
30752         (insert_into_preds_of_block): Don't handle inserted_phi_names.
30753         (eliminate): Don't look at inserted_phi_names, remove deleted
30754         insns from inserted_exprs.
30755         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
30756         (init_pre, fini_pre): Allocate and free bitmaps.
30757         (execute_pre): Insert insns on edges before elimination.
30758
30759 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30760
30761         * tree.c (initializer_zerop): Handle STRING_CST.
30762
30763 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30764
30765         PR 40989
30766         * doc/invoke.texi (Wimplicit): Document as C only.
30767         * opts.c (common_handle_option): Add argument kind.
30768         (handle_option): Rename as read_cmdline_option. Factor out code to...
30769         (handle_option): ... here. New.
30770         (handle_options): Rename as read_cmdline_options.
30771         (decode_options): Update call.
30772         (set_option): Use option index instead of option pointer. Classify
30773         diagnostics correctly.
30774         (enable_warning_as_error): Call handle_option.
30775         * opts.h (set_option): Update declaration.
30776         (handle_option): Declare.
30777         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
30778         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
30779         * c-opts.c (set_Wimplicit): Delete.
30780         (c_family_lang_mask): New static constant.
30781         (c_common_handle_option): Add argument kind. Use handle_option
30782         instead of set_Wimplicit.
30783         (c_common_post_options): warn_implicit and warn_implicit_int
30784         are disabled by default.
30785         * c-common.c (warn_implicit): Do not define here.
30786         * c-common.h (warn_implicit): Do not declare here.
30787         (c_common_handle_option): Update declaration.
30788         * lto-opts.c (lto_reissue_options): Update call to set_option.
30789
30790 2010-05-06  Richard Guenther  <rguenther@suse.de>
30791
30792         PR tree-optimization/43571
30793         * domwalk.c (walk_dominator_tree): Walk the dominator
30794         sons in more optimal order.
30795
30796 2010-05-06  Richard Guenther  <rguenther@suse.de>
30797
30798         PR tree-optimization/43934
30799         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
30800         (stmt_cost): Likewise.
30801         (extract_true_false_args_from_phi): New helper.
30802         (determine_max_movement): For PHI nodes verify we can hoist them
30803         and compute their cost.
30804         (determine_invariantness_stmt): Handle PHI nodes.
30805         (move_computations_stmt): Likewise.  Hoist PHI nodes in
30806         if-converted form using COND_EXPRs.
30807         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
30808         (tree_ssa_lim): Likewise.
30809         * tree-flow.h (tree_ssa_lim): Adjust prototype.
30810         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
30811
30812 2010-05-06  Richard Guenther  <rguenther@suse.de>
30813
30814         PR tree-optimization/43987
30815         * tree-ssa-structalias.c (could_have_pointers): For possibly
30816         address-taken variables force pointers to be recorded.
30817         (create_variable_info_for_1): Likewise.
30818         (push_fields_onto_fieldstack): Pass in wheter all fields
30819         must have pointers.
30820         (find_func_aliases): Query types instead of vars whether
30821         they contain pointers where appropriate.
30822
30823 2010-05-06  Jan Hubicka  <jh@suse.cz>
30824
30825         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
30826         (record_reference, mark_address, mark_load, mark_store): Record
30827         references.
30828         (record_references_in_initializer): Update call of record_references.
30829         (rebuild_cgraph_edges): Remove all references before rebuiding.
30830         * cgraph.c (cgraph_create_node): Clear ref list.
30831         (cgraph_remove_node): Remove references.
30832         (dump_cgraph_node): Dump references.
30833         (cgraph_clone_node): Clone references.
30834         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
30835         (struct cgraph_node, varpool_node): Add ref_lst.
30836         * ipa-ref.c: New file.
30837         * ipa-ref.h: New file.
30838         * ipa-ref-inline.h: New file.
30839         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
30840         (referenced_from_other_partition_p): New function.
30841         (lto_output_varpool_node): Take set arugment; call
30842         referenced_from_other_partition.
30843         (lto_output_ref): New.
30844         (add_references): New.
30845         (output_refs): New.
30846         (output_cgraph): Compute boundary based on references; output refs.
30847         (output_varpool): Accept cgraph_node_set argument.
30848         (input_ref): New.
30849         (input_refs): New.
30850         (input_cgraph): Call input_refs.
30851         * lto-section-in.c (lto_section_name): Add refs.
30852         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
30853         (ipa-ref.o): New file.
30854         * varpool.c (varpool_node): Clear ipa ref list.
30855         (varpool_remove_node): Remove references.
30856         (dump_varpool_node): Dump references.
30857         (varpool_assemble_decl): Only compile finalized ones.
30858         (varpool_extra_name_alias): Initialize ref list.
30859         * lto-streamer.c (lto-get_section_name): Add .refs section.
30860         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
30861         (referenced_from_other_partition_p): Declared.
30862
30863 2010-05-06  Ira Rosen  <irar@il.ibm.com>
30864
30865         PR tree-optimization/43901
30866         * tree-vect-stmts.c (vectorizable_call): Assert that vector
30867         type is not NULL if it's transformation phase, and return
30868         FALSE if it's analysis.
30869         (vectorizable_conversion, vectorizable_operation,
30870         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30871
30872 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30873
30874         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30875         Delete.
30876         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30877         New define.
30878         * config/mips/mips-protos.h
30879         (mips_small_register_classes_for_mode_p): Delete prototype.
30880
30881 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30882
30883         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30884         * config/arm/arm.c (multiple_operation_profitable_p,
30885         compute_offset_order): New static functions.
30886         (load_multiple_sequence, store_multiple_sequence): Use them.
30887         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30888         memory offsets, not register numbers.
30889         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30890
30891 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30892
30893         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30894         (get_pending_sizes, put_pending_size, put_pending_sizes):
30895         Update the uses of pending_sizes.
30896         * c-decl.c (store_parm_decls): Likewise.
30897         * c-tree.h (struct c_arg_info): Likewise.
30898         * tree.h: Update the prototype for get_pending_sizes and
30899         put_pending_sizes.
30900
30901 2010-05-05  Jason Merrill  <jason@redhat.com>
30902
30903         PR debug/43370
30904         * c-common.c (handle_aligned_attribute): Respect
30905         ATTR_FLAG_TYPE_IN_PLACE.
30906
30907         PR testsuite/43758
30908         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
30909         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30910         (TARGET_INITIALIZER): Use it.
30911         * c-common.c (attribute_takes_identifier_p): Call it.
30912         * c-common.h: Update prototype.
30913         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
30914         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30915
30916 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30917
30918         PR debug/43950
30919         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
30920         DW_ID_down_case for Fortran compilation units.
30921
30922 2010-05-05  Jan Hubicka  <jh@suse.cz>
30923
30924         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
30925         handle aliases.
30926
30927 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
30928
30929         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
30930         a variable-sized RESULT_DECL.
30931
30932 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
30933
30934         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
30935
30936 2010-05-05  Jason Merrill  <jason@redhat.com>
30937
30938         PR c++/43787
30939         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
30940         returns GS_OK.
30941         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
30942
30943 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
30944             Jakub Jelinek  <jakub@redhat.com>
30945
30946         PR debug/43478
30947         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
30948         (dead_debug_init, dead_debug_finish): New functions.
30949         (dead_debug_add, dead_debug_insert_before): Likewise.
30950         (df_note_bb_compute): Initialize a dead_debug object, add dead
30951         debug uses to it, insert debug bind insns before death insns,
30952         reset debug insns that refer to pending uses at the end.
30953         * rtl.h (make_debug_expr_from_rtl): New prototype.
30954         * varasm.c (make_debug_expr_from_rtl): New function.
30955
30956 2010-05-05  Jan Hubicka  <jh@suse.cz>
30957
30958         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
30959         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
30960         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
30961         lto_varpool_encoder_deref, lto_varpool_encoder_size,
30962         lto_varpool_encoder_encode_initializer_p,
30963         lto_set_varpool_encoder_encode_initializer): New functions.
30964         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
30965         call output_varpool.
30966         (input_varpool_node): Do not always set analyzed.
30967         (input_cgraph_1): Return vector of cgraph nodes.
30968         (input_varpool_1): Return vector of varpools.
30969         (input_cgraph): Free the vectors.
30970         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30971         output only initializers needed.
30972         (lto_output): Only call output_cgraph.
30973         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
30974         * lto-section-out.c (lto_new_out_decl_state): Initialize
30975         state->varpool_node_encoder.
30976         * lto-streamer.h (lto_varpool_encoder_d): New.
30977         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
30978         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
30979         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
30980         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
30981         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
30982         Declare.
30983         (output_varpool, input_varpool): Remove declarations.
30984
30985 2010-05-05  Jan Hubicka  <jh@suse.cz>
30986
30987         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
30988         with body can prevail.
30989
30990 2010-05-05  Jan Hubicka  <jh@suse.cz>
30991
30992         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
30993         size.
30994
30995 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30996
30997         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
30998
30999         * gengtype.h (erro_at_line): Constify pos argument.
31000
31001         * gengtype.c: Include hashtab.h.
31002         (enum gc_used): Document GC_MAYBE_POINTED_TO.
31003         (error_at_line): Constify pos argument.
31004         (do_typedef): Initialize p->opt field.
31005         (get_file_gtfilename): Fix comment typo.
31006         (struct walk_type_data): Constify line field.
31007         (get_output_file_for_structure): New function.
31008         (write_local_func_for_structure): Constify orig_s argument.
31009         Use get_output_file_for_structure.
31010         (write_func_for_structure): Use get_output_file_for_structure.
31011         (INDENT): New define.
31012         (dump_pair, dump_type, dump_type_list, dump_typekind)
31013         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
31014         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
31015         functions.
31016         (seen_types): New variable.
31017         (main): New variable do_dump.  Process "-d" command line option.
31018         Call dump_everything if dump requested.
31019
31020 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
31021
31022         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
31023         in a temporary instead of invoking the macro multiple times.
31024         (track_expr_p): Likewise.
31025
31026 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
31027
31028         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
31029         per new semantics.
31030         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
31031         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
31032         conditions for printing notes.
31033         * common.opt (-Wcoverage-mismatch): Allow negative, default to
31034         true, update documentation.
31035         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
31036
31037 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
31038
31039         PR c/43981
31040         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
31041         on dimen.
31042
31043 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
31044
31045         PR target/43799
31046         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
31047         (*sse_prologue_save_insn1): Likewise.
31048         (SSE prologue save splitter): Likewise.
31049
31050 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
31051
31052         * tree.c (free_lang_data_in_one_sizepos): New inline function.
31053         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
31054         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
31055         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
31056         all decls.  Call it on DECL_FIELD_OFFSET of fields.
31057         (find_decls_types_r): Follow DECL_VALUE_EXPR.
31058         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
31059
31060 2010-05-04  Martin Jambor  <mjambor@suse.cz>
31061
31062         * tree-sra.c (build_access_from_expr_1): The first parameter type
31063         changed to simple tree.
31064         (build_access_from_expr): Likewise, gsi parameter was eliminated.
31065         (scan_assign_result): Renamed to assignment_mod_result, enum elements
31066         renamed as well.
31067         (build_accesses_from_assign): Removed all parameters except for a
31068         simple gimple statement.  Now returns a simple bool.
31069         (scan_function): All non-analysis parts moved to separate functions
31070         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
31071         parameters and updated both callers.
31072         (sra_modify_expr): Removed parameter data.
31073         (sra_modify_function_body): New function.
31074         (perform_intra_sra): Call sra_modify_function_body to modify the
31075         function body.
31076         (replace_removed_params_ssa_names): Parameter data changed into
31077         adjustments vector.
31078         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
31079         changed the parameter dont_convert to convert with the opposite
31080         meaning.
31081         (sra_ipa_modify_assign): Parameter data changed into adjustments
31082         vector, return value changed to bool.
31083         (ipa_sra_modify_function_body): New function.
31084         (sra_ipa_reset_debug_stmts): Updated a comment.
31085         (modify_function): Use ipa_sra_modify_function_body to modify function
31086         body.
31087
31088 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
31089
31090         PR middle-end/43671
31091         * alias.c (true_dependence): Handle the same VALUE in x and mem.
31092         (canon_true_dependence): Likewise.
31093         (write_dependence_p): Likewise.
31094
31095 2010-05-04  Jan Hubicka  <jh@suse.cz>
31096
31097         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
31098         * cgraphbuild.c: Include ipa-utils.h
31099         (record_reference_ctx): New struct.
31100         (record_reference): Simplify to work on initializers; not statements.
31101         (mark_address, mark_load, mark_store): New.
31102         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
31103         walk PHI nodes too.
31104         (record_references_in_initializer): Update use of record_reference.
31105         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
31106         walk PHI nodes too.
31107
31108 2010-05-04  Jan Hubicka  <jh@suse.cz>
31109
31110         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
31111         node will be removed anyway.
31112         (lto_varpool_replace_node): Allow also unanalyzed nodes;
31113         relink aliases of node into prevailing node.
31114         * varpool.c (varpool_remove_node): Remove aliases properly;
31115         when removing node, remove all its aliases too; remove DECL_INITIAL
31116         of removed node; ggc_free the varpool node.
31117
31118 2010-05-04  Richard Guenther  <rguenther@suse.de>
31119
31120         PR tree-optimization/43879
31121         * tree-ssa-structalias.c (alias_get_name): Use
31122         DECL_ASSEMBLER_NAME if available.
31123         (create_function_info_for): Return the varinfo node.
31124         (ipa_pta_execute): Associate same-body aliases and extra names
31125         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
31126
31127 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
31128
31129         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
31130
31131 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
31132
31133         PR bootstrap/43964
31134         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
31135         only if HONOR_REG_ALLOC_ORDER is not defined.
31136
31137 2010-05-04  Richard Guenther  <rguenther@suse.de>
31138
31139         PR tree-optimization/43949
31140         * tree-vrp.c (extract_range_from_binary_expr): Only handle
31141         TRUNC_MOD_EXPR.
31142
31143 2010-04-26  Jason Merrill  <jason@redhat.com>
31144
31145         * c.opt (-fstrict-enums): New.
31146         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
31147
31148 2010-05-03  David Ung  <davidu@mips.com>
31149             James E. Wilson  <wilson@codesourcery.com>
31150
31151         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
31152         emit the trap instruction before the divide for TUNE_74K.
31153
31154 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
31155
31156         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
31157         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
31158         based on the above, for new target hook.
31159
31160         * hooks.c (hook_bool_mode_true): New generic hook.
31161         * hooks.h (hook_bool_mode_true): Add prototype.
31162
31163         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
31164         target hook.
31165         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
31166         target hook, set to hook_bool_mode_false.
31167         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
31168         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
31169         with targetm.small_register_classes_for_mode_p.
31170         (find_reusable_reload): Likewise.
31171         (combine_reloads): Likewise.
31172         * reload1.c (reload_as_needed): Likewise.
31173         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
31174         * ifcvt.c (noce_process_if_block, check_cond_move_block,
31175         dead_or_predicable): Likewise.
31176         * regmove.c (optimize_reg_copy_1): Likewise.
31177         * calls.c (prepare_call_address): Likewise.
31178         (precompute_register_parameters): Likewise.
31179
31180         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
31181         hook definition.
31182         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
31183         implementation of the hook that considers all register classes
31184         small except for SH64.
31185         (sh_override_options): Use the new hook.
31186         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
31187         Add prototype.
31188
31189         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
31190         hook definition.
31191         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
31192         implementation of the hook that considers all register classes
31193         small for THUMB1.
31194         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
31195         Add prototype.
31196
31197         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
31198         hook definition.
31199         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
31200         implementation of the hook that considers all register classes
31201         small for MIPS16.
31202         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
31203         Add prototype.
31204
31205         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
31206         hook definition.
31207         * config/m32c/m32c.h: Likewise.
31208         * config/pdp11/pdp11.h: Likewise.
31209         * config/avr/avr.h: Likewise.
31210         * config/xtensa/xtensa.h: Likewise.
31211         * config/m68hc11/m68hc11.h: Likewise.
31212         * config/mn10300/mn10300.h: Likewise.
31213         * config/mcore/mcore.h: Likewise.
31214         * config/h8300/h8300.h: Likewise.
31215         * config/bfin/bfin.h: Likewise.
31216
31217         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
31218         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
31219
31220 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
31221
31222         * double-int.h (tree_to_double_int): Remove macro.
31223         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
31224         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
31225         (tree_to_double_int): New function.
31226         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
31227         Move ...
31228         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
31229
31230 2010-05-03  Richard Guenther  <rguenther@suse.de>
31231
31232         PR tree-optimization/43971
31233         * tree-ssa-structalias.c (get_constraint_for_1): Fix
31234         constraints in the !flag_delete_null_pointer_checks case.
31235
31236 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
31237
31238         PR debug/43972
31239         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
31240         result mode matches original rtl mode.
31241
31242 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
31243
31244         PR target/43888
31245         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
31246
31247 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31248
31249         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
31250         when processing flag options.
31251
31252 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31253
31254         * gcov-iov.c (main): Change format string placeholder
31255         from %#08x to 0x%08x.
31256         * genchecksum.c (dosum): Change format string placeholder
31257         from %#02x to 0x%02x.
31258
31259 2010-05-02  Richard Guenther  <rguenther@suse.de>
31260
31261         PR tree-optimization/43879
31262         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
31263
31264 2010-05-02  Bruno Haible  <bruno@clisp.org>
31265
31266         * doc/extend.texi (Function Attributes): Fix a typo.
31267
31268 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31269
31270         Revert:
31271         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
31272         placeholder from 0x%x to %#x.
31273         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
31274         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31275         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31276         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31277         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31278         * config/i386/i386.c (ix86_target_string): Ditto.
31279         * config/i386/i386.c (output_pic_addr_const): Ditto.
31280         (print_operand): Ditto.
31281
31282 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31283
31284         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
31285         placeholder from 0x%x to %#x.
31286         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
31287         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
31288         (ASM_OUTPUT_DEBUG_DATA): Ditto.
31289         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
31290         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
31291         * optc-gen.awk: Ditto.
31292         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
31293         (HOST_WIDE_INT_PRINT_HEX): Ditto.
31294         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
31295         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
31296
31297 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
31298
31299         * target.h (struct calls): Add function_value_regno_p field.
31300         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
31301         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
31302         * targhooks.c (default_function_value_regno_p): New function.
31303         * targhooks.h (default_function_value_regno_p): Declare function.
31304         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
31305         * builtins.c. (apply_result_size): (Ditto.).
31306         * combine.c. (likely_spilled_retval_p): (Ditto.).
31307         * mode-switching.c. Include 'target.h'.
31308         (create_pre_exit): Use function_value_regno_p hook.
31309         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
31310         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
31311         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
31312
31313         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
31314         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
31315         (ix86_function_value_regno_p): Declare as static, change argument
31316         type to const unsigned int.
31317         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
31318
31319 2010-05-01  Richard Guenther  <rguenther@suse.de>
31320
31321         PR tree-optimization/43949
31322         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
31323         types.
31324         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
31325
31326 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
31327
31328         * rtl.h (CONST_DOUBLE_P): Define.
31329         (rtx_to_double_int): Declare.
31330         * emit-rtl.c (rtx_to_double_int): New function.
31331         * dwarf2out.c (insert_double): New function.
31332         (loc_descriptor, add_const_value_attribute): Clean up, use
31333         rtx_to_double_int and insert_double functions.
31334
31335 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
31336
31337         * doc/extend.texi (Inline): Add missing return keyword to examples.
31338         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
31339         "command-line".
31340
31341 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
31342
31343         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
31344         the variable part of the offset as well.  Use highest_pow2_factor for
31345         all alignment checks.
31346
31347 2010-04-30  Richard Guenther  <rguenther@suse.de>
31348
31349         PR tree-optimization/43879
31350         * tree-ssa-structalias.c (type_could_have_pointers): Functions
31351         can have pointers.
31352
31353 2010-04-30  Jan Hubicka  <jh@suse.cz>
31354
31355         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
31356         varpool.
31357         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
31358
31359 2010-04-30  Jan Hubicka  <jh@suse.cz>
31360
31361         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
31362         New.
31363         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
31364         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
31365         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
31366         cgraph_node_set_needs_ltrans_p): Remove.
31367
31368 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
31369
31370         * sdbout.c: Include vec.h, do not include varray.h.
31371         (deferred_global_decls, sdbout_global_decl,
31372         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
31373         * toplev.c: Do not include varray.h.
31374         (dump_memory_report): Do not dump VARRAY statistics.
31375         * gengtype.c (open_base_file): Ignore varray.h.
31376         * Makefile.in: Update for abovementioned changes.
31377         Remove all traces of varray.c and varray.h.
31378         * varray.c: Remove file.
31379         * varray.h: Remove file.
31380
31381 2010-04-30  Jan Hubicka  <jh@suse.cz>
31382
31383         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
31384         references.
31385
31386 2010-04-30  Jan Hubicka  <jh@suse.cz>
31387
31388         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
31389         needed.
31390
31391 2010-04-30  Richard Guenther  <rguenther@suse.de>
31392
31393         * tree-ssa-structalias.c (get_constraint_for_1): Generate
31394         constraints for CONSTRUCTOR.
31395
31396 2010-04-30  Richard Guenther  <rguenther@suse.de>
31397
31398         PR lto/43946
31399         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
31400         first after all lowering passes.
31401
31402 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
31403
31404         * toplev.c: Include varray.h for statistics dumping.
31405         * tree.h: Do not declare varray_head_tag.
31406         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
31407         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
31408         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
31409         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
31410         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
31411         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
31412         c-common.c, c-common.h, reg-stack.c, basic-block.h,
31413         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
31414         include varray.h.
31415         * Makefile.in: Update for abovementioned changes.
31416
31417 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
31418
31419         PR debug/43942
31420         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
31421
31422 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
31423
31424         * config/picochip/picochip.c (picochip_legitimize_address): Define.
31425         Use this function to do machine-specific conversion.
31426         (picochip_legitimize_reload_address): Likewise.
31427         (picochip_legitimate_address_p): Check valid base register only if
31428         strict.
31429         (picochip_check_conditional_copy): Check for modw only if opnd is
31430         register.
31431         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
31432         to call the function in c.
31433         * config/picochip/picochip-protos.h
31434         (picochip_legitimize_reload_address): Define.
31435         * config/picochip/picochip.md (supported_compare1): Define.
31436
31437 2010-04-30  Jan Hubicka  <jh@suse.cz>
31438
31439         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
31440         (cgraph_global_info): Remove inlined.
31441         (LTO_cgraph_tag_names): Remove.
31442         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
31443         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
31444         simplify cgraph tags and document.
31445         (lto_output_node): Use only LTO_cgraph_unavail_node and
31446         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
31447         for_functions_valid, global info, process and output flags.
31448         (input_overwrite_node): Initialize estimated stack size and
31449         estimated growth.  Do not read flags we no longer store.
31450         (input_node): Likewise do not read info no longer stored.
31451         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
31452         flag.
31453
31454 2010-04-30  Richard Guenther  <rguenther@suse.de>
31455
31456         PR tree-optimization/43879
31457         * tree-ssa-structalias.c (get_constraint_for_1): Properly
31458         handle non-zero initializers.
31459
31460 2010-04-30  Richard Guenther  <rguenther@suse.de>
31461
31462         * builtins.c (fold_builtin_1): Delete free (0).
31463
31464 2010-04-29  Jan Hubicka  <jh@suse.cz>
31465
31466         * gengtype.c (open_base_files): Add lto-streamer.h
31467         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
31468         (pass_ipa_cp): GGC collect.
31469         * toplev. (compile_file): Do not output symbols.
31470         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
31471         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
31472         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
31473         * lto-section-in.c: Include ggc.h
31474         (lto_new_in_decl_state): Alloc in GGC.
31475         (lto_delete_in_decl_state): Likewise.
31476         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
31477         Collect.
31478
31479 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
31480
31481         PR target/42895
31482         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
31483         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
31484         (HONOR_REG_ALLOC_ORDER): Describe new macro.
31485         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
31486         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
31487         account only if HONOR_REG_ALLOC_ORDER is not defined.
31488         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
31489         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
31490
31491 2010-04-29  Jon Grant  <04@jguk.org>
31492
31493         * collect2.c (vflag): Change type from int to bool.
31494         (debug): Likewise.
31495         (helpflag): New global bool.
31496         (main): Set vflag and debug with boolean, not integer truth values.
31497         Accept new "--help" option and output usage text if found.
31498         * collect2.h (vflag): Update prototype.
31499         (debug): Likewise.
31500
31501 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
31502
31503         PR bootstrap/43936
31504         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
31505
31506 2010-04-29  Richard Guenther  <rguenther@suse.de>
31507
31508         PR bootstrap/43935
31509         * plugin.h (invoke_plugin_callbacks): Annotate arguments
31510         with ATTRIBUTE_UNUSED.
31511
31512 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
31513
31514         PR target/43921
31515         * config/i386/i386.c (get_some_local_dynamic_name): Replace
31516         INSN_P with NONDEBUG_INSN_P.
31517         (distance_non_agu_define): Likewise.
31518         (distance_agu_use): Likewise.
31519
31520 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
31521
31522         From Dominique d'Humieres  <dominiq@lps.ens.fr>
31523         PR bootstrap/43858
31524         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
31525         test_set.
31526
31527 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
31528
31529         * plugin.h (invoke_plugin_callbacks): New inline function.
31530         * plugin.c (flag_plugin_added): New global flag.
31531         (add_new_plugin): Initialize above flag.
31532         (invoke_plugin_callbacks): Rename to ...
31533         (invoke_plugin_callbacks_full): ... this.
31534
31535 2010-04-28  Jan Hubicka  <jh@suse.cz>
31536
31537         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
31538         (lto_varpool_replace_node): New.
31539         (lto_symtab_resolve_symbols): Resolve varpool nodes.
31540         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
31541         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
31542         * cgraph.h (varpool_node_ptr): New type.
31543         (varpool_node_ptr): New vector.
31544         (varpool_node_set_def): New structure.
31545         (varpool_node_set): New type.
31546         (varpool_node_set): New vector.
31547         (varpool_node_set_element_def): New structure.
31548         (varpool_node_set_element, const_varpool_node_set_element): New types.
31549         (varpool_node_set_iterator): New type.
31550         (varpool_node): Add prev pointers, add used_from_other_partition,
31551         in_other_partition.
31552         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
31553         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
31554         varpool_get_node, varpool_remove_node): Declare.
31555         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
31556         varpool_node_set_size): New inlines.
31557         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
31558         * tree-pass.h (varpool_node_set_def): Forward declare.
31559         (ipa_opt_pass_d): Summary writting takes vnode sets too.
31560         (ipa_write_optimization_summaries): Update prototype.
31561         * ipa-cp.c (ipcp_write_summary): Update.
31562         * ipa-reference.c (ipa_reference_write_summary): Update.
31563         * lto-cgraph.c (lto_output_varpool_node): New static function.
31564         (output_varpool): New function.
31565         (input_varpool_node): New static function.
31566         (input_varpool_1): New function.
31567         (input_cgraph): Input varpool.
31568         * ipa-pure-const.c (pure_const_write_summary): Update.
31569         * lto-streamer-out.c (lto_output): Update, output varpool too.
31570         (write_global_stream): Kill WPA hack.
31571         (produce_asm_for_decls): Update.
31572         (output_alias_pair_p): Handle variables.
31573         (output_unreferenced_globals): Output only needed partition of varpool.
31574         * ipa-inline.c (inline_write_summary): Update.
31575         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
31576         cgraph.
31577         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
31578         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
31579         varpool_node_set_new, varpool_node_set_add,
31580         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
31581         debug_varpool_node_set): New functions.
31582         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
31583         (execute_one_pass): Process new decls too.
31584         (ipa_write_summaries_2): Pass around vsets.
31585         (ipa_write_summaries_1): Likewise.
31586         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
31587         to add.
31588         (ipa_write_optimization_summaries_1): Pass around vsets.
31589         (ipa_write_optimization_summaries): Likewise.
31590         * varpool.c (varpool_get_node): New.
31591         (varpool_node): Update doubly linked lists.
31592         (varpool_remove_node): New.
31593         (dump_varpool_node): More dumping.
31594         (varpool_enqueue_needed_node): Update doubly linked lists.
31595         (decide_is_variable_needed): Kill ltrans hack.
31596         (varpool_finalize_decl): Kill lto hack.
31597         (varpool_assemble_decl): Skip decls in other partitions.
31598         (varpool_assemble_pending_decls): Update doubly linkes lists.
31599         (varpool_empty_needed_queue): Likewise.
31600         (varpool_extra_name_alias): Likewise.
31601         * lto-streamer.c (lto_get_section_name): Add vars section.
31602         * lto-streamer.h (lto_section_type): Update.
31603         (output_varpool, input_varpool): Declare.
31604
31605 2010-04-28  Mike Stump  <mikestump@comcast.net>
31606
31607         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
31608
31609 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31610
31611         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
31612         record or union type with RECORD_OR_UNION_TYPE_P predicate.
31613         (lto_input_ts_type_tree_pointers): Likewise.
31614         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
31615         (lto_output_ts_type_tree_pointers): Likewise.
31616
31617 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31618
31619         Uniquization of constants at the Tree level
31620         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
31621         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
31622         bit to the end.
31623         (tree_output_constant_def): Declare.
31624         * gimplify.c (gimplify_init_constructor): When using block copy, first
31625         uniquize the constant constructor on the RHS.
31626         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
31627         DECL_IN_CONSTANT_POOL flag.
31628         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
31629         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
31630         constant pool.
31631         (assemble_variable): Deal with symbols belonging to the tree constant
31632         pool.
31633         (get_constant_section): Add ALIGN parameter and simplify.
31634         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
31635         (assemble_constant_contents): Use the expression of the VAR_DECL.
31636         (output_constant_def_contents): Use the alignment of the VAR_DECL.
31637         (tree_output_constant_def): New global function.
31638         (mark_constant): Use the expression of the VAR_DECL.
31639         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
31640         its expression.
31641         (output_object_block): Likewise and assemble the expression.
31642
31643 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31644
31645         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
31646         hash_tree, eq_tree): New tree hash table.
31647         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
31648         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
31649         lto_orig_address_remove): Reimplement.
31650
31651 2010-04-28  Xinliang David Li  <davidxl@google.com>
31652
31653         PR c/42643
31654         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
31655         (compute_uninit_opnds_pos): New function.
31656         (is_non_loop_exit_postdominating): New function.
31657         (compute_control_dep_chain): New function.
31658         (find_pdom): New function.
31659         (convert_control_dep_chain_into_preds): New function.
31660         (find_predicates): New function.
31661         (find_control_equiv_block): New function.
31662         (collect_phi_def_edges): New function.
31663         (find_def_preds): New function.
31664         (find_dom): New function.
31665         (dump_predicates): New function.
31666         (get_cmp_code): New function.
31667         (is_value_included_in): New function.
31668         (find_matching_predicate_in_rest_chains): New function.
31669         (use_pred_not_overlap_with_undef_path_pred): New function.
31670         (is_use_properly_guarded): New function.
31671         (normalize_cond_1): New function.
31672         (is_and_or_or): New function.
31673         (normalize_cond): New function.
31674         (is_gcond_subset_of): New function.
31675         (is_subset_of_any): New function.
31676         (is_or_set_subset_of): New function.
31677         (is_and_set_subset_of): New function.
31678         (is_norm_cond_subset_of): New function.
31679         (is_pred_expr_subset_of): New function.
31680         (is_pred_chain_subset_of): New function.
31681         (is_included_in): New function.
31682         (is_superset_of): New function.
31683         (find_uninit_use): New function.
31684         (warn_uninitialized_phi): New function.
31685         (compute_possibly_undefined_names): New function.
31686         (ssa_undefined_value_p): New function.
31687         (execute_late_warn_uninitialized): New function.
31688         * tree-ssa.c (ssa_undefined_value_p): Removed.
31689         (warn_uninit): Changed to extern.
31690         (warn_uninitialized_phi): Removed.
31691         (warn_uninitialized_vars): Changed to extern.
31692         (execute_late_warn_uninitialized): Removed
31693         * tree-flow.h: Add new prototypes.
31694         * timevar.def: Add new time variable.
31695         * Makefile.in: Add new build file.
31696
31697 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
31698
31699         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
31700         type if available.
31701
31702 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31703
31704         PR target/22224
31705         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
31706
31707 2010-04-28  Martin Jambor  <mjambor@suse.cz>
31708
31709         * cgraph.h (struct cgraph_node): New field indirect_calls.
31710         (struct cgraph_indirect_call_info): New type.
31711         (struct cgraph_edge): Removed field indirect_call. New fields
31712         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
31713         (cgraph_create_indirect_edge): Declare.
31714         (cgraph_make_edge_direct): Likewise.
31715         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
31716         * ipa-prop.h (struct ipa_param_call_note): Removed.
31717         (struct ipa_node_params): Removed field param_calls.
31718         (ipa_create_all_structures_for_iinln): Declare.
31719         * cgraph.c: Described indirect edges and uids in initial comment.
31720         (cgraph_add_edge_to_call_site_hash): New function.
31721         (cgraph_edge): Search also among the indirect edges, use
31722         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
31723         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
31724         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
31725         site hash.
31726         (initialize_inline_failed): Assign a reason to indirect edges.
31727         (cgraph_create_edge_1): New function.
31728         (cgraph_create_edge): Moved some functionality to
31729         cgraph_create_edge_1.
31730         (cgraph_create_indirect_edge): New function.
31731         (cgraph_edge_remove_callee): Add an assert checking for
31732         non-indirectness.
31733         (cgraph_edge_remove_caller): Special-case indirect edges.
31734         (cgraph_remove_edge): Likewise.
31735         (cgraph_set_edge_callee): New function.
31736         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
31737         (cgraph_make_edge_direct): New function.
31738         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
31739         the declaration of the call statement matches.
31740         (cgraph_node_remove_callees): Special-case indirect edges.
31741         (cgraph_clone_edge): Likewise.
31742         (cgraph_clone_node): Clone also the indirect edges.
31743         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
31744         indirect_call, dump count of indirect_calls edges.
31745         * ipa-prop.c (iinlining_processed_edges): New variable.
31746         (ipa_note_param_call): Create indirect edges instead of
31747         creating notes.  New parameter node.
31748         (ipa_analyze_call_uses): New parameter node, pass it on to
31749         ipa_note_param_call.
31750         (ipa_analyze_stmt_uses): Likewise.
31751         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
31752         (print_edge_addition_message): Work on edges rather than on notes.
31753         (update_call_notes_after_inlining): Likewise, renamed to
31754         update_indirect_edges_after_inlining.
31755         (ipa_create_all_structures_for_iinln): New function.
31756         (ipa_free_node_params_substructures): Do not free notes.
31757         (ipa_edge_duplication_hook): Propagate bits within
31758         iinlining_processed_edges bitmap.
31759         (ipa_node_duplication_hook): Do not duplicate notes.
31760         (free_all_ipa_structures_after_ipa_cp): Renamed to
31761         ipa_free_all_structures_after_ipa_cp.
31762         (free_all_ipa_structures_after_iinln): Renamed to
31763         ipa_free_all_structures_after_iinln.
31764         (ipa_write_param_call_note): Removed.
31765         (ipa_read_param_call_note): Removed.
31766         (ipa_write_indirect_edge_info): New function.
31767         (ipa_read_indirect_edge_info): Likewise.
31768         (ipa_write_node_info): Do not stream notes, do stream information
31769         in indirect edges.
31770         (ipa_read_node_info): Likewise.
31771         (lto_ipa_fixup_call_notes): Removed.
31772         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
31773         * ipa-inline.c (pass_ipa_inline): Likewise.
31774         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
31775         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
31776         * tree-inline.c (copy_bb): Removed an unnecessary double check for
31777         is_gimple_call.
31778         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
31779         edges.
31780         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
31781         (output_cgraph): Stream also indirect edges.
31782         (lto_output_edge): Added capability to stream indirect edges.
31783         (input_edge): Likewise.
31784         (input_cgraph_1): Likewise.
31785         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
31786         of indirect edges.
31787
31788 2010-04-28  Richard Guenther  <rguenther@suse.de>
31789
31790         PR tree-optimization/43879
31791         PR tree-optimization/43909
31792         * tree-ssa-structalias.c (struct variable_info): Add
31793         only_restrict_pointers flag.
31794         (new_var_info): Initialize it.  Increment stats.total_vars here.
31795         (create_function_info_for): Do not increment stats.total_vars here.
31796         (get_function_part_constraint): Fix build with C++.
31797         (insert_into_field_list): Remove.
31798         (push_fields_onto_fieldstack): Properly merge fields.
31799         (create_variable_info_for): Split and simplify.
31800         (create_variable_info_for_1): New piece.
31801         (intra_create_variable_infos): Properly make restrict constraints
31802         from parameters.
31803
31804 2010-04-28  Richard Guenther  <rguenther@suse.de>
31805
31806         PR c++/43880
31807         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
31808
31809 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31810             Jan Hubicka  <hubicka@ucw.cz>
31811
31812         * doc/invoke.texi (-Wsuggest-attribute=const,
31813         -Wsuggest-attribute=pure): Document.
31814         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
31815         (function_always_visible_to_compiler_p,
31816         suggest_attribute, warn_function_pure, warn_function_const):
31817         New functions.
31818         (check_call): Improve debug info.
31819         (analyze_function): Do not check availability.
31820         (add_new_function): Check availability.
31821         (propagate): Output warnings.
31822         (skip_function_for_local_pure_const): New function.
31823         (local_pure_const): Use it; output warnings.
31824         * common.opt (Wsuggest-attribute=const,
31825         Wsuggest-attribute=pure): New.
31826
31827 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31828
31829         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
31830         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
31831         or DW_CFA_def_cfa_offset{,_sf}.
31832
31833 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31834
31835         * tree.h: Fix truncated long macros.
31836
31837 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
31838
31839         * collect2.c (TARGET_64BIT): Redefine to target's default.
31840         * tlink.c: Likewise.
31841         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
31842         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
31843         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
31844         for underscoring __USER_LABEL_PREFIX__.
31845         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
31846         (SUB_LINK_ENTRY32): New.
31847         (SUB_LINK_ENTRY64): New.
31848         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
31849         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
31850         (SUB_LINK_ENTRY64): New.
31851         (SUB_LINK_ENTRY): New.
31852         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
31853         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
31854         x64 target is choosen.
31855         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
31856         * configure: Regenerated.
31857         * configure.ac (leading-mingw64-underscores): Option added.
31858
31859 2010-04-27  Jan Hubicka  <jh@suse.cz>
31860
31861         * doc/invoke.texi (-fipa-profile): Document.
31862         * opts.c (decode_options): Enable ipa-profile at -O1.
31863         * timevar.def (TV_IPA_PROFILE): Define.
31864         * common.opt (fipa-profile): Add.
31865         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
31866         flag for clones.
31867         (cgraph_propagate_frequency): Handle only local ones.
31868         * tree-pass.h (pass_ipa_profile): Declare.
31869         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31870         (pass_ipa_profile): Use TV_IPA_PROFILE.
31871         * ipa.c (ipa_profile): New function.
31872         (gate_ipa_profile): Likewise.
31873         (pass_ipa_profile): New global variable.
31874         * passes.c (pass_ipa_profile): New.
31875
31876 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31877
31878         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31879
31880 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31881
31882         PR middle-end/43812
31883         * ipa.c (dissolve_same_comdat_group_list): New function.
31884         (function_and_variable_visibility): Call
31885         dissolve_same_comdat_group_list when comdat group contains external or
31886         newly local nodes.
31887         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31888         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31889
31890 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31891
31892         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31893         (const_hash_1) <VECTOR_CST>: New case.
31894         (compare_constant) <VECTOR_CST>: Likewise.
31895         <ADDR_EXPR>: Deal with LABEL_REFs.
31896         (copy_constant) <VECTOR_CST>: New case.
31897
31898 2010-04-27  Jan Hubicka  <jh@suse.cz>
31899
31900         * cgraph.c (cgraph_propagate_frequency): New function.
31901         * cgraph.h (cgraph_propagate_frequency): Declare.
31902         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31903         cgraph_propagate_frequency.
31904
31905 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31906
31907         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
31908
31909 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
31910
31911         PR target/40657
31912         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
31913         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
31914         here to determine which regs to push and how much stack to reserve.
31915
31916 2010-04-27  Jie Zhang  <jie@codesourcery.com>
31917
31918         * doc/gimple.texi (gimple_statement_with_ops): Remove
31919         addresses_taken field.
31920         (gimple_statement_with_memory_ops): Likewise.
31921
31922 2010-04-27  Jan Hubicka  <jh@suse.cz>
31923
31924         * tree-inline.c (eni_inlining_weights): Remove.
31925         (estimate_num_insns): Special case more builtins.
31926
31927 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
31928
31929         PR c/32207
31930         * c-typeck.c (build_binary_op): Move forward check for comparison
31931         pointer with null pointer constant and adjust the diagnostic message.
31932
31933 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
31934
31935         PR lto/42776
31936         * configure.ac (gcc_cv_as_section_has_align): Set if installed
31937         binutils supports extended .section directive needed by LTO, or
31938         warn if older binutils found.
31939         (LTO_BINARY_READER): New AC_SUBST'd variable.
31940         (LTO_USE_LIBELF): Likewise.
31941         * config.gcc (lto_binary_reader): New target-specific configure
31942         variable.
31943         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
31944         (LTO_USE_LIBELF): Likewise.
31945         * configure: Regenerate.
31946
31947         * collect2.c (is_elf): Rename from this ...
31948         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
31949          object files in addition to ELF-formatted ones.
31950         (scan_prog_file): Caller updated.  Also allow for LTO info marker
31951         symbol to be prefixed or not by an extra underscore.
31952
31953         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
31954         * config/i386/winnt.c: Also #include lto-streamer.h
31955         (i386_pe_asm_named_section): Specify 1-byte section alignment for
31956         LTO named sections.
31957         (i386_pe_asm_output_aligned_decl_common): Add comment.
31958         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
31959
31960 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
31961
31962         PR target/43889
31963         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
31964         Add missing earlyclobber for second alternative.
31965
31966 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
31967
31968         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
31969         bits for artificial defs at the top of the block.
31970         * fwprop.c (single_def_use_enter_block): Don't call it.
31971
31972 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
31973
31974         PR 43715
31975         * configure.ac: Use "$gcc_cv_nm -g" on darwin
31976         instead of "$gcc_cv_objdump -T".
31977         Use "-undefined dynamic_lookup" on darwin.
31978         * configure: Regenerate.
31979
31980 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
31981
31982         PR c/43893
31983         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
31984
31985 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31986
31987         * c-parser.c (struct c_token): Move location field up.
31988         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
31989         (struct c_declspecs): Convert typespec_word, storage_class, and
31990         default_int_p into bitfields.
31991         (struct c_declarator): Move loc field up.
31992
31993 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31994
31995         * cfgloop.h (struct loop): Move can_be_parallel field up.
31996         * ipa-prop.h (struct ip_node_params): Move bitfields up.
31997         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
31998         down.
31999         (struct iv_cand): Convert pos field into a bitfield.
32000         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
32001         field up.
32002         (struct _stmt_vec_info): Shuffle fields for better packing.
32003
32004 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
32005
32006         * varasm.c (IN_NAMED_SECTION): Remove guard.
32007         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
32008         (IN_NAMED_SECTION_P): ...this.
32009         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
32010         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
32011
32012 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
32013
32014         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
32015         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
32016         of shadowing it.  Fix comments.
32017
32018 2010-04-26  Jan Hubicka  <jh@suse.cz>
32019
32020         * cgraph.c (cgraph_create_node): Set node frequency to normal.
32021         (cgraph_clone_node): Copy function frequency.
32022         * cgraph.h (node_frequency): New enum
32023         (struct cgraph_node): Add.
32024         * final.c (rest_of_clean_state): Update.
32025         * lto-cgraph.c (lto_output_node): Output node frequency.
32026         (input_overwrite_node): Input node frequency.
32027         * tre-ssa-loop-ivopts (computation_cost): Update.
32028         * lto-streamer-out.c (output_function): Do not output function
32029         frequency.
32030         * predict.c (maybe_hot_frequency_p): Update and handle functions
32031         executed once.
32032         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
32033         attribute lookup.
32034         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
32035         (compute_function_frequency): Set noreturn functions to be executed
32036         once.
32037         (choose_function_section): Update.
32038         * lto-streamer-in.c (input_function): Do not input function frequency.
32039         * function.c (allocate_struct_function): Do not initialize function
32040         frequency.
32041         * function.h (function_frequency): Remove.
32042         (struct function): Remove function frequency.
32043         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
32044         (try_update): Update.
32045         * tree-inline.c (initialize_cfun): Do not update function frequency.
32046         * passes.c (pass_init_dump_file): Update.
32047         * i386.c (ix86_compute_frame_layout): Update.
32048         (ix86_pad_returns): Update.
32049
32050 2010-04-26  Jie Zhang  <jie@codesourcery.com>
32051
32052         PR tree-optimization/43833
32053         * tree-vrp.c (range_int_cst_p): New.
32054         (range_int_cst_singleton_p): New.
32055         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
32056         when both operands are constants.  Use range_int_cst_p in
32057         BIT_IOR_EXPR case.
32058
32059 2010-04-26  Jan Hubicka  <jh@suse.cz>
32060
32061         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
32062
32063 2010-04-26  Richard Guenther  <rguenther@suse.de>
32064
32065         PR lto/43080
32066         * gimple.c (gimple_decl_printable_name): Deal gracefully
32067         with a NULL DECL_NAME.
32068
32069 2010-04-26  Richard Guenther  <rguenther@suse.de>
32070
32071         PR lto/42425
32072         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
32073         if emitting debug information and it is either a function
32074         or a namespace decl.
32075
32076 2010-04-26  Ira Rosen  <irar@il.ibm.com>
32077
32078         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
32079         determine if the statement is vectorizable, and a macro to access it.
32080         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32081         Skip statements that can't be vectorized. If the analysis fails,
32082         mark the statement as unvectorizable if vectorizing basic block.
32083         (vect_compute_data_refs_alignment): Likewise.
32084         (vect_verify_datarefs_alignment): Skip statements marked as
32085         unvectorizable. Add print.
32086         (vect_analyze_group_access): Skip statements that can't be
32087         vectorized. If the analysis fails, mark the statement as
32088         unvectorizable if vectorizing basic block.
32089         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
32090         * tree-vect-stmts.c (vectorizable_store): Fix the number of
32091         generated stmts for SLP.
32092         (new_stmt_vec_info): Initialize the new field.
32093         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
32094         statements marked as unvectorizable.
32095
32096 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
32097
32098         * c-common.c (flag_isoc1x): New.
32099         (flag_isoc99): Update comment.
32100         * c-common.h (flag_isoc1x): New.
32101         (flag_isoc99): Update comment.
32102         * c-cppbuiltin.c (builtin_define_float_constants): Also define
32103         __<type>_DECIMAL_DIG__.
32104         * c-opts.c (set_std_c1x): New.
32105         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
32106         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
32107         * c.opt (-std=c1x, -std=gnu1x): New options.
32108         * doc/cpp.texi: Mention -std=c1x.
32109         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
32110         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
32111         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
32112         * doc/standards.texi: Mention C1X.
32113         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
32114         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
32115         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
32116         Define for C1X.
32117
32118 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
32119
32120         * config/i386/gmon-sol2.c (_mcleanup): Change format string
32121         placeholder from 0x%x to %#x.
32122         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
32123         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
32124         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
32125         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
32126         * config/i386/i386.c (ix86_target_string): Ditto.
32127         (output_pic_addr_const): Ditto.
32128         (print_operand): Ditto.
32129
32130 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
32131
32132         * combine.c (find_split_point): Add third argument.  Use it
32133         to find nested multiply-accumulate instructions.  Adjust calls.
32134         (try_combine): Adjust call to find_split_point.
32135
32136 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
32137
32138         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
32139
32140 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
32141
32142         PR tree-optimization/41442
32143         * fold-const.c (merge_truthop_with_opposite_arm): New function.
32144         (fold_binary_loc): Call it.
32145
32146 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32147
32148         * toplev.c (general_init): Set default for fdiagnostics-show-option.
32149         * opts.c (common_handle_option): Allow disabling it.
32150         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
32151
32152 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
32153
32154         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
32155         between modes if both types are integral.
32156
32157 2010-04-23  Richard Guenther  <rguenther@suse.de>
32158
32159         PR tree-optimization/43572
32160         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
32161
32162 2010-04-23  Richard Guenther  <rguenther@suse.de>
32163
32164         PR lto/43455
32165         * tree-inline.c (tree_can_inline_p): Also check compatibility
32166         of return types.
32167
32168 2010-04-23  Martin Jambor  <mjambor@suse.cz>
32169
32170         PR tree-optimization/43846
32171         * tree-sra.c (struct access): New flag grp_assignment_read.
32172         (build_accesses_from_assign): Set grp_assignment_read.
32173         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
32174         (enum mark_read_status): New type.
32175         (analyze_access_subtree): Propagate grp_assignment_read, create
32176         accesses also if both direct_read and root->grp_assignment_read.
32177
32178 2010-04-23  Martin Jambor  <mjambor@suse.cz>
32179
32180         PR middle-end/43835
32181         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
32182         function does not have type attributes.
32183
32184 2010-04-23  Richard Guenther  <rguenther@suse.de>
32185
32186         PR lto/42653
32187         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
32188         of FUNCTION_DECLs.
32189
32190 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32191
32192         * sese.h (create_if_region_on_edge): Remove.
32193
32194         * sese.c (create_if_region_on_edge): Make static.
32195
32196         * tree-inline.c: Do not include ggc.h.
32197
32198         * expr.c: Do not include ggc.h.
32199
32200         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
32201         dependencies.
32202
32203 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
32204
32205         PR target/43744
32206         * config/sh/sh.c (find_barrier): Don't emit a constant pool
32207         in the middle of insns for casesi_worker_2.
32208
32209 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
32210
32211         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
32212
32213 2010-04-22  Ira Rosen  <irar@il.ibm.com>
32214
32215         PR tree-optimization/43842
32216         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
32217         loop unrolling in update of exit phis. Fix comment.
32218         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
32219         least two reduction statements in the loop before starting SLP
32220         analysis.
32221
32222 2010-04-22  Nick Clifton  <nickc@redhat.com>
32223
32224         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
32225
32226 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
32227
32228         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
32229         to simplify a + ~a.
32230
32231 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32232
32233         * tree-parloops.c (loop_parallel_p): New argument
32234         parloop_obstack.  Pass it down.
32235         (parallelize_loops): New variable parloop_obstack.  Initialize it,
32236         pass it down, free it.
32237
32238         * tree-loop-linear.c (linear_transform_loops): Pass down
32239         lambda_obstack.
32240
32241         * tree-data-ref.h (lambda_compute_access_matrices): New argument
32242         of type struct obstack *.
32243
32244         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
32245         scratch_obstack.  Initialize it, pass down, free it.
32246
32247         * lambda.h (lambda_loop_new): Remove.
32248         (lambda_matrix_new, lambda_matrix_inverse)
32249         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
32250         argument of type struct obstack *.
32251
32252         * lambda-trans.c (lambda_trans_matrix_new): New argument
32253         lambda_obstack.  Pass it down, use obstack allocation for ret.
32254         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
32255         it down.
32256
32257         * lambda-mat.c (lambda_matrix_get_column)
32258         (lambda_matrix_project_to_null): Remove.
32259         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
32260         allocation for mat.
32261         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
32262         lambda_obstack.
32263
32264         * lambda-code.c (lambda_loop_new): New function.
32265         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
32266         (lambda_compute_auxillary_space, lambda_compute_target_space)
32267         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
32268         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
32269         (build_access_matrix): New argument lambda_obstack.  Use obstack
32270         allocation for am.
32271         (lambda_compute_step_signs, lambda_compute_access_matrices): New
32272         argument lambda_obstack.  Pass it down.
32273
32274 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
32275
32276         * optabs.h (expand_widening_mult): Declare.
32277
32278 2010-04-22  Richard Guenther  <rguenther@suse.de>
32279
32280         PR tree-optimization/43845
32281         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
32282         lookup the CALL_EXPR function and arguments.
32283
32284 2010-04-22  Nick Clifton  <nickc@redhat.com>
32285
32286         * config/stormy16/stormy16.c
32287         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
32288         * config/stormy16/stormy16.h: Tidy up formatting.
32289         (DONT_USE_BUILTIN_SETJMP): Remove definition.
32290         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
32291         (ineqbranchsi): Delete pattern.
32292         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
32293         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
32294         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
32295         stormy16-lib2-ucmpsi2.c.
32296
32297 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
32298
32299         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
32300         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
32301         extra set merge_set_noclobber, and use it to relax the final test
32302         slightly.
32303         * df.h (df_simulate_find_noclobber_defs): Declare.
32304         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
32305         conditional defs.
32306         (df_simulate_find_noclobber_defs): New function.
32307
32308 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
32309
32310         * config/i386/i386.md: Use {} around multi-line preparation statements.
32311
32312 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32313
32314         * c-tree.h (push_init_level, pop_init_level, set_init_index)
32315         (process_init_element): New argument of type struct obstack *.
32316
32317         * c-typeck.c (push_init_level, pop_init_level, set_designator)
32318         (set_init_index, set_init_label, set_nonincremental_init)
32319         (set_nonincremental_init_from_string, find_init_member)
32320         (output_init_element, output_pending_init_elements)
32321         (process_init_element): New argument braced_init_obstack.  Pass it
32322         down.
32323         (push_range_stack, add_pending_init): New argument
32324         braced_init_obstack.  Use obstack allocation.
32325
32326         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
32327         braced_init_obstack.  Pass it down.
32328         (c_parser_braced_init): New variables ret, braced_init_obstack.
32329         Initialize obstack, pass it down and finally free it.
32330
32331 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
32332
32333         PR middle-end/29274
32334         * tree-pass.h (pass_optimize_widening_mul): Declare.
32335         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
32336         gate_optimize_widening_mul): New static functions.
32337         (pass_optimize_widening_mul): New.
32338         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
32339         <case MULT_EXPR>: Remove support for widening multiplies.
32340         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
32341         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
32342         simplify_gen_unary rather than directly building extensions.
32343         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
32344         WIDEN_MULT_EXPR.
32345         * expmed.c (expand_widening_mult): New function.
32346         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
32347
32348 2010-04-21  Jan Hubicka  <jh@suse.cz>
32349
32350         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
32351         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
32352         * lto-wpa-fixup.c: Remove.
32353         * Makefile.in (lto-wpa-fixup.o): Remove.
32354         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
32355         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
32356         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
32357
32358 2010-04-21  Jan Hubicka  <jh@suse.cz>
32359
32360         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
32361         add write_optimization_summary, read_optimization_summary.
32362         (ipa_write_summaries_of_cgraph_node_set): Remove.
32363         (ipa_write_optimization_summaries): Declare.
32364         (ipa_read_optimization_summaries): Declare.
32365         * ipa-cp.c (pass_ipa_cp): Update.
32366         * ipa-reference.c (pass_ipa_reference): Update.
32367         * ipa-pure-const.c (pass_ipa_pure_const): Update.
32368         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
32369         Update.
32370         * ipa-inline.c (pass_ipa_inline): Update.
32371         * ipa.c (pass_ipa_whole_program): Update.
32372         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
32373         * passes.c (ipa_write_summaries_1): Do not test wpa.
32374         (ipa_write_optimization_summaries_1): New.
32375         (ipa_write_optimization_summaries): New.
32376         (ipa_read_summaries): Do not test ltrans.
32377         (ipa_read_optimization_summaries_1): New.
32378         (ipa_read_optimization_summaries): New.
32379
32380 2010-04-21  Jan Hubicka  <jh@suse.cz>
32381
32382         * lto-cgraph.c (lto_output_node): Do not output comdat groups
32383         for boundary nodes.
32384         (output_cgraph): Do not arrange comdat groups for boundary nodes.
32385
32386 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32387
32388         PR debug/40040
32389         * dwarf2out.c (add_name_and_src_coords_attributes): Add
32390         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
32391
32392 2010-04-21  Jan Hubicka  <jh@suse.cz>
32393
32394         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
32395
32396 2010-04-21  Jan Hubicka  <jh@suse.cz>
32397
32398         * varpool.c (decide_is_variable_needed): Variable is always needed
32399         during ltrans.
32400
32401 2010-04-21  Jan Hubicka  <jh@suse.cz>
32402
32403         * opts.c (decode_options): Enable pure-const pass for whopr.
32404
32405 2010-04-21  Jan Hubicka  <jh@suse.cz>
32406
32407         * cgraph.c (dump_cgraph_node): Dump also assembler name.
32408         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
32409         at WPA dumping.
32410         (cgraph_decide_inlining): Do not expect callee to be removed in all
32411         cases.
32412
32413 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
32414
32415         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
32416
32417 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
32418
32419         * config/i386/i386.md (x86_shrd): Add athlon_decode and
32420         amdfam10_decode attributes.
32421
32422 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32423
32424         PR middle-end/43570
32425         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
32426         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
32427         (lower_copyprivate_clauses): Use private var in outer
32428         context instead of original var.  Make sure the types
32429         are correct for VLAs.
32430
32431 2010-04-21  Richard Guenther  <rguenther@suse.de>
32432
32433         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
32434         to non-pointer objects.
32435
32436 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32437
32438         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
32439         last chain entry if it starts with the still current label.
32440         (add_location_or_const_value_attribute): Check that
32441         loc_list->first->next is NULL instead of comparing ->first with ->last.
32442         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
32443         to add_var_loc_to_decl.
32444
32445         * dwarf2out.c (output_call_frame_info): For dw_cie_version
32446         >= 4 add also address size and segment size fields into CIE header.
32447
32448         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
32449         long as address size is the same as sizeof (void *) and
32450         segment size is 0.
32451         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
32452         address size or segment size is unexpected, return DW_EH_PE_omit.
32453         (classify_object_over_fdes): If get_cie_encoding returned
32454         DW_EH_PE_omit, return -1.
32455         (init_object): If classify_object_over_fdes returned -1,
32456         pretend there were no FDEs at all.
32457
32458 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
32459
32460         * config/i386/i386.md (bswap<mode>2): Macroize expander from
32461         bswap{si,di}2 using SWI48 mode iterator.
32462         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
32463         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
32464         set modrm attribute of bswap insn to 0 and remove length attribute.
32465         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
32466         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
32467         set mode attribute to <MODE> and remove length attribute.
32468
32469 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
32470
32471         PR rtl-optimization/43520
32472         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
32473         zero available registers.
32474
32475 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32476
32477         * builtins.c (fold_builtin_cproj): Fold more cases.
32478
32479 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32480
32481         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
32482         (fold_builtin_1): Fold builtin cproj.
32483         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
32484         Use ATTR_CONST_NOTHROW_LIST.
32485
32486 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
32487
32488         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
32489         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
32490         ffsi2_no_cmove for !TARGET_CMOVE.
32491         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
32492         (ffssi2): Remove expander.
32493         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
32494         mode iterator.
32495         (ctz<mode>2): Ditto from ctz{si,di}2.
32496         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
32497         mode iterator.
32498         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
32499         mode iterator.
32500
32501 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
32502
32503         * dwarf2out.c (AT_linkage_name): Define.
32504         (clone_as_declaration): Handle DW_AT_linkage_name.
32505         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
32506         of DW_AT_MIPS_linkage_name.
32507         (move_linkage_attr): Likewise.
32508         (dwarf2out_finish): Likewise.
32509
32510 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
32511
32512         PR middle-end/41952
32513         * fold-const.c (fold_comparison): New folding rule.
32514
32515 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
32516
32517         * double-int.h (double_int_setbit): Declare.
32518         * double-int.c (double_int_setbit): New function.
32519         * rtl.h (immed_double_int_const): Declare.
32520         * emit-rtl.c (immed_double_int_const): New function.
32521         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
32522         and immed_double_int_const functions.
32523         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
32524         expand_copysign_bit): (Ditto.).
32525         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
32526         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
32527         * dojump.c (prefer_and_bit_test): (Ditto.).
32528         * expr.c (convert_modes, reduce_to_bit_field_precision,
32529         const_vector_from_tree): (Ditto.).
32530         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32531
32532 2010-04-20  Jan Hubicka  <jh@suse.cz>
32533
32534         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
32535         (dump_cgraph_node): Dump new flags.
32536         * cgraph.h (struct cgraph_node): Add flags
32537         reachable_from_other_partition and in_other_partition.
32538         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
32539         other partition can not be removed.
32540         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
32541         the other partition must be output; silence sanity checking on
32542         leaking functions bodies from other paritition.
32543         * lto-cgraph.c (reachable_from_other_partition_p): New function.
32544         (lto_output_node): Output new flags; do not sanity check that inline
32545         clones are output; drop lto_forced_extern_inline_p code; do not mock
32546         visibility flags at partition boundaries.
32547         (add_node_to): New function.
32548         (output_cgraph): Use it to sort functions so masters appear before
32549         clones.
32550         (input_overwrite_node): Input new flags.
32551         * passes.c (ipa_write_summaries): Do not call
32552         lto_new_extern_inline_states.
32553         * lto-section-out.c (forced_extern_inline,
32554         lto_new_extern_inline_states lto_delete_extern_inline_states,
32555         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
32556         * lto-streamer.h (lto_new_extern_inline_states,
32557         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
32558         lto_forced_extern_inline_p): Kill.
32559
32560 2010-04-20  Richard Guenther  <rguenther@suse.de>
32561
32562         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
32563         from vars that can have pointers.
32564         (process_constraint): Dump useless constraints.
32565
32566 2010-04-20  Richard Guenther  <rguenther@suse.de>
32567
32568         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
32569         (dump_sa_points_to_info): Remove asserts.
32570         (init_base_vars): nothing_id isn't an escape point nor does it
32571         have pointers.
32572
32573 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
32574
32575         * tree.h (TYPE_REF_IS_RVALUE): Define.
32576         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
32577         should_move_die_to_comdat, prune_unused_types_walk): Handle
32578         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
32579         (modified_type_die, gen_reference_type_die): Emit
32580         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
32581         if TYPE_REF_IS_RVALUE and -gdwarf-4.
32582
32583 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32584
32585         PR target/43635
32586         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
32587         calls for -fpic -m31 if they have been sibcall optimized.
32588
32589 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
32590
32591         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
32592         ar.lc fixed and call-used.
32593
32594         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
32595
32596 2010-04-19  Jan Hubicka  <jh@suse.cz>
32597
32598         * opts.c (decode_options): Disable whpr incompatible passes.
32599         * lto/lto.c (lto_1_to_1_map): Skip clones.
32600         (read_cgraph_and_symbols): Do not mark everything as needed.
32601         (do_whole_program_analysis): Do map only after optimizing;
32602         set proper cgraph_state; use passmanager.
32603
32604 2010-04-19  DJ Delorie  <dj@redhat.com>
32605
32606         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
32607         POINTER_PLUS_EXPR and fix them.
32608
32609 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
32610
32611         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
32612         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
32613         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
32614         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
32615         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
32616         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
32617         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
32618         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
32619         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
32620         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
32621         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
32622
32623 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
32624
32625         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
32626         (check_cond_move_block): Likewise.
32627         (cond_move_process_if_block): Likewise.
32628         (noce_find_if_block): Improve formatting.
32629         (find_if_header): Pass 0 to memset and tweak conditions.
32630         (cond_exec_find_if_block): Fix long lines and tweak conditions.
32631
32632 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32633
32634         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
32635         for -gdwarf-4.
32636
32637         PR middle-end/43337
32638         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
32639         with non-local decl doesn't need chain.
32640
32641 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
32642
32643         * ira-color.c (allocno_reload_assign): Avoid accumulating
32644         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
32645
32646 2010-04-19  Martin Jambor  <mjambor@suse.cz>
32647
32648         * gimple.h (create_tmp_reg): Declare.
32649         * gimplify.c (create_tmp_reg): New function.
32650         (gimplify_return_expr): Use create_tmp_reg.
32651         (gimplify_omp_atomic): Likewise.
32652         (gimple_regimplify_operands): Likewise.
32653         * tree-dfa.c (make_rename_temp): Likewise.
32654         * tree-predcom.c (predcom_tmp_var): Likewise.
32655         (reassociate_to_the_same_stmt): Likewise.
32656         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
32657         (get_replaced_param_substitute): Likewise.
32658         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
32659         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
32660         * tree-ssa-pre.c (get_representative_for): Likewise.
32661         (create_expression_by_pieces): Likewise.
32662         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
32663         (create_tailcall_accumulator): Likewise.
32664
32665 2010-04-19  Martin Jambor  <mjambor@suse.cz>
32666
32667         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
32668         new_stmt.
32669         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
32670
32671 2010-04-19  Richard Guenther  <rguenther@suse.de>
32672
32673         PR tree-optimization/43796
32674         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
32675         from SCEV in the lattice.
32676         (vrp_visit_phi_node): Dump change.
32677
32678 2010-04-19  Richard Guenther  <rguenther@suse.de>
32679
32680         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
32681         * configure: Re-generated.
32682
32683 2010-04-19  Richard Guenther  <rguenther@suse.de>
32684
32685         PR tree-optimization/43783
32686         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
32687         constant ARRAY_REF operands two and three if possible.
32688
32689 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
32690
32691         PR target/43766
32692         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
32693
32694 2010-04-19  Jie Zhang  <jie@codesourcery.com>
32695
32696         PR target/43662
32697         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
32698
32699 2010-04-19  Ira Rosen  <irar@il.ibm.com>
32700
32701         PR tree-optimization/37027
32702         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
32703         and macro to access it.
32704         (vectorizable_reduction): Add argument.
32705         (vect_get_slp_defs): Likewise.
32706         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
32707         statements for possible use in SLP.
32708         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
32709         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
32710         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
32711         add new argument.
32712         (vectorizable_reduction): Likewise.
32713         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
32714         vect_get_slp_defs.
32715         (vectorizable_type_demotion, vectorizable_type_promotion,
32716         vectorizable_store): Likewise.
32717         (vect_analyze_stmt): Update call to vectorizable_reduction.
32718         (vect_transform_stmt): Likewise.
32719         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
32720         (vect_build_slp_tree): Fix indentation. Check that there are no loads
32721         from different interleaving chains in same node.
32722         (vect_slp_rearrange_stmts): New function.
32723         (vect_supported_load_permutation_p): Allow load permutations for
32724         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
32725         inside SLP nodes if necessary.
32726         (vect_analyze_slp_instance): Handle reductions.
32727         (vect_analyze_slp): Try to build SLP instances originating from groups
32728         of reductions.
32729         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
32730         (vect_get_constant_vectors): Create initial vectors for reductions
32731         according to reduction code. Add new argument.
32732         (vect_get_slp_defs): Add new argument, pass it to
32733         vect_get_constant_vectors.
32734         (vect_schedule_slp_instance): Remove SLP tree root statements.
32735
32736 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32737
32738         * tree.h (ENUM_IS_SCOPED): Define.
32739         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
32740         for ENUM_IS_SCOPED enums.
32741
32742 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
32743
32744         * fold-const.c (fold_comparison): Use ssizetype.
32745         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
32746         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
32747         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
32748         * tree-object-size.c (compute_object_sizes): Use size_type_node.
32749
32750         * tree.h (initialize_sizetypes): Remove parameter.
32751         (build_common_tree_nodes): Remove second parameter.
32752         * stor-layout.c (initialize_sizetypes): Remove parameter.
32753         Always create an unsigned type.
32754         (set_sizetype): Assert that the passed type is unsigned and simplify.
32755         * tree.c (build_common_tree_nodes): Remove second parameter.
32756         Adjust call to initialize_sizetypes.
32757         * c-decl.c (c_init_decl_processing): Remove second argument in call to
32758         build_common_tree_nodes.
32759
32760 2010-04-18  Matthias Klose  <doko@ubuntu.com>
32761
32762         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
32763
32764 2010-04-18  Ira Rosen  <irar@il.ibm.com>
32765
32766         PR tree-optimization/43771
32767         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
32768         load permutation doesn't have gaps.
32769
32770 2010-04-18  Jan Hubicka  <jh@suse.cz>
32771
32772         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
32773         (sse_prologue_save_insn expander): Use new pattern.
32774         (sse_prologue_save_insn1): New pattern and splitter.
32775         (sse_prologue_save_insn): Update to deal also with 64bit aligned
32776         blocks.
32777         * i386.c (setup_incoming_varargs_64): Do not compute jump
32778         destination here.
32779         (ix86_gimplify_va_arg): Update alignment needed.
32780         (ix86_local_alignment): Do not align all local arrays to 128bit.
32781
32782 2010-04-17  Jan Hubicka  <jh@suse.cz>
32783
32784         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
32785
32786 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32787
32788         * arm.md (negdi2): Remove redundant code to force values into a
32789         register.
32790
32791 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32792
32793         * arm/bpabi.S: Add EABI alignment attributes to objects.
32794         * arm/bpabi-v6m.S: Likewise.
32795         * arm/crti.asm: Likewise.
32796         * arm/crtn.asm: Likewise.
32797         * arm/lib1funcs.asm: Likewise.
32798         * arm/libunwind.S: Likewise.
32799
32800 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32801
32802         * arm-protos.h (tune_params): New structure.
32803         * arm.c (current_tune): New variable.
32804         (arm_constant_limit): Delete.
32805         (struct processors): Add pointer to the tune parameters.
32806         (arm_slowmul_tune): New tuning option.
32807         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
32808         (all_cores): Adjust to pick up the tuning model.
32809         (arm_constant_limit): New function.
32810         (arm_override_options): Select the appropriate tuning model.  Delete
32811         initialization of arm_const_limit.
32812         (arm_split_constant): Use the new constant-limit model.
32813         (arm_rtx_costs): Pick up the current tuning model.
32814         * arm.md (is_strongarm, is_xscale): Delete.
32815         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
32816         for Xscale variant architectures.
32817         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
32818
32819 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32820
32821         * config/arm/arm.c (arm_gen_constant): Remove unused variable
32822         can_shift.
32823         (arm_rtx_costs_1): Remove unused variable extra_cost.
32824         (arm_unwind_emit_set): Use variable offset.
32825         (thumb1_output_casesi): Remove unused variable flags.
32826
32827 2010-04-16  Jeff Law  <law@redhat.com>
32828
32829         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
32830         needing assignment rather than doing a two-phase assignment.  Remove
32831         unused variable 'm'.
32832
32833 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32834
32835         PR bootstrap/43767
32836         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
32837
32838 2010-04-16  Doug Kwan  <dougkwan@google.com>
32839
32840         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
32841         (next_operand_entry_id): New static variable.
32842         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
32843         (add_to_ops_vec): Assigned unique ID to operand entry.
32844         (struct oecount_s): New field ID.
32845         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
32846         (undistribute_ops_list): Assign unique IDs to oecounts.
32847         (init_reassoc): reset next_operand_entry_id.
32848
32849 2010-04-16  Doug Kwan  <dougkwan@google.com>
32850
32851         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
32852         missing left parenthesis.
32853
32854 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
32855
32856         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
32857         *btdi_rex64 using SWI48 mode iterator.
32858         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
32859         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
32860         *jcc_btdi_mask_rex64.
32861
32862 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
32863
32864         * double-int.h (tree_to_double_int): Convert to macro.
32865         * double-int.c (tree_to_double_int): Remove.
32866
32867 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32868
32869         PR debug/43762
32870         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32871         with want_address 2 and in case a single element list might be
32872         possible, call it again with want_address 0.
32873
32874 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32875
32876         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32877         case 'W' print operands for HI mode.
32878         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32879         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32880         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32881         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32882
32883         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32884
32885         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32886         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32887         #xx:3 and #xx:4 mode.
32888
32889         * config/h8300/h8300.md (inverted load with HImode dest): Add
32890         support for H8300SX.
32891
32892         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32893         satisfy 'U' constraint.
32894
32895 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32896
32897         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32898         * configure: Regenerate.
32899         * config.in: Regenerate.
32900         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32901         works.
32902
32903 2010-04-16  Richard Guenther  <rguenther@suse.de>
32904
32905         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32906         (struct tree_decl_common): ... here.
32907         (DECL_PT_UID): Adjust.
32908         (SET_DECL_PT_UID): Likewise.
32909         (DECL_PT_UID_SET_P): Likewise.
32910
32911 2010-04-16  Richard Guenther  <rguenther@suse.de>
32912
32913         PR tree-optimization/43572
32914         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
32915         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
32916         * tree-flow.h (is_call_clobbered): Remove.
32917         * tree-flow-inline.h (is_call_clobbered): Likewise.
32918         * tree-dfa.c (dump_variable): Do not dump call clobber state.
32919         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
32920         (execute_return_slot_opt): Adjust.
32921         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
32922         check for call clobbered vars here.
32923         (find_tail_calls): Move tailcall verification to the
32924         proper place.
32925
32926 2010-04-16  Diego Novillo  <dnovillo@google.com>
32927
32928         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
32929
32930 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32931
32932         PR target/40603
32933         * config/arm/arm.md (cbranchqi4): New pattern.
32934         * config/arm/predicates.md (const0_operand,
32935         cbranchqi4_comparison_operator): New predicates.
32936
32937 2010-04-16  Richard Guenther  <rguenther@suse.de>
32938
32939         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
32940         (dump_gimple_stmt): Likewise.
32941
32942 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32943
32944         * recog.h (struct recog_data): New field is_operator.
32945         (struct insn_operand_data): New field is_operator.
32946         * recog.c (extract_insn): Set recog_data.is_operator.
32947         * genoutput.c (output_operand_data): Emit code to set the
32948         is_operator field.
32949         * reload.c (find_reloads): Use it rather than testing for an
32950         empty constraint string.
32951
32952         PR target/41514
32953         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
32954         If the previous insn is a cbranchsi4_insn with the same arguments,
32955         omit the compare instruction.
32956
32957         * config/arm/arm.md (addsi3_cbranch): If destination is a high
32958         register, inputs must be low registers and we need a low register
32959         scratch.  Handle alternative 2 like alternative 3.
32960
32961 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32962
32963         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
32964         don't call get_addr on both.  If one expression is a VALUE and
32965         the other a REG, check VALUE's locs if the REG isn't among them.
32966
32967 2010-04-16  Christian Bruel  <christian.bruel@st.com>
32968
32969         * config/sh/sh.h (sh_frame_pointer_required): New function.
32970         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
32971         (flag_omit_frame_pointer) Set.
32972         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
32973         (rounded_frame_size): Adjust size with outgoing_args_size.
32974         (sh_set_return_address): Must return from stack pointer.
32975         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
32976         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
32977         (ACCUMULATE_OUTGOING_ARGS): Define.
32978         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
32979         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
32980
32981 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32982
32983         PR target/43471
32984         * config/sh/sh.c (sh_legitimize_reload_address): Use
32985         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
32986         Remove a unneeded check for offset_base.
32987
32988 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
32989
32990         * configure: Regenerated.
32991
32992 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32993
32994         * config/s390/s390.c (s390_call_save_register_used): Switch back
32995         to HARD_REGNO_NREGS.
32996
32997 2010-04-15  Richard Guenther  <rguenther@suse.de>
32998
32999         * alias.c (alias_set_subset_of): Handle alias-set zero
33000         child properly.
33001
33002 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
33003             Julian Brown  <julian@codesourcery.com>
33004
33005         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
33006         alternatives according to use of high and low regs.
33007         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
33008         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
33009         optimizing for size on Thumb-2.
33010
33011 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
33012
33013         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
33014
33015 2010-04-15  Richard Guenther  <rguenther@suse.de>
33016
33017         * tree-ssa-structalias.c (struct variable_info): Add
33018         is_fn_info flag.
33019         (new_var_info): Initialize it.
33020         (dump_constraints): Support printing last added constraints.
33021         (debug_constraints): Adjust.
33022         (dump_constraint_graph): Likewise.
33023         (make_heapvar_for): Check for NULL cfun.
33024         (get_function_part_constraint): New function.
33025         (get_fi_for_callee): Likewise.
33026         (find_func_aliases): Properly implement IPA PTA constraints.
33027         (process_ipa_clobber): New function.
33028         (find_func_clobbers): Likewise.
33029         (insert_into_field_list_sorted): Remove.
33030         (create_function_info_for): Properly allocate vars for IPA mode.
33031         Do not use insert_into_field_list_sorted.
33032         (create_variable_info_for): Properly generate constraints for
33033         global vars in IPA mode.
33034         (dump_solution_for_var): Always dump the solution.
33035         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
33036         (find_what_var_points_to): Adjust.
33037         (pt_solution_set): Change.
33038         (pt_solution_ior_into): New function.
33039         (pt_solution_empty_p): Export.
33040         (pt_solution_includes_global): Adjust.
33041         (pt_solution_includes_1): Likewise.
33042         (pt_solutions_intersect_1): Likewise.
33043         (dump_sa_points_to_info): Check some invariants.
33044         (solve_constraints): Move constraint dumping ...
33045         (compute_points_to_sets): ... here.
33046         (ipa_pta_execute): ... and here.
33047         (compute_may_aliases): Do not re-compute points-to info
33048         locally if IPA info is available.
33049         (ipa_escaped_pt): New global var.
33050         (ipa_pta_execute): Properly implement IPA PTA.
33051         * tree-into-ssa.c (dump_decl_set): Support dumping
33052         decls not in referenced-vars.
33053         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
33054         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
33055         (dump_points_to_solution): Likewise.
33056         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
33057         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
33058         (remap_gimple_stmt): Reset call clobber/use information if necessary.
33059         (copy_decl_to_var): Copy DECL_PT_UID.
33060         (copy_result_decl_to_var): Likewise.
33061         * tree.c (make_node_stat): Initialize DECL_PT_UID.
33062         (copy_node_stat): Copy it.
33063         * tree.h (DECL_PT_UID): New macro.
33064         (SET_DECL_PT_UID): Likewise.
33065         (DECL_PT_UID_SET_P): Likewise.
33066         (struct tree_decl_minimal): Add pt_uid member.
33067         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
33068         (pt_solution_empty_p): Declare.
33069         (pt_solution_set): Adjust.
33070         (ipa_escaped_pt): Declare.
33071         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
33072         * gimple-pretty-print.c (pp_points_to_solution): New function.
33073         (dump_gimple_call): Dump call clobber/use information.
33074         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
33075         * tree-pass.h (TDF_ALIAS): New dump option.
33076         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
33077         * doc/invoke.texi (-fipa-pta): Update documentation.
33078
33079 2010-04-15  Richard Guenther  <rguenther@suse.de>
33080
33081         * Makefile.in (OBJS-common): Add gimple-fold.o.
33082         (gimple-fold.o): New rule.
33083         * tree.h (maybe_fold_offset_to_reference,
33084         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
33085         prototypes ...
33086         * gimple.h: ... here.
33087         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
33088         may_propagate_address_into_dereference): Move prototypes ...
33089         * gimple.h: ... here.
33090         * tree-ssa-ccp.c (get_symbol_constant_value,
33091         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
33092         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
33093         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
33094         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
33095         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
33096         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
33097         gimplify_and_update_call_from_tree): Move ...
33098         * gimple-fold.c: ... here.  New file.
33099         (ccp_fold_builtin): Rename to ...
33100         (gimple_fold_builtin): ... this.
33101         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
33102
33103 2010-04-15  Richard Guenther  <rguenther@suse.de>
33104
33105         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
33106         fit_double_type, force_fit_type_double, add_double_with_sign,
33107         neg_double, mul_double_with_sign, lshift_double, rshift_double,
33108         lrotate_double, rrotate_double, div_and_round_double): Move ...
33109         * double-int.c: ... here.
33110         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
33111         add_double, neg_double, mul_double_with_sign, mul_double,
33112         lshift_double, rshift_double, lrotate_double, rrotate_double,
33113         div_and_round_double): Move prototypes ...
33114         * double-int.h: ... here.
33115
33116 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
33117
33118         PR target/43742
33119         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
33120         matching constraints to ensure inputs match the output.
33121
33122 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
33123
33124         PR target/43742
33125         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
33126         in an input-only operand.
33127
33128 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
33129
33130         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
33131         (double_int_not, double_int_lshift, double_int_rshift): Declare.
33132         (double_int_negative_p): Convert to static inline function.
33133         * double-int.c (double_int_lshift, double_int_lshift): New functions.
33134         (double_int_negative_p): Remove.
33135         * tree.h (lshift_double, rshift_double):
33136         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
33137         * fold-const.c (fold_convert_const_int_from_real,
33138         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
33139         (lshift_double): Change type of arith argument to bool.
33140         (rshift_double): Change type of arith argument to bool. Correct
33141         comment.
33142         * expmed.c (mask_rtx, lshift_value): (Ditto.).
33143
33144 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
33145
33146         PR target/21803
33147         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
33148         at the start and end of the then/else blocks, and omit them from the
33149         conversion.
33150         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
33151         argument; all callers changed.  Pass zero to old_insns_match_p instead.
33152         (flow_find_head_matching_sequence): New function.
33153         (old_insns_match_p): Check REG_EH_REGION notes for calls.
33154         * basic-block.h (flow_find_cross_jump,
33155         flow_find_head_matching_sequence): Declare functions.
33156
33157 2010-04-14  Jason Merrill  <jason@redhat.com>
33158
33159         PR c++/36625
33160         * c-common.c (attribute_takes_identifier_p): New fn.
33161         * c-common.h: Declare it.
33162
33163 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33164
33165         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
33166         splitter condition.
33167         (*udivmod<mode>4): Ditto.
33168
33169 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33170
33171         * config/i386/i386.md (maxmin_int): Rename code attribute from
33172         maxminiprefix and update all users.
33173         (maxmin_float): Ditto from maxminfprefix.
33174         (logic): Ditto from logicprefix.
33175         (absneg_mnemonic): Ditto from absnegprefix.
33176         * config/i386/mmx.md: Update all users of maxminiprefix,
33177         maxminfprefix and logicprefix for rename.
33178         * config/i386/sse.md: Ditto.
33179         * config/i386/sync.md (sync_<code><mode>): Update for
33180         logicprefix rename.
33181
33182 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33183
33184         PR 42966
33185         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
33186         warnings converted to errors.
33187
33188 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33189
33190         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
33191         used insn_type variable.
33192         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
33193         to avoid set-but-not-used warning.
33194
33195 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33196
33197         * df-core.c (df_ref_debug): Change format string placeholder
33198         from 0x%x to %#x.
33199         * dwarf2asm.c (dw2_asm_output_data_raw,
33200         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
33201         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
33202         * dwarf2out.c (output_cfi, output_cfi_directive,
33203         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
33204         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
33205         Ditto.
33206         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
33207         * print-rtl.c (print_rtx): Ditto.
33208
33209 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
33210
33211         PR middle-end/42694
33212         * builtins.c (expand_builtin_pow_root): New function to expand pow
33213         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
33214         series of sqrt and cbrt calls under -ffast-math.
33215         (expand_builtin_pow): Call it.
33216
33217 2010-04-14  Michael Matz  <matz@suse.de>
33218
33219         PR tree-optimization/42963
33220         * tree-cfg.c (touched_switch_bbs): New static variable.
33221         (group_case_labels_stmt): New function broken out from ...
33222         (group_case_labels): ... here, use the above.
33223         (start_recording_case_labels): Allocate touched_switch_bbs.
33224         (end_recording_case_labels): Deallocate it, call
33225         group_case_labels_stmt.
33226         (gimple_redirect_edge_and_branch): Remember index of affected BB.
33227
33228 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33229
33230         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
33231         from insn template.
33232
33233 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33234
33235         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
33236
33237 2010-04-13  Jan Hubicka  <jh@suse.cz>
33238
33239         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
33240         of optimized out static functions.
33241         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
33242         cost computation.  Also sanity check for overflows.
33243         (update_caller_keys): Update cgraph_edge_badness call; properly
33244         update fibheap and sanity check that it is up to date.
33245         (add_new_edges_to_heap): Update cgraph_edge_badness.
33246         (cgraph_decide_inlining_of_small_function): Likewise;
33247         add sanity checking that badness in heap is up to date;
33248         improve dumping of reason; Update badness of calls to the
33249         offline copy of function currently inlined; dump badness
33250         of functions not inlined because of unit growth limits.
33251
33252 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
33253
33254         PR middle-end/32628
33255         * c-common.c (pointer_int_sum): Disregard overflow that occured only
33256         because of sign-extension change when converting to sizetype here...
33257         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
33258
33259         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
33260         the folding to constants.  Remove redundant final conversion.
33261         (fold_binary) <associate>: Do not associate if the re-association of
33262         constants alone overflows.
33263         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
33264         to the end of the list.
33265         (multiple_of_p) <COND_EXPR>: New case.
33266
33267 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33268
33269         * opt-functions.awk (opt_sanitized_name): New.
33270         (opt_enum): New.
33271         * optc-gen.awk: Use it
33272         * opth-gen.awk: Use it.
33273
33274 2010-04-13  Martin Jambor  <mjambor@suse.cz>
33275
33276         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
33277         (sra_modify_assign): Delete stmts loading dead data even if racc has no
33278         children.  Call replace_uses_with_default_def_ssa_name to handle
33279         SSA_NAES on lhs.
33280
33281 2010-04-13  Michael Matz  <matz@suse.de>
33282
33283         PR middle-end/43730
33284         * builtins.c (expand_builtin_interclass_mathfn): Also create
33285         a register if the predicate doesn't match.
33286
33287 2010-04-13  Diego Novillo  <dnovillo@google.com>
33288
33289         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
33290         * c-pch.c: Include timevar.h.
33291         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
33292         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
33293         * ggc-common.c: Include timevar.h.
33294         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
33295         * timevar.def (TV_PCH_SAVE): Define.
33296         (TV_PCH_CPP_SAVE): Define.
33297         (TV_PCH_PTR_REALLOC): Define.
33298         (TV_PCH_PTR_SORT): Define.
33299         (TV_PCH_RESTORE): Define.
33300         (TV_PCH_CPP_RESTORE): Define.
33301
33302 2010-04-13  Michael Matz  <matz@suse.de>
33303
33304         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
33305         into MINUS_EXPRs.
33306         (can_reassociate_p): New function.
33307         (break_up_subtract_bb, reassociate_bb): Use it.
33308
33309 2010-04-13  Richard Guenther  <rguenther@suse.de>
33310
33311         PR bootstrap/43737
33312         * builtins.c (c_readstr): Fix assert.
33313
33314 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
33315
33316         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
33317         when generating cltd insn.
33318
33319         (*ashl<mode>3_1): Remove special handling for register operand 2.
33320         (*ashlsi3_1_zext): Ditto.
33321         (*ashlhi3_1): Ditto.
33322         (*ashlhi3_1_lea): Ditto.
33323         (*ashlqi3_1): Ditto.
33324         (*ashlqi3_1_lea): Ditto.
33325         (*<shiftrt_insn><mode>3_1): Ditto.
33326         (*<shiftrt_insn>si3_1_zext): Ditto.
33327         (*<shiftrt_insn>qi3_1_slp): Ditto.
33328         (*<rotate_insn><mode>3_1): Ditto.
33329         (*<rotate_insn>si3_1_zext): Ditto.
33330         (*<rotate_insn>qi3_1_slp): Ditto.
33331
33332 2010-04-13  Richard Guenther  <rguenther@suse.de>
33333
33334         * tree-ssa-structalias.c (callused_id): Remove.
33335         (call_stmt_vars): New.
33336         (get_call_vi): Likewise.
33337         (lookup_call_use_vi): Likewise.
33338         (lookup_call_clobber_vi): Likewise.
33339         (get_call_use_vi): Likewise.
33340         (get_call_clobber_vi): Likewise.
33341         (make_transitive_closure_constraints): Likewise.
33342         (handle_const_call): Adjust to do per-call call-used handling.
33343         (handle_pure_call): Likewise.
33344         (find_what_var_points_to): Remove general callused handling.
33345         (init_base_vars): Likewise.
33346         (init_alias_vars): Initialize call_stmt_vars.
33347         (compute_points_to_sets): Process call-used and call-clobbered
33348         vars for call statements.
33349         (delete_points_to_sets): Free call_stmt_vars.
33350
33351 2010-04-13  Richard Guenther  <rguenther@suse.de>
33352
33353         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
33354         Only add RW dependence for dependence distance zero.
33355         Adjust maximal vectorization factor according to dependences.
33356         Move alignment handling ...
33357         (vect_find_same_alignment_drs): ... here.  New function.
33358         (vect_analyze_data_ref_dependences): Adjust.
33359         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
33360         (vect_analyze_data_refs): Adjust minimal vectorization factor
33361         according to data references.
33362         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
33363         dependences before determining the vectorization factor.
33364         Analyze alignment after determining the vectorization factor.
33365         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
33366         dependences before alignment.
33367         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
33368         Adjust prototype.
33369         (vect_analyze_data_refs): Likewise.
33370         (MAX_VECTORIZATION_FACTOR): New define.
33371
33372 2010-04-13  Duncan Sands  <baldrick@free.fr>
33373
33374         * except.h (lang_eh_type_covers): Remove.
33375         * except.c (lang_eh_type_covers): Likewise.
33376
33377 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33378             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
33379
33380         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
33381         * config/s390/s390.c: Replace UNTIS_PER_WORD with
33382         UNITS_PER_LONG where it is ABI relevant.
33383         (s390_return_addr_rtx): Likewise.
33384         (s390_back_chain_rtx): Likewise.
33385         (s390_frame_area): Likewise.
33386         (s390_frame_info): Likewise.
33387         (s390_initial_elimination_offset): Likewise.
33388         (save_gprs): Likewise.
33389         (s390_emit_prologue): Likewise.
33390         (s390_emit_epilogue): Likewise.
33391         (s390_function_arg_advance): Likewise.
33392         (s390_function_arg): Likewise.
33393         (s390_va_start): Likewise.
33394         (s390_gimplify_va_arg): Likewise.
33395         (s390_function_profiler): Likewise.
33396         (s390_optimize_prologue): Likewise.
33397         (s390_rtx_costs): Likewise.
33398         (s390_secondary_reload): Likewise.
33399         (s390_promote_function_mode): Likewise.
33400         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
33401         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
33402         registers available.
33403         (s390_unwind_word_mode): New function.
33404         (s390_function_value): Split 64 bit values into register pair if
33405         used as return value.
33406         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
33407         function call parameters.  Handle parallels.
33408         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
33409         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
33410         (DWARF_CIE_DATA_ALIGNMENT): New macro.
33411         (s390_expand_setmem): Remove unused variable src_addr.
33412         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
33413         deal with 64 bit registers.
33414         * config/s390/s390.h: Define __zarch__ predefined macro.
33415         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
33416         (UNITS_PER_LONG): New macro.
33417         * libjava/include/s390-signal.h: Define extended ucontext
33418         structure containing the upper halfs of the 64 bit registers.
33419
33420 2010-04-13  Simon Baldwin  <simonb@google.com>
33421
33422         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
33423
33424 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
33425
33426         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
33427         rvalue on the RHS if the LHS is of a non-renamable type.
33428         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
33429
33430 2010-04-13  Matthias Klose  <doko@ubuntu.com>
33431
33432         * gcc.c (cc1_options): Handle -iplugindir before processing
33433         the cc1 spec. Only add -iplugindir once.
33434         (cpp_unique_options): Add -iplugindir option if -fplugin* options
33435         found.
33436         * common.opt (iplugindir): Remove `Separate' property, initialize.
33437         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
33438         option.
33439         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
33440         (distclean): Remove plugin dir.
33441         * doc/invoke.texi: Document -iplugindir.
33442
33443 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
33444
33445         * doc/plugins.texi (Loading Plugins): Document short
33446         -fplugin=foo option.
33447         (Plugin API): Mention default_plugin_dir_name function.
33448
33449         * gcc.c (find_file_spec_function): Add new declaration.
33450         (static_spec_func): Use it for "find-file".
33451         (find_file_spec_function): Add new function.
33452         (cc1_options): Add -iplugindir option if -fplugin* options found.
33453
33454         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
33455
33456         * plugin.c (add_new_plugin): Updated comment, and handle short
33457         plugin name.
33458         (default_plugin_dir_name): Added new function.
33459
33460         * common.opt (iplugindir): New option to set the plugin directory.
33461
33462 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
33463
33464         * config/i386/i386.md (any_rotate): New code iterator.
33465         (rotate_insn): New code attribute.
33466         (rotate): Ditto.
33467         (SWIM124): New mode iterator.
33468         (<rotate_insn>ti3): New expander.
33469         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
33470         any_rotate code iterator.
33471         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
33472         using any_rotate code iterator and SWIM124 mode iterator.
33473         (ix86_rotlti3): New insn_and_split pattern.
33474         (ix86_rotrti3): Ditto.
33475         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
33476         ix86_rotl{di,ti}3 patterns.
33477         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
33478         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
33479         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
33480         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
33481         code iterator and SWI mode iterator.
33482         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
33483         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
33484         code iterator.
33485         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
33486         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
33487         (bswap rotatert splitter): Add splitter.
33488         (bswap splitter): Macroize splitter using any_rotate code iterator.
33489         Add insn predicate to split only for TARGET_USE_XCHGB or when
33490         optimizing function for size.
33491
33492 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33493
33494         * config/pa/pa.c (emit_move_sequence): Remove use of
33495         deleted variable flag_argument_noalias.
33496
33497 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33498
33499         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
33500         configurations.
33501         Add to unsupported targets list.
33502         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
33503         sparc*-sun-solaris2.[567]* from target lists.
33504         * configure: Regenerate.
33505         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
33506         removal.
33507         Remove Solaris 7 patch references.
33508         (Specific, sparc-sun-solaris2.7): Removed.
33509         (sparc-sun-solaris2*): Update Solaris 7 example.
33510         (sparc64-*-solaris2*): Likewise.
33511
33512 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33513
33514         * config.build (alpha*-dec-osf4*): Remove.
33515         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
33516         of obsolete configurations.
33517         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
33518         support.
33519         * config/alpha/t-osf4: Renamed to ...
33520         * config/alpha/t-osf5: ... this.
33521         * config/alpha/osf.h: Renamed to ...
33522         * config/alpha/osf5.h: ... this.
33523         Merged old osf5.h contents.
33524         Update comments.
33525         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
33526         (EXTRA_SPECS): Removed.
33527         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
33528         reflect removal of Tru64 UNIX V4.0/V5.0 support.
33529         Document that.
33530
33531 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33532
33533         * doc/contrib.texi (Contributors, Rainer Orth): Update.
33534
33535 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
33536
33537         PR/43702
33538         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
33539         __thiscall convention.
33540
33541 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33542
33543         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
33544         orig_base.
33545         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
33546
33547 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33548
33549         * function.c (assign_parms_initialize_all): Add unused attribute
33550         to fntype.
33551
33552 2010-04-12  Richard Guenther  <rguenther@suse.de>
33553
33554         * gsstruct.def (GSS_CALL): New.
33555         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
33556         * gimple.h: Include tree-ssa-alias.h.
33557         (struct gimple_statement_call): New.
33558         (union gimple_statement_struct_d): Add gimple_call member.
33559         (gimple_call_reset_alias_info): Declare.
33560         (gimple_call_use_set): New function.
33561         (gimple_call_clobber_set): Likewise.
33562         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
33563         * gimple.c (gimple_call_reset_alias_info): New function.
33564         (gimple_build_call_1): Call it.
33565         * lto-streamer-in.c (input_gimple_stmt): Likewise.
33566         * tree-inline.c (remap_gimple_stmt): Likewise.
33567         (expand_call_inline): Remove callused handling.
33568         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
33569         * tree-dfa.c (dump_variable): Likewise.
33570         * tree-parloops.c (parallelize_loops): Likewise.
33571         * tree-ssa.c (init_tree_ssa): Likewise.
33572         (delete_tree_ssa): Likewise.
33573         * tree-flow-inline.h (is_call_used): Remove.
33574         * tree-flow.h (struct gimple_df): Remove callused member.
33575         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
33576         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
33577         (ref_maybe_used_by_call_p_1): Simplify.
33578         (call_may_clobber_ref_p_1): Likewise.
33579         * tree-ssa-structalias.c (compute_points_to_sets): Set
33580         the call stmt used and clobbered sets.
33581         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
33582         (find_tail_calls): Verify the tail call.
33583
33584 2010-04-12  Richard Guenther  <rguenther@suse.de>
33585
33586         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
33587         single-iteration always-inline inlining.
33588         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
33589         (cgraph_decide_inlining): Do not handle always-inline specially.
33590         (try_inline): Remove always-inline cycle detection special case.
33591         Do not recurse on always-inlines.
33592         (cgraph_early_inlining): Do not iterate if not optimizing.
33593         (cgraph_gate_early_inlining): remove.
33594         (pass_early_inline): Run unconditionally.
33595         (gate_cgraph_decide_inlining): New function.
33596         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
33597         not inlining or optimizing.
33598         (cgraph_decide_inlining_of_small_functions): Also consider
33599         always-inline functions.
33600         (cgraph_default_inline_p): Return true for nodes which should
33601         disregard inline limits.
33602         (estimate_function_body_sizes): Assume zero size and time for
33603         nodes which are marked as disregarding inline limits.
33604         (cgraph_decide_recursive_inlining): Do not perform recursive
33605         inlining on always-inline nodes.
33606
33607 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
33608
33609         PR bootstrap/43699
33610         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
33611         for exprs satisfying handled_component_p.
33612
33613 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
33614
33615         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
33616         non-constant aggregate elements.
33617
33618         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
33619         is a real initialization.
33620
33621 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
33622
33623         PR c/36774
33624         * c-decl.c (start_function): Move forward check for nested function.
33625
33626 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
33627
33628         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
33629         * config/sh/sh.c: Include reload.h.
33630         (sh_legitimize_reload_address): New.
33631         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
33632         sh_legitimize_reload_address.
33633
33634 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
33635
33636         * config/sh/sh.md (*movqi_pop): New insn pattern.
33637         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
33638
33639 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33640
33641         * config/i386/i386.md (any_shiftrt): New code iterator.
33642         (shiftrt_insn): New code attribute.
33643         (shiftrt): Ditto.
33644         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
33645         using any_shiftrt code iterator.
33646         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
33647         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
33648         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
33649         pattern from corresponding peephole2 patterns.
33650         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
33651         using any_shiftrt code iterator.
33652         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
33653         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
33654         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
33655         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
33656         *{ashr,lshr}<mode>3_cmp_zext.
33657         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
33658
33659 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33660
33661         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
33662         scratch register.
33663         (*lshr<mode>3_cconly): Ditto.
33664
33665 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33666
33667         * config/i386/i386.md (lshr<mode>3): Macroize expander from
33668         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
33669         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33670         pattern from *lshr{di,ti}3_1 and corresponding splitters using
33671         DWI mode iterator.
33672         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
33673         from corresponding peephole2 patterns.
33674         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
33675         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
33676         and *lshrdi3_1_rex64 using SWI mode iterator.
33677         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
33678         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
33679         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
33680         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
33681         and *lshrdi3_cmp_rex64 using SWI mode iterator.
33682         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
33683         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
33684         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
33685         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
33686         SWI mode iterator.
33687
33688 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
33689
33690         * config/i386/i386.md (ashr<mode>3): Macroize expander from
33691         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
33692         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33693         pattern from *ashr{di,ti}3_1 and corresponding splitters using
33694         DWI mode iterator.
33695         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
33696         from corresponding peephole2 patterns.
33697         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
33698         (ashrsi3_cvt): Rename from ashrsi3_31.
33699         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
33700         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
33701         and x86_64_shift_adj_3 using SWI48 mode iterator.
33702         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
33703         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
33704         and *ashrdi3_1_rex64 using SWI mode iterator.
33705         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
33706         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
33707         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
33708         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
33709         and *ashrdi3_cmp_rex64 using SWI mode iterator.
33710         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
33711         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
33712         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
33713         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
33714         SWI mode iterator.
33715         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
33716         * config/i386/i386.c (ix86_split_ashr): Update for renamed
33717         x86_shift<mode>_adj_3 expanders.
33718
33719 2010-04-10  Wei Guozhi  <carrot@google.com>
33720
33721         PR target/42601
33722         * config/arm/arm.c (arm_pic_static_addr): New function.
33723         (legitimize_pic_address): Call arm_pic_static_addr when it detects
33724         a static symbol.
33725         (arm_output_addr_const_extra): Output expression for new pattern.
33726         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
33727
33728 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
33729
33730         * ira-costs.c (record_reg_classes): Ignore alternatives that are
33731         not enabled.
33732
33733         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
33734         * web.c: Include "insn-config.h" and "recog.h".
33735         (union_match_dups): New function.
33736         (web_main): Call it.
33737         (union_defs): Don't try to recognize match_dups.
33738
33739         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
33740         if doing so would replace the entire pattern.
33741
33742 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33743
33744         PR target/43707
33745         PR target/43709
33746         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
33747         and splitter pattern.  Change splitter operand 1 predicate to
33748         nonmemory_operand.
33749
33750 2010-04-09  Martin Jambor  <mjambor@suse.cz>
33751
33752         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
33753         lattices are addresses of CONST_DECLs with the same initial value.
33754         (ipcp_print_all_lattices): Print values of CONST_DECLs.
33755         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
33756
33757 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
33758             Bernd Schmidt  <bernds@codesourcery.com>
33759
33760         * loop-invariant.c (replace_uses): New static function.
33761         (move_invariant_reg): Use it to ensure we can replace the uses.
33762
33763 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
33764
33765         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
33766         function template.
33767         (picochip_override_options): Enable section anchors only above -O1.
33768         (picochip_reorg): Fixed a couple of build warnings.
33769
33770 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33771
33772         * configure.ac (plugin -rdynamic test): Log result.
33773         * configure: Regenerate.
33774         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
33775         (RDYNAMIC_SPEC): Define.
33776         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
33777
33778 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33779
33780         * configure.ac: Determine Sun ld version numbers.
33781         (comdat_group): Restrict GNU ld version checks to gld.
33782         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
33783         (enable_comdat): Support --enable-comdat.
33784         * configure: Regenerate.
33785         * doc/install.texi (Configuration): Document --enable-comdat.
33786
33787 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33788
33789         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
33790         * config/sol2-gld.h: ... here.
33791         * config.gcc (sparc*-*-solaris2*): Reflect this.
33792         (i[34567]86-*-solaris2*): Use it.
33793
33794 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
33795
33796         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
33797         setup_clocks_p.
33798         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
33799
33800 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33801
33802         PR 42965
33803         * diagnostic.c (diagnostic_initialize): Initialize
33804         some_warnings_are_errors.
33805         (diagnostic_finish): New.
33806         (diagnostic_action_after_output): Call it before exiting.
33807         (diagnostic_report_diagnostic): Do not print message here. Set
33808         some_warnings_are_errors.
33809         * diagnostic.h (diagnostic_context): Delete
33810         issue_warnings_are_errors_message. Add some_warnings_are_errors.
33811         (diagnostic_finish): Declare.
33812         * toplev.c (toplev_main): Call it before exit.
33813
33814 2010-04-09  Jason Merrill  <jason@redhat.com>
33815
33816         PR c++/42623
33817         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
33818         for incomplete type.
33819
33820         PR c++/41788
33821         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
33822         based on a warning flag.
33823
33824 2010-04-09  Richard Guenther  <rguenther@suse.de>
33825
33826         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
33827
33828 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
33829
33830         PR bootstrap/43684
33831         * varasm.c (default_assemble_visibility): Wrap vars that are
33832         set, but unused, by targets without GAS.
33833         * config/rs6000/rs6000.c (paired_emit_vector_compare):
33834         Remove set, but unused, vars.
33835         (rs6000_legitimize_tls_address): Likewise.
33836         (altivec_expand_dst_builtin): Likewise.
33837         * config/darwin.c (machopic_classify_symbol): Likewise.
33838         (machopic_indirection_name): Likewise.
33839
33840 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33841
33842         * config/i386/i386.md (DWI): New mode iterator.
33843         (S): New mode attribute.
33844         (shift_operand): Ditto.
33845         (shift_immediate_operand): Ditto.
33846         (ashl_input_operand): Ditto.
33847         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
33848         using SDWIM mode iterator.
33849         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33850         pattern from *ashl{di,ti}3_1 and corresponding splitters using
33851         DWI mode iterator.
33852         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
33853         from corresponding peephole2 patterns.
33854         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
33855         and x86_64_shift_adj_1 using SWI48 mode iterator.
33856         (x86_shift<mode>_adj_2): Ditto.
33857         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
33858         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
33859         using SWI48 mode iterator.
33860         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
33861         *ashldi3_cmp_rex64 using SWI mode iterator.
33862         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
33863         *ashldi3_cconly_rex64 using SWI mode iterator.
33864         * config/i386/i386.c (ix86_split_ashl): Update for renamed
33865         x86_shift<mode>_adj_{1,2}.
33866         (ix86_split_ashr): Ditto.
33867         (ix86_split_lshr): Ditto.
33868
33869 2010-04-09  Richard Guenther  <rguenther@suse.de>
33870
33871         * target.h (builtin_conversion): Pass in input and output types.
33872         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33873         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33874         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33875         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33876
33877         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33878         Handle AVX modes.
33879         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33880
33881 2010-04-09  Richard Guenther  <rguenther@suse.de>
33882
33883         PR target/43152
33884         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33885
33886 2010-04-09  Richard Guenther  <rguenther@suse.de>
33887
33888         * tree-vectorizer.h (struct _stmt_vec_info): Document
33889         that vectype is the type of the LHS.
33890         (supportable_widening_operation, supportable_narrowing_operation):
33891         Get both input and output vector types as arguments.
33892         (vect_is_simple_use_1): Declare.
33893         (get_same_sized_vectype): Likewise.
33894         * tree-vect-loop.c (vect_determine_vectorization_factor):
33895         Set STMT_VINFO_VECTYPE to the vector type of the def.
33896         (vectorizable_reduction): Adjust.
33897         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33898         Adjust.  Specify the output vector type.
33899         (vect_pattern_recog_1): Adjust.
33900         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33901         (vectorizable_call): Adjust.
33902         (vectorizable_conversion): Likewise.
33903         (vectorizable_operation): Likewise.
33904         (vectorizable_type_demotion): Likewise.
33905         (vectorizable_type_promotion): Likewise.
33906         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33907         the def.
33908         (vect_is_simple_use_1): New function.
33909         (supportable_widening_operation): Get both input and output
33910         vector types.
33911         (supportable_narrowing_operation): Likewise.
33912         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
33913
33914 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
33915
33916         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
33917         __thiscall and _thiscall as predefined macros.
33918         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
33919         thiscall attribute handling.
33920         (ix86_comp_type_attributes): Likewise.
33921         (ix86_function_regparm): Likewise.
33922         (ix86_return_pops_args): Likewise.
33923         (init_cumulative_args): Likewise.
33924         (find_drap_reg): Likewise.
33925         (ix86_static_chain): Likewise.
33926         (x86_this_parameter): Likewise.
33927         (x86_output_mi_thunk): Likewise.
33928         (ix86_attribute_table): Add description for thiscall attribute.
33929         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
33930         * doc/extend.texi: Add documentation for thiscall.
33931
33932 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33933
33934         PR c++/28584
33935         * c.opt (Wint-to-pointer-cast): Available in C++.
33936         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
33937
33938 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
33939
33940         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
33941         * calls.c (expand_call): Pass the function type to aggregate_value_p.
33942         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
33943         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
33944         function type instead.  Reorder and simplify checks.
33945
33946         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
33947
33948 2010-04-08  Jing Yu  <jingyu@google.com>
33949             Zdenek Dvorak  <ook@ucw.cz>
33950
33951         PR tree-optimization/42720
33952         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
33953         loop unswitch conditions here from ...
33954         (tree_unswitch_single_loop): ... here.
33955
33956 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33957
33958         * tree-if-conv.c: Fix comments and simplify logic.
33959
33960 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33961
33962         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
33963         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
33964         (main_tree_if_conversion): Update call to tree_if_conversion.
33965
33966 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33967
33968         PR 42485
33969         * doc/invoke.texi (-b,-V): Delete.
33970         * doc/tm.texi: Do not mention -b.
33971         * gcc.c (display_help): Delete -b and -V.
33972         (process_command): Delete -b and -V.
33973         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
33974
33975 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
33976             Wolfgang Gellerich  <gellerich@de.ibm.com>
33977
33978         Implement target hook for loop unrolling
33979         * target.h (loop_unroll_adjust): Add a new target hook function.
33980         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
33981         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
33982         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
33983         (s390_loop_unroll_adjust): Implement the new target hook for s390.
33984         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
33985         target hook.
33986         (decide_unroll_stupid): Likewise.
33987
33988 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33989
33990         PR target/43643
33991         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
33992
33993 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33994
33995         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
33996         (Specific, *-*-solaris2*): Likewise.
33997         Don't prefer Sun as over GNU as.
33998
33999 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
34000
34001         * config/s390/s390.c (override_options): Adjust the z10 defaults
34002         for max-unroll-times, max-completely-peeled-insns
34003         and max-completely-peel-times.
34004
34005 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34006
34007         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
34008         instructions for z10.
34009         (s390_expand_setmem): Likewise.
34010         (s390_expand_cmpmem): Likewise.
34011
34012 2010-04-08  Richard Guenther  <rguenther@suse.de>
34013
34014         PR tree-optimization/43679
34015         * tree-ssa-pre.c (eliminate): Only propagate copies.
34016
34017 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
34018
34019         PR bootstrap/43681
34020         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
34021         set but not used variable warning.
34022
34023 2010-04-08  Wei Guozhi  <carrot@google.com>
34024
34025         PR target/41653
34026         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
34027         (arm_size_rtx_costs): Call the new function when optimized for size.
34028
34029 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
34030
34031         PR debug/43670
34032         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
34033         op0 is not a MEM, just return NULL instead of assertion
34034         failure.
34035         (discover_nonconstant_array_refs): Don't walk debug stmts.
34036
34037 2010-04-08  Doug Kwan  <dougkwan@google.com>
34038
34039         * configure.ac: Recognize gold and do not use its version number
34040         to test ld features.
34041         * configure: Regenerate.
34042
34043 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
34044
34045         PR middle-end/40815
34046         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
34047         (negate_value): Move code to push elements to broken_up_substracts ...
34048         (eliminate_plus_minus_pair): ... here.  Push operands that have no
34049         negative pair to plus_negates.
34050         (repropagate_negates, init_reassoc, fini_reassoc): Update.
34051
34052 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34053
34054         * doc/install.texi (Configuration): Move description of
34055         --enable-lto, --with-libelf*, --enable-gold from Java section to
34056         general section.
34057
34058         * doc/generic.texi (Working with declarations)
34059         (Function Properties, C and C++ Trees): Fix typos.
34060         * doc/sourcebuild.texi (Top Level): Likewise.
34061
34062 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
34063
34064         PR c/18624
34065         * tree.h (DECL_READ_P): Define.
34066         (struct tree_decl_common): Add decl_read_flag.
34067         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
34068         a set but not used warning.
34069         (merge_decls): Merge DECL_READ_P flag.
34070         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
34071         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
34072         * c-common.c (handle_used_attribute, handle_unused_attribute):
34073         Likewise.
34074         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
34075         New prototypes.
34076         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
34077         New functions.
34078         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
34079         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
34080         c_parser_binary_expression, c_parser_cast_expression,
34081         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
34082         Call default_function_array_read_conversion instead of
34083         default_function_array_conversion where needed.
34084         (c_parser_unary_expression, c_parser_conditional_expression,
34085         c_parser_postfix_expression_after_primary, c_parser_initelt):
34086         Likewise.  Call mark_exp_read where needed.
34087         (c_parser_statement_after_labels, c_parser_asm_operands,
34088         c_parser_typeof_specifier, c_parser_sizeof_expression,
34089         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
34090         where needed.
34091         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
34092         New.
34093         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
34094         (warn_unused_but_set_parameter): Default to warn_unused
34095         && extra_warnings.
34096         * doc/invoke.texi: Document -Wunused-but-set-variable and
34097         -Wunused-but-set-parameter.
34098
34099         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
34100         used count variable.
34101         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
34102         when operandN variables aren't used in the body of the expander
34103         or splitter.
34104         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
34105         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
34106         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
34107         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
34108         FOR_EACH_IMM_USE_ON_STMT): Likewise.
34109         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
34110         * tree.c (PROCESS_ARG): Likewise.
34111
34112 2010-04-07  Simon Baldwin  <simonb@google.com>
34113
34114         * diagnostic.h (diagnostic_override_option_index): New macro to
34115         set a diagnostic's option_index.
34116         * c-tree.h (c_cpp_error): Add warning reason argument.
34117         * opts.c (_warning_as_error_callback): New.
34118         (register_warning_as_error_callback): Store callback for
34119         warnings enabled via enable_warning_as_error.
34120         (enable_warning_as_error): Call callback, minor code tidy.
34121         * opts.h (register_warning_as_error_callback): Declare.
34122         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
34123         response to -Werror=.
34124         (c_common_init_options): Register warning_as_error_callback in opts.c.
34125         * common.opt: Add -Wno-cpp option.
34126         * c-common.c (struct reason_option_codes_t): Map cpp warning
34127         reason codes to gcc option indexes.
34128         * (c_option_controlling_cpp_error): New function, lookup the gcc
34129         option index for a cpp warning reason code.
34130         * (c_cpp_error): Add warning reason argument, call
34131         c_option_controlling_cpp_error for diagnostic_override_option_index.
34132         * doc/invoke.texi: Document -Wno-cpp.
34133
34134 2010-04-07  Richard Guenther  <rguenther@suse.de>
34135
34136         * ipa-reference.c (mark_load): Use get_base_address.
34137         (mark_store): Likewise.
34138
34139         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
34140         inserting GIMPLE_NOPs into the IL.
34141         * tree-ssa-structalias.c (get_constraint_for_component_ref):
34142         Explicitly strip handled components and indirect references.
34143
34144         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
34145         folding address expressions.
34146         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
34147         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
34148         operand_equal_p to compare decls.
34149         (ptr_deref_may_alias_decl_p): Likewise.
34150         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
34151         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
34152         Handle reversed comparison ops.
34153         * tree-sra.c (asm_visit_addr): Use get_base_address.
34154         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
34155         * ipa-reference.c (mark_address): Use get_base_address.
34156
34157 2010-04-07  Richard Guenther  <rguenther@suse.de>
34158
34159         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
34160         Propagate constants everywhere.
34161
34162 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
34163
34164         PR debug/43516
34165         * tree.c (MAX_INT_CACHED_PREC): Define.
34166         (nonstandard_integer_type_cache): New array.
34167         (build_nonstandard_integer_type): Cache results for precision
34168         <= MAX_INT_CACHED_PREC.
34169
34170 2010-04-07  Richard Guenther  <rguenther@suse.de>
34171
34172         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
34173         -fargument-noalias-global, -fargument-noalias-anything): Remove.
34174         * common.opt: Likewise.
34175         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
34176         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
34177         (nonoverlapping_memrefs_p): Likewise.
34178         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
34179         * opts.c (common_handle_option): Handle OPT_fargument_alias,
34180         OPT_fargument_noalias, OPT_fargument_noalias_anything and
34181         OPT_fargument_noalias_global for backward compatibility.
34182
34183 2010-04-07  Richard Guenther  <rguenther@suse.de>
34184
34185         PR tree-optimization/43270
34186         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
34187         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
34188         * tree-ssa-pre.c (phi_translate_1): Adjust.
34189         (fully_constant_expression): Split out vn_reference handling to ...
34190         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
34191         Fold reads from constant strings.
34192         (vn_reference_lookup): Handle fully constant references.
34193         (vn_reference_lookup_pieces): Likewise.
34194         * Makefile.in (expmed.o-warn): Add -Wno-error.
34195
34196 2010-04-07  Martin Jambor  <mjambor@suse.cz>
34197
34198         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
34199
34200 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
34201
34202         PR driver/41594
34203         * gcc.c: Add -static-libstdc++ to list of recognized options.
34204
34205 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34206
34207         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
34208
34209 2010-04-07  Richard Guenther  <rguenther@suse.de>
34210
34211         PR middle-end/42617
34212         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
34213         bases build simple mem attributes to retain points-to information.
34214
34215 2010-04-07  Richard Guenther  <rguenther@suse.de>
34216
34217         PR middle-end/42617
34218         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
34219         preserve points-to related information.
34220
34221 2010-04-07  Richard Guenther  <rguenther@suse.de>
34222
34223         PR middle-end/42617
34224         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
34225         discard plain indirect references.
34226         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
34227         * tree.c (tree_nop_conversion): Likewise.
34228
34229 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
34230
34231         PR debug/43628
34232         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
34233
34234 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
34235
34236         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
34237         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
34238
34239 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
34240
34241         * tree-if-conv.c: Fix indentation and comments.
34242
34243 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
34244
34245         * tree-if-conv.c: Sort static functions in topological order.
34246
34247 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
34248
34249         * tree-if-conv.c: Fix indentation and comments.
34250
34251 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34252
34253         PR middle-end/43519
34254         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
34255         lang_hooks.types.type_for_size instead of
34256         build_nonstandard_integer_type.
34257         When converting an unsigned type to signed, double its precision.
34258         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
34259         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
34260         (graphite_create_new_loop_guard): When ub + 1 wraps around,
34261         use lb <= ub.
34262
34263 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34264
34265         PR middle-end/43519
34266         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
34267         POINTER_PLUS_EXPR for pointer types.
34268
34269 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34270
34271         PR middle-end/43519
34272         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
34273         * graphite-clast-to-gimple.c: Include langhooks.h.
34274         (max_signed_precision_type): New.
34275         (max_precision_type): Takes two types as arguments.
34276         (precision_for_value): New.
34277         (precision_for_interval): New.
34278         (gcc_type_for_interval): New.
34279         (gcc_type_for_value): New.
34280         (gcc_type_for_clast_term): New.
34281         (gcc_type_for_clast_red): New.
34282         (gcc_type_for_clast_bin): New.
34283         (gcc_type_for_clast_expr): Split up into several functions.
34284         (gcc_type_for_clast_eq): Rewritten.
34285         (compute_bounds_for_level): New.
34286         (compute_type_for_level_1): New.
34287         (compute_type_for_level): New.
34288         (gcc_type_for_cloog_iv): Removed.
34289         (gcc_type_for_iv_of_clast_loop): Rewritten.
34290         (graphite_create_new_loop): Compute the lower and upper bound types
34291         with gcc_type_for_clast_expr.
34292         (graphite_create_new_loop_guard): Same.
34293         (find_cloog_iv_in_expr): Removed.
34294         (compute_cloog_iv_types_1): Removed.
34295         (compute_cloog_iv_types): Removed.
34296         (gloog): Do not call compute_cloog_iv_types.
34297         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
34298         GBB_CLOOG_IV_TYPES.
34299         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
34300         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
34301         (GBB_CLOOG_IV_TYPES): Removed.
34302
34303 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34304
34305         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
34306         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
34307         (detect_commutative_reduction): Same.
34308
34309 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34310
34311         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
34312         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
34313         argument.
34314         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
34315         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
34316         (rewrite_commutative_reductions_out_of_ssa): Same.
34317         * passes.c (execute_function_todo): Call verify_ssa for every pass
34318         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
34319         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
34320         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
34321         with an extra argument.
34322         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
34323         verify_ssa only when the extra argument is true.
34324         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
34325         with an extra argument.
34326         (tree_transform_and_unroll_loop): Same.
34327
34328 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34329
34330         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
34331         for all the passes of the LNO having LOOP_CLOSED_SSA.
34332         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
34333         * tree-loop-distribution.c (pass_loop_distribution): Same.
34334         * tree-pass.h (TODO_verify_loops): Removed.
34335         * tree-ssa-loop.c (pass_tree_loop_init): Same.
34336         (pass_lim): Same.
34337         (pass_tree_unswitch): Same.
34338         (pass_predcom): Same.
34339         (pass_vectorize): Same.
34340         (pass_linear_transform): Same.
34341         (pass_graphite_transforms): Same.
34342         (pass_iv_canon): Same.
34343         (pass_complete_unroll): Same.
34344         (pass_complete_unrolli): Same.
34345         (pass_parallelize_loops): Same.
34346         (pass_loop_prefetch): Same.
34347         (pass_iv_optimize): Same.
34348
34349 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
34350
34351         PR middle-end/32824
34352         * passes.c (init_optimization_passes): Move pass_lim before
34353         pass_copy_prop and pass_dce_loop.
34354
34355 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
34356
34357         PR target/43667
34358         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
34359         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
34360         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
34361         MULTI_* defines for 4 argument vpermil2p* builtins.
34362
34363 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
34364
34365         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
34366         * config/i386/i386.c (x86_maybe_negate_const_int): New.
34367         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
34368         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
34369         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
34370         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
34371         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
34372         Use x86_maybe_negate_const_int to output insn mnemonic.
34373         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
34374         check from instruction predicate.  Update comments.
34375         * config/i386/sync.md (sync_add<mode>): Use
34376         x86_maybe_negate_const_int to output insn mnemonic.
34377
34378 2010-04-06  Jan Hubicka  <jh@suse.cz>
34379
34380         PR tree-optimization/42906
34381         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
34382         IGNORE_SELF argument.  Set visited_control_parents for fully
34383         processed BBs.
34384         (find_obviously_necessary_stmts): Update call of
34385         mark_control_dependent_edges_necessary.
34386         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
34387
34388 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
34389
34390         * config/i386/i386.md: Remove comment about 'e' and 'E'
34391         operand modifier.
34392
34393 2010-04-06  Richard Guenther  <rguenther@suse.de>
34394
34395         PR tree-optimization/43627
34396         * tree-vrp.c (extract_range_from_unary_expr): Widenings
34397         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
34398         not varying.
34399
34400 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
34401
34402         * BASE-VER: Change to 4.6.0.
34403
34404         PR target/43638
34405         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
34406         handling.
34407
34408 2010-04-06  Richard Guenther  <rguenther@suse.de>
34409
34410         PR middle-end/43661
34411         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
34412
34413 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34414
34415         * doc/invoke.texi (Optimize Options): Document that LTO
34416         won't remove object access purely due to incompatible
34417         declarations.
34418
34419 2010-04-04  Matthias Klose  <doko@ubuntu.com>
34420
34421         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
34422         Initialize variable.
34423
34424 2010-04-03  Richard Guenther  <rguenther@suse.de>
34425
34426         PR middle-end/42509
34427         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
34428         require a non-NULL MEM_OFFSET.
34429
34430 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
34431
34432         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
34433         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
34434         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
34435         config/alpha/predicates.md, config/arm/arm.md,
34436         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
34437         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
34438         config/darwin9.h, config/darwin.c, config/darwin.h,
34439         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
34440         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
34441         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
34442         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
34443         config/mips/mips.md, config/mn10300/mn10300.c,
34444         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
34445         config/rs6000/aix.h, config/rs6000/dfp.md,
34446         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
34447         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
34448         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
34449         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
34450         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
34451         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
34452         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
34453         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
34454         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
34455         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
34456         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
34457         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
34458         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
34459         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
34460         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
34461         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
34462         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
34463         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
34464         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
34465         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
34466         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
34467         opt-functions.awk, opth-gen.awk, params.def, passes.c,
34468         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
34469         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
34470         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
34471         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
34472         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
34473         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
34474         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
34475         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
34476         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
34477         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
34478         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
34479         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
34480         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
34481         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
34482
34483 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34484
34485         PR other/43620
34486         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
34487         * aclocal.m4: Regenerate.
34488
34489 2010-04-02  Richard Guenther  <rguenther@suse.de>
34490
34491         PR tree-optimization/43629
34492         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
34493         if we have seen a constant value.
34494
34495 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
34496
34497         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
34498
34499 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
34500
34501         PR target/43469
34502         * arm.c (legitimize_tls_address): Adjust call to
34503         gen_tls_load_dot_plus_four.
34504         (arm_note_pic_base): New function.
34505         (arm_cannot_copy_insn_p): Use it.
34506         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
34507         constraint.
34508
34509 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34510
34511         PR bootstrap/43531
34512
34513         Revert:
34514         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34515
34516         * Makefile.in ($(out_object_file)): Depend on
34517         gt-$(basename $(notdir $(out_file))).h.
34518
34519 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
34520
34521         * config.gcc (lm32-*-rtems*): Add t-lm32.
34522
34523 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
34524
34525         * config.gcc: Add lm32-*-rtems*.
34526         * config/lm32/rtems.h: New file.
34527
34528 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
34529
34530         PR target/42609
34531         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
34532
34533 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
34534
34535         * dwarf2out.c (output_compilation_unit_header): For
34536         -gdwarf-4 use version 4 instead of version 3.
34537         (output_line_info): For version 4 and above emit additional
34538         maximum ops per insn header field.
34539         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
34540
34541         * dwarf2out.c (is_c_family, is_java): Remove.
34542         (lower_bound_default): New function.
34543         (add_bound_info, gen_descr_array_type_die): Use it.
34544
34545 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
34546
34547         PR debug/43325
34548         * dwarf2out.c (gen_variable_die): Allow debug info for variable
34549         re-declaration when it happens in a function.
34550
34551 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
34552
34553         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
34554         (cgraph_remove_function_insertion_hook): Same.
34555         (cgraph_call_function_insertion_hooks): Same.
34556
34557 2010-04-01  Richard Guenther  <rguenther@suse.de>
34558
34559         PR middle-end/43614
34560         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
34561         and TREE_THIS_VOLATILE.
34562         (copy_ref_info): Likewise.
34563         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
34564         * tree.c (build6_stat): Ignore side-effects of all but arg5
34565         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
34566         TARGET_MEM_REF.
34567
34568 2010-04-01  Richard Guenther  <rguenther@suse.de>
34569
34570         PR tree-optimization/43607
34571         * ipa-type-escape.c (check_call): Do not access non-existing
34572         arguments.
34573
34574 2010-04-01  Richard Guenther  <rguenther@suse.de>
34575
34576         PR middle-end/43602
34577         Revert
34578         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34579                     Jack Howarth  <howarth@bromo.med.uc.edu>
34580
34581         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34582         variables TLS.
34583
34584 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34585
34586         * doc/install.texi (Prerequisites): Document libelf usability on
34587         IRIX 5/6 and Solaris 2.
34588         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
34589         Update GNU as, GNU ld requirements.
34590         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
34591         Document Sun Studio compiler download.
34592         Update and simplify as, ld recommendations.
34593         (Specific, *-*-solaris2.7): Note obsoletion, removal.
34594
34595 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34596
34597         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
34598         with_tune_32 to pentium4.
34599
34600 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
34601
34602         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
34603
34604 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34605
34606         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
34607         obsoletion, removal.
34608         Update IDO URL.
34609         Document GNU as requirement.
34610         Update configure requirements.
34611         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
34612         Recomment IRIX 6.5.18+.
34613         Document IDF/IDL requirement.
34614         Document GNU as requirement.
34615         Document GNU ld bootstrap failure.
34616         Remove freeware.sgi.com reference.
34617
34618 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34619
34620         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
34621         UNIX V4.0, V5.0 obsoletion, removal.
34622         Remove --with-gc=simple reference.
34623         Update VM requirements during bootstrap.
34624         Remove -oldas bootstrap description.
34625         Update binutils reference.
34626         Remove comparison failure note.
34627
34628 2010-03-31  Richard Guenther  <rguenther@suse.de>
34629             Zdenek Dvorak  <ook@ucw.cz>
34630             Sebastian Pop  <sebastian.pop@amd.com>
34631
34632         PR middle-end/43464
34633         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
34634         with multiple arguments.
34635         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
34636
34637 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34638
34639         * graphite-dependences.c (print_pddr): Call print_pdr with an
34640         extra argument.
34641         * graphite-poly.c (debug_pdr): Add an extra argument for the
34642         verbosity level.
34643         (print_pdr): Same.
34644         (print_pbb_domain): Same.
34645         (print_pbb): Same.
34646         (print_scop_context): Same.
34647         (print_scop): Same.
34648         (print_cloog): Same.
34649         (debug_pbb_domain): Same.
34650         (debug_pbb): Same.
34651         (print_pdrs): Same.
34652         (debug_pdrs): Same.
34653         (debug_scop_context): Same.
34654         (debug_scop): Same.
34655         (debug_cloog): Same.
34656         (print_scop_params): Same.
34657         (debug_scop_params): Same.
34658         (print_iteration_domain): Same.
34659         (print_iteration_domains): Same.
34660         (debug_iteration_domain): Same.
34661         (debug_iteration_domains): Same.
34662         (print_scattering_function): Same.
34663         (print_scattering_functions): Same.
34664         (debug_scattering_function): Same.
34665         (debug_scattering_functions): Same.
34666         * graphite-poly.h (debug_pdr): Update declaration.
34667         (print_pdr): Same.
34668         (print_pbb_domain): Same.
34669         (print_pbb): Same.
34670         (print_scop_context): Same.
34671         (print_scop): Same.
34672         (print_cloog): Same.
34673         (debug_pbb_domain): Same.
34674         (debug_pbb): Same.
34675         (print_pdrs): Same.
34676         (debug_pdrs): Same.
34677         (debug_scop_context): Same.
34678         (debug_scop): Same.
34679         (debug_cloog): Same.
34680         (print_scop_params): Same.
34681         (debug_scop_params): Same.
34682         (print_iteration_domain): Same.
34683         (print_iteration_domains): Same.
34684         (debug_iteration_domain): Same.
34685         (debug_iteration_domains): Same.
34686         (print_scattering_function): Same.
34687         (print_scattering_functions): Same.
34688         (debug_scattering_function): Same.
34689         (debug_scattering_functions): Same.
34690
34691 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34692
34693         * graphite-poly.c (print_scattering_function_1): New.
34694         (print_scattering_function): Call it.
34695         (print_scop_params): Remove spaces at the end of lines.
34696         (print_cloog): New.
34697         (debug_cloog): New.
34698         * graphite-poly.h (print_cloog): Declared.
34699         (debug_cloog): Declared.
34700
34701 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34702
34703         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
34704         in loop->header.
34705         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
34706         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
34707         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
34708         to switch between adding the IV bump in loop->latch or in loop->header.
34709
34710 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34711
34712         * graphite-poly.c (print_scattering_function): Pretty print following
34713         the scoplib format.
34714         (print_pdr): Same.
34715         (print_pbb_domain): Same.
34716         (dump_gbb_cases): Same.
34717         (dump_gbb_conditions): Same.
34718         (print_pdrs): Same.
34719         (print_pbb): Same.
34720         (print_scop_params): Same.
34721         (print_scop_context): Same.
34722         (print_scop): Same.
34723         (print_pbb_body): New.
34724         (lst_indent_to): New.
34725         (print_lst): Start new lines with a #.
34726         * graphite-poly.h (pbb_bb): New.
34727         (pbb_index): Use pbb_bb.
34728         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
34729         disjuncts.
34730         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
34731
34732 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34733
34734         * dwarf2out.c (size_of_die): For -gdwarf-4 use
34735         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
34736         and 0 instead of 1 for dw_val_class_flag.
34737         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
34738         dw_val_class_range_list, dw_val_class_loc_list,
34739         dw_val_class_lineptr and dw_val_class_macptr, use
34740         DW_FORM_flag_present for dw_val_class_flag and
34741         DW_FORM_exprloc for dw_val_class_loc.
34742         (output_die): For -gdwarf-4 print dw_val_class_loc
34743         size as uleb128 instead of 1 or 2 bytes and don't print
34744         anything for dw_val_class_flag.
34745
34746         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
34747         instead of cselib_lookup following by tweaking locs->setting_insn.
34748
34749         PR bootstrap/43596
34750         * cselib.c (cselib_process_insn): Clear cselib_current_insn
34751         even before returning from label, setjmp call or volatile asm
34752         handling.
34753
34754 2010-03-31  Richard Guenther  <rguenther@suse.de>
34755
34756         PR middle-end/43600
34757         * cgraphunit.c (cgraph_output_in_order): Do not allocate
34758         temporary data on stack.
34759
34760 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34761
34762         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
34763         (PUSHSECTION_ASM_OP): Remove.
34764         (POPSECTION_ASM_OP): Remove.
34765         (PUSHSECTION_FORMAT): Remove.
34766         * config/sol2.h (PUSHSECTION_FORMAT): Define.
34767         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
34768         * config/sol2.c (solaris_output_init_fini): Use it.
34769
34770 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34771
34772         PR 43574
34773         * opt-functions.awk (var_type_struct): Use signed char type
34774         for simple variables.
34775
34776 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34777
34778         * config/sol2.c: Include output.h.
34779         (solaris_assemble_visibility): New function.
34780         * config/t-sol2 (sol2.o): Add output.h dependency.
34781         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
34782         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
34783         Redefine.
34784
34785 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34786
34787         PR target/43580
34788         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
34789         V2SImode or XFmode on PRE_DEC.
34790
34791         PR debug/43557
34792         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
34793         BLKmode.
34794
34795 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34796
34797         PR 43562
34798         * reload.h (caller_save_initialized_p): Declare.
34799         * toplev.c (backend_init_target): Don't call
34800         init_caller_save but set caller_save_initialized_p to false.
34801         * caller-save.c (caller_save_initialized_p): Define.
34802         (init_caller_save): Check caller_save_initialized_p.
34803         * ira.c (ira): Call init_caller_save if flag_caller_saves.
34804
34805 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34806
34807         PR target/39048
34808         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
34809         and soft-fp/t-softfp to tmake_file.
34810         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
34811         (LIBGCC2_TF_CEXT): Define.
34812         (TF_SIZE): Define.
34813
34814 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
34815
34816         PR debug/42977
34817         * cselib.c (n_useless_values): Document handling of debug locs.
34818         (n_useless_debug_values, n_debug_values): New variables.
34819         (new_elt_loc_list): Don't add to debug values, keep count.
34820         (promote_debug_loc): New.
34821         (cselib_reset_table): Zero new variables.
34822         (entry_and_rtx_equal_p): Promote debug locs.
34823         (discard_useless_locs): Increment n_useless_debug_values for
34824         debug values.
34825         (remove_useless_values): Adjust n_useless_values and n_debug_values
34826         with n_useless_debug_values.
34827         (add_mem_for_addr): Promote debug locs.
34828         (cselib_lookup_mem): Likewise.
34829         (cselib_lookup_addr): Renamed to...
34830         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
34831         (cselib_log_lookup): ... this.  Turn into...
34832         (cselib_lookup_addr): ... new wrapper.
34833         (cselib_lookup_from_insn): New.
34834         (cselib_invalidate_regno): Increment n_useless_debug_values for
34835         debug values.
34836         (cselib_invalidate_mem): Likewise.
34837         (cselib_process_insn): Take n_deleted and n_debug_values into
34838         account to guard remove_useless_value call.
34839         (cselib_finish): Zero n_useless_debug_values.
34840         * cselib.h (cselib_lookup_from_insn): Declare.
34841         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
34842         (sched_analyze_2): Likewise.
34843
34844 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
34845
34846         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
34847         functions.
34848         (adjust_mems): Replace narrowing SUBREG of expression containing
34849         just PLUS, MINUS, MULT and ASHIFT of registers and constants
34850         with operations in the narrower mode.
34851
34852         PR debug/43593
34853         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
34854         regs_invalidated_by_call instead all call_used_reg_set registers.
34855
34856 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
34857
34858         PR middle-end/43430
34859         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
34860         pointer comparisons with types_compatible_p.
34861         * tree-vect-stmts.c (vectorizable_call): Same.
34862         (vectorizable_condition): Same.
34863
34864 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34865
34866         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
34867         stack check if the mask would be zero.
34868
34869 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34870             Jack Howarth  <howarth@bromo.med.uc.edu>
34871
34872         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34873         variables TLS.
34874
34875 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34876
34877         PR other/25232
34878         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34879         and __unordtf2.
34880         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34881         Include ___unordxf2 and ___unordtf2.
34882         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34883         GCC_4.4.0 here.
34884
34885 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34886
34887         * config/lm32/t-lm32: New file.
34888         * config.gcc: Use the above file when targetting lm32.
34889
34890 2010-03-28  Duncan Sands  <baldrick@free.fr>
34891
34892         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34893
34894 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34895
34896         PR middle-end/43431
34897         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34898         Improve vectorization cost model diagnostic.
34899
34900 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34901
34902         PR middle-end/43436
34903         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34904         compute_data_dependences_for_loop returns false, early exit
34905         and output an extra diagnostic for the failed data reference
34906         analysis.
34907
34908 2010-03-29  Richard Guenther  <rguenther@suse.de>
34909
34910         PR tree-optimization/43560
34911         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
34912         (can_sm_ref_p): Treat stores to readonly locations as trapping.
34913
34914 2010-03-29  Jie Zhang  <jie@codesourcery.com>
34915
34916         PR 43564
34917         * toplev.c (process_options): Set optimization_default_node
34918         and optimization_current_node.
34919         * opts.c (decode_options): Don't set optimization_default_node
34920         and optimization_current_node.
34921
34922 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
34923
34924         * config/rtems.h: Abandon -qrtems_debug.
34925
34926 2010-03-28  Jan Hubicka  <jh@suse.cz>
34927
34928         PR tree-optimization/43505
34929         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
34930         map should not be copied.
34931
34932 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34933
34934         PR middle-end/41674
34935         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
34936         cdtors, set DECL_PRESERVE_P.
34937         * ipa.c (cgraph_externally_visible_p): Return true if declaration
34938         should be preseved.
34939
34940 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
34941
34942         PR tree-optimization/43528
34943         * stor-layout.c (place_field): Check that constant fits into
34944         unsigned HWI when skipping calculation of MS bitfield layout.
34945
34946 2010-03-27  Jan Hubicka  <jh@suse.cz>
34947
34948         PR middle-end/43391
34949         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
34950         notice_global_symbol work.
34951
34952 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
34953
34954         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
34955         instead of dwarf2out_decl.
34956         (struct var_loc_node): Remove section_label field.
34957         (dwarf2out_function_decl): New function.
34958         (dwarf2out_var_location): Don't set section_label field.
34959         (dwarf2out_begin_function): Don't empty decl_loc_table here.
34960
34961 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
34962
34963         PR tree-optimization/43544
34964         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34965         First argument for builtin vectorized function hook is now a
34966         tree to be able to distinguish between machine specific and
34967         standard builtins.
34968         * targhooks.c (default_builtin_vectorized_function): Ditto.
34969         * targhooks.h (default_builtin_vectorized_function): Ditto.
34970         * target.h (struct gcc_target): Ditto.
34971         * tree-vect-stmts.c (vectorizable_function): Ditto.
34972         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
34973         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
34974         Ditto.
34975
34976 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
34977
34978         PR c/43381
34979         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
34980         nested binding iff it is a FUNCTION_DECL.
34981         (store_parm_decls_newstyle): Pass nested=true to bind for
34982         FUNCTION_DECLs amongst parameters.
34983
34984 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34985
34986         * var-tracking.c (vt_expand_loc_callback): Don't run
34987         cselib_expand_value_rtx_cb in dummy mode if
34988         cselib_dummy_expand_value_rtx_cb returned false.
34989
34990         * var-tracking.c (emit_note_insn_var_location): For one part
34991         notes with offset 0, don't add EXPR_LIST around the location.
34992         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
34993         add_location_or_const_value_attribute): Adjust for that change.
34994
34995         PR debug/43540
34996         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
34997         into first operand and location into second.
34998         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
34999         dw_cfi_oprnd_loc for DW_CFA_expression.
35000         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
35001         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
35002         assume first argument is regnum and second argument is location.
35003
35004 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
35005
35006         PR target/42113
35007         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
35008         of scratch register to DImode.  Split to DImode comparison operator.
35009         Use SImode subreg of scratch register in the multiplication.
35010         (*cmp_sadd_sidi): Ditto.
35011         (*cmp_ssub_si): Ditto.
35012         (*cmp_ssub_sidi): Ditto.
35013
35014 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
35015
35016         PR target/43524
35017         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
35018         Remove invalid assert and wrong comment.
35019
35020 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
35021
35022         PR debug/43516
35023         * flags.h (final_insns_dump_p): New extern.
35024         * final.c (final_insns_dump_p): New variable.
35025         (rest_of_clean_state): Set it before -fdump-final-insns=
35026         dumping, clear afterwards.
35027         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
35028         MEM_ALIAS_SET on MEMs.
35029
35030 2010-03-26  David S. Miller  <davem@davemloft.net>
35031
35032         * configure.ac: Fix sparc GOTDATA_OP bug check.
35033         * configure: Rebuild.
35034
35035 2010-03-26  Alan Modra  <amodra@gmail.com>
35036
35037         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
35038
35039 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35040
35041         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
35042         TLS_SECTION_ASM_FLAG.
35043
35044 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
35045
35046         PR bootstrap/43511
35047         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
35048         Clear first_function_block_is_cold.
35049
35050         PR c/43385
35051         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
35052         argument if the argument is truth_value_p.
35053
35054 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
35055
35056         * config/rs6000/constraints.md: Update copyright year for my changes.
35057
35058         PR target/43484
35059         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
35060         used in reg+reg addressing, swap registers.
35061
35062 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
35063
35064         PR debug/43293
35065         * target.h (struct gcc_target): Add code_end hook.
35066         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
35067         if not yet defined.
35068         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
35069         * toplev.c (compile_file): Call targetm.asm_out.code_end
35070         hook before unwind info/debug info output.
35071         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
35072         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
35073         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
35074         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
35075         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
35076         * config/i386/i386.c (ix86_file_end): Renamed to...
35077         (ix86_code_end): ... this.  Make static.  Don't call
35078         file_end_indicate_exec_stack.  Emit unwind info using
35079         final_start_function/final_end_function.
35080         (darwin_x86_file_end): Remove.
35081         (TARGET_ASM_CODE_END): Define.
35082         * config/i386/i386.h (TARGET_ASM_FILE_END,
35083         NEED_INDICATE_EXEC_STACK): Don't define.
35084         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
35085         (TARGET_ASM_FILE_END): Define to darwin_file_end.
35086         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
35087         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
35088
35089         PR target/43498
35090         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
35091         at the beginning and final_end_function at the end.
35092         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
35093
35094 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35095
35096         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
35097         and Sun as TLS syntax.
35098         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
35099         * configure: Regenerate.
35100         * config.in: Regenerate.
35101         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
35102         (default_elf_asm_named_section): Use it.
35103         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
35104         (i386_output_dwarf_dtprel): Likewise.
35105         (output_addr_const_extra): Likewise.
35106         (output_pic_addr_const): Lowercase @GOTTPOFF.
35107         (output_addr_const_extra): Likewise.
35108         (output_pic_addr_const): Lowercase @GOTNTPOFF.
35109         (output_addr_const_extra): Likewise.
35110         (output_pic_addr_const): Lowercase @INDNTPOFF.
35111         (output_addr_const_extra): Likewise.
35112         (output_pic_addr_const): Lowercase @NTPOFF.
35113         (output_addr_const_extra): Likewise.
35114         (output_pic_addr_const): Lowercase @TPOFF.
35115         (output_addr_const_extra): Likewise.
35116         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
35117         (*tls_global_dynamic_64): Likewise.
35118         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
35119         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
35120
35121         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
35122         (ASM_OUTPUT_TLS_COMMON): Use it.
35123         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
35124
35125         PR target/38118
35126         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
35127         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
35128         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
35129         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
35130         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
35131         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
35132
35133 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35134
35135         * config/i386/i386.c (override_options): Don't accept
35136         -mtls-dialect=sun any longer.
35137         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
35138         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
35139         (*tls_local_dynamic_base_32_sun): Likewise.
35140         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
35141
35142 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
35143
35144         PR debug/43508
35145         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
35146         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
35147
35148         PR debug/43479
35149         * ira.c (adjust_cleared_regs): New function.
35150         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
35151
35152         PR debug/19192
35153         PR debug/43479
35154         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
35155         from gimple_block.
35156         * expr.c (expand_expr_real): Restore previous
35157         curr_insn_source_location and curr_insn_block after
35158         expand_expr_real_1 call.
35159         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
35160         instead of expand_expr_real_1.
35161
35162 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
35163
35164         PR rtl-optimization/43413
35165         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
35166         hard regs too.
35167
35168 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
35169
35170         PR target/43348
35171         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
35172         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
35173
35174 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
35175
35176         * config/i386/i386.c (ix86_target_string): Add -mfma.
35177         Fix a typo in comment.
35178
35179 2010-03-22  Mike Stump  <mikestump@comcast.net>
35180
35181         PR target/23071
35182         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
35183         Don't overly align based upon packed packed fields.
35184
35185 2010-03-22  Jason Merrill  <jason@redhat.com>
35186
35187         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
35188         Use () rather than [], and move before the element type.
35189
35190 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35191
35192         * doc/configfiles.texi (Configuration Files): Removed
35193         fixinc/Makefile*, intl/Makefile.*.
35194         * doc/makefile.texi: Fixed markup. Abstract from version
35195         control system used.
35196         (Makefile): Removed obsolete java/parse.y example.
35197         * doc/sourcebuild.texi: Likewise.
35198         (Top Level): Added config, gnattools, libdecnumber, libgcc,
35199         libgomp, libssp.  Removed fastjar.
35200         (Miscellaneous Docs): Clarify location.
35201         Added COPYING3, COPYING3.LIB.
35202         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
35203
35204 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35205
35206         PR target/38085
35207         * config/i386/i386.c (x86_function_profiler)
35208         [!NO_PROFILE_COUNTERS]: Fix typo.
35209         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
35210         instead of callq.
35211
35212 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
35213             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35214
35215         * doc/sourcebuild.texi (Test Directives): Split into six
35216         subsections, with most of the current text in new subsections
35217         Directives, Selectors, and Final Actions.
35218         (Directives): Split list of test directives into multiple
35219         subsubsections.
35220         (Selectors): Describe use and syntax of selectors.
35221         (Effective-Target Keywords): Describe all existing keywords.
35222         (Add Options): Describe features for dg-add-options.
35223         (Require Support): Describe variants of dg-require-support.
35224         (Final Actions): Describe commands to use in dg-final.
35225
35226 2010-03-22  Michael Matz  <matz@suse.de>
35227
35228         PR middle-end/43475
35229         * recog.c (validate_replace_rtx_group): Replace also in
35230         REG_EQUAL and REG_EQUIV notes.
35231
35232 2010-03-22  Richard Guenther  <rguenther@suse.de>
35233
35234         PR tree-optimization/43390
35235         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
35236         sure vector extracts are type correct.
35237
35238 2010-03-22  Richard Guenther  <rguenther@suse.de>
35239
35240         PR middle-end/40106
35241         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
35242         x * sqrt (x) even when optimizing for size if the target
35243         has native support for sqrt.
35244
35245 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
35246
35247         * varasm.c (make_decl_rtl_for_debug): Also clear
35248         flag_mudflap for the duration of make_decl_rtl call.
35249
35250         PR debug/43443
35251         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
35252         locs from preserved VALUEs.
35253
35254 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35255
35256         PR middle-end/42718
35257         * pa.md (movmemsi): Set align to one if zero.
35258         (movmemdi): Likewise.
35259
35260 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
35261
35262         PR target/42321
35263         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
35264         with their corresponding prologue pushes.
35265
35266 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
35267
35268         PR target/43156
35269         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
35270         at the begining or end.
35271         (spu_expand_epilogue): Likewise.
35272
35273 2010-03-20  Richard Guenther  <rguenther@suse.de>
35274
35275         PR rtl-optimization/43438
35276         * combine.c (make_extraction): Properly zero-/sign-extend an
35277         extraction of the low part of a CONST_INT.  Also handle
35278         CONST_DOUBLE.
35279
35280 2010-03-19  Mike Stump  <mikestump@comcast.net>
35281
35282         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
35283         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
35284         (override_options): Use SUBTARGET32_DEFAULT_CPU.
35285
35286 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35287
35288         PR c/43211
35289         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
35290         an error.
35291
35292 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
35293
35294         PR rtl-optimization/42258
35295         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
35296         use that may match DEF.
35297
35298         PR target/40697
35299         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
35300         the cost of loading the constant rather than assuming
35301         COSTS_N_INSNS (1).
35302         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
35303         outer code is AND, do the same tests as the andsi3 expander and
35304         return COSTS_N_INSNS (1) if and is cheap.
35305
35306         * optabs.c (avoid_expensive_constant): Fix formatting.
35307
35308 2010-03-19  Michael Matz  <matz@suse.de>
35309
35310         PR c++/43116
35311         * attribs.c (decl_attributes): When rebuilding a function pointer
35312         type use the same qualifiers as the original pointer type.
35313
35314 2010-03-19  Martin Jambor  <mjambor@suse.cz>
35315
35316         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
35317         and is_gimple_ip_invariant_address.
35318
35319 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35320
35321         Revert
35322         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35323
35324         * config/arm/arm.c (arm_override_options): Turn off
35325         flag_dwarf2_cfi_asm for AAPCS variants.
35326
35327 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35328
35329         PR target/43399
35330         * config/arm/arm.c (emit_multi_reg_push): Update comments.
35331         Use PRE_MODIFY instead of PRE_DEC.
35332         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
35333         (vfp_emit_fstmd): Likewise.
35334
35335 2010-03-19  Michael Matz  <matz@suse.de>
35336
35337         PR target/43305
35338         * builtins.c (expand_builtin_interclass_mathfn,
35339         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
35340         if that fails.
35341
35342 2010-03-19  Richard Guenther  <rguenther@suse.de>
35343
35344         PR tree-optimization/43415
35345         * tree-ssa-pre.c (phi_translate): Split out worker to ...
35346         (phi_translate_1): ... this.
35347         (phi_translate): Move all caching here.  Cache all NARY
35348         and REFERENCE translations.
35349
35350 2010-03-19  David S. Miller  <davem@davemloft.net>
35351
35352         With help from Eric Botcazou.
35353         * config/sparc/sparc.c: Include dwarf2out.h.
35354         (emit_pic_helper): Delete.
35355         (pic_helper_symbol_name): Delete.
35356         (pic_helper_emitted_p): Delete.
35357         (pic_helper_needed): New.
35358         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
35359         (get_pc_thunk_name): New.
35360         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
35361         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
35362         Set pic_helper_needed to true.  Don't call emit_pic_helper.
35363         (sparc_expand_prologue): Update load_pic_register call.
35364         (sparc_output_mi_thunk): Likewise.
35365         (sparc_file_end): Emit a hidden comdat symbol for the PIC
35366         thunk if possible.  Output CFI information as needed.
35367
35368 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
35369             Jack Howarth  <howarth@bromo.med.uc.edu>
35370
35371         PR target/36399
35372         * config/i386/i386.h: Fix ABI on darwin x86-32.
35373
35374 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
35375
35376         * tree.h: Declare make_decl_rtl_for_debug.
35377         * varasm.c (make_decl_rtl_for_debug): New.
35378         * dwarf2out.c (rtl_for_decl_location): Call it.
35379         * cfgexpand.c (expand_debug_expr): Call it.
35380
35381 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
35382
35383         PR bootstrap/43399
35384         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
35385         mem_mode.
35386
35387         PR bootstrap/43403
35388         * var-tracking.c (vt_init_cfa_base): Do nothing if
35389         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
35390
35391 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
35392
35393         PR debug/42873
35394         * var-tracking.c (canonicalize_vars_star): New.
35395         (dataflow_post_merge_adjust): Use it.
35396
35397 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
35398
35399         PR debug/43058
35400         * var-tracking.c (non_suitable_const): New function.
35401         (add_uses): For DEBUG_INSNs with constants, don't record any
35402         value, instead just the constant value itself.
35403         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
35404         is not VAR_LOC_UNKNOWN_P, set var to the constant.
35405         (emit_notes_in_bb): Likewise.
35406         (emit_note_insn_var_location): For onepart variables if
35407         cur_loc is a VOIDmode constant, use DECL_MODE.
35408
35409 2010-03-18  Martin Jambor  <mjambor@suse.cz>
35410
35411         PR middle-end/42450
35412         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
35413         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
35414         all non-clones.  Moved call redirection...
35415         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
35416         (cgraph_materialize_all_clones): Dispose of all
35417         combined_args_to_skip bitmaps.
35418         (verify_cgraph_node): Do not check for edges pointing to wrong
35419         nodes in inline clones.
35420         * tree-inline.c (copy_bb): Call
35421         cgraph_redirect_edge_call_stmt_to_callee.
35422         * ipa.c (cgraph_remove_unreachable_nodes): Call
35423         cgraph_node_remove_callees even when there are used clones.
35424
35425 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
35426
35427         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
35428
35429 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
35430
35431         PR target/43383
35432         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
35433         for 32bit.
35434
35435 2010-03-18  Michael Matz  <matz@suse.de>
35436
35437         PR middle-end/43419
35438         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
35439         into sqrt(x) if we need to preserve signed zeros.
35440
35441 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
35442             Eric Botcazou  <ebotcazou@adacore.com>
35443
35444         PR rtl-optimization/43360
35445         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
35446         note if we don't know its invariant status.
35447
35448 2010-03-18  Michael Matz  <matz@suse.de>
35449
35450         PR tree-optimization/43402
35451         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
35452         PHI chains of ssa names registered for update.
35453
35454 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
35455
35456         PR target/42427
35457         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
35458         non-offsettable and pre_modify update addressing.
35459         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
35460         and "2" alternatives "#".
35461         (*movdd_softfloat32): Make all alternatives "#";
35462         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
35463         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
35464         (*movdf_softfloat32): Make all alternatives "#";
35465         (movdi): Use the new DIFD mode iterator to create a common splitter
35466         for movdi, movdf and movdd patterns.
35467
35468 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
35469
35470         * common.opt (dumpdir): Remove redundant tab.
35471
35472 2010-03-17  Martin Jambor  <mjambor@suse.cz>
35473
35474         PR tree-optimization/43347
35475         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
35476         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
35477
35478 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
35479
35480         PR rtl-optimization/42216
35481         * regrename.c (create_new_chain): New function, broken out from...
35482         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
35483         appending a use to an empty chain.
35484         (build_def_use): Remove previous changes that convert OP_INOUT to
35485         OP_OUT operands; instead detect the case where an OP_INOUT operand
35486         uses a previously untracked register and create an empty chain for it.
35487
35488 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35489
35490         * doc/extend.texi (Function Attributes): Rewrite unfinished
35491         sentence in ms_abi documentation.
35492
35493 2010-03-17  Alan Modra  <amodra@gmail.com>
35494
35495         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
35496         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
35497         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
35498         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
35499
35500 2010-03-16  Richard Henderson  <rth@redhat.com>
35501
35502         PR middle-end/43365
35503         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
35504         (lower_try_finally): Save and restore eh_seq around the expansion
35505         of the try-finally.
35506
35507 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
35508
35509         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
35510         statements before splitting block.
35511
35512 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35513
35514         * doc/sourcebuild.texi (Testsuites): Fix markup.
35515         Use pathnames relative to gcc/testsuite.
35516         (Test Directives): Move description of how timeout is determined.
35517         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
35518         (C Tests): Correct gcc.misc-tests directory.
35519         Framework tests now live in gcc.test-framework.
35520
35521 2010-03-16  Richard Guenther  <rguenther@suse.de>
35522
35523         PR middle-end/43379
35524         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
35525         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
35526
35527 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
35528             Alexandre Oliva  <aoliva@redhat.com>
35529
35530         PR tree-optimization/42917
35531         * lambda-code.c (remove_iv): Skip debug statements.
35532         (lambda_loopnest_to_gcc_loopnest): Likewise.
35533         (not_interesting_stmt): Debug statements are not interesting.
35534
35535 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
35536
35537         PR debug/43051
35538         PR debug/43092
35539         * cselib.c (cselib_preserve_constants,
35540         cfa_base_preserved_val): New static variables.
35541         (preserve_only_constants): New function.
35542         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
35543         clear its REG_VALUES.  If cselib_preserve_constants, don't
35544         empty the whole hash table, but preserve there VALUEs with constants,
35545         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
35546         (cselib_preserve_cfa_base_value): New function.
35547         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
35548         (cselib_init): Change argument to int bitfield.  Set
35549         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
35550         is in it.
35551         (cselib_finish): Clear cselib_preserve_constants and
35552         cfa_base_preserved_val.
35553         * cselib.h (enum cselib_record_what): New enum.
35554         (cselib_init): Change argument to int.
35555         (cselib_preserve_cfa_base_value): New prototype.
35556         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
35557         * dse.c (dse_step1): Likewise.
35558         * cfgcleanup.c (thread_jump): Likewise.
35559         * sched-deps.c (sched_analyze): Likewise.
35560         * gcse.c (local_cprop_pass): Likewise.
35561         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
35562         If FN is non-NULL, call the callback always and whenever it returns
35563         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
35564         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
35565         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
35566         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
35567         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
35568         * var-tracking.c: Include recog.h.
35569         (bb_stack_adjust_offset): Remove.
35570         (vt_stack_adjustments): Don't call it, instead just gather the
35571         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
35572         (adjust_stack_reference): Remove.
35573         (compute_cfa_pointer): New function.
35574         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
35575         (struct adjust_mem_data): New type.
35576         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
35577         functions.
35578         (get_address_mode): New function.
35579         (replace_expr_with_values): Use it.
35580         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
35581         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
35582         (adjust_sets): Remove.
35583         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
35584         Use get_address_mode.
35585         (get_adjusted_src): Remove.
35586         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
35587         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
35588         (add_with_sets): Don't call adjust_sets.
35589         (fp_setter, vt_init_cfa_base): New functions.
35590         (vt_initialize): Change return type to bool.  Move most of pool etc.
35591         initialization to the beginning of the function from end.  Pass
35592         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
35593         If !frame_pointer_needed, call vt_stack_adjustment before mos
35594         vector is filled, call vt_init_cfa_base if argp/framep has been
35595         eliminated to sp.  If frame_pointer_needed and argp/framep has
35596         been eliminated to hard frame pointer, set
35597         hard_frame_pointer_adjustment and call vt_init_cfa_base after
35598         encountering fp setter in the prologue.  For MO_ADJUST, call
35599         log_op_type before pusing the op into mos vector, not afterwards.
35600         Call adjust_insn before cselib_process_insn/add_with_sets,
35601         call cancel_changes (0) afterwards.
35602         (variable_tracking_main_1): Adjust for vt_initialize calling
35603         vt_stack_adjustments and returning whether it succeeded or not.
35604
35605 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
35606
35607         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
35608         debug statements.
35609
35610 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
35611
35612         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
35613         has been set.
35614         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
35615         drap_reg has not been set.
35616
35617 2010-03-15  Michael Matz  <matz@suse.de>
35618
35619         PR middle-end/43300
35620         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
35621         use it to expand block copies.
35622         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
35623         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
35624         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
35625
35626 2010-03-15  Richard Guenther  <rguenther@suse.de>
35627
35628         PR tree-optimization/43367
35629         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
35630         elimination check.
35631
35632 2010-03-15  Richard Guenther  <rguenther@suse.de>
35633
35634         PR tree-optimization/43317
35635         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
35636
35637 2010-03-15  Martin Jambor  <mjambor@suse.cz>
35638
35639         PR tree-optimization/43141
35640         * tree-sra.c (create_abstract_origin): New function.
35641         (modify_function): Call create_abstract_origin.
35642
35643 2010-03-15  Chris Demetriou  <cgd@google.com>
35644
35645         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
35646         wasn't copied.
35647
35648 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35649
35650         PR middle-end/43354
35651         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
35652         call insert_out_of_ssa_copy for default definitions.
35653
35654 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35655
35656         * graphite-clast-to-gimple.c (my_long_long): Defined.
35657         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
35658         * graphite-sese-to-poly.c (my_long_long): Defined.
35659         (scop_ivs_can_be_represented): Use it.
35660
35661 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35662
35663         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
35664         graphite-max-bbs-per-function, and loop-block-tile-size.
35665         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
35666         with "maximum".
35667         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
35668
35669 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35670
35671         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
35672         forward declaration.
35673         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
35674         (add_upper_bounds_from_estimated_nit): New.
35675         (build_loop_iteration_domains): Use it.
35676
35677 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35678
35679         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
35680
35681 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35682
35683         PR middle-end/43306
35684         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
35685         should be an INTEGER_CST.  Also handle CASE_CONVERT.
35686
35687 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35688
35689         * graphite.c (graphite_initialize): To bound the number of bbs per
35690         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
35691         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
35692         * doc/invoke.texi: Document it.
35693
35694 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35695
35696         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
35697         * graphite-sese-to-poly.h (build_poly_scop): Same.
35698
35699 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35700
35701         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
35702         the number of parameters in the scop.  Use as an upper bound
35703         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
35704         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
35705         * doc/invoke.texi: Document it.
35706
35707 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
35708
35709         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
35710         * doc/c-tree.texi: Remove.
35711         * doc/generic.texi: Merge c-tree.texi here.
35712         * doc/gccint.texi (Trees): Remove menu entry.
35713         (c-tree.texi): Remove @include.
35714         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
35715         * doc/languages.texi (Reading RTL): Ditto.
35716
35717 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
35718
35719         PR target/42869
35720         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
35721
35722 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
35723
35724         PR middle-end/42431
35725         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
35726         code added to work around reload clobbering CONST insns.
35727
35728 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
35729
35730         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
35731         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
35732         (cselib_preserve_only_values): Remove retain argument, don't
35733         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
35734         * cselib.h (cselib_preserve_only_values): Remove retain argument.
35735         * var-tracking.c (micro_operation): Move insn field before union.
35736         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
35737         (struct variable_tracking_info_def): Remove n_mos field, change
35738         mos into a vector of micro_operations.
35739         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
35740         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
35741         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
35742         changing into a vector.
35743         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
35744         come before all other uops generated by add_stores.
35745         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
35746         argument removal.
35747         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
35748         a vector.  Run just one pass over the bbs instead of separate counting
35749         and computation phase.
35750         (vt_finalize): Free VTI (bb)->mos vector instead of array.
35751
35752         PR debug/43329
35753         * tree-inline.c (remap_decls): Put old_var rather than origin_var
35754         into *nonlocalized_list vector.
35755         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
35756         even if origin is non-NULL.
35757         (gen_variable_die): Likewise.
35758         (process_scope_var): Don't change origin.
35759         (gen_decl_die): Likewise.
35760         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
35761         before adding new edges instead of after it, fix moving over
35762         debug stmts.
35763
35764 2010-03-11  David S. Miller  <davem@davemloft.net>
35765
35766         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
35767         of four.
35768         * configure: Rebuild.
35769
35770 2010-03-11  Martin Jambor  <mjambor@suse.cz>
35771
35772         PR tree-optimization/43257
35773         * tree.c (assign_assembler_name_if_neeeded): New function.
35774         (free_lang_data_in_cgraph): Assembler name assignment moved to the
35775         above new function.
35776         * tree.h (assign_assembler_name_if_neeeded): Declare.
35777         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
35778         the function if needed.
35779
35780 2010-03-11  Chris Demetriou  <cgd@google.com>
35781
35782         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
35783         include/stdint-gcc.h, and include/stdint.h world-readable.
35784
35785 2010-03-11  Richard Guenther  <rguenther@suse.de>
35786
35787         PR tree-optimization/43255
35788         * tree-vrp.c (process_assert_insertions_for): Do not insert
35789         asserts for trivial conditions.
35790
35791 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35792
35793         PR tree-optimization/43280
35794         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
35795         generation.  Move calculation of size out of the if branch.
35796         (find_bswap): Modify compare number generation.
35797
35798 2010-03-11  Richard Guenther  <rguenther@suse.de>
35799
35800         PR lto/43200
35801         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
35802         (input_gimple_stmt): Fixup handled component types during
35803         operand read.  Also fix up decls in ADDR_EXPRs.
35804
35805 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
35806
35807         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
35808         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
35809
35810 2010-03-10  Jan Hubicka  <jh@suse.cz>
35811
35812         PR c/43288
35813         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
35814         * varasm.c (get_variable_section): Don't do that here...
35815         (make_decl_rtl): ... and here.
35816         (do_assemble_alias): Produce decl RTL.
35817         (assemble_alias): Likewise.
35818
35819 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35820
35821         PR debug/43290
35822         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
35823         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
35824         of fde->vdrap_reg.
35825         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
35826         (based_loc_descr): Only express drap or vdrap regno based expressions
35827         using DW_OP_fbreg when not optimizing.
35828         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
35829         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
35830         REG_CFA_SET_VDRAP note.
35831
35832 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
35833
35834         PR tree-optimization/43236
35835         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
35836         error in calculation of base address in reverse iteration case.
35837         (generate_builtin): Take number of latch executions if the statement
35838         is in the latch.
35839
35840 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
35841
35842         PR middle-end/42859
35843         * tree-eh.c: Include pointer-set.h.
35844         (lower_eh_dispatch): Filter out duplicate case labels and
35845         remove the unneeded edge when the label is unused.  Return
35846         true when some edges are removed.
35847         (execute_lower_eh_dispatch): When any lowering resulted in
35848         removing an edge, also delete unreachable blocks.
35849
35850 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35851
35852         PR bootstrap/43287
35853         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
35854         UNSPEC_MACHOPIC_OFFSET.
35855
35856 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
35857
35858         PR target/43294
35859         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
35860         (m68k_delegitimize_address): New function.
35861
35862 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
35863
35864         PR debug/43299
35865         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
35866
35867         PR debug/43299
35868         * var-tracking.c (adjust_sets): New function.
35869         (count_with_sets, add_with_sets): Use it.
35870         (get_adjusted_src): New inline function.
35871         (add_stores): Use it.
35872
35873         PR debug/43304
35874         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35875         call cselib_dummy_expand_value_rtx_cb instead of
35876         cselib_expand_value_rtx_cb.
35877
35878         PR debug/43293
35879         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35880         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35881         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35882         and .cfi_endproc around the pic thunks.
35883         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35884         all queued unwind info register saves are saved before the call.
35885         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35886         considered as sp-=4 for unwind info and the pop as sp+=4 which
35887         also clobbers dest, but doesn't actually restore it.
35888
35889         PR debug/43290
35890         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35891         RTX_FRAME_RELATED_P.
35892
35893 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35894
35895         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35896         whitespaces in output template.
35897
35898 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35899
35900         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35901         out array boundary.
35902
35903 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35904
35905         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35906         builtins.exp in a separate job.
35907
35908 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35909
35910         * graphite-sese-to-poly.c (add_param_constraints): Use
35911         lower_bound_in_type and upper_bound_in_type.
35912
35913 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35914
35915         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
35916         instead of unsigned_type_node.
35917
35918 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35919             Reza Yazdani  <reza.yazdani@amd.com>
35920
35921         PR middle-end/43065
35922         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
35923         on pointer type parameters.
35924
35925 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35926
35927         PR middle-end/42644
35928         PR middle-end/42130
35929         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
35930         handle conversions from pointer to integers.
35931         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
35932         induction variable, to be able to work with code generated by CLooG.
35933         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
35934         (build_poly_scop): Bail out if we cannot codegen a loop.
35935
35936 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35937
35938         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
35939         code generation with gloog_error.
35940
35941 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35942
35943         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
35944         Call fold_convert on all the returned values.
35945         (expand_scalar_variables_expr): Pass to
35946         expand_scalar_variables_ssa_name the type of the resulting expression.
35947
35948 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35949
35950         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
35951         ppl_min_for_le_pointset.
35952         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
35953         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
35954
35955 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35956
35957         * graphite-dependences.c (map_into_dep_poly): Removed.
35958         (dependence_polyhedron_1): Use combine_context_id_scat.
35959
35960 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35961
35962         * graphite-poly.h (struct poly_scattering): Add layout documentation.
35963         (struct poly_bb): Same.
35964         (combine_context_id_scat): New.
35965
35966 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35967
35968         PR middle-end/42326
35969         * sese.c (name_defined_in_loop_p): Return false for default
35970         definitions.
35971
35972 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35973
35974         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
35975         and clean up the logic.
35976
35977 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35978
35979         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
35980         early return.
35981
35982 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35983
35984         * var-tracking.c (remove_cselib_value_chains): Define only for
35985         ENABLE_CHECKING.
35986         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
35987         delete_slot_part, emit_notes_for_differences_1): Don't call
35988         remove_cselib_value_chains here.
35989         (set_slot_part, emit_notes_for_differences_2): Don't call
35990         add_cselib_value_chains here.
35991         (preserved_values): New vector.
35992         (preserve_value): New function.
35993         (add_uses, add_stores, vt_add_function_parameters): Use it
35994         instead of cselib_preserve_value.
35995         (changed_values_stack): New vector.
35996         (check_changed_vars_0): New function.
35997         (check_changed_vars_1, check_changed_vars_2): Use it.
35998         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
35999         changed_values_stack VALUEs.
36000         (vt_emit_notes): For all preserved_values call
36001         add_cselib_value_chains.  If ENABLE_CHECKING call
36002         remove_cselib_value_chains before verifying value_chains is empty.
36003         Initialize and free changed_values_stack.
36004         (vt_initialize): Initialize preserved_values.
36005         (vt_finalize): Free preserved_values.
36006
36007 2010-03-08  Richard Guenther  <rguenther@suse.de>
36008
36009         PR tree-optimization/43269
36010         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
36011         region detection.
36012
36013 2010-03-08  Martin Jambor  <mjambor@suse.cz>
36014
36015         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
36016         (ipa_is_param_called): Removed.
36017         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
36018         (ipa_print_node_params): Do not print the called flag.
36019         (ipa_write_node_info): Do not stream the called flag.
36020         (ipa_read_node_info): Likewise.
36021
36022 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
36023
36024         PR debug/43176
36025         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
36026         * cselib.c (struct expand_value_data): Add dummy field.
36027         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
36028         dummy to false.
36029         (cselib_dummy_expand_value_rtx_cb): New function.
36030         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
36031         any rtl.
36032         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
36033         * var-tracking.c: Include pointer-set.h.
36034         (variable): Change n_var_parts to char from int.  Add
36035         cur_loc_changed and in_changed_variables fields.
36036         (variable_canonicalize): Remove.
36037         (shared_var_p): New inline function.
36038         (unshare_variable): Maintain cur_loc_changed and
36039         in_changed_variables fields.  If var was in changed_variables,
36040         replace it there with new_var.  Just copy cur_loc instead of
36041         resetting it to something else.
36042         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
36043         (dataflow_set_union): Don't call variable_canonicalize.
36044         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
36045         of their DEBUG_EXPR_TREE_DECLs.
36046         (canonicalize_loc_order_check): Verify that cur_loc is NULL
36047         and in_changed_variables and cur_loc_changed is false.
36048         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
36049         and cur_loc_changed.  Don't update cur_loc here.
36050         (variable_merge_over_src): Don't call variable_canonicalize.
36051         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
36052         removing loc that is equal to cur_loc, clear cur_loc,
36053         set cur_loc_changed and ensure variable_was_changed is called.
36054         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
36055         compare pointers in cur_loc check, if it is equal to loc,
36056         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
36057         (variable_different_p): Remove compare_current_location argument,
36058         don't compare cur_loc.
36059         (dataflow_set_different_1): Adjust variable_different_p caller.
36060         (variable_was_changed): If dv had some var in changed_variables
36061         already, reset in_changed_variables flag for it and propagate
36062         cur_loc_changed over to the new variable.  On empty var
36063         always set cur_loc_changed.  Set in_changed_variables on whatever
36064         var is added to changed_variables.
36065         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
36066         Use shared_var_p.  When removing loc that is equal to cur_loc,
36067         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
36068         end, don't set it to something else, just call variable_was_changed.
36069         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
36070         loc being removed, clear cur_loc and set cur_loc_changed.
36071         Set cur_loc_changed if all locations have been removed.
36072         (struct expand_loc_callback_data): New type.
36073         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
36074         allocated.  Always create SUBREGs if simplify_subreg failed.
36075         Prefer to use cur_loc, when that fails and still in
36076         changed_variables (and seen first time) recompute it.  Set
36077         cur_loc_changed of variables which had to change cur_loc and
36078         compute elcd->cur_loc_changed if any of the subexpressions used
36079         had to change cur_loc.
36080         (vt_expand_loc): Adjust to pass arguments in
36081         expand_loc_callback_data structure.
36082         (vt_expand_loc_dummy): New function.
36083         (emitted_notes): New variable.
36084         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
36085         that weren't used for any other decl in current
36086         emit_notes_for_changes call call vt_expand_loc_dummy to update
36087         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
36088         first loc_chain location if NULL before.  Always use just
36089         cur_loc instead of first loc_chain location.  When cur_loc_changed
36090         is false, when not --enable-checking=rtl just don't emit any note.
36091         When rtl checking, compute the note and assert it is the same
36092         as previous note.  Clear cur_loc_changed and in_changed_variables
36093         at the end before removing from changed_variables.
36094         (check_changed_vars_3): New function.
36095         (emit_notes_for_changes): Traverse changed_vars to call
36096         check_changed_vars_3 on each changed var.
36097         (emit_notes_for_differences_1): Clear cur_loc_changed and
36098         in_changed_variables.  Recompute cur_loc of new_var.
36099         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
36100         (vt_emit_notes): Initialize and destroy emitted_notes.
36101
36102 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
36103
36104         PR rtl-optimization/42220
36105         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
36106         Use verify_reg_tracked to determine if we should use OP_OUT rather
36107         than OP_INOUT.
36108         (build_def_use): If we see an in-out operand for a register that we
36109         know nothing about, treat is an output if possible, fail the block if
36110         not.
36111
36112 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
36113
36114         PR debug/42897
36115         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
36116         permanently.
36117
36118 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
36119
36120         PR debug/42897
36121         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
36122         uses of relevant DEFs that are dead outside the loop too.
36123
36124 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
36125
36126         * var-tracking.c (dataflow_set_merge): Swap src and src2.
36127         Reverted:
36128         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
36129         PR debug/41371
36130         * var-tracking.c (values_to_unmark): New variable.
36131         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
36132         values_to_unmark vector.  Moved body to...
36133         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
36134         instead queue it into values_to_unmark vector.
36135         (vt_find_locations): Free values_to_unmark vector.
36136
36137 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
36138
36139         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
36140         (site.exp): Export them when plugins are enabled.
36141
36142 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
36143
36144         PR middle-end/42326
36145         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
36146         that contain scevs.
36147         (chrec_fold_multiply): Same.
36148
36149 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
36150
36151         PR c/43248
36152         * c-decl.c (build_compound_literal): Return early if init is
36153         an error_mark_node.
36154
36155 2010-03-04  Martin Jambor  <mjambor@suse.cz>
36156
36157         PR tree-optimization/43164
36158         PR tree-optimization/43191
36159         * tree-sra.c (type_consists_of_records_p): Reject records with
36160         zero-size bit-fields at the end.
36161
36162 2010-03-04  Mike Stump  <mikestump@comcast.net>
36163
36164         * Makefile.in (TAGS): Remove *.y.
36165
36166 2010-03-04  Richard Guenther  <rguenther@suse.de>
36167
36168         PR tree-optimization/40761
36169         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
36170         in reverse order.
36171         (my_rev_post_order_compute): New function.
36172         (init_pre): Call it.
36173
36174 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
36175
36176         PR middle-end/43209
36177         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
36178         decrease the cost of an IV candidate when the cost is infinite.
36179
36180 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36181
36182         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
36183         Use '3DNow!' for the extension of that name, ensure normal space
36184         after the string.
36185         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
36186
36187 2010-03-03  Jeff Law  <law@redhat.com>
36188
36189         * PR middle-end/32693
36190         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
36191         than gen_rtx_SUBREG.
36192         (extract_bit_field_1): Likewise.
36193
36194 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
36195
36196         * doc/sourcebuild.texi (Test directives): Document that arguments
36197         include-opts and exclude-opts are now optional for dg-skip-if,
36198         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
36199
36200 2010-03-03  Jason Merrill  <jason@redhat.com>
36201
36202         PR c++/12909
36203         * cgraph.h (varpool_node): Add extra_name field.
36204         * varpool.c (varpool_extra_name_alias): New.
36205         (varpool_assemble_decl): Emit extra name aliases.
36206         (varpool_mark_needed_node): Look past an extra name alias.
36207         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
36208         * lto-streamer-in.c (lto_input_tree): Read it.
36209         * lto-streamer-out.c (output_unreferenced_globals): Write it.
36210
36211 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
36212
36213         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
36214         (sparc*-*-solaris2*): ...this.
36215
36216 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
36217
36218         PR debug/43229
36219         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
36220         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
36221         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
36222         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
36223
36224         PR debug/43237
36225         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
36226         fallthrough to default handling, just with want_address 0 instead of 2.
36227         For single element lists, add_AT_loc directly, otherwise create an
36228         artificial variable DIE and stick location list to it.
36229
36230         PR debug/43177
36231         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
36232         (VAL_EXPR_HAS_REVERSE): Define.
36233         (reverse_op): New function.
36234         (add_stores): For reversible operations add an extra MO_VAL_USE.
36235
36236 2010-03-02  Jason Merrill  <jason@redhat.com>
36237
36238         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
36239
36240 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
36241
36242         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
36243         (sparc64-*-linux*): Likewise.
36244         (sparc64-*-solaris2*): Include assembler files before linker ones.
36245         (sparc-*-solaris2*): Simplify and reorder to match previous case.
36246         * config/sparc/gas.h: Delete.
36247         * config/sparc/sol2-64.h: Add copyright notice.
36248         * config/sparc/sol2-gas-bi.h: Likewise.
36249         * config/sparc/sol2-gld.h: Likewise.
36250         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
36251         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
36252         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
36253         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
36254         (sparc_elf_asm_named_section): Rename into...
36255         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
36256
36257 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
36258
36259         * config/alpha/alpha.c (override_options): Fix -mtune error message.
36260
36261 2010-03-02  Jeff Law  <law@redhat.com>
36262
36263         PR middle-end/42431
36264         * reload1.c (rtx_p, substitute_stack): Declare.
36265         (substitute): Record addresses of changed rtxs.
36266         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
36267         Restore the original rtx when complete.
36268         (reload): Free subsitute_stack when complete.
36269
36270 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
36271
36272         * doc/gccint.texi (menu): Add Testsuites as a chapter.
36273         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
36274         new chapter.
36275         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
36276         LTO Testing, gcov Testing, profopt Testing, compat Testing,
36277         Torture Tests): Change from subsection to section.
36278
36279 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
36280             Steven Bosscher  <steven@gcc.gnu.org>
36281
36282         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
36283         instead of bb.
36284
36285 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
36286
36287         PR middle-end/42640
36288         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
36289         the assignment from the new induction variable to the assignment
36290         of the value from the original loop PHI function.
36291
36292 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
36293             Daniel Jacobowitz  <dan@codesourcery.com>
36294
36295         * doc/sourcebuild.texi (Test directives): Clarify options to
36296         dg-skip-if.
36297
36298 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36299
36300         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
36301         Disable cfi directives unless GCC and gas agree on using read-only
36302         .eh_frame sections for 64-bit.
36303         * configure: Regenerate.
36304
36305 2010-03-01  Richard Guenther  <rguenther@suse.de>
36306
36307         PR tree-optimization/43220
36308         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
36309         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
36310
36311 2010-03-01  Richard Guenther  <rguenther@suse.de>
36312             Martin Jambor  <mjambor@suse.cz>
36313
36314         PR middle-end/41250
36315         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
36316         gimplified parameters.
36317
36318 2010-03-01  Christian Bruel  <christian.bruel@st.com>
36319
36320         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
36321
36322 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
36323
36324         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
36325
36326 2010-03-01  Richard Guenther  <rguenther@suse.de>
36327
36328         PR middle-end/43213
36329         * expr.c (expand_assignment): Use the alias-oracle to tell
36330         if the rhs aliases the result decl.
36331
36332 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36333
36334         PR pch/14940
36335         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
36336         to sol_gt_pch_get_address.
36337         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
36338         64-bit, SPARC and x86.
36339         (sol_gt_pch_get_address): New function.
36340
36341 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
36342
36343         * toplev.h (inform_n, error_n): Declare.
36344         * diagnostic.c (inform_n, error_n): New function.
36345
36346 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
36347
36348         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
36349         has no rtl yet when processing local_decls, queue it and recheck
36350         if deferred stack allocation hasn't assigned it rtl.
36351
36352 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
36353
36354         * config/sh/sh.c (unspec_bbr_uid): New.
36355         (gen_block_redirect): Use it instead of INSN_UID.
36356         (gen_far_branch): Likewise.
36357
36358 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
36359
36360         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
36361         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
36362
36363 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36364
36365         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
36366         (Warning Options): -Wno-conversion-null is valid for
36367         Objective-C++ as well.
36368         * doc/tm.texi (Named Address Spaces): Likewise.
36369         * doc/plugins.texi (Plugins): Replace TABs with spaces.
36370         * doc/tree-ssa.texi (Tree SSA): Likewise.
36371
36372 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
36373
36374         PR bootstrap/43202
36375         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
36376         by default.  Don't set the default arch for
36377         i[34567]86-*-darwin*|x86_64-*-darwin*.
36378
36379 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
36380
36381         PR bootstrap/43202
36382         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
36383         default.  Set the default 32bit/64bit archs with $with_arch
36384         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
36385
36386 2010-02-27  Richard Guenther  <rguenther@suse.de>
36387
36388         PR tree-optimization/43186
36389         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
36390         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
36391         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
36392         unroller iterations.
36393
36394 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
36395
36396         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
36397         required and i[34567]86-*-* targets don't support 64bit ISA.
36398
36399 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
36400
36401         PR ada/43096
36402         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36403         the same alias set.
36404
36405 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
36406
36407         * config.gcc: Set the default arch at least to Prescott for
36408         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
36409         if SSE math is enabled.
36410
36411 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36412
36413         * diagnostic.c (diagnostic_initialize): Update.
36414         (diagnostic_report_diagnostic): Test inhibit_notes_p for
36415         informative notes.
36416         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
36417         (diagnostic_inhibit_notes): New.
36418         * toplev.c (process_options): inhibit notes with -fcompare-debug.
36419
36420 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36421
36422         PR c/20631
36423         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
36424         * doc/standards.texi: Likewise.
36425         * doc/extend.texi: Likewise.
36426         * doc/trouble.texi: Likewise.
36427         * doc/cppopts.texi: Likewise.
36428         * doc/install.texi: Likewise.
36429         * c.opt (std=c90,std=gnu90): New options.
36430         * c-opts.c (c_common_handle_option): Handle them.
36431
36432 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36433
36434         PR c/24577
36435         * c-decl.c (undeclared_variable): Use an informative note.
36436
36437 2010-02-26  Richard Guenther  <rguenther@suse.de>
36438
36439         PR tree-optimization/43186
36440         * gimple.h (gimple_fold): Remove.
36441         * gimple.c (gimple_fold): Remove.  Inline into single user ...
36442         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
36443         Try harder for conditions.
36444
36445 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
36446
36447         PR debug/43190
36448         * function.c (used_types_insert): Don't skip through named pointer
36449         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
36450         and it is different from the main variant's type.
36451
36452 2010-02-26  Nick Clifton  <nickc@redhat.com>
36453
36454         * config/rx/rx.md (sminsi3): Remove bogus alternative.
36455
36456 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
36457
36458         * config.gcc: Support --with-fpmath=sse for x86.
36459
36460         * config/i386/ssemath.h: New.
36461
36462         * doc/install.texi (--with-fpmath=sse): Documented.
36463
36464 2010-02-26  Richard Guenther  <rguenther@suse.de>
36465
36466         PR tree-optimization/43188
36467         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
36468         vector types of over-aligned element type.
36469
36470 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
36471
36472         PR target/43175
36473         * config/i386/i386.c (expand_vec_perm_blend): Use correct
36474         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
36475
36476 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
36477
36478         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
36479
36480 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
36481
36482         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
36483         * var-tracking.c: Include diagnostic.h.
36484         (debug_dv): New function.
36485         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
36486
36487         PR debug/43160
36488         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
36489         (add_value_chain, add_value_chains, remove_value_chain,
36490         remove_value_chains): Handle DEBUG_EXPRs.
36491         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
36492
36493         PR debug/43161
36494         * regcprop.c (struct queued_debug_insn_change): New type.
36495         (struct value_data_entry): Add debug_insn_changes field.
36496         (struct value_data): Add n_debug_insn_changes field.
36497         (debug_insn_changes_pool): New variable.
36498         (free_debug_insn_changes, apply_debug_insn_changes,
36499         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
36500         (kill_value_one_regno): Call free_debug_insn_changes if needed.
36501         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
36502         fields.
36503         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
36504         changes for them.
36505         (copyprop_hardreg_forward_1): Don't call apply_change_group for
36506         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
36507         changes, call cprop_find_used_regs via note_stores.
36508         (copyprop_hardreg_forward): When copying vd from predecessor
36509         which has any queued DEBUG_INSN changes, make sure the pointers are
36510         cleared.  At the end call df_analyze and then if there are any
36511         DEBUG_INSN changes queued at the end of some basic block for still
36512         live registers, apply them.
36513         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
36514
36515 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
36516
36517         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
36518         (arm*-*-*): Ditto.
36519
36520 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
36521
36522         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
36523         targets.  Set the default with_cpu/with_arch from arch/cpu.
36524         Allow x86-64 and native for with_cpu/with_arch.
36525
36526 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
36527
36528         * ebitmap.c: Change calls to verify_popcount with calls to
36529         sbitmap_verify_popcount.
36530         (ebitmap_clear_bit): Fixed map->cacheindex test and
36531         map>cache update when bit clearing results in an empty
36532         element.
36533
36534 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
36535
36536         PR target/43154
36537         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
36538         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
36539         and support both V2DF and V2DI modes.
36540         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
36541         support both V2DF and V2DI modes.
36542         (general): Delete trailing whitespace from a few patterns.
36543
36544         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
36545         V2DF/V2DI interleave high/low builtins.
36546
36547         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
36548         new VSX builtins.
36549
36550         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
36551         interleave high/low functions.
36552
36553 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
36554
36555         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
36556         #pragma extern_prefix.
36557
36558 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
36559
36560         PR debug/43166
36561         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
36562         BLKmode, assert op0 is a MEM and just adjust its mode.
36563
36564         PR debug/43165
36565         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
36566         if bitpos isn't multiple of mode's bitsize.
36567
36568 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36569
36570         * c.opt (-ftemplate-depth=): New.
36571         (-ftemplate-depth-): Deprecate.
36572         * optc-gen.awk: Handle -ftemplate-depth=.
36573         * opth-gen.awk: Likewise.
36574         * c-opts.c (c_common_handle_option): Likewise.
36575         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
36576
36577 2010-02-24  Jason Merrill  <jason@redhat.com>
36578
36579         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
36580
36581 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36582
36583         * cfg.c (alloc_aux_for_block): Remove inline.
36584         (alloc_aux_for_edge): Likewise.
36585
36586 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36587
36588         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
36589
36590 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36591
36592         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
36593         * config/i386/sol2-gas.h: New file.
36594         * config.gcc (i[34567]86-*-solaris2*): Use it.
36595
36596 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36597
36598         PR c/43128
36599         * c-typeck.c (ep_convert_and_check): New.
36600         (build_conditional_expr): Use it.
36601         (build_binary_op): Likewise.
36602
36603 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
36604
36605         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
36606
36607         PR debug/43150
36608         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
36609         bounds even for -O+.
36610         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
36611         expr needs to have DECL_NAME set.
36612
36613 2010-02-24  Nick Clifton  <nickc@redhat.com>
36614
36615         * config/mep/mep.c: Include gimple.h.
36616         (mep_function_uses_sp): Delete unused function.
36617         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
36618         parameters.  Use unsigned integers to count args.  Return a
36619         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
36620
36621 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
36622
36623         PR target/43107
36624         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
36625         greater or equal to nelt instead of 2 * nelt.
36626         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
36627         with nelt - 1.
36628
36629 2010-02-23  Jason Merrill  <jason@redhat.com>
36630
36631         PR debug/42800
36632         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
36633         in cfun->local_decls even if they have register types.
36634
36635         PR c++/42837
36636         * stor-layout.c (place_field): Don't warn about unnecessary
36637         DECL_PACKED if the type is packed.
36638
36639 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
36640
36641         PR target/43139
36642         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
36643         GOTOFF relocs, even when the base reg isn't pic pointer.
36644
36645 2010-02-23  Michael Matz  <matz@suse.de>
36646
36647         PR debug/43077
36648         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
36649         (expand_gimple_basic_block): Generate and use debug temps if there
36650         are debug uses left after the last real use of TERed ssa names.
36651         Unlink debug immediate uses when they are expanded.
36652
36653 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36654
36655         PR 43123
36656         * config/i386/i386.c (override_options): Reorganise to provide
36657         better error messages.
36658
36659 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36660
36661         PR middle-end/43083
36662         * graphite-scop-detection.c (create_single_exit_edge): Move
36663         the call to find_single_exit_edge to....
36664         (create_sese_edges): ...here.  Don't handle multiple edges
36665         exiting the function.
36666         (build_graphite_scops): Don't handle multiple edges
36667         exiting the function.
36668
36669 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36670
36671         PR middle-end/43097
36672         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
36673         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
36674
36675 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36676
36677         PR middle-end/43026
36678         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
36679
36680 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36681
36682         PR c++/43126
36683         * c-typeck.c (convert_arguments): Print declaration location.
36684         * c-common.c (validate_nargs): Rename as
36685         builtin_function_validate_nargs.
36686         (check_builtin_function_arguments): Update.
36687
36688 2010-02-22  Richard Guenther  <rguenther@suse.de>
36689
36690         PR lto/43045
36691         * tree-inline.c (declare_return_variable): Use the type of
36692         the call stmt lhs if available.
36693
36694 2010-02-22  Duncan Sands  <baldrick@free.fr>
36695
36696         * passes.c (register_pass): Always consider all pass lists when
36697         ref_pass_instance_number is zero.
36698
36699 2010-02-22  Richard Guenther  <rguenther@suse.de>
36700
36701         PR tree-optimization/42749
36702         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
36703         parameter.  Do arithmetic in the original type.
36704         (update_accumulator_with_ops): Likewise.
36705         (adjust_accumulator_values): Adjust.
36706
36707 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36708
36709         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
36710         (QI to BLKmode splitter): New splitter.
36711
36712 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
36713
36714         * config/i386/i386.c (initial_ix86_tune_features): Turn on
36715         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
36716
36717 2010-02-22  Richard Guenther  <rguenther@suse.de>
36718
36719         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
36720
36721 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
36722
36723         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
36724         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
36725         ($(T)crti.o, $(T)crtn.o): Remove rules.
36726
36727 2010-02-21  Tobias Burnus  <burnus@net-b.de>
36728
36729         PR fortran/35259
36730         * doc/invoke.texi (-fassociative-math): Document that this
36731         option is automatically enabled for Fortran.
36732
36733 2010-02-20  David S. Miller  <davem@davemloft.net>
36734
36735         * configure.ac: Test if linker and assembler properly support
36736         GOTDATA_OP relocations.
36737         * configure: Rebuild.
36738         * config.in: Likewise.
36739         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
36740         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
36741         (movsi_high_pic): Likewise.
36742         (movdi_lo_sum_pic): Likewise.
36743         (movdi_high_pic): Likewise.
36744         (movsi_pic_gotdata_op): New pattern.
36745         (movdi_pic_gotdata_op): Likewise.
36746         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
36747         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
36748
36749 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
36750
36751         PR target/43067
36752         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
36753         attribute to ssemul.
36754         (xop_mulv2div2di3_high): Ditto.
36755
36756 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36757
36758         PR c++/35669
36759         * c.opt (Wconversion-null): New option.
36760         * doc/invoke.texi (Wconversion-null): Document.
36761
36762 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36763
36764         * common.opt (Wlarger-than-): Add Undocumented.
36765
36766 2010-02-19  Mike Stump  <mikestump@comcast.net>
36767
36768         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
36769
36770 2010-02-19  Jason Merrill  <jason@redhat.com>
36771
36772         PR target/40332
36773         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
36774         * configure: Likewise.
36775
36776 2010-02-20  Alan Modra  <amodra@gmail.com>
36777
36778         PR middle-end/42344
36779         * cgraph.h (cgraph_make_decl_local): Declare.
36780         * cgraph.c (cgraph_make_decl_local): New function.
36781         (cgraph_make_node_local): Use it.
36782         * cgraphunit.c (cgraph_function_versioning): Likewise.
36783         * ipa.c (function_and_variable_visibility): Likewise.
36784
36785 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36786
36787         PR bootstrap/43121
36788         * except.c (sjlj_emit_function_enter): Don't call
36789         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
36790         directly.
36791         * rtl.h (add_reg_br_prob_note): Remove prototype.
36792
36793 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36794
36795         PR 41779
36796         * c-common.c (conversion_warning): Remove widening conversions
36797         before checking the conversion of integers to reals.
36798
36799 2010-02-19  Mike Stump  <mikestump@comcast.net>
36800
36801         PR middle-end/43125
36802         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
36803
36804         PR objc/43061
36805         * cgraphunit.c (process_function_and_variable_attributes): Check
36806         DECL_PRESERVE_P instead of looking up attribute "used".
36807         * ipa-pure-const.c (check_decl): Likewise.
36808         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
36809         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
36810         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
36811         instead of attribute "used".
36812         * config/sol2-c.c (solaris_pragma_init): Likewise.
36813         (solaris_pragma_fini): Likewise.
36814
36815 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36816
36817         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
36818         Use XCNEW instead of xcalloc.
36819         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
36820         XNEW instead of xmalloc.
36821         (get_fields): Use XNEWVEC instead of xmalloc.
36822
36823         PR debug/43084
36824         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
36825         populate vars array.
36826         (create_new_general_access): For debug stmts just reset value.
36827         (get_stmt_accesses): For accesses within debug stmts just record them
36828         using add_access_to_acc_sites instead of preventing the peeling or
36829         counting them as accesses.
36830
36831         PR middle-end/42233
36832         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
36833
36834 2010-02-19  Richard Guenther  <rguenther@suse.de>
36835
36836         PR tree-optimization/42916
36837         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
36838         instructions.
36839
36840 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
36841
36842         * configure.ac: Replace all uses of changequote in macro arguments
36843         with proper quoting.
36844
36845 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36846
36847         PR middle-end/42233
36848         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
36849
36850 2010-02-19  Richard Guenther  <rguenther@suse.de>
36851
36852         PR tree-optimization/42944
36853         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
36854         test for aliasing with errno.
36855
36856 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36857
36858         PR middle-end/42233
36859         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
36860         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
36861         * dojump.c: Include output.h.
36862         (inv): New inline function.
36863         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
36864         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
36865         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
36866         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
36867         argument, pass it down to other calls.
36868         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
36869         add REG_BR_PROB note to the conditional jump.
36870         * cfgexpand.c (add_reg_br_prob_note): Removed.
36871         (expand_gimple_cond): Don't call it, add the probability
36872         as last argument to jumpif_1/jumpifnot_1.
36873         * Makefile.in (dojump.o): Depend on output.h.
36874         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36875         callers.
36876         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36877         * stmt.c (do_jump_if_equal): Likewise.
36878         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36879         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36880         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36881         Likewise.
36882         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36883         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36884         jumpifnot_1 callers.
36885         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36886         callers.
36887         (store_expr): Adjust jumpifnot caller.
36888         (store_constructor): Adjust jumpif caller.
36889
36890         PR middle-end/42233
36891         * gimplify.c (gimple_boolify): For __builtin_expect call
36892         gimple_boolify also on its first argument.
36893
36894 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36895
36896         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36897         changequote block.
36898         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36899         * configure: Regenerated.
36900
36901 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36902
36903         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36904         lang_hooks.types_compatible_p instead of comptypes.
36905
36906 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36907
36908         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
36909         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
36910         if __prefer_thumb__ is defined.
36911
36912 2010-02-18  Martin Jambor  <mjambor@suse.cz>
36913
36914         PR tree-optimization/43066
36915         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
36916         array with zero-sized element type.
36917
36918 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
36919
36920         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
36921         rtx, allocate struct var_loc_node here and return it to the
36922         caller, and only if it is actually needed.
36923         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
36924         move it earlier and return immediately if it returns NULL.
36925
36926 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
36927
36928         * config/sparc/gas.h: New file.  Restore
36929         TARGET_ASM_NAMED_SECTION to its ELF default.
36930         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
36931         check !HAVE_GNU_AS.
36932         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36933         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
36934         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
36935         after sparc/sysv4.h.
36936
36937 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
36938
36939         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
36940
36941 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
36942
36943         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
36944         patterns from predicated pattern.
36945
36946 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
36947
36948         PR target/43103
36949         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
36950         for insn mnemonic suffix.
36951
36952 2010-02-17  Richard Guenther  <rguenther@suse.de>
36953
36954         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
36955         to loop PHI nodes.
36956
36957 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
36958
36959         PR debug/42918
36960         * caller-save.c (save_call_clobbered_regs): If BB ends with
36961         a DEBUG_INSN, move any notes in between last real insn and the last
36962         DEBUG_INSN after the last DEBUG_INSN.
36963
36964 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
36965
36966         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
36967         Fix return type.  Fix argument type.  Explain meaning of return value.
36968
36969 2010-02-16  Richard Guenther  <rguenther@suse.de>
36970
36971         PR tree-optimization/41043
36972         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
36973         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
36974         statements ...
36975         (vrp_visit_phi_node): ... but only for loop PHI nodes.
36976
36977 2010-02-16  Ira Rosen  <irar@il.ibm.com>
36978
36979         PR tree-optimization/43074
36980         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
36981         * tree-vect-loop.c (vect_analyze_loop_operations): Add
36982         vectorizable cycles in hybrid SLP check.
36983         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
36984
36985 2010-02-16  Richard Guenther  <rguenther@suse.de>
36986
36987         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
36988         (true_dependence): If memrefs_conflict_p computes must-alias
36989         trust it.  Move TBAA check after offset-based disambiguation.
36990         (canon_true_dependence): Likewise.
36991
36992 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
36993
36994         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
36995         * doc/invoke.texi: Document it.
36996         * var-tracking.c: Include toplev.h and params.h.
36997         (vt_find_locations): Return bool indicating success.  Compute
36998         hash sizes unconditionally.  Check new parameter, report.
36999         (variable_tracking_main_1): Check vt_find_locations results and
37000         retry.  Renamed from...
37001         (variable_tracking_main): ... this.  New wrapper to preserve
37002         flag_var_tracking_assignments.
37003         * Makefile.in (var-tracking.o): Adjust dependencies.
37004
37005 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
37006             Jakub Jelinek  <jakub@redhat.com>
37007
37008         PR target/42854
37009         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
37010         if weak_import attribute is present.
37011         * config/darwin.c (machopic_select_section): Likewise.
37012
37013 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
37014
37015         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
37016         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
37017         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
37018         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
37019
37020         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
37021         types.
37022
37023         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
37024         Fix argument types.
37025
37026         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
37027         Rewrite text to refer to the names.
37028
37029 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
37030
37031         * config/i386/i386-builtin-types.def
37032         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
37033         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
37034         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
37035         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
37036         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
37037         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
37038         IX86_BUILTIN_VPERMIL2PS256.
37039         (MULTI_ARG_4_DF2_DI_I): Defined.
37040         (MULTI_ARG_4_DF2_DI_I1): Defined.
37041         (MULTI_ARG_4_SF2_SI_I): Defined.
37042         (MULTI_ARG_4_SF2_SI_I1): Defined.
37043         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
37044         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
37045         __builtin_ia32_vpermil2ps256.
37046         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
37047         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
37048         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
37049         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
37050         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
37051         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
37052         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
37053         CODE_FOR_xop_vpermil2v8sf3.
37054         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
37055         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
37056         * config/i386/xopintrin.h (_mm_permute2_pd): New.
37057         (_mm256_permute2_pd): New.
37058         (_mm_permute2_ps): New.
37059         (_mm256_permute2_ps): New.
37060
37061 2010-02-15  Nick Clifton  <nickc@redhat.com>
37062
37063         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
37064         boolean parameters.  Use emit_jump_insn when emitting a pop
37065         instruction containing a return insn.
37066         (push): Use 'true' rather than '1' as second parameter to F.
37067         (h8300_expand_prologue): Likewise.
37068         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
37069         (h8300_expand_epilogue): Likewise.
37070
37071 2010-02-15  Richard Guenther  <rguenther@suse.de>
37072
37073         PR middle-end/43068
37074         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
37075         if that is zero.
37076
37077 2010-02-15  Nick Clifton  <nickc@redhat.com>
37078
37079         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
37080         delta.
37081
37082 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
37083
37084         * intl.c (fake_ngettext): New function.
37085         * intl.h (fake_ngettext): Declare.
37086         (ngettext): Define macro.
37087         * collect2.c (notice_translated): New function.
37088         (main): Use notice_translated and ngettext.
37089         * collect2.h (notice_translated): Declare.
37090
37091 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
37092
37093         * reorg.c (delete_computation): Comment fixes.
37094         * caller-save.c (setup_save_areas): Idem.
37095         * sel-sched-dump.c (dump_lv_set): Idem.
37096         * rtl.def: Idem.
37097
37098 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37099
37100         * config/s390/s390.c (s390_sched_init): New function.
37101         (TARGET_SCHED_INIT): Target hook defined.
37102
37103 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
37104             Jack Howarth  <howarth@bromo.med.uc.edu>
37105             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
37106
37107         PR target/42982
37108         Partial revert of unintended change in fix for PR41605.
37109         * config/darwin.h: Fix typo.
37110         * config/darwin9.h: Same.
37111
37112 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
37113
37114         * c-pch.c (pch_init): Clear v.
37115
37116 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37117
37118         PR middle-end/42930
37119         * graphite-scop-detection.c (graphite_can_represent_scev): Call
37120         graphite_can_represent_init for MULT_EXPR.
37121
37122 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37123
37124         PR middle-end/42914
37125         PR middle-end/42530
37126         * graphite-sese-to-poly.c (remove_phi): New.
37127         (translate_scalar_reduction_to_array): Call remove_phi.
37128
37129 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37130
37131         PR middle-end/42771
37132         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
37133         * graphite-clast-to-gimple.h (gloog): Update declaration.
37134         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
37135         * graphite-poly.h (struct poly_bb): Add missing comments.
37136         (struct scop): Add poly_scop_p field.
37137         (POLY_SCOP_P): New.
37138         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
37139         * graphite.c (graphite_transform_loops): Build the polyhedral
37140         representation for each scop before code generation.
37141         * sese.c (rename_variables_in_operand): Removed.
37142         (rename_variables_in_expr): Return the renamed expression.
37143         (rename_sese_parameters): New.
37144         * sese.h (rename_sese_parameters): Declared.
37145
37146 2010-02-11  Richard Guenther  <rguenther@suse.de>
37147
37148         PR tree-optimization/42998
37149         * tree-ssa-pre.c (create_expression_by_pieces): Treat
37150         POINTER_PLUS_EXPR properly.
37151
37152 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37153             Changpeng Fang  <changpeng.fang@amd.com>
37154
37155         PR middle-end/40886
37156         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
37157         the cost of an IV candidate when the IV is used in a test against zero.
37158
37159         * gcc.dg/tree-ssa/ivopts-3.c: New.
37160
37161 2010-02-11  Richard Guenther  <rguenther@suse.de>
37162
37163         PR lto/41664
37164         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
37165         pointer-vs-decl case by swapping refs.  Handle some cases
37166         of pointer-vs-decl disambiguations more conservatively.
37167         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
37168         to false after expanding.
37169
37170 2010-02-11  Richard Guenther  <rguenther@suse.de>
37171
37172         PR driver/43021
37173         * gcc.c (process_command): Handle LTO file@offset case more
37174         appropriately.
37175
37176 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
37177
37178         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
37179         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
37180         of DEBUG_INSNs.
37181         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
37182
37183         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
37184         if MEM's mode size isn't DWARF2_ADDR_SIZE.
37185         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
37186         Optimize eq/ne comparisons when both arguments are known to be
37187         zero-extended.
37188         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
37189         Don't mask operands unnecessarily if they are known to be already
37190         zero-extended.
37191
37192 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
37193
37194         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
37195         instead of loop.
37196
37197 2010-02-10  Richard Guenther  <rguenther@suse.de>
37198
37199         PR tree-optimization/43017
37200         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
37201         for wrapping signed arithmetic.
37202
37203 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
37204
37205         PR debug/43010
37206         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
37207         if no debug info should be emitted for it.
37208
37209 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
37210
37211         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
37212         note when flag_exceptions is set.
37213
37214 2010-02-10  Duncan Sands  <baldrick@free.fr>
37215
37216         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
37217
37218 2010-02-10  Richard Guenther  <rguenther@suse.de>
37219
37220         PR c/43007
37221         * tree.c (get_unwidened): Handle constants.
37222         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
37223
37224 2010-02-10  Martin Jambor  <mjambor@suse.cz>
37225
37226         PR lto/42985
37227         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
37228         check for variable argument counts independently.
37229
37230 2010-02-10  Christian Bruel  <christian.bruel@st.com>
37231
37232         PR target/42841
37233         * config/sh/sh.c (find_barrier): Increase length for non delayed
37234         conditional branches.
37235
37236 2010-02-10  Christian Bruel  <christian.bruel@st.com>
37237
37238         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
37239
37240 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
37241
37242         * builtins.c (set_builtin_user_assembler_name): Also handle
37243         ffs if int is smaller than word.
37244
37245 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
37246
37247         PR middle-end/42973
37248         * ira-conflicts.c (get_dup): Remove.
37249         (process_reg_shuffles): Add new parameter.  Use it as an
37250         additional guard for copy generation.
37251         (add_insn_allocno_copies): Rewrite.
37252
37253 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
37254
37255         * common.opt (fsched2-use-traces): Preserved for backward
37256         compatibility.
37257         * doc/invoke.texi: Remove the documentation about option
37258         -fsched2-use-traces.
37259         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
37260         flag_sched2_use_traces.
37261         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
37262         the backward compatibility flag section.
37263
37264 2010-02-09  Richard Guenther  <rguenther@suse.de>
37265
37266         PR tree-optimization/43008
37267         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
37268         make HEAP variables initialized from global memory if they
37269         are not known builtin functions.
37270         (find_func_aliases): Adjust.
37271
37272 2010-02-09  Richard Guenther  <rguenther@suse.de>
37273
37274         PR tree-optimization/43000
37275         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
37276         arithmetic manually.
37277
37278 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
37279
37280         PR tree-optimization/42931
37281         * tree-loop-linear.c (try_interchange_loops): Don't call
37282         double_int_mul if estimated_loop_iterations failed.
37283
37284 2010-02-08  Martin Jambor  <mjambor@suse.cz>
37285
37286         PR middle-end/42898
37287         * tree-sra.c (build_accesses_from_assign): Do not mark in
37288         should_scalarize_away_bitmap if stmt has volatile ops.
37289         (sra_modify_assign): Do not process assigns piecemeal if if stmt
37290         has volatile ops.
37291
37292 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
37293
37294         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
37295
37296 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
37297
37298         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
37299         before the pattern.
37300
37301 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
37302
37303         PR middle-end/42946
37304         * df-core.c (df_finish_pass): Change type of saved_flags to int.
37305
37306 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
37307
37308         PR middle-end/42988
37309         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
37310         to unknown_dependence.
37311         (graphite_legal_transform_dr): Handle the unknown_dependence.
37312         (graphite_carried_dependence_level_k): Same.
37313
37314 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
37315
37316         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
37317
37318 2010-02-07  Richard Guenther  <rguenther@suse.de>
37319
37320         PR middle-end/42991
37321         * expr.c (get_inner_reference): Always initialize *pbitsize.
37322
37323 2010-02-07  Richard Guenther  <rguenther@suse.de>
37324
37325         PR middle-end/42956
37326         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
37327         new ARRAY_REFs on variable size element or minimal index arrays.
37328         Complete.
37329         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
37330         gimple_fold_indirect_ref.
37331
37332 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
37333
37334         PR target/42957
37335         * arm.c (arm_override_options): Just return if the user has specified
37336         an invalid fpu name.
37337
37338 2010-02-03  Jason Merrill  <jason@redhat.com>
37339
37340         PR c++/42870
37341         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
37342         i386_pe_maybe_record_exported_symbol.
37343
37344 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
37345
37346         PR target/42924
37347         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
37348         (pa_delegitimize_address): New function.
37349
37350 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
37351
37352         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
37353         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
37354
37355 2010-02-05  Richard Guenther  <rguenther@suse.de>
37356
37357         PR lto/42762
37358         * lto-streamer-in.c (get_resolution): Deal with references
37359         to undefined functions.
37360
37361 2010-02-05  Richard Guenther  <rguenther@suse.de>
37362
37363         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
37364         (fold_const_aggregate_ref): Likewise.
37365         (ccp_fold_stmt): Substitute loads.
37366         (maybe_fold_reference): Verify types before substituting.
37367         Unshare properly.
37368         (fold_gimple_assign): Unshare properly.
37369         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
37370
37371 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
37372
37373         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
37374         for rs6000_gen_cell_microcode.
37375
37376 2010-02-04  Richard Guenther  <rguenther@suse.de>
37377
37378         PR rtl-optimization/42952
37379         * dse.c (const_or_frame_p): Remove MEM handling.
37380
37381 2010-02-04  Nick Clifton  <nickc@redhat.com>
37382
37383         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
37384         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
37385         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
37386         (mn10300_asm_output_mi_thunk): New function.
37387         (mn10300_can_output_mu_thunk): New function.
37388         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
37389         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
37390         (FUNCTION_ARG): Delete incorrect comment.
37391
37392 2010-02-03  Jason Merrill  <jason@redhat.com>
37393
37394         PR c++/40138
37395         * fold-const.c (operand_equal_p): Handle erroneous types.
37396
37397 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
37398
37399         * config/h8300/h8300.md (can_delay): Fix attibute condition.
37400
37401 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
37402
37403         PR rtl-optimization/42941
37404         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
37405         of xmalloc.
37406
37407 2010-02-03  Jason Merrill  <jason@redhat.com>
37408
37409         PR c++/35652
37410         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
37411
37412 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
37413
37414         PR debug/42896
37415         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
37416         (cselib_reset_table): Renamed from...
37417         (cselib_reset_table_with_next_value): ... this.
37418         (cselib_get_next_uid): Renamed from...
37419         (cselib_get_next_unknown_value): ... this.
37420         * cselib.c (next_uid): Renamed from...
37421         (next_unknown_value): ... this.
37422         (cselib_clear_table): Adjust.
37423         (cselib_reset_table): Adjust.  Renamed from...
37424         (cselib_reset_table_with_next_value): ... this.
37425         (cselib_get_next_uid): Adjust.  Renamed from...
37426         (cselib_get_next_unknown_value): ... this.
37427         (get_value_hash): Use hash.
37428         (cselib_hash_rtx): Likewise.
37429         (new_cselib_val): Adjust.  Set and dump uid.
37430         (cselib_lookup_mem): Pass next_uid as hash.
37431         (cselib_subst_to_values): Likewise.
37432         (cselib_log_lookup): Dump uid.
37433         (cselib_lookup): Pass next_uid as hash.  Adjust.
37434         (cselib_process_insn): Adjust.
37435         (cselib_init): Initialize next_uid.
37436         (cselib_finish): Adjust.
37437         (dump_cselib_table): Likewise.
37438         * dse.c (canon_address): Dump value uid.
37439         * print-rtl.c (print_rtx): Print value uid.
37440         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
37441         (dvuid): New type.
37442         (dv_uid): New function, sort of renamed from...
37443         (dv_htab_hash): ... this, reimplemented in terms of it and...
37444         (dv_uid2hash): ... this.  New.
37445         (variable_htab_eq): Drop excess assertions.
37446         (tie_break_pointers): Removed.
37447         (canon_value_cmp): Compare uids.
37448         (variable_post_merge_New_vals): Print uids.
37449         (vt_add_function_parameters): Adjust.
37450         (vt_initialize): Reset table.  Adjust.
37451
37452 2010-02-03  Richard Guenther  <rguenther@suse.de>
37453
37454         PR tree-optimization/42944
37455         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
37456         (call_may_clobber_ref_p_1): Likewise.  Properly handle
37457         malloc and calloc clobbering errno.
37458
37459 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
37460
37461         * doc/invoke.texi: Fix name of sched1 dump.
37462
37463         * opts.c (decode_options): Set flag_tree_switch_conversion
37464         only conditionally on optimize >= 2.
37465
37466         * gcse.c: Assorted comment fixes in pass description.
37467
37468 2010-02-03  Anthony Green  <green@moxielogic.com>
37469
37470         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
37471         nop padding in order to maintain alignment of storage location of
37472         target function address.
37473         (moxie_trampoline_init): Store target function address at newly
37474         aligned location.
37475         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
37476         to 32.
37477         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
37478
37479 2010-02-03  Richard Guenther  <rguenther@suse.de>
37480
37481         PR middle-end/42927
37482         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
37483
37484 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37485
37486         * config.gcc: Reenable check for obsolete targets.
37487         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
37488         mips-sgi-irix6.[0-4]*.
37489
37490 2010-02-02  Nick Clifton  <nickc@redhat.com>
37491
37492         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
37493         constant size of 4 as being the same as 0.
37494         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
37495         can take values in the range 0..4.
37496
37497 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
37498
37499         PR java/41991
37500         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
37501         as _darwin10_Unwind_FindEnclosingFunction().
37502         * libgcc-libsystem.ver: New.
37503
37504 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
37505
37506         PR target/41399
37507         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
37508         implicitly set registers.
37509
37510 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
37511
37512         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
37513         (arm_override_options): Allow automatic selection of the thread
37514         pointer register if thumb2.
37515         (legitimize_pic_address): Improve code sequences for Thumb2.
37516         (arm_call_tls_get_addr): Likewise.
37517         (legitimize_tls_address): Likewise.
37518         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
37519         (pic_load_addr_32bit): ... this.  New named pattern.
37520         * thumb2.md (pic_load_addr_thumb2): Delete.
37521         (pic_load_dot_plus_four): Delete.
37522         (tls_load_dot_plus_four): New named pattern.
37523
37524 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37525
37526         PR libgomp/29986
37527         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
37528         Document fix for TLS bug.
37529
37530 2010-01-31  Richard Guenther  <rguenther@suse.de>
37531
37532         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
37533         conservatively correct.
37534
37535 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37536
37537         PR target/42850
37538         Revert:
37539         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37540
37541         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
37542
37543 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
37544
37545         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
37546
37547 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
37548
37549         * config.gcc: Adjust order of makefile fragments for mingw targets.
37550
37551 2010-01-31  Richard Guenther  <rguenther@suse.de>
37552
37553         PR middle-end/42898
37554         * gimplify.c (gimplify_init_constructor): For volatile LHS
37555         initialize a temporary.
37556
37557 2010-01-31  Matthias Klose  <doko@ubuntu.com>
37558
37559         * configure.ac: Fix __stack_chk_fail check for cross builds configured
37560         --with-headers
37561         * configure: Regenerate.
37562
37563 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
37564
37565         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
37566         the same alias set and their sizes different constantness.
37567         (aliasing_component_refs_p): Revert 2009-10-24 change.
37568
37569 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37570
37571         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
37572         unused.
37573
37574 2010-01-29  Richard Guenther  <rguenther@suse.de>
37575
37576         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
37577         Assert we successfully updated the call.
37578
37579 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
37580
37581         PR rtl-optimization/42889
37582         * df.h (df_set_bb_dirty_nonlr): New prototype.
37583         * df-core.c (df_set_bb_dirty_nonlr): New function.
37584         * df-scan.c (df_insn_rescan): Call it instead of
37585         df_set_bb_dirty for DEBUG_INSNs.
37586
37587 2010-01-29  Richard Guenther  <rguenther@suse.de>
37588
37589         PR middle-end/37448
37590         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
37591         quadratic behavior in most cases.
37592
37593 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
37594
37595         PR target/42891
37596         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
37597         in the call to gen_x86_movsicc_0_m1.
37598
37599 2010-01-28  Richard Guenther  <rguenther@suse.de>
37600
37601         PR tree-optimization/42871
37602         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
37603
37604 2010-01-28  Richard Guenther  <rguenther@suse.de>
37605
37606         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
37607         into call arguments.
37608
37609 2010-01-28  Richard Guenther  <rguenther@suse.de>
37610
37611         PR middle-end/42883
37612         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
37613         the forwarder if the destination is an EH landing pad.
37614
37615 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
37616
37617         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
37618         block list passed to gimple_duplicate_sese_tail.
37619         (parallelize_loops): Avoid parallelization when the function
37620         has_nonlocal_label.
37621         Avoid parallelization when the preheader is IRREDUCIBLE.
37622         Try to optimize when estimated_loop_iterations_int is unresolved.
37623         Add the loop's location to the dump file.
37624         * tree-cfg.c (add_phi_args_after_redirect): Remove.
37625         (gimple_duplicate_sese_tail): Remove the check for the latch.
37626         Redirect nexits to the exit block.
37627         Remove handling of the incoming edges to the latch.
37628         Redirect the backedge from the copied latch to the exit bb.
37629
37630 2010-01-28  Michael Matz  <matz@suse.de>
37631
37632         PR target/42881
37633         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
37634         Wrap force_reg into a sequence, emit it before user.
37635
37636 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
37637
37638         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
37639         (arm_rev): New.
37640         (arm_legacy_rev): Likewise.
37641         (thumb_legacy_rev): Likewise.
37642
37643 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
37644
37645         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
37646         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
37647         on MEM's address failed, try avoid_constant_pool_reference and
37648         recurse if it returned something different.
37649         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
37650         address, try avoid_constant_pool_reference and recurse if it
37651         returned something different.
37652         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
37653         address and avoid_constant_pool_reference returned something
37654         different, don't set have_address.
37655
37656 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
37657
37658         PR debug/42861
37659         * var-tracking.c (val_store): Add modified argument, obey it.
37660         Adjust callers.
37661         (count_uses): Move down logging of main.
37662         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
37663         don't need resolution.
37664         (emit_notes_in_bb): Likewise.
37665
37666 2010-01-27  Richard Guenther  <rguenther@suse.de>
37667
37668         PR middle-end/42878
37669         * tree-inline.c (remap_decl): Delay remapping of SSA name
37670         default definitions until we need them.
37671
37672 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
37673
37674         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
37675         (rs6000_delegitimize_address): New function.
37676
37677         * config/s390/s390.c (s390_delegitimize_address): Call
37678         delegitimize_mem_from_attrs.
37679
37680         PR middle-end/42874
37681         * tree-inline.c (cannot_copy_type_1): Removed.
37682         (copy_forbidden): Don't forbid copying of functions containing
37683         records/unions with variable length fields.
37684
37685 2010-01-27  Christian Bruel  <christian.bruel@st.com>
37686
37687         Revert:
37688         PR target/42841
37689         * config/sh/sh.c (find_barrier): Increase length for non delayed
37690         conditional branches.
37691
37692 2010-01-27  Matthias Klose  <doko@ubuntu.com>
37693
37694         * configure.ac (gnu-unique-object): Fix ldd version check.
37695         * configure: Regenerate.
37696
37697 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37698
37699         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
37700         HAVE_GNU_AS value.
37701         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
37702         Test for HAVE_GNU_AS value.
37703
37704 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37705
37706         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
37707         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
37708         INT64_TYPE): Define.
37709         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
37710         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
37711         INT_LEAST64_TYPE): Define.
37712         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
37713         UINT_LEAST64_TYPE): Define.
37714         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
37715         INT_FAST64_TYPE): Define.
37716         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
37717         UINT_FAST64_TYPE): Define.
37718         (INTMAX_TYPE, UINTMAX_TYPE): Define.
37719         (INTPTR_TYPE, UINTPTR_TYPE): Define.
37720         (SIG_ATOMIC_TYPE): Define.
37721
37722 2010-01-26  Richard Guenther  <rguenther@suse.de>
37723
37724         * df-scan.c (df_scan_set_bb_info): Remove assert.
37725         (df_insn_rescan_debug_internal): Merge asserts.
37726         (df_install_ref): Likewise.
37727         (df_mark_reg): Use bitmap_set_range.
37728         (df_hard_reg_used_p): Remove assert.
37729         (df_hard_reg_used_count): Likewise.
37730
37731 2010-01-26  Richard Guenther  <rguenther@suse.de>
37732
37733         PR rtl-optimization/42685
37734         * web.c (web_main): Ignore DEBUG_INSNs.
37735
37736 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
37737
37738         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
37739
37740         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
37741         Fix types of fndecl and arglist parameters.
37742
37743 2010-01-26  Richard Guenther  <rguenther@suse.de>
37744
37745         PR middle-end/42806
37746         * tree-eh.c (unsplit_eh): Skip debug insns.
37747
37748 2010-01-26  Richard Guenther  <rguenther@suse.de>
37749
37750         PR tree-optimization/42250
37751         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
37752
37753 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
37754
37755         PR fortran/42866
37756         * omp-low.c (expand_omp_sections): Only use single_pred if
37757         l2_bb is single_pred_p.
37758
37759 2010-01-25  Christian Bruel  <christian.bruel@st.com>
37760
37761         PR target/42841
37762         * config/sh/sh.c (find_barrier): Increase length for non delayed
37763         conditional branches.
37764         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
37765
37766 2010-01-24  David S. Miller  <davem@davemloft.net>
37767
37768         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
37769         define if not using GAS.
37770         * config/sparc/sparc.c (sparc_elf_asm_named_section):
37771         Likewise.  Delete SECTION_MERGE code, which is only applicable
37772         when using GAS.
37773
37774 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
37775
37776         PR c++/42748
37777         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
37778         mangling of va_list in system headers.
37779
37780 2010-01-23  Toon Moene  <toon@moene.org>
37781
37782         * tree-predcom.c (combine_chains): Return NULL, not false.
37783
37784 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
37785
37786         * tree-loop-distribution.c (distribute_loop): Fix declaration and
37787         initialization of variable res to agree with return type.
37788
37789 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
37790
37791         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
37792         * tree-sra.c: Add include of expr.h.
37793
37794 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
37795
37796         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
37797         insert the debug stmt on the single non-EH edge from the stmt.
37798
37799 2010-01-22  Richard Henderson  <rth@redhat.com>
37800
37801         PR tree-opt/42833
37802         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
37803         the RHS until after generate_subtree_copies has insertted its
37804         code before the current statement.
37805
37806 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
37807
37808         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
37809
37810         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
37811
37812 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37813
37814         PR tree-optimization/42585
37815         * tree-sra.c (struct access): New field grp_total_scalarization.
37816         (dump_access): Dump the new field.
37817         (should_scalarize_away_bitmap): New variable.
37818         (cannot_scalarize_away_bitmap): Likewise.
37819         (sra_initialize): Allocate new bitmaps.
37820         (sra_deinitialize): Free new bitmaps.
37821         (create_access_1): New function.
37822         (create_access): Parts moved to create_access_1.
37823         (type_consists_of_records_p): New function.
37824         (completely_scalarize_record): Likewise.
37825         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
37826         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
37827         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
37828         access.
37829         (analyze_all_variable_accesses): Completely scalarize small eligible
37830         records.
37831
37832 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37833
37834         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
37835
37836 2010-01-21  Andrew Haley  <aph@redhat.com>
37837
37838         * gcc.c (process_command): Move lang_specific_driver before
37839         setting cc_libexec_prefix.
37840
37841 2010-01-21  Richard Guenther  <rguenther@suse.de>
37842
37843         PR middle-end/19988
37844         * fold-const.c (negate_expr_p): Pretend only negative
37845         real constants are easily negatable.
37846
37847 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
37848             Jason Merrill  <jason@redhat.com>
37849
37850         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
37851         (TYPE_TRANSPARENT_AGGR): this, for union and record.
37852         * calls.c (initialize argument_information): Handle it.
37853         * c-common.c (handle_transparent_union_attribute): Use new name.
37854         * c-decl.c (finish_struct): Ditto.
37855         * c-typeck.c (type_lists_compatible_p): Ditto.
37856         (convert_for_assignment): Use new name and also handle record.
37857         * function.c (aggregate_value_p): Handle it.
37858         (pass_by_reference): Ditto.
37859         (assign_parm_data_types): Ditto.
37860         * print-tree.c (print_node): Ditto.
37861         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
37862         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
37863         * tree.c (first_field): New fn.
37864
37865 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
37866
37867         PR target/42818
37868         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
37869         even when linking statically, for now.
37870
37871 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37872
37873         PR debug/42715
37874         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37875         without a cselib val.
37876         (count_uses): Accept MO_VAL_SET with no val on stores.
37877         (add_stores): Likewise.
37878
37879 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37880
37881         * var-tracking.c (check_value_val): Add a compile time assertion.
37882         (dv_is_decl_p): Simplify.
37883         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37884         gcc_assert if ENABLE_CHECKING.
37885
37886 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37887
37888         PR debug/42782
37889         * var-tracking.c: Include tree-flow.h.
37890         (mem_dies_at_call): New.
37891         (dataflow_set_preserve_mem_locs): Use it.
37892         (dataflow_set_remove_mem_locs): Likewise.
37893         (dump_var): Renamed from dump_variable.  Adjust all callers.
37894         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37895         * Makefile.in (var-tracking.o): Adjust deps.
37896
37897 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37898
37899         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37900
37901 2010-01-20  Richard Guenther  <rguenther@suse.de>
37902
37903         PR tree-optimization/42717
37904         * tree-ssa-dce.c (get_live_post_dom): Remove.
37905         (forward_edge_to_pdom): Take an arbitrary edge to copy
37906         degenerate PHI args from.
37907         (remove_dead_stmt): Use the first post-dominator even if it
37908         does not contain live statements as redirection destination.
37909
37910 2010-01-20  Richard Guenther  <rguenther@suse.de>
37911
37912         * tree-inline.c (estimate_num_insns): Handle EH builtins.
37913
37914 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37915
37916         * sel-sched.c (create_speculation_check): Remove set but not used
37917         variable twin.
37918         (try_transformation_cache): Remove set but not used variable ds.
37919         (calculate_privileged_insns): Remove set but not used variables
37920         cur_insn and min_spec_insn.
37921         (find_best_expr): Remove set but not used variable avail_n.
37922         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
37923         variable e.
37924         * cgraphunit.c (assemble_thunk): Remove set but not used variable
37925         false_label.
37926         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
37927         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
37928         new_scop_exit_edge.
37929
37930 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
37931
37932         PR bootstrap/42786
37933         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
37934         cpu types.  Add support for *-sse3 cpu types.
37935         (x86_64-*-*): Ditto.
37936
37937 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37938
37939         PR middle-end/42803
37940         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
37941         argument, call initializer_constant_valid_p_1 instead of
37942         initializer_constant_valid_p, pass CACHE to it, return NULL
37943         immediately if first call returns NULL.
37944         (initializer_constant_valid_p_1): New function.
37945         (initializer_constant_valid_p): Use it.
37946
37947 2010-01-20  Thomas Quinot  <quinot@adacore.com>
37948
37949         * tree.def (PLACEHOLDER_EXPR): Fix comment.
37950
37951 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37952
37953         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
37954         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
37955         (loc_list_from_tree): Don't handle unsigned division.  Handle
37956         signed modulo using DW_OP_{over,over,div,mul,minus}.
37957         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
37958         modulo instead of signed.
37959
37960 2010-01-20  DJ Delorie  <dj@redhat.com>
37961
37962         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
37963         (Fpa): Pass it
37964         (h8300_emit_stack_adjustment): Propogate it.
37965         (push): Pass it.
37966         (h8300_expand_prologue): Likewise.
37967         (h8300_expand_epilogue): Likewise.
37968
37969 2010-01-19  Michael Matz  <matz@suse.de>
37970
37971         PR tree-optimization/41783
37972         * tree-data-ref.c (toplevel): Include flags.h.
37973         (dump_data_dependence_relation):  Also dump the inputs if the
37974         result will be unknown.
37975         (split_constant_offset_1): Look through some conversions.
37976         * tree-predcom.c (determine_roots_comp): Restart a new chain if
37977         the offset from last element is too large.
37978         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
37979         (reassociate_to_the_same_stmt): Handle vector registers.
37980         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
37981         (e.g. conversions).
37982         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
37983         wide_prolog_niters argument, emit widening instructions.
37984         (vect_do_peeling_for_alignment): Adjust caller, use widened
37985         variant of the iteration cound.
37986         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
37987
37988 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37989
37990         PR target/38697
37991         * config/arm/neon-testgen.m (emit_automatics): New parameter
37992         features. Adjust for Fixed_return_reg feature.
37993         (test_intrinsic): Call emit_automatics with new feature.
37994         * config/arm/neon.ml: Update copyright years.
37995         (features): New Fixed_return_reg feature.
37996         (ops): Update feature for Vget_low.
37997
37998 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
37999
38000         PR tree-optimization/42719
38001         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
38002         stmt uses.
38003
38004         PR debug/42728
38005         * fwprop.c (all_uses_available_at): Return false if def_set dest
38006         is a REG that is used in def_insn.
38007
38008 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
38009
38010         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
38011
38012         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
38013         Add argument names.
38014
38015         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
38016
38017         * target.h (struct gcc_target) <secondary_reload>: Change type
38018         of last argument to secondary_reload_info *.
38019
38020 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
38021
38022         PR target/42774
38023         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
38024         memory references with unaligned offsets.  Remove CQImode handling.
38025         (unaligned_memory_operand): Return 1 for memory references with
38026         unaligned offsets.  Remove CQImode handling.
38027
38028 2010-01-18  Richard Guenther  <rguenther@suse.de>
38029
38030         PR middle-end/39954
38031         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
38032         builtin calls.
38033
38034 2010-01-18  Richard Guenther  <rguenther@suse.de>
38035
38036         PR tree-optimization/42781
38037         * tree-ssa-structalias.c (find_what_var_points_to): Skip
38038         restrict processing only if the original variable was artificial.
38039
38040 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
38041
38042         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
38043         find number of popped argument bytes.
38044
38045         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
38046         Fix the text that describes the return value for invalid insns.
38047
38048         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
38049
38050         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
38051         Clarify what 'cost of the -dependence' is.  Fix quoting.
38052
38053         * toplev.c (default_get_pch_validity): Rename argument to "sz".
38054         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
38055
38056 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
38057
38058         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
38059         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
38060
38061 2010-01-17  Richard Guenther  <rguenther@suse.de>
38062
38063         PR middle-end/42248
38064         * function.c (split_complex_args): Take a VEC to modify.
38065         (assign_parms_augmented_arg_list): Build a VEC instead of
38066         a chain of PARM_DECLs.
38067         (assign_parms_unsplit_complex): Take a VEC of arguments.
38068         Do not fixup unmodified parms.
38069         (assign_parms): Deal with the VEC.
38070         (gimplify_parameters): Likewise.
38071
38072 2010-01-17  Richard Guenther  <rguenther@suse.de>
38073
38074         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
38075         node existence check.
38076         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
38077         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
38078         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
38079         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
38080         (gimple_execute_on_growing_pred): Likewise.
38081
38082 2010-01-17  Richard Guenther  <rguenther@suse.de>
38083
38084         PR tree-optimization/42773
38085         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
38086         (compute_antic_aux): Likewise.
38087         (compute_partial_antic_aux): Likewise.
38088
38089 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
38090
38091         PR debug/42767
38092         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
38093         and US_TRUNCATE.
38094
38095 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
38096
38097         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
38098         appearance.
38099
38100         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
38101         Fix markup for strict argument.
38102
38103         (TARGET_SCHED_REORDER2): Fix argument types.
38104
38105         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
38106         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
38107
38108         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
38109         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
38110
38111         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
38112         Add argument name.
38113
38114         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
38115         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
38116         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
38117         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
38118         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
38119
38120         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
38121
38122         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
38123
38124         (TARGET_ASM_RELOC_RW_MASK): Add return type.
38125         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
38126
38127         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
38128
38129         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
38130         Use prototype.
38131
38132         (TARGET_ASM_NAMED_SECTION): Fix argument list.
38133
38134         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
38135         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
38136
38137         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
38138
38139         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
38140
38141         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
38142         referring to it.  Fix language.
38143
38144         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
38145
38146         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
38147
38148         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
38149
38150         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
38151
38152         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
38153         '@var{stream}.  Remove stray 'and'.
38154
38155         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
38156
38157         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
38158
38159         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
38160
38161         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
38162         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
38163
38164         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
38165         Fix description of return value.
38166         Rename argument "sz" to "len."
38167
38168         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
38169         Clarify meaning of 'true' return value.
38170
38171         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
38172
38173         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
38174         rep_mode versus mode_rep.
38175
38176         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
38177
38178         (TARGET_BUILTIN_DECL): Fix name.
38179
38180         (TARGET_COMMUTATIVE_P): Fix type of first argument.
38181
38182         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
38183
38184         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
38185
38186         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
38187
38188         (TARGET_RELAXED_ORDERING): Use @deftypevr.
38189
38190         (TARGET_GET_DRAP_RTX): Note that this is a hook.
38191         Clarify language.
38192
38193         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
38194         Rename argument tm_fn to md_fn.
38195
38196         (TARGET_OPTION_PRINT): Fix argument list.
38197
38198 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
38199
38200         PR target/42664
38201         * config/i386/i386.c (ix86_fixup_binary_operands):
38202         Revert FMA4 fixup of operands.
38203
38204 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38205
38206         PR other/42525
38207         * Makefile.in (write_entries_to_file, install-plugin):
38208         Use \012 instead of \n with tr.
38209
38210 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
38211
38212         * configure.ac (HAVE_AS_REF): New C macro.
38213         * configure: Regenerate.
38214         * config.in: Likewise.
38215         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
38216         if HAVE_AS_REF.
38217         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
38218         if HAVE_AS_REF.
38219
38220 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
38221
38222         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
38223
38224         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
38225
38226         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
38227
38228         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
38229
38230         (TARGET_IN_SMALL_DATA_P): Fix argument type.
38231
38232         (TARGET_BINDS_LOCAL_P): Fix argument type.
38233
38234         (TARGET_ASM_FILE_END): Use prototype.
38235
38236         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
38237
38238         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
38239
38240         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
38241
38242         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
38243
38244         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
38245         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
38246
38247         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
38248         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
38249
38250         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
38251         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
38252         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
38253         (TARGET_ADDR_SPACE_CONVERT): Likewise.
38254
38255         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
38256
38257         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
38258
38259         (TARGET_INIT_BUILTINS): Use prototype.
38260
38261         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
38262         Put 'const char *' in braces.  Fix parameter types.
38263         (TARGET_INVALID_CONVERSION): Fix parameter types.
38264         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
38265         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
38266
38267         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
38268         Fix argument type.
38269
38270         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
38271
38272         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
38273
38274 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
38275
38276         * doc/tm.texi (TARGET_HELP): Fix return type.
38277
38278         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
38279         in braces.  Fix argument types.
38280
38281         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
38282
38283         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
38284
38285         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
38286
38287         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
38288         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
38289
38290         (TARGET_MANGLE_TYPE): Fix argument types.
38291
38292         (TARGET_IRA_COVER_CLASSES): Use prototype.
38293
38294         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
38295
38296         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
38297
38298         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
38299
38300         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
38301
38302         (TARGET_CALLEE_COPIES): Fix argument types.
38303
38304         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
38305
38306         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
38307
38308         (TARGET_FUNCTION_VALUE): Fix argument types.
38309
38310         (TARGET_RETURN_IN_MSB): Fix argument type.
38311
38312         (TARGET_RETURN_IN_MEMORY): Fix argument types.
38313
38314         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
38315
38316         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
38317
38318         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
38319         agree with return type.
38320
38321         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
38322
38323 2010-01-15  Jing Yu  <jingyu@google.com>
38324
38325         PR rtl-optimization/42691
38326         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
38327         a pseudo to a constant and are merged, and adjust comments.
38328
38329 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
38330
38331         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
38332
38333 2010-01-15  Richard Guenther  <rguenther@suse.de>
38334
38335         PR middle-end/42739
38336         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
38337         labels of computed or non-local gotos to the destination.
38338         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
38339         landing pad label is the first label.
38340
38341 2010-01-15  Richard Guenther  <rguenther@suse.de>
38342
38343         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
38344
38345 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
38346
38347         PR target/42747
38348         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
38349         to allow generation of the xssqrtdp instruction on power7.
38350         (sqrtdf2_fpr): Ditto.
38351
38352 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38353
38354         PR middle-end/42674
38355         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
38356         functions with noreturn attribute.
38357
38358         PR c++/42608
38359         * varasm.c (declare_weak): Add weak attribute to decl if it
38360         doesn't have one already.
38361         (assemble_external): Only add decls to weak_decls if they also
38362         have weak attribute.
38363
38364 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
38365
38366         * var-tracking.c (var_reg_delete): Don't delete the association
38367         between REGs and values or one-part variables if the register
38368         isn't clobbered.
38369
38370 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38371
38372         PR debug/42657
38373         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
38374         because its first operand is a non-localized variable.
38375
38376 2010-01-14  Martin Jambor  <mjambor@suse.cz>
38377
38378         PR tree-optimization/42706
38379         * tree-sra.c (encountered_recursive_call): New variable.
38380         (encountered_unchangable_recursive_call): Likewise.
38381         (sra_initialize): Initialize both new variables.
38382         (callsite_has_enough_arguments_p): New function.
38383         (scan_function): Call decl and flags check only for IPA-SRA, check
38384         whether there is a recursive call and whether it has enough arguments.
38385         (all_callers_have_enough_arguments_p): New function.
38386         (convert_callers): Look for recursive calls only when
38387         encountered_recursive_call is set.
38388         (ipa_early_sra): Bail out either if
38389         !all_callers_have_enough_arguments_p or
38390         encountered_unchangable_recursive_call.
38391
38392 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38393
38394         * sel-sched.c: Add 2010 to copyright years.
38395         * sel-sched-ir.c: Likewise.
38396         * sel-sched-ir.h: Likewise.
38397
38398 2010-01-14  Martin Jambor  <mjambor@suse.cz>
38399
38400         PR tree-optimization/42714
38401         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
38402         constructors specially.
38403
38404 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38405
38406         * config/i386/drivers-i386.c (detect_caches_intel):
38407         Add l2sizekb parameter and fill in.
38408         (host_detect_local_cpu): Add l2sizekb, fill in.
38409         Add Atom small cache heuristic.
38410
38411 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38412
38413         * config/i386/drivers-i386.c (detect_caches_cpuid4):
38414         Add level3 parameter and fill in.
38415         (detect_caches_intel): Handle level3 cache.
38416
38417 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38418
38419         * config/i386/drivers-i386.c (host_detect_local_cpu):
38420         Fix core duo detection.
38421
38422 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38423
38424         * config/i386/drivers-i386.c (host_detect_local_cpu):
38425         Fix Atom detection.
38426
38427 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38428
38429         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
38430         (rs6000_variable_issue_1): this.  Use...
38431         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
38432
38433 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38434
38435         * sel-sched-ir.c (sel_restore_other_notes): Rename to
38436         sel_restore_notes.  Update all callers.  Call reemit_notes
38437         for all insns.
38438
38439 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38440
38441         PR rtl-optimization/42246
38442         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
38443         loops.
38444
38445 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38446
38447         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
38448         all successors is the same as number of successors in current region.
38449
38450 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38451
38452         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
38453         to rename is not separable.  Otherwise check that its LHS is not NULL.
38454
38455 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38456
38457         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
38458
38459 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38460
38461         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
38462         available registers when failed to discover LHS register class.
38463         Fix indentation.  Update comment.
38464
38465 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38466             Alexander Monakov  <amonakov@ispras.ru>
38467
38468         PR rtl-optimization/42389
38469         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
38470         to can_issue_more.
38471         (advance_state_on_fence): Likewise.
38472         (sel_target_adjust_priority): Print debug output only when
38473         sched_verbose >= 4, not 2.
38474         (get_expr_cost): Do not issue all unique insns on the next cycle.
38475         (fill_insns): Initialize can_issue_more from the value saved
38476         with the fence.
38477         * sel-sched-ir.c (flist_add): New parameter issue_more.
38478         Init FENCE_ISSUE_MORE with it.
38479         (merge_fences): Likewise.
38480         (init_fences): Update call to flist_add.
38481         (add_to_fences, add_clean_fence_to_fences)
38482         (add_dirty_fence_to_fences): Likewise.
38483         (move_fence_to_fences): Update call to merge_fences.
38484         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
38485         sched groups.
38486         * sel-sched-ir.h (struct _fence): New field issue_more.
38487         (FENCE_ISSUE_MORE): New accessor macro.
38488
38489 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38490
38491         PR rtl-optimization/42388
38492         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
38493         that have no predecessors nor successors.  Do not call move_bb_info
38494         for empty blocks outside of current region.
38495
38496 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38497
38498         PR rtl-optimization/42294
38499         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
38500         * sel-sched.c (move_exprs_to_boundary): Transitively add all
38501         originators' originators.
38502
38503 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38504
38505         PR rtl-optimization/39453
38506         PR rtl-optimization/42246
38507         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
38508         for pipelining_p.
38509         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
38510
38511 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38512             Alexander Monakov  <amonakov@ispras.ru>
38513
38514         PR middle-end/42245
38515         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
38516         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
38517         argument.  Update all callers.
38518         (tidy_control_flow): ... and here.  Recompute topological order
38519         of basic blocks in region if necessary.
38520         (sel_redirect_edge_and_branch): Change return type.  Return true
38521         if topological order might have been invalidated.
38522         (purge_empty_blocks): Export and move from...
38523         * sel-sched.c (purge_empty_blocks): ... here.
38524         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
38525         (maybe_tidy_empty_bb): Delete prototype.
38526         (purge_empty_blocks): Declare.
38527
38528 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38529
38530         PR rtl-optimization/42249
38531         * sel-sched.c (try_replace_dest_reg): When chosen register
38532         and original register is the same, do not bail out early, but
38533         still check all original insns for validity of replacing destination
38534         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
38535         in this case.
38536
38537 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38538
38539         PR c/42721
38540         Port from no-undefined-overflow branch:
38541         2009-03-09  Richard Guenther  <rguenther@suse.de>
38542
38543         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
38544
38545 2010-01-14  Richard Guenther  <rguenther@suse.de>
38546
38547         PR lto/42665
38548         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
38549
38550 2010-01-14  Ira Rosen  <irar@il.ibm.com>
38551
38552         PR tree-optimization/42709
38553         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
38554         as scalar type in creation of constant vector operand.
38555
38556 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38557
38558         PR testsuite/42414
38559         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
38560         (check-parallel-%): Match `testsuite' directory component only
38561         at the end.
38562
38563 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
38564
38565         PR translation/39521
38566         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
38567         strings with _().
38568
38569 2010-01-13  Richard Guenther  <rguenther@suse.de>
38570
38571         PR tree-optimization/42730
38572         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
38573         offset zero.
38574
38575 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
38576
38577         PR target/pr42542
38578         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
38579         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
38580         them signed.
38581
38582 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
38583
38584         * config/bfin/libgcc-bfin.ver: Regenerate based on current
38585         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
38586         ___umulsi3_highpart.
38587
38588         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
38589         rather than schedule_insns if the pass is enabled.
38590
38591 2010-01-13  Martin Jambor  <mjambor@suse.cz>
38592
38593         PR tree-optimization/42704
38594         * tree-sra.c (sra_modify_assign): Do not delete assignments to
38595         SSA_NAMEs.
38596
38597 2010-01-13  Martin Jambor  <mjambor@suse.cz>
38598
38599         PR tree-optimization/42703
38600         * tree-sra.c (analyze_access_subtree): Check that we can build a
38601         reference to the original data within the aggregate.
38602
38603 2010-01-13  Richard Guenther  <rguenther@suse.de>
38604
38605         PR tree-optimization/42705
38606         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
38607
38608 2010-01-13  Richard Guenther  <rguenther@suse.de>
38609
38610         PR middle-end/42716
38611         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
38612
38613 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
38614
38615         PR debug/41371
38616         * var-tracking.c (values_to_unmark): New variable.
38617         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
38618         values_to_unmark vector.  Moved body to...
38619         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
38620         instead queue it into values_to_unmark vector.
38621         (vt_find_locations): Free values_to_unmark vector.
38622
38623 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
38624
38625         * config/s390/s390.c (override_options): Set
38626         default of max-pending-list-length to 256
38627
38628 2010-01-13  Richard Guenther  <rguenther@suse.de>
38629
38630         PR lto/42678
38631         * tree-pass.h (PROP_gimple_lcx): New.
38632         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
38633         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
38634         before the final cleanup_eh.
38635         (dump_properties): Dump PROP_gimple_lcx.
38636         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
38637         (tree_lower_complex_O0): Remove.
38638         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
38639         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
38640         tree_lower_complex, schedule TODO_update_ssa.
38641         * lto-streamer-out.c (output_function): Stream the functions
38642         properties.
38643         * lto-streamer-in.c (input_function): Likewise.
38644         (lto_read_body): Do not override them here.
38645
38646 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
38647
38648         PR c/42708
38649         * c-typeck.c (build_c_cast): Fold value cast to union type before
38650         wrapping it in a CONSTRUCTOR.
38651
38652 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
38653
38654         PR rtl-optimization/42699
38655         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
38656         involved.
38657
38658 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38659
38660         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
38661         SUBTARGET_WARN_UNUSED_SPEC): Move ...
38662         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
38663         SUBTARGET_WARN_UNUSED_SPEC): ... here
38664         * config/mips/iris5.h (LIBGCC_SPEC): Define.
38665
38666 2010-01-12  Julian Brown  <julian@codesourcery.com>
38667
38668         * config/arm/neon-schedgen.ml (Utils): Don't try to
38669         open missing module.
38670         (find_with_result): New.
38671
38672 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
38673
38674         PR debug/42662
38675         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
38676         sharing when canonicalizing ({lt,ge}u (plus a b) b).
38677
38678         PR tree-optimization/42645
38679         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
38680         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
38681         decl_map, set processing_debug_stmt to -1 and return name without
38682         any remapping.
38683
38684 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
38685
38686         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
38687         binutils version, and reword target configuration description.
38688
38689 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38690
38691         * config/avr/avr.h (LINKER_NAME): Remove.
38692
38693 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
38694
38695         PR target/42416
38696         * config/rs6000/rs6000.c (rs6000_override_options): On targets
38697         that support VSX, warn for -mno-altivec if vsx is not disabled,
38698         and disable vsx.
38699
38700 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
38701             Shujing Zhao  <pearly.zhao@oracle.com>
38702
38703         PR translation/42469
38704         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
38705         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
38706         character between option name and help text.
38707         * c.opt (imultilib): Likewise.
38708
38709 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
38710
38711         * lto-streamer-out.c (output_unreferenced_globals): Output static
38712         variables.
38713
38714 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
38715
38716         PR rtl-optimization/42621
38717         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
38718         optimizing for size.
38719         (duplicate_computed_gotos): Remove now-redundant check.
38720
38721 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
38722
38723         PR target/37454
38724         * configure.ac: Save and restore LDFLAGS and LIBS
38725         * configure: Regenerate.
38726
38727 2010-01-10  Richard Guenther  <rguenther@suse.de>
38728
38729         PR middle-end/42667
38730         * builtins.c (fold_builtin_strlen): Add type argument and
38731         convert the resulting length to it.
38732         (fold_builtin_1): Adjust.
38733
38734 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38735
38736         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
38737         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
38738         1 insn.
38739         (num_insns_constant_wide): Adjust for that change.
38740
38741 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38742
38743         PR debug/42631
38744         * web.c (union_defs): Add used argument, to combine uses of
38745         uninitialized regs.
38746         (entry_register): Adjust type and tests of used argument.
38747         (web_main): Widen used for new use.  Pass it to union_defs.
38748         * df.h (union_defs): Adjust prototype.
38749
38750 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38751
38752         PR debug/42630
38753         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
38754         uses in new incoming argument.  Free body.
38755         (reset_debug_uses_in_loop): New.
38756         (analyze_insn_to_expand_var): Call the latter if the former found
38757         anything.  Fix whitespace.  Reject invalid dest overlaps before
38758         going through all insns in the loop.
38759
38760 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38761
38762         PR debug/42629
38763         * haifa-sched.c (dying_use_p): Debug insns don't count.
38764
38765 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38766
38767         PR middle-end/42363
38768         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
38769         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
38770         (verify_gimple_call): Reject LHS in noreturn calls.
38771
38772 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38773
38774         PR debug/42604
38775         PR debug/42395
38776         * tree-vect-loop-manip.c (adjust_info): New type.
38777         (adjust_vec): New pointer to vector.
38778         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
38779         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
38780         (slpeel_update_phis_for_duplicate_loop): Use them.
38781         (slpeel_update_phi_nodes_for_guard1): Likewise.
38782         (slpeel_update_phi_nodes_for_guard2): Likewise.
38783         (slpeel_tree_peel_loop_to_edge): Likewise.
38784         (vect_update_ivs_after_vectorizer): Likewise.
38785
38786 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38787
38788         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
38789         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
38790
38791 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38792
38793         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
38794         bogus uninitialized warning.
38795
38796 2010-01-09  Richard Guenther  <rguenther@suse.de>
38797
38798         PR middle-end/42512
38799         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
38800         the evolution is compatible with the initial condition.
38801
38802 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38803
38804         * gcc.c (process_command): Update copyright notice dates.
38805         * gcov.c (print_version): Likewise.
38806         * gcov-dump.c (print_version): Likewise.
38807         * mips-tfile.c (main): Likewise.
38808         * mips-tdump.c (main): Likewise.
38809
38810 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38811
38812         PR target/41885
38813         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
38814         (rotlhi3): Delete.
38815         (rotlhi3_8): Delete.
38816         (rotlsi3): Delete.
38817         (rotlsi3_8): Delete.
38818         (rotlsi3_16): Delete.
38819         (rotlsi3_24): Delete.
38820         (rotl<mode>3): New.
38821         (*rotw<mode>3): New.
38822         (*rotb<mode>3): New.
38823         * config/avr/avr.c (avr_rotate_bytes): New function.
38824         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
38825
38826 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
38827
38828         PR target/37454
38829         * configure.ac: Modify -rdynamic check.
38830         * configure: Regenerate.
38831
38832 2010-01-08  DJ Delorie  <dj@redhat.com>
38833
38834         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
38835         register popping order.
38836
38837 2010-01-08  Richard Guenther  <rguenther@suse.de>
38838
38839         PR lto/42528
38840         * c.opt (fsigned-char): Also let LTO handle this option.
38841         (funsigned-char): Likewise.
38842
38843 2010-01-07  Richard Guenther  <rguenther@suse.de>
38844
38845         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
38846         (gimple_op): Likewise.
38847         (gimple_op_ptr): Likewise.
38848         (gimple_assign_set_lhs): Remove gcc_assert.
38849         (gimple_assign_set_rhs1): Likewise.
38850         (gimple_assign_set_rhs2): Likewise.
38851         (gimple_call_set_lhs): Likewise.
38852         (gimple_call_set_fn): Likewise.
38853         (gimple_call_set_fndecl): Likewise.
38854         (gimple_call_fndecl): Likewise.
38855         (gimple_call_return_type): Likewise.
38856         (gimple_call_set_chain): Likewise.
38857         (gimple_call_num_args): Likewise.
38858         (gimple_call_set_arg): Likewise.
38859         (gimple_cond_set_code): Likewise.
38860         (gimple_cond_set_lhs): Likewise.
38861         (gimple_cond_set_rhs): Likewise.
38862         (gimple_cond_set_true_label): Likewise.
38863         (gimple_cond_set_false_label): Likewise.
38864         (gimple_label_set_label): Likewise.
38865         (gimple_goto_set_dest): Likewise.
38866         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
38867         (gimple_debug_bind_get_value): Likewise.
38868         (gimple_debug_bind_get_value_ptr): Likewise.
38869         (gimple_debug_bind_set_var): Likewise.
38870         (gimple_debug_bind_set_value): Likewise.
38871         (gimple_debug_bind_reset_value): Likewise.
38872         (gimple_debug_bind_has_value_p): Likewise.
38873         (gimple_return_retval_ptr): Remove gcc_assert.
38874         (gimple_return_retval): Likewise.
38875         (gimple_return_set_retval): Likewise.
38876         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38877         (safe_referenced_var_iterator): Remove.
38878         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38879         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38880         (fill_referenced_var_vec): Remove.
38881         (first_readonly_imm_use): Remove redundant gcc_assert.
38882         (phi_arg_index_from_use): Combine gcc_asserts.
38883         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38884         (first_imm_use_stmt): Remove redundant gcc_assert.
38885         * tree-cfg.c (verify_gimple_call): Verify function and chain
38886         operands.  Verify arguments.
38887         (verify_types_in_gimple_stmt): Verify condition code and labels.
38888
38889 2010-01-07  Richard Guenther  <rguenther@suse.de>
38890
38891         PR tree-optimization/42641
38892         * sese.c (rename_map_elt_info): Use the SSA name version, do
38893         not hash pointers.
38894
38895 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38896
38897         PR tree-optimization/42625
38898         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38899         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38900
38901 2010-01-07  Duncan Sands  <baldrick@free.fr>
38902
38903         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38904
38905 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38906
38907         PR target/42511
38908         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
38909         note itself is not function_invariant_p.
38910
38911 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
38912
38913         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
38914         Do not add the DF_NOTE problem.
38915         * store-motion.c (execute_rtl_store_motion): Likewise.
38916
38917 2010-01-07  Martin Jambor  <mjambor@suse.cz>
38918
38919         PR tree-optimization/42157
38920         * tree-sra.c (compare_access_positions): Stabilize sort if both
38921         accesses have integer types, return zero immediately if they are the
38922         same.
38923
38924 2010-01-06  Richard Henderson  <rth@redhat.com>
38925
38926         PR middle-end/41883
38927         * haifa-sched.c (add_to_note_list): Merge into ...
38928         (concat_note_lists): ... here, and ...
38929         (unlink_other_notes, rm_other_notes): Merge into...
38930         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
38931         NOTE_INSN_EPILOGUE_BEG.
38932
38933 2010-01-06  Richard Guenther  <rguenther@suse.de>
38934
38935         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
38936         not inline regular functions into always-inline functions.
38937
38938 2010-01-06  Nick Clifton  <nickc@redhat.com>
38939
38940         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
38941         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
38942         used together.
38943         (OVERRIDE_OPTIONS): Delete.
38944         (OPTIMIZATION_OPTIONS): Define.
38945         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
38946         * config/rx/rx.c (rx_handle_option): Issue an error message if
38947         -mcpu=rx200 and -fpu are used together.
38948         (rx_set_optimization_options): New function.  Issue an error
38949         message if an optimization attribute attempts to reset the FPU/
38950         math optimization pairing.
38951         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
38952         * config/rx/rx.opt: Set the default to 32-bit doubles.
38953         * config/rx/t-rx: Add multilibs for -nofpu option.
38954         * doc/invoke.texi: Update documentation of RX options.
38955
38956 2010-01-06  Richard Guenther  <rguenther@suse.de>
38957
38958         * tree-ssa-pre.c (name_to_id): New global.
38959         (alloc_expression_id): Simplify SSA name handling.
38960         (lookup_expression_id): Likewise.
38961         (init_pre): Zero name_to_id.
38962         (fini_pre): Free it.
38963
38964 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
38965
38966         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
38967
38968 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
38969
38970         PR target/42542
38971         * config/i386/sse.md (smaxv2di3): New.
38972         (umaxv2di3): Likewise.
38973         (sminv2di3): Likewise.
38974         (uminv2di3): Likewise.
38975
38976 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38977
38978         PR target/42564
38979         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
38980         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
38981         (legitimize_tls_address): Likewise.
38982         (sparc_tls_referenced_p): Likewise.
38983         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
38984         and adjust calls to legitimize_pic_address.
38985         (legitimate_constant_p) Use sparc_tls_referenced_p.
38986         (legitimate_pic_operand_p): Likewise.
38987         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
38988         (sparc_tls_symbol_ref_1): Delete.
38989         (sparc_tls_referenced_p): Make static, recognize specific patterns.
38990         (legitimize_tls_address): Make static, handle CONST patterns.
38991         (legitimize_pic_address): Make static, remove unused parameter and
38992         adjust recursive calls.
38993         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
38994         and adjust call to legitimize_pic_address.
38995         (sparc_output_mi_thunk): Likewise.
38996
38997 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
38998             H.J. Lu  <hongjiu.lu@intel.com>
38999
39000         PR target/42542
39001         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
39002         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
39003         operands to make them signed.
39004
39005         Revert:
39006         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
39007
39008         PR target/42542
39009         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
39010         GTU to GT for V4SI and V2DI.
39011
39012         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
39013         (umin<mode>3): Removed.
39014         (uminv8hi3): New.
39015         (uminv4si3): Likewise.
39016
39017 2010-01-05  Martin Jambor  <mjambor@suse.cz>
39018
39019         PR tree-optimization/42462
39020         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
39021         current_function_decl to helper functions and macros.
39022
39023 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39024
39025         PR bootstrap/41771
39026         * flags.h: Don't include real.h.
39027         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
39028         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
39029         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
39030         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
39031         * dominance.c: Update copyright.
39032         * gimple.c (walk_gimple_op): Remove inline.
39033         * tree-ssa-reassoc.c: Include real.h.
39034         * Makefile.in (FLAGS_H): Remove $(REAL_H).
39035         (tree-ssa-reassoc.o): Depend on $(REAL_H).
39036
39037 2010-01-05  Nick Clifton  <nickc@redhat.com>
39038
39039         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
39040         register to push into the stack frame when the accumulator has to
39041         be saved during interrupts.
39042
39043 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
39044
39045         * doc/invoke.texi: Remove the documentation about option
39046         -Wunreachable-code.
39047         * common.opt (Wunreachable-code):  Preserved for backward
39048         compatibility.
39049         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
39050         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
39051         the backward compatibility flag section.
39052
39053 2010-01-05  Richard Guenther  <rguenther@suse.de>
39054
39055         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
39056
39057 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
39058
39059         PR other/42611
39060         * cfgexpand.c (expand_one_var): Diagnose too large variables.
39061
39062         PR tree-optimization/42508
39063         * tree-sra.c (convert_callers): Check for recursive call
39064         by comparing cgraph nodes instead of decls.
39065         (modify_function): Call ipa_modify_formal_parameters also
39066         on all same_body aliases.
39067
39068         * cgraphunit.c (cgraph_materialize_all_clones): Compare
39069         cgraph nodes when checking for same_body aliases.
39070
39071 2010-01-05  Richard Guenther  <rguenther@suse.de>
39072
39073         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
39074         allocation and lookup.
39075         (get_or_alloc_expr_for_constant): Likewise.
39076         (phi_translate): Sink allocation.
39077
39078 2010-01-04  Richard Guenther  <rguenther@suse.de>
39079
39080         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
39081         a new entry only if needed.
39082         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
39083         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
39084         hashtable lookup.
39085         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
39086         the result array.
39087         (phi_translate): Handle CONSTANTs early.
39088
39089 2010-01-04  Martin Jambor  <mjambor@suse.cz>
39090
39091         PR tree-optimization/42398
39092         * tree-sra.c (struct access): Removed flag grp_different_types.
39093         (dump_access): Do not dump the removed flag.
39094         (sort_and_splice_var_accesses): Do not set the removed flag.
39095         (sra_modify_expr): Check for type compatibility directly.
39096
39097 2010-01-04  Martin Jambor  <mjambor@suse.cz>
39098
39099         PR tree-optimization/42366
39100         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
39101         edges with variable number of parameters.
39102         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
39103         flag instead of asserting it.
39104         (ipa_read_node_info): Read uses_analysis_done flag.
39105
39106 2010-01-04  Richard Guenther  <rguenther@suse.de>
39107
39108         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
39109         iterative_hash_* as intended.
39110         (vn_reference_compute_hash): Likewise.  Simplify hashing
39111         SSA names.
39112         (vn_reference_lookup_2): Likewise.
39113         (vn_nary_op_compute_hash): Likewise.
39114         (vn_phi_compute_hash): Likewise.
39115         (expressions_equal_p): Remove strange code.
39116         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
39117         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
39118         (bitmap_insert_into_set_1): Take value-id as parameter.
39119         (add_to_value): Pass it.
39120         (bitmap_insert_into_set): Likewise.
39121         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
39122
39123 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
39124
39125         PR driver/42442
39126         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
39127         (do_self_spec): For switches with SWITCH_IGNORE set set also
39128         SWITCH_IGNORE_PERMANENTLY.
39129         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
39130         of SWITCH_IGNORE.
39131
39132 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
39133
39134         * lto-streamer-out.c (output_unreferenced_globals): Output the full
39135         tree of an unreferenced global var.
39136
39137 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
39138
39139         PR target/42542
39140         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
39141         GTU to GT for V4SI and V2DI.
39142
39143         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
39144         (umin<mode>3): Removed.
39145         (uminv8hi3): New.
39146         (uminv4si3): Likewise.
39147
39148 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
39149
39150         PR lto/42581
39151         * collect2.c (main): Turn on trace in collect2 if -v is passed
39152         to gcc with LTO.
39153
39154 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
39155
39156         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
39157         description of expression operand.
39158
39159 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
39160
39161         * configure.ac: Add install-html to target_list for Make-hooks.
39162         * configure: Regenerate.
39163         * fortran/Make-lang.in (F95_HTMLFILES): New.
39164         (fortran.html): Use it.
39165         (fortran.install-html): New.
39166         * Makefile.in (install-html): Add lang.install-html.
39167         * java/Make-lang.in (JAVA_HTMLFILES): New.
39168         (java.html): Use it.
39169         (java.install-html): New.
39170         * objc/Make-lang.in (objc.install-html): New.
39171         * objcp/Make-lang.in (obj-c++.install-html): New.
39172         * cp/Make-lang.in (c++.install-html): New.
39173         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
39174         * lto/Make-lang.in (lto.install-html): New.
39175
39176 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
39177
39178         PR lto/42520
39179         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
39180
39181 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
39182
39183         PR rtl-optimization/41862
39184         * store-motion.c (store_killed_in_insn, compute_store_table,
39185         remove_reachable_equiv_notes, replace_store_insn,
39186         build_store_vectors): Ignore all DEBUG_INSNs.
39187
39188 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
39189
39190         PR lto/41564
39191         * common.opt: Add dumpdir.
39192
39193         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
39194         isn't specified.
39195         (option_map): Add --dumpdir.
39196
39197         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
39198
39199         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
39200
39201         * opts.c (decode_options): Try dump_dir_name first if
39202         dump_base_name isn't an absolute path.
39203         (common_handle_option): Handle OPT_dumpdir.
39204
39205         * toplev.c (dump_dir_name): New.
39206         (print_switch_values): Also ignore -dumpdir.
39207
39208         * toplev.h (dump_dir_name): New.
39209
39210 2010-01-03  Richard Guenther  <rguenther@suse.de>
39211
39212         PR tree-optimization/42589
39213         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
39214         double-word expansion of bswap32.
39215
39216 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
39217
39218         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
39219         with BLOCK_FOR_INSN.
39220         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
39221         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
39222         noce_process_if_block): Likewise.
39223         * gcse.c (compute_local_properties, insert_expr_in_table,
39224         insert_set_in_table, canon_list_insert, find_avail_set,
39225         pre_insert_copy_insn): Likewise.
39226
39227         * basic-block.h (BLOCK_NUM): Move from here...
39228         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
39229
39230 2010-01-03  Richard Guenther  <rguenther@suse.de>
39231
39232         PR tree-optimization/42438
39233         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
39234         contains_may_not_return_call flag.
39235         (BB_MAY_NOTRETURN): New.
39236         (valid_in_sets): Trapping nary operations are not valid
39237         in blocks that may not return.
39238         (insert_into_preds_of_block): Remove check for trapping expressions.
39239         (compute_avail): Compute also BB_MAY_NOTRETURN.
39240
39241 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
39242
39243         * doc/invoke.texi: Add 2010 to copyright years.
39244
39245 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
39246
39247         * config/sparc/sparc.c: Fix formatting nits.
39248
39249 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
39250             Alexander Monakov  <amonakov@ispras.ru>
39251
39252         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
39253
39254 2010-01-02  Richard Guenther  <rguenther@suse.de>
39255
39256         PR middle-end/42577
39257         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
39258         (simplify_switch_using_ranges): Mark to be removed edges
39259         as non-executable.
39260
39261 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
39262
39263         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
39264
39265         * collect2.c (scan_libraries): Add missing argument in call to
39266         scan_prog_file.
39267
39268 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
39269
39270         PR target/42448
39271         * config/alpha/predicates.md (aligned_memory_operand): Return false
39272         for CQImode.
39273         (unaligned_memory_operand): Return true for CQImode.
39274         * config/alpha/alpha.c (get_aligned_mem): Assert that location
39275         doesn not cross aligned SImode word boundary.
39276
39277 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
39278
39279         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
39280         Remove.
39281         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
39282         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
39283
39284 2010-01-02  Richard Guenther  <rguenther@suse.de>
39285
39286         PR lto/41597
39287         * toplev.c (compile_file): Emit LTO marker properly.  Change
39288         it to __gnu_lto_v1.
39289         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
39290
39291 2010-01-01  Richard Guenther  <rguenther@suse.de>
39292
39293         PR debug/42455
39294         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
39295
39296 2010-01-01  Richard Guenther  <rguenther@suse.de>
39297
39298         PR c/42570
39299         * c-decl.c (grokdeclarator): For zero-size arrays force
39300         structural equality checks as layout_type does.
39301
39302 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
39303
39304         * builtins.c: Update copyright to 2010.
39305
39306 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
39307
39308         PR lto/42531
39309         * lto-streamer-out.c (produce_asm): Revert the last change.
39310         (copy_function): Likewise.
39311
39312         * lto-streamer.c (lto_get_section_name): Skip any leading
39313         asterisk in name.
39314
39315 2010-01-01  Richard Guenther  <rguenther@suse.de>
39316
39317         PR middle-end/42559
39318         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
39319         for LABEL_DECLs.
39320
39321 \f
39322 Copyright (C) 2010 Free Software Foundation, Inc.
39323
39324 Copying and distribution of this file, with or without modification,
39325 are permitted in any medium without royalty provided the copyright
39326 notice and this notice are preserved.