* config/pdp11/pdp11-protos.h (output_move_double,
[official-gcc.git] / gcc / ChangeLog
blob988dd2e7660c3103d4887d600acec706130435e9
1 2010-12-09  Paul Koning  <ni1d@arrl.net>
3         * config/pdp11/pdp11-protos.h (output_move_double,
4         output_move_quad): Delete.
5         (output_move_multiple, pdp11_expand_operands): New functions.
6         (pdp11_action, pdp11_partorder): New enums.
7         * config/pdp11/pdp11.md (movdi, movsi, movdf, movsf): Use
8         output_move_multiple.
9         (adddi3, subdi3, negdi2): New patterns.
10         (addsi3, subsi3, negsi2): Use pdp11_expand_operands.
11         (abshi2): Delete.
12         (neghi2, negqi2): Use PDPint iterator.
13         * config/pdp11/pdp11.c (find_addr_reg, output_move_double,
14         output_move_quad): Delete. 
15         (pdp11_expand_operands, output_move_multiple): New functions.
16         
17 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
19         * config/vax/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
20         * config.gcc (vax-*-linux*): Don't use svr4.h.
22 2010-12-09  Nathan Froyd  <froydnj@codesourcery.com>
24         * c-typeck.c (build_indirect_ref): Call invalid_indirection_error.
26 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
28         * doc/extend.texi (Attribute Syntax): Correct description of
29         attributes in pointer declarators.
31 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
33         * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Undefine.
34         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux*,
35         mips*-*-linux*, mips-wrs-vxworks): Don't use svr4.h.
37 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
39         * config/mep/mep.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
40         WCHAR_TYPE_SIZE): Define.
41         * config.gcc (mep-*-*): Don't use svr4.h.
43 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
45         * config/mcore/mcore.h (PTRDIFF_TYPE, WCHAR_TYPE,
46         WCHAR_TYPE_SIZE): Define.
47         * config/svr3.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
48         WCHAR_TYPE_SIZE): Don't define.
49         * config.gcc (mcore-*-elf): Don't use svr4.h.
51 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
53         * config.gcc (m32r-*-elf*, m32rle-*-elf*, m32r-*-rtems*,
54         m32r-*-linux*, m32rle-*-linux*): Don't use svr4.h.
56 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
58         * config/iq2000/iq2000.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
59         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
60         * config.gcc (iq2000*-*-elf*): Don't use svr4.h.
62 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
64         * config.gcc (ia64*-*-linux*, ia64*-*-hpux*): Don't use svr4.h.
66 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
68         * config/pa/pa32-linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
69         * config.gcc (hppa*64*-*-linux*, hppa*-*-linux*): Don't use
70         svr4.h.
72 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
74         * config/moxie/moxie.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
75         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
76         * config/moxie/rtems.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
77         WCHAR_TYPE, WCHAR_TYPE_SIZE): Undefine.
78         * config.gcc (moxie-*-elf, moxie-*-uclinux*): Don't use svr4.h.
80 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
82         * config/frv/frv.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
83         WCHAR_TYPE_SIZE): Define.
84         * config.gcc (frv-*-elf, frv-*-*linux*): Don't use svr4.h.
86 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
88         * config/fr30/fr30.h (LIB_SPEC, LINK_SPEC, SIZE_TYPE,
89         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
90         * config.gcc (fr30-*-elf): Don't use svr4.h.
92 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
94         * config/cris/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
95         * config.gcc (crisv32-*-linux* | cris-*-linux*): Don't use svr4.h.
97 2010-12-09  Richard Guenther  <rguenther@suse.de>
99         PR middle-end/46844
100         * gimple-fold.c (canonicalize_constructor_val): Canonicalize
101         addresses.
103 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
105         * config/i386/netware.h (TARGET_POSIX_IO): Define.
106         * config/i386/nto.h (TARGET_POSIX_IO): Define.
107         * config/ia64/hpux.h (TARGET_POSIX_IO): Define.
108         * config/moxie/moxie.h (TARGET_POSIX_IO): Don't undefine.
109         * config/openbsd.h (TARGET_POSIX_IO): Define.
110         * config/rtems.h (TARGET_POSIX_IO): Define.
111         * config/sh/embed-elf.h (TARGET_POSIX_IO): Don't undefine.
112         * config/sol2.h (TARGET_POSIX_IO): Define.
113         * config/svr4.h (TARGET_POSIX_IO): Don't define.
114         * config/vxworksae.h (TARGET_POSIX_IO): Define.
116 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
118         * config/i386/nto.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
119         * config/ia64/hpux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
120         Define.
121         * config/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
122         undefine.
123         * config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
124         undefine.
125         * config/mips/netbsd.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
126         Don't undefine.
127         * config/rs6000/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
128         Don't undefine.
129         * config/rs6000/linux64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
130         Don't undefine.
131         * config/sol2.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
132         * config/sparc/netbsd-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
133         Don't undefine.
134         * config/sparc/openbsd64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
135         Don't undefine.
136         * config/sparc/sp64-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
137         Don't undefine.
138         * config/svr4.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
139         define.
140         * config/xtensa/elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
141         undefine.
143 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
145         * config/ia64/hpux.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
146         non-GNU assembler.
147         * config/m68k/netbsd-elf.h (AS_NEEDS_DASH_FOR_PIPED_INPUT):
148         Remove.
149         * config/m68k/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
150         * config/mips/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
151         * config/sol2.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
152         non-GNU assembler.
153         * config/sparc/sparc.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
154         * config/svr4.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
156 2010-12-09  Martin Jambor  <mjambor@suse.cz>
158         * ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the
159         zero is the first phi parameter.
161 2010-12-09  Martin Jambor  <mjambor@suse.cz>
163         * ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type.
164         * ipa-prop.c (ipa_modify_call_arguments): Use it.
165         * tree-sra.c (splice_param_accesses): Test that all accesses have the
166         same alias reference type.
167         (turn_representatives_into_adjustments): Set alias_ptr_type of the
168         adjustment.
170 2010-12-09  Martin Jambor  <mjambor@suse.cz>
172         PR middle-end/46734
173         * tree-sra.c (splice_param_accesses): Check that there are not
174         multiple ADDRESSABLE types.
176 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
178         * config/arc/arc.h (ASM_SPEC): Remove %{v}.
179         * config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
180         * config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
181         * config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
182         * config/frv/frv.h (ASM_SPEC): Remove %{v}.
183         * config/i386/linux.h (ASM_SPEC): Remove %{v}.
184         * config/i386/linux64.h (ASM_SPEC): Remove %{v}.
185         * config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
186         * config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
187         * config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
188         * config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
189         * config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
190         * config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
191         * config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
192         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
193         * config/mips/mips.h (ASM_SPEC): Remove %{v}.
194         * config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
195         * config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
196         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
197         * config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
198         * config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
199         * config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
200         * config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
201         * config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
202         * config/xtensa/linux.h (ASM_SPEC): Remove %{v}.
204 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
206         * config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
207         * config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
208         * config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not
209         %{r*:}.
210         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not
211         %{r*:}.
212         * config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
213         * config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.
215 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
217         * config/alpha/freebsd.h (LINK_SPEC): Don't use
218         %{!dynamic-linker:}.
219         * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
220         * config/arm/freebsd.h (LINK_SPEC): Likewise.
221         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
222         * config/bfin/linux.h (LINK_SPEC): Likewise.
223         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
224         * config/frv/linux.h (LINK_SPEC): Likewise.
225         * config/i386/freebsd.h (LINK_SPEC): Likewise.
226         * config/i386/freebsd64.h (LINK_SPEC): Likewise.
227         * config/i386/linux.h (LINK_SPEC): Likewise.
228         * config/i386/linux64.h (LINK_SPEC): Likewise.
229         * config/i386/openbsdelf.h (LINK_SPEC): Likewise.
230         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
231         * config/ia64/linux.h (LINK_SPEC): Likewise.
232         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
233         * config/m32r/linux.h (LINK_SPEC): Likewise.
234         * config/m68k/linux.h (LINK_SPEC): Likewise.
235         * config/microblaze/linux.h (LINK_SPEC): Likewise.
236         * config/mips/linux.h (LINK_SPEC): Likewise.
237         * config/mips/linux64.h (LINK_SPEC): Likewise.
238         * config/mips/openbsd.h (LINK_SPEC): Likewise.
239         * config/mn10300/linux.h (LINK_SPEC): Likewise.
240         * config/netbsd-elf.h (LINK_SPEC): Likewise.
241         * config/pa/pa-linux.h (LINK_SPEC): Likewise.
242         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
243         LINK_OS_LINUX_SPEC64): Likewise.
244         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
245         LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC):
246         Likewise.
247         * config/s390/linux.h (LINK_SPEC): Likewise.
248         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
249         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
250         * config/sparc/linux.h (LINK_SPEC): Likewise.
251         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
252         LINK_SPEC): Likewise.
253         * config/sparc/openbsd64.h (LINK_SPEC): Likewise.
254         * config/vax/linux.h (LINK_SPEC): Likewise.
255         * config/xtensa/linux.h (LINK_SPEC): Likewise.
257 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
259         * config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
260         * config/frv/frv.h (ASM_SPEC): Likewise.
261         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
262         * config/i386/sol2.h (ASM_SPEC): Likewise.
263         * config/m68k/linux.h (ASM_SPEC): Likewise.
264         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
265         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
266         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
267         * config/sol2.h (ASM_SPEC): Likewise.
268         * config/sparc/linux.h (ASM_SPEC): Likewise.
269         * config/sparc/linux64.h (ASM_SPEC): Likewise.
270         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
271         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
272         * config/svr4.h (SVR4_ASM_SPEC): Likewise.
274 2010-12-09  Richard Guenther  <rguenther@suse.de>
276         * reginfo.c (struct subregs_of_mode_node): Remove.
277         (subregs_of_mode): Likewise.
278         (som_hash): Likewise.
279         (som_eq): Likewise.
280         (invalid_mode_changes): New bitmap.
281         (record_subregs_of_mode): Get subregs_of_mode argument.
282         Fill in invalid_mode_changes bitmap.
283         (find_subregs_of_mode): Get subregs_of_mode argument and pass
284         it through.
285         (init_subregs_of_mode): Adjust.
286         (finish_subregs_of_mode): Likewise.
287         (invalid_mode_change_p): Query invalid_mode_changes bitmap.
289 2010-12-09  Richard Guenther  <rguenther@suse.de>
291         * ira.c (ira): Do not call finish_subregs_of_mode.
292         * ira-costs.c (finish_costs): Call finish_subregs_of_mode.
294 2010-12-09  Richard Guenther  <rguenther@suse.de>
296         * rtl.h (invalid_mode_change_p): Adjust prototype.
297         * reginfo.c (invalid_mode_change_p): Remove from argument.
298         * ira-costs.c (print_allocno_costs): Adjust callers.
299         (find_costs_and_classes): Likewise.
301 2010-12-09  Jakub Jelinek  <jakub@redhat.com>
303         * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
304         locg and stocg even in comment.
305         (sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.
307         PR target/41082
308         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
309         instead of stve*x.
310         (altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
311         of operand 0.
312         * config/rs6000/altivec.md (VI_scalar): New mode attr.
313         (altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
314         vector mode for operand 0, put operand 1 into UNSPEC.
316 2010-12-09  Yao Qi  <yao@codesourcery.com>
318         * config/arm/arm.c (arm_preferred_rename_class): Implement targethook
319         PREFERRED_RENAME_CLASS.
321 2010-12-08  Ian Lance Taylor  <iant@google.com>
323         * doc/sourcebuild.texi (Front End): Remove reference to
324         snapshot-README and snapshot-index.html.
326 2010-12-08  Ian Lance Taylor  <iant@google.com>
328         * doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
329         to update_web_docs_svn.
330         (Front End): Likewise.
332 2010-12-08  Iain Sandoe <iains@gcc.gnu.org>
334         gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
335         x86_64-*-darwin* to with_cpu:-core2.
336         gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
337         with movd for darwin assembler.
338         gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
339         (*vec_concatv2di_rex64_sse): Ditto.
341 2010-12-08  Richard Guenther  <rguenther@suse.de>
342             Sebastian Pop  <sebastian.pop@amd.com>
344         PR tree-optimization/45230
345         PR tree-optimization/45231
346         PR tree-optimization/45370
347         * sese.c (rename_uses): Returns a bool.  Call
348         recompute_tree_invariant_for_addr_expr only on the RHS of a
349         GIMPLE_ASSIGN.
350         (graphite_copy_stmts_from_block): Call fold_stmt_inplace when
351         rename_uses returns true.
352         * tree-ssa-copy.c (replace_exp): Add a comment about calling
353         fold_stmt_inplace after replace_exp.
355 2010-12-08  Mike Stump  <mikestump@comcast.net>
357         PR debug/46749
358         * config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
359         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
360         * config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
361         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
362         * collect2.c (post_ld_pass): Add.
363         (process_args): Add.
364         (maybe_run_lto_and_relink): Call post_ld_pass after ld.
365         (main): Likewise.  Call process_args.
367 2010-12-08  Jakub Jelinek  <jakub@redhat.com>
369         PR middle-end/46844
370         * regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg
371         parameter.
373 2010-12-08  Richard Earnshaw  <rearnsha@arm.com>
375         PR target/46631
376         * arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
377         into a 16-bit instruction.
379 2010-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
381         PR middle-end/42694
382         * builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
383         where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
384         instruction, but do optimize if y is 0.5 or 1./3. since that
385         changes an expensive call into a cheaper one.
387 2010-12-08  Richard Guenther  <rguenther@suse.de>
389         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
390         instead of a division to divide by BITS_PER_UNIT.
392 2010-12-08  Richard Guenther  <rguenther@suse.de>
394         * gimplify.c (gimple_tree_eq): Assert hashes are equal only
395         when checking is enabled.
397 2010-12-07  Andrey Belevantsev  <abel@ispras.ru>
399         PR target/43603
400         * haifa-sched.c (sched_create_recovery_edges): Update
401         dominator info.
402         * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
403         after deleting an empty block.
404         (tidy_control_flow): Also verify dominators.
405         (sel_remove_bb): Update dominator info after removing a block.
406         (sel_redirect_edge_and_branch_force): Assert that no unreachable
407         blocks will be created. Update dominator info.
408         (sel_redirect_edge_and_branch): Update dominator info when
409         basic blocks do not become unreachable.
410         (sel_remove_loop_preheader): Update dominator info. 
412 2010-12-07  Richard Guenther  <rguenther@suse.de>
414         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
415         Reset alignment information.
416         (bump_vector_ptr): Likewise.
418 2010-12-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
420         PR middle-end/46671
421         PR target/46685
422         * config/pa/pa.c (pa_function_section): New function.
423         (TARGET_ASM_FUNCTION_SECTION): Define.
425 2010-12-07  Ian Lance Taylor  <iant@google.com>
426             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
428         PR bootstrap/46810
429         * configure.ac: Disable AC_MSG_ERROR while looking for the C++
430         preprocessor.
431         * configure: Rebuild.
433 2010-12-07  Paul Koning  <ni1d@arrl.net>
435         * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
436         values with sign rather than as unsigned.
438 2010-12-07  Paul Koning  <ni1d@arrl.net>
440         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
441         (pdp11_function_section): New function.
443 2010-12-07  Joseph Myers  <joseph@codesourcery.com>
445         * config/mcore/mcore.c Don't include assert.h.
446         (layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
447         * config/spu/spu.c: Don't include assert.h.
448         (spu_sms_res_mii): Use gcc_assert.
450 2010-12-07  Sebastian Pop  <sebastian.pop@amd.com>
452         PR tree-optimization/42327
453         * tree-data-ref.c (omega_setup_subscript): Call build_int_cst
454         instead of using integer_minus_one_node.
456 2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>
458         PR c++/45330
459         * params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
460         * doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.
462 2010-12-07  Richard Guenther  <rguenther@suse.de>
464         PR tree-optimization/46832
465         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
466         that the call has a lhs.
468 2010-12-07  Yao Qi  <yao@codesourcery.com>
470         * Makefile.in: Add $(TARGET_H) to the regrename.o rule.
471         * regrename.c (struct du_head): Add new element length.
472         (sort_du_head, get_element, merge, merge_sort_comparison):
473         New functions of merge sort implementation to du_head list.
474         (regrename_optimize): Sort du_head linked list by length.
475         Iterate registers in a preferred-register-first order.
476         Move some code to ...
477         (check_new_reg_p): here.  New function.
478         (create_new_chain):  Initialize length.
479         (scan_rtx_reg): Increase length for non-debug insns.
480         * target.def: New hook preferred_rename_class.
481         * targhook.c (default_preferred_rename_class): New.
482         * targhook.h: Declare it.
483         * doc/tm.texi.in: New hook TARGET_PREFERRED_RENAME_CLASS.
484         * doc/tm.texi: Regenerate.
486 2010-12-07  Jakub Jelinek  <jakub@redhat.com>
488         PR debug/46799
489         * tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
490         instead of BUILTINS_LOCATION.
491         (create_loop_fn): Add LOC argument, pass it to build_decl instead of
492         BUILTINS_LOCATION.
493         (create_parallel_loop): Add LOC argument, use it for OMP clauses
494         and GIMPLE_*OMP* statements.
495         (gen_parallel_loop): Determine locus for the parallel loop, pass it
496         to create_loop_fn and create_parallel_loop.
497         * cfgexpand.c (gimple_expand_cfg): For builtin functions, call
498         set_curr_insn_source_location (UNKNOWN_LOCATION).
500 2010-12-07  Joern Rennecke  <amylaar@spamcop.net>
501             Richard Guenther  <rguenther@suse.de>
503         PR target/46737
504         * config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
505         (bfin_reorder_loops): Change type of index to intptr_t.
507 2010-12-07  Richard Guenther  <rguenther@suse.de>
509         PR tree-optimization/46726
510         * tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
512 2010-12-07  Richard Guenther  <rguenther@suse.de>
514         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
515         virtual operands.
517 2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>
519         * c-parser.c (c_parser_typeof_specifier): Removed special
520         treatment of objc_volatilized attribute for Objective-C.
522 2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>
524         * ira.c (update_equiv_regs): Prohibit move insns if
525         pressure-sensitive scheduling was done.
527 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
529         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
530         of c_process_expr_stmt() for the iterating and collection
531         expressions of an Objective-C fast enumeration loop.
533 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
535         PR debug/45997
536         * dwarf2out.c (modified_type_die): If both is_const_type and
537         is_volatile_type is set, start with DW_TAG_const_type or
538         DW_TAG_volatile_type depending on where we get qualified type
539         in the recursive call.
541         PR target/43897
542         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
543         as a store into that register.
545         PR tree-optimization/46528
546         PR debug/46338
547         * profile.c (branch_prob): Make sure last is never set to a debug
548         stmt.
550         PR debug/46771
551         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
552         on DEBUG_INSNs.
554         PR rtl-optimization/46777
555         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
556         also barrier after tablejump.
558 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
559             Richard Henderson  <rth@redhat.com>
561         PR target/46740
562         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
564 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
566         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
567         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
569 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
571         PR target/46735
572         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
573         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
574         (int12_operand, int_2word_operand, uint16_operand): Likewise.
575         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
576         (uint5_operand, uint4_operand): Likewise.
577         * config/frv/frv.h (IN_RANGE_P): Delete.
578         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
579         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
580         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
581         (CONST_OK_FOR_P): Likewise.
582         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
583         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
584         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
585         (*movsicc_internal2_float, casesi): Likewise.
586         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
587         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
588         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
589         (frv_split_cond_move, frv_rtx_costs): Likewise.
591         PR target/46739
592         * config/mmix/mmix.c (mmix_intval): Split shift count.
594 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
596         * config/i386/i386.c (m_COREI7): New.
597         (initial_ix86_tune_features): Turn on
598         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
599         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
601 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
603         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
605         * config/i386/driver-i386.c (host_detect_local_cpu): Support
606         Sandy Bridge.
608         * config/i386/i386.c (override_options): Handle "corei7-avx".
610         * doc/invoke.texi: Document corei7-avx.
612 2010-12-06  Richard Guenther  <rguenther@suse.de>
614         PR tree-optimization/46806
615         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
616         coalesce different types.
618 2010-12-06  Richard Guenther  <rguenther@suse.de>
620         PR tree-optimization/46785
621         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
622         call statements as operand definition.
624 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
626         * doc/tm.texi.in: Fix typo.
627         * doc/tm.texi: Regenerate.
629 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
631         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
632         last change.
634 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
636         * c-family/c-common.h: Removed the declarations of all the objc_
637         callbacks, and moved them into c-objc.h.  Removed
638         objc_ivar_visibility_kind and moved it into c-objc.h.
639         * c-family/c-objc.h: New file.
640         * c-family/c-common.c: Include c-objc.h.
641         * c-family/c-format.c: Same change.
642         * c-family/stub-objc.c: Same change.
643         * c-decl.c: Include c-family/c-objc.h.
644         * c-parser.c: Same change.
645         * c-typeck.c: Same change.
646         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
647         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
648         (c-parser.o): same change.
649         (c-typeck.o): Same change.
650         (c-family/c-format.o): Same change.
651         (c-family/stub-objc.o): Same change.
652         (c-family/c-common.o): Same change.
653         (PLUGIN_HEADERS): Added c-family/c-objc.h.
655 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
657         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
658         --with-dwarf2 option.
660 2010-12-03  Jan Hubicka  <jh@suse.cz>
662         * lto-streamer-in.c (input_cfg): Fix pasto.
664 2010-12-03  Jan Hubicka  <jh@suse.cz>
666         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
667         and functions with user asm defined names.
668         (varpool_externally_visible_p): Do not localize vars with user
669         asm defined names.
671 2010-12-03  Jan Hubicka  <jh@suse.cz>
673         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
674         to prevent mangling with lto frontend.
676 2010-12-03  Jan Hubicka  <jh@suse.cz>
678         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
679         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
681 2010-12-03  Jan Hubicka  <jh@suse.cz>
683         PR tree-optimization/46760
684         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
685         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
686         * lto-cgraph.c (lto_output_edge): Fix assert.
687         (lto_output_node): Output count_materialization_scale.
688         (output_profile_summary): Output only runs and sum_max.
689         (input_node): Input count_materialization_scale.
690         (input_profile_summary): Read data into file specific gcov summary.
691         (merge_profile_summaries): New function.
692         (input_cgraph): Update call of input_profile_summary;
693         call merge_profile_summaries.
694         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
695         rescale counts at read in.
696         (intput_bb): Likewise.
697         (input_function): Update call of input_bb.
698         (lto_read_body): Update call of input_cfg.
699         * lto-streamer.h: Inlclude gcov-io.h
700         (lto_file_decl_data): Add gcov_ctr_summary.
702 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
704         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
705         (Cond Exec Macros): ... to this.
706         * doc/tm.texi: Regenerate.
708 2010-12-03  Jason Merrill  <jason@redhat.com>
710         PR debug/46123
711         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
712         a declaration DIE.
714 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
716         * config/arm/arm.c (arm_legitimate_index_p): Split
717         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
718         slightly larger constants in the latter case.
719         (thumb2_legitimate_index_p): Likewise.
721 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
723         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
724         * gcc.c (cc1_options): Add %{Qy:}.
726 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
728         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
729         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
730         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
732 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
734         PR rtl-optimization/45354
735         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
736         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
737         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
738         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
740 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
742         * basic-block.h (struct edge_prediction): Remove forward
743         declaration.
744         * tree-flow.h (struct edge_prediction): Move from here...
745         * predict.c (struct edge_prediction): ...to here.
746         * cselib.h (struct elt_list): Move from here...
747         * cselib.c (struct elt_list): ...to here.
749 2010-12-02  Ian Lance Taylor  <iant@google.com>
751         * gcc.c (default_compilers): Add entry for ".go".
752         * common.opt: Add -static-libgo as a driver option.
753         * doc/install.texi (Configuration): Mention libgo as an option for
754         --enable-shared.  Mention go as an option for --enable-languages.
755         * doc/invoke.texi (Overall Options): Mention .go as a file name
756         suffix.  Mention go as a -x option.
757         * doc/frontends.texi (G++ and GCC): Mention Go as a supported
758         language.
759         * doc/sourcebuild.texi (Top Level): Mention libgo.
760         * doc/standards.texi (Standards): Add section on Go language.
761         Move references for other languages into their own section.
762         * doc/contrib.texi (Contributors): Mention that I contributed the
763         Go frontend.
765 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
767         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
768         (const_call_expr_arg_iterator_d): Likewise.
769         (expanded_location): Likewise.
770         * c-tree.h (struct c_arg_tag_d): Likewise.
771         * dwarf2out.c (struct cfa_loc): Likewise.
772         (struct skeleton_chain_struct): Likewise.
773         * except.c (struct ttypes_filter): Likewise.
774         * cselib.h (struct cselib_val_struct): Likewise.
775         (elt_loc_list): Likewise.
776         (elt_list): Likewise.
777         * varasm.c (struct addr_const): Likewise.
778         * tree-flow.h (struct edge_prediction): Likewise.
779         (struct int_tree_map): Likewise.
780         (struct _edge_var_map): Likewise.
782 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
784         PR target/46768
785         * config/i386/i386.c (initial_ix86_tune_features): Turn on
786         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
788 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
790         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
792 2010-12-02  Ian Lance Taylor  <iant@google.com>
794         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
795         header files unordered_map, tr1/unordered_map, and ext/hash_map.
796         * configure, config.in: Rebuild.
798 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
800         PR target/46685
801         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
802         (sparc_expand_move): Call it to decide whether to emit the special
803         mov{si,di}_pic_label_ref patterns.
804         (sparc_legitimize_pic_address): Call it to decide whether to emit
805         the regular PIC sequence for labels.  Fix long line.
806         (sparc_file_end): Set is_thunk for the PIC helper.
808 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
810         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
811         for a non-shared type.
813 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
815         PR middle-end/45297
816         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
817         with MEM_REFs as POINTER_PLUS_EXPR.
819 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
821         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
822         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
823         mentioning /lib/elf.
825 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
827         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
828         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
829         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
830         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
831         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
832         * config/sol2.h (LINK_SPEC): Remove %{b}.
833         * config/svr4.h (LINK_SPEC): Remove %{b}.
835 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
837         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
838         * config/i386/linux.h (LINK_SPEC): Cut long comment.
839         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
840         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
841         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
842         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
843         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
844         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
845         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
846         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
847         %{v:%{!V:-V}}.
849 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
851         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
852         -ftraditional.
854 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
856         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
857         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
858         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
859         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
860         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
861         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
862         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
863         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
864         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
865         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
866         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
867         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
868         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
869         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
870         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
871         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
872         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
873         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
875 2010-12-02  Paul Koning  <ni1d@arrl.net>
877         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
878         opcodes if CC_NO_OVERFLOW is set.
879         (notice_update_cc_on_set): Correct setting of CC0 as a side
880         effect; set CC_NO_OVERFLOW for cases where C flag is not
881         meaningful.
883 2010-12-02  Ian Lance Taylor  <iant@google.com>
885         * doc/install.texi (Configuration): Update default for
886         --with-boot-ldflags.
888 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
890         PR c/45062
891         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
892         !funcdef_flag.
894 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
896         PR tree-optimization/45199
897         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
898         (stores_zero_from_loop): Call
899         mem_write_stride_of_same_size_as_unit_type_p.
900         * tree-data-ref.h (stride_of_unit_type_p): New.
901         * tree-loop-distribution.c (generate_memset_zero): Simplified.
902         Call stride_of_unit_type_p.
903         (build_rdg_partition_for_component): Do not call
904         rdg_flag_similar_memory_accesses when
905         flag_tree_loop_distribute_patterns is set.
907 2010-12-02  Richard Guenther  <rguenther@suse.de>
909         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
910         sign-changing conversions for induction detection.
912 2010-12-02  Richard Guenther  <rguenther@suse.de>
914         PR tree-optimization/46723
915         * tree-vect-loop.c (get_initial_def_for_induction): Strip
916         conversions from the induction evolution and apply it to
917         the result instead.
918         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
919         assigns for induction defs.
921 2010-12-02  Richard Guenther  <rguenther@suse.de>
923         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
924         the case we need to split the edge and not the block.
926 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
928         DFA model for Core 2 and Core i7 scheduling.
930         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
931         * config/i386/i386.c (ix86_option_override_internal): Update entries
932         for Core 2 and Core i7.
933         (ix86_issue_rate): Set issue rate to 3 [be realistic].
934         * config/i386/i386.md: Include "core2.md".
935         (define_attr cpu): Add "corei7".
937 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
939         Define tuning for Core 2 and Core i7.
941         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
942         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
943         (m_CORE2): Replace with m_CORE2_{32,64}.
944         (m_CORE2I7{,_32,_64}): New macros.
945         (m_GENERIC32, m_GENERIC64): Update.
946         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
947         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
948         set m_CORE2I7_64 iff m_GENERIC64.
949         (processor_target_table): Use generic costs for Core 2 and Core i7.
950         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
951         (ix86_issue_rate): Remove entry for Core 2.
952         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
953         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
954         (TARGET_CORE2): Update.
955         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
956         (PROCESSOR_CORE2): Remove.
958 2010-12-02  Richard Guenther  <rguenther@suse.de>
960         * lto-streamer.h (LTO_major_version): Bump to 2.
962 2010-12-02  Richard Guenther  <rguenther@suse.de>
964         PR lto/44871
965         * gimple.c (canonical_type_hash_cache): New hashtable.
966         (gimple_type_hash): Make a wrapper around ...
967         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
968         (gimple_canonical_type_hash): Likewise.
969         (gtc_visit): Take a gtc_mode argument.
970         (gimple_types_compatible_p_1): Likewise. Do not compare struct
971         tag names or field names when computing canonical types.
972         (gimple_types_compatible_p): Adjust.
973         (visit): Take a gtc_mode argument.
974         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
975         names or field names when computing hashes of canonical types.
976         (gimple_register_canonical_type): Use gimple_canonical_type_hash
977         for the hash.
978         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
979         (free_gimple_type_tables): Free canonical_type_hash_cache.
981 2010-12-02  Richard Guenther  <rguenther@suse.de>
982             Ira Rosen  <irar@il.ibm.com>
984         PR tree-optimization/46663
985         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
986         FUNCTION_DECL exists and that it's a builtin.
988 2010-12-02  Jie Zhang  <jie@codesourcery.com>
990         PR middle-end/46674
991         * varasm.c (compute_visible_aliases): Handle user set
992         assembler name.
994 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
996         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
997         thinko regarding setting -mno-<xxx> debug switches.
998         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
1000 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1002         * intl.c: Don't include tm.h.
1003         * Makefile.in (intl.o): Don't depend on $(TM_H).
1005 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1007         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
1008         unused warning.
1009         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
1011 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1013         * graphite-sese-to-poly.c (analyze_drs): Removed.
1014         (build_scop_drs): Do not call analyze_drs.
1015         (analyze_drs_in_stmts): New.
1016         (insert_stmts): New.
1017         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
1018         (insert_out_of_ssa_copy_on_edge): Same.
1019         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
1020         (rewrite_phi_out_of_ssa): Same.
1021         (rewrite_cross_bb_scalar_dependence): Same.
1022         (split_reduction_stmt): Move data references in the new basic blocks.
1023         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
1025 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1027         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
1029 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1031         PR middle-end/45297
1032         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
1033         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
1034         * graphite-poly.h (new_poly_bb): Update declaration.
1035         (gbb_from_bb): Moved here...
1036         (pbb_from_bb): New.
1037         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
1038         Removed.
1039         (graphite_stmt_p): Removed.
1040         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
1041         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
1042         new_poly_bb.
1043         (build_scop_bbs_1): Do not pass in sbitmap reductions.
1044         (build_scop_bbs): Same.
1045         (gbb_from_bb): ... from here.
1046         (add_conditions_to_constraints): Moved up.
1047         (analyze_drs): New.
1048         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
1049         not contain data references.
1050         (new_pbb_from_pbb): New.
1051         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
1052         block is split.
1053         (rewrite_close_phi_out_of_ssa): Update call to
1054         insert_out_of_ssa_copy_on_edge.
1055         (rewrite_reductions_out_of_ssa): Now static.
1056         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
1057         (split_pbb): New.
1058         (split_reduction_stmt): Call split_pbb.
1059         (translate_scalar_reduction_to_array): Pass in the scop, do not
1060         pass in the sbitmap reductions.
1061         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
1062         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
1063         (rewrite_commutative_reductions_out_of_ssa): Same.
1064         (build_poly_scop): Call build_scop_bbs,
1065         rewrite_commutative_reductions_out_of_ssa,
1066         rewrite_reductions_out_of_ssa, and
1067         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
1068         before scop_to_lst.
1069         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
1070         Removed declaration.
1071         (rewrite_reductions_out_of_ssa): Same.
1072         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
1073         (build_scop_bbs): Same.
1074         * graphite.c (graphite_transform_loops): Do not initialize reductions.
1075         Do not call build_scop_bbs,
1076         rewrite_commutative_reductions_out_of_ssa,
1077         rewrite_reductions_out_of_ssa, and
1078         rewrite_cross_bb_scalar_deps_out_of_ssa.
1079         * sese.h (struct gimple_bb): Add field pbb.
1080         (GBB_PBB): New.
1082 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1084         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
1085         New.
1086         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
1087         handle_scalar_deps_crossing_scop_limits.
1088         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
1089         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
1091 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1093         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
1094         when replacing a constant in an ADDR_EXPR.
1096 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1098         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
1099         for the stride.
1100         (lst_do_strip_mine): Same.
1101         (scop_do_strip_mine): Same.
1102         * graphite-poly.c (apply_poly_transforms): Update call to
1103         scop_do_strip_mine.
1104         * graphite-poly.h (scop_do_strip_mine): Update declaration.
1106 2010-12-01  Jan Hubicka  <jh@suse.cz>
1108         * tree.c (build_common_builtin_nodes): Do not initialize
1109         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
1110         * builtins.c (expand_builtin_profile_func): Remove.
1111         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
1112         BUILT_IN_PROFILE_FUNC_EXIT.
1113         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
1114         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
1115         * gimplify.c (gimplify_function_tree): Reorganize code calling
1116         profiling functions.
1118 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1120         * opts.c: Expand comment on tm.h include.
1122 2010-12-01  Yao Qi  <yao@codesourcery.com>
1124         * config/arm/predicates.md ("vfp_register_operand"): Return true for
1125         VFP_D0_D7_REGS classes.
1127 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1129         * common.opt (flag_stack_check): New Variable entry.
1130         (fcompare-debug-second): Use Var.
1131         * flags.h (flag_compare_debug, flag_stack_check): Remove.
1132         * opts.c (flag_compare_debug): Remove.
1133         (common_handle_option): Don't handle OPT_fcompare_debug_second.
1134         Set opts->x_flag_stack_check for OPT_fstack_check_.
1135         * toplev.c (flag_stack_check): Remove.
1137 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1139         * common.opt (main_input_filename, main_input_basename,
1140         main_input_baselength): New Variable entries.  From toplev.c.
1141         * final.c (output_quoted_string): Move from toplev.c.
1142         * output.h (output_quoted_string): Move from toplev.h.
1143         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
1144         access main_input_filename, main_input_baselength and
1145         main_input_basename.
1146         * targhooks.c: Include intl.h and opts.h.
1147         (option_affects_pch_p, default_get_pch_validity): Move from
1148         toplev.c.
1149         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
1150         Move from toplev.h.
1151         * toplev.c (main_input_filename, main_input_basename,
1152         main_input_baselength): Move to common.opt.
1153         (output_quoted_string): Move to final.c.
1154         (warn_deprecated_use): Move to tree.c.
1155         (option_affects_pch_p, default_get_pch_validity,
1156         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
1157         * toplev.h (skip_leading_substring): Move to tree-dump.c.
1158         (warn_deprecated_use): Move to tree.h.
1159         (output_quoted_string): Move to output.h.
1160         (main_input_filename, main_input_basename, main_input_baselength):
1161         Move to common.opt.
1162         (default_get_pch_validity, default_pch_valid_p): Move to
1163         targhooks.c.
1164         * tree-dump.c (skip_leading_substring): Move from toplev.h.
1165         * tree.c (warn_deprecated_use): Move from toplev.c.
1166         * tree.h (warn_deprecated_use): Move from toplev.h.
1167         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
1168         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
1169         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
1170         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
1171         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
1172         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
1173         config/mcore/mcore.c, config/mep/mep.c,
1174         config/microblaze/microblaze.c, config/mips/mips.c,
1175         config/mmix/mmix.c, config/mn10300/mn10300.c,
1176         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
1177         config/picochip/picochip.c, config/s390/s390.c,
1178         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
1179         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
1180         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
1181         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
1182         varasm.c, xcoffout.c: Don't include toplev.h.
1183         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
1184         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
1185         varasm.o, xcoffout.o): Update dependencies.
1186         * config/arm/t-arm (arm.o): Update dependencies.
1187         * config/spu/t-spu-elf (spu.o): Update dependencies.
1189 2010-12-01  Richard Guenther  <rguenther@suse.de>
1191         PR tree-optimization/46730
1192         * value-prof.c (gimple_ic): Always generate a separate merge BB.
1194 2010-11-30  Ian Lance Taylor  <iant@google.com>
1196         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
1197         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
1198         * config/i386/linux64.h (ASM_SPEC): Likewise.
1199         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
1200         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
1201         * config/i386/vxworks.h (ASM_SPEC): Likewise.
1202         * config/i386/x86-64.h (ASM_SPEC): Likewise.
1203         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
1204         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
1206 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1208         * c-decl.c (finish_function): Call objc_finish_function in
1209         Objective-C.
1210         * c-typeck.c (convert_for_assignment): Do not call
1211         objc_type_quals_match().
1213 2010-11-30  Richard Guenther  <rguenther@suse.de>
1215         PR tree-optimization/46722
1216         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
1217         operands as arguments.
1218         (execute_optimize_widening_mul): Also handle power of two as
1219         multiplication.
1221 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1223         PR middle-end/46709
1224         * cgraphunit.c (process_function_and_variable_attributes): Fix
1225         cut'n'pasteo.
1227 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
1229         * hwint.c:  New.  Extracted from toplev.c.
1230         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1231         Move from toplev.h.
1232         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1233         Move to hwint.c.
1234         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1235         Move to hwint.h.
1236         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
1237         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
1238         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
1239         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
1240         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
1241         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
1242         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
1243         tree-vrp.c: Don't include toplev.h.
1244         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
1245         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
1246         toplev.h in generated output.
1247         * Makefile.in (OBJS-common): Add hwint.o.
1248         Dependencies for above files changed to remove toplev.h.
1249         (hwint.o): New.
1250         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
1251         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
1252         toplev.h.
1253         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
1254         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
1256 2010-11-30  Richard Guenther  <rguenther@suse.de>
1258         PR tree-optimization/46717
1259         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
1260         call.  Manually create EH edges for the direct call and update
1261         target PHI nodes.
1263 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
1265         * diagnostic-core.h: Include bversion.h.
1266         * toplev.h: Don't include input.h or bversion.h.
1267         (parse_optimize_options): Don't declare here.
1268         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
1269         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
1270         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
1271         config/host-darwin.c, config/i386/host-cygwin.c,
1272         config/i386/host-mingw32.c, config/i386/msformat-c.c,
1273         config/i386/netware.c, config/i386/nwld.c,
1274         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
1275         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
1276         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
1277         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
1278         config/score/score3.c, config/score/score7.c,
1279         config/sh/symbian-base.c, config/sh/symbian-c.c,
1280         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
1281         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
1282         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
1283         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
1284         graphite-blocking.c, graphite-clast-to-gimple.c,
1285         graphite-dependences.c, graphite-flattening.c,
1286         graphite-interchange.c, graphite-poly.c,
1287         graphite-scop-detection.c, graphite.c, haifa-sched.c,
1288         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
1289         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
1290         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
1291         lto-opts.c, lto-section-in.c, lto-section-out.c,
1292         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
1293         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
1294         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
1295         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
1296         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
1297         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
1298         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
1299         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
1300         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
1301         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
1302         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
1303         include toplev.h.
1304         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
1305         toplev.h.  Dependencies for above files and c-family files changed
1306         to remove $(TOPLEV_H) or toplev.h.
1307         (C_TREE_H): Don't include $(TOPLEV_H).
1308         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
1309         bversion.h.
1310         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
1311         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
1312         config/t-darwin, config/t-sol2,
1313         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
1314         Dependencies for above files changed to remove $(TOPLEV_H) or
1315         toplev.h.
1317 2010-11-30  Richard Guenther  <rguenther@suse.de>
1319         PR lto/44986
1320         * gcc.c (main): Use the first input with a compiler as infile
1321         for link spec processing.
1323 2010-11-30  Richard Guenther  <rguenther@suse.de>
1325         PR lto/45949
1326         * cgraphunit.c (ipa_passes): Stop after errors from
1327         small IPA passes.
1329 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
1331         * gcc-plugin.h: Include coretypes.h.
1332         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
1334 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1336         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
1337         * ggc-none.c (ggc_internal_alloc_zone_stat)
1338         (ggc_internal_cleared_alloc_zone_stat): New.
1340 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
1342         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
1343         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
1344         (rs6000_emit_prologue): Don't set PIC register if
1345         TARGET_SINGLE_PIC_BASE.
1346         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
1347         * doc/invoke.texi (msingle-pic-base): Document.
1349 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
1351         PR driver/46712
1352         * exec-tool.in (id): New.
1353         Check and export LT_RCU_$id instead of LT_RCU.
1355 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
1357         PR tree-optimization/46675
1358         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
1359         in offset calculation.
1361 2010-11-29  Jan Hubicka  <jh@suse.cz>
1363         * collect2.c (main): Do not imply verbose output with
1364         LTO and linker plugin.
1366 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
1368         * dwarf2out.c (print_die): Print the address of the current DIE or
1369         of any DIE referenced by the current one.
1371 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
1373         PR debug/46101
1374         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
1375         function.
1376         (scope_die_for, gen_type_die_for_member): Replace uses of
1377         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
1379 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
1381         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
1382         (darwin_asm_declare_object_name): Correct spelling.
1383         (darwin_output_aligned_bss): Likewise.
1385 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
1386             Mike Stump  <mrs@gcc.gnu.org>
1388         PR target/26427
1389         PR target/33120
1390         PR testsuite/35710
1391         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
1392         (ASM_OUTPUT_LOCAL): Likewise.
1393         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
1394         (darwin_output_aligned_bss): Likewise.
1395         (darwin_asm_output_aligned_decl_local): Likewise.
1396         (darwin_asm_output_aligned_decl_common): Likewise.
1397         (darwin_use_anchors_for_symbol_p): Likewise.
1398         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
1399         (TARGET_ASM_OUTPUT_ANCHOR): Define.
1400         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
1401         (DARWIN_SECTION_ANCHORS): Set to 1.
1402         * config/darwin.c (emit_aligned_common): New var.
1403         (darwin_init_sections): Check that the Darwin private zero-size section
1404         marker is in range.
1405         (darwin_text_section): Check for zero-sized objects.
1406         (darwin_mergeable_string_section): Likewise.
1407         (darwin_mergeable_constant_section): Likewise.
1408         (machopic_select_section): Adjust to check for zero-sized objects.
1409         Assert that OBJC meta data are non-zero sized.
1410         (darwin_asm_declare_object_name): New.
1411         (darwin_asm_declare_constant_name): Adjust for zero-sized
1412         object sections.
1413         (BYTES_ZFILL): Define.
1414         (darwin_emit_weak_or_comdat): New.
1415         (darwin_emit_local_bss): New.
1416         (darwin_emit_common): New.
1417         (darwin_output_aligned_bss): New.
1418         (darwin_asm_output_aligned_decl_common): New.
1419         (darwin_asm_output_aligned_decl_local): New.
1420         (darwin_file_end): Disable subsections_via_symbols when section
1421         anchoring is active.
1422         (darwin_asm_output_anchor): Re-enable.
1423         (darwin_use_anchors_for_symbol_p): New.
1424         (darwin_override_options): Check for versions that can emit
1425         aligned common.  Update usage of flags to current.
1426         * config/darwin-sections.def: Update comments and flags for
1427         non-anchor sections.  zobj_const_section, zobj_data_section,
1428         zobj_bss_section, zobj_const_data_section: New.
1429         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
1430         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
1431         (L2_MAX_OFILE_ALIGNMENT): Define.
1432         (ASM_OUTPUT_ALIGNED_BSS): Define.
1433         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
1434         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
1435         (SECTION_NO_ANCHOR): Define.
1436         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
1437         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
1439 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
1441         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
1442         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
1443         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
1444         Conditionally define.
1445         (GET_ENVIRONMENT): Poison.
1446         * configure.ac: Don't test for mincore.
1447         * configure: Regenerate.
1448         * config.in: Regenerate.
1449         * collect2-aix.c: Don't include <sys/mman.h>.
1450         * collect2.c: Don't include <signal.h>.
1451         (SIGCHLD): Don't define.
1452         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
1453         * config/alpha/alpha.c: Include "splay-tree.h" instead of
1454         <splay-tree.h>.
1455         * config/arm/arm.c (arm_target_help): Use getenv instead of
1456         GET_ENVIRONMENT.
1457         * config/avr/driver-avr.c: Don't include <stdlib.h>.
1458         * config/frv/frv.c: Don't include <ctype.h>.
1459         * config/host-darwin.c: Don't include <sys/mman.h>.
1460         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
1461         (MAP_FAILED): Don't define.
1462         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
1463         * config/host-solaris.c: Don't include <sys/mman.h>.
1464         * config/i386/cygming.h: Don't include <stdio.h>.
1465         * config/i386/driver-i386.c: Don't include <stdlib.h>.
1466         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
1467         * config/iq2000/iq2000.c: Don't include <signal.h>.
1468         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
1469         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
1470         * config/mep/mep-pragma.c: Don't include <stdio.h>.
1471         * config/microblaze/microblaze.c: Don't include <signal.h>.
1472         * config/mips/mips.c: Don't include <signal.h>.
1473         * config/rs6000/host-darwin.c: Don't include <signal.h>.
1474         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
1475         * defaults.h (GET_ENVIRONMENT): Don't define.
1476         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
1477         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
1478         (SIGCHLD, MAP_FAILED, kill): Don't define.
1479         (process_command): Use getenv instead of GET_ENVIRONMENT.
1480         * genhooks.c: Don't include <string.h>.
1481         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
1482         <sys/types.h>.
1483         (MAP_FAILED): Don't define.
1484         * ggc-page.c Don't include <sys/mman.h>.
1485         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
1486         * ggc-zone.c: Don't include <sys/mman.h>.
1487         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
1488         * graph.c: Include "config.h" instead of <config.h>.
1489         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
1490         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
1491         (SIGCHLD, kill): Don't define.
1492         * mips-tfile.c: Don't include <signal.h>.
1493         * opts.c: Don't include <signal.h> or <sys/resource.h>.
1494         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
1495         * passes.c: Don't include <signal.h>, <sys/resource.h> or
1496         <sys/times.h>.
1497         * sparseset.h: Don't include <assert.h>.
1498         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
1499         * tlink.c: Don't include "libiberty.h".
1500         * toplev.c: Don't include <signal.h> or <sys/times.h>.
1501         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
1502         * tree-switch-conversion.c: Don't include <signal.h>.
1503         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
1505 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1507         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
1508         c_parser_objc_try_catch_finally_statement for consistency with the
1509         C++ parser.  Parse @catch(...) and pass NULL_TREE to
1510         objc_begin_catch_clause() in that case.  Improved error recovery.
1511         Reorganized code to be almost identical to
1512         cp_parser_objc_try_catch_finally_statement.
1514 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
1516         PR tree-optimization/46621
1517         * gimple.h: Don't include tm.h or hard-reg-set.h .
1518         * Makefile.in (GIMPLE_H): Remove $(TM_H).
1520         PR bootstrap/44756
1521         * cppbuiltin.c: Include target.h .
1522         (define_builtin_macros_for_type_sizes):
1523         Use targetm.float_words_big_endian.
1525 2010-11-27  Jan Hubicka  <jh@suse.cz>
1527         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
1528         and output cold_text_section_label.
1529         (dwarf2out_init): Don't do that there.
1530         (dwarf2out_finish): Handle cold section end label only if cold
1531         section was used.
1533 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1535         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
1536         VLA variables.
1538 2010-11-27  Richard Guenther  <rguenther@suse.de>
1540         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
1541         (gimple_assign_ssa_name_copy_p): Likewise.
1542         (gimple_assign_unary_nop_p): Use is_gimple_assign.
1543         (is_gimple_cast): Remove.
1544         (gimple_assign_single_p): Move ...
1545         * gimple.h (gimple_assign_single_p): ... here.
1546         (is_gimple_cast): Remove.
1547         (gimple_assign_rhs_code): Simplify.
1548         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
1549         instead of is_gimple_cast.
1550         * ipa-type-escape.c (look_for_casts): Likewise.
1552 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
1554         * doc/options.texi (Enum, EnumValue): Document new record types.
1555         (Enum): Document new option flag.
1556         * opt-functions.awk
1557         * optc-gen.awk: Handle enumerated option arguments.
1558         * opth-gen.awk: Handle enumerated option arguments.
1559         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
1560         enum_value_to_arg): New.
1561         (decode_cmdline_option): Handle enumerated arguments.
1562         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
1563         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
1564         * opts.c (print_filtered_help, print_specific_help): Take
1565         lang_mask arguments.
1566         (print_filtered_help): Handle printing values of enumerated
1567         options.  Print possible arguments for enumerated options.
1568         (print_specific_help): Update call to print_filtered_help.
1569         (common_handle_option): Update calls to print_specific_help.  Use
1570         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
1571         handle OPT_ffp_contract_, OPT_fexcess_precision_,
1572         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
1573         OPT_fira_region_ here.
1574         * opts.h (enum cl_var_type): Add CLVC_ENUM.
1575         (struct cl_option): Add var_enum.
1576         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
1577         struct cl_enum, cl_enums, cl_enums_count): New.
1578         (CL_ERR_ENUM_ARG): Define.
1579         (CL_ERR_NEGATIVE): Update value.
1580         (enum_value_to_arg): Declare.
1581         * common.opt (flag_ira_algorithm, flag_ira_region,
1582         flag_fp_contract_mode, flag_excess_precision_cmdline,
1583         default_visibility, flag_tls_default): Remove Variable entries.
1584         (help_enum_printed): New Variable.
1585         (fdiagnostics-show-location=): Use Enum.  Add associated
1586         SourceInclude, Enum and EnumValue entries.
1587         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
1588         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
1589         associated Enum and EnumValue entries.
1591 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
1593         PR target/46623
1594         * config/microblaze/microblaze.c (microblaze_block_move_straight):
1595         Use XALLOCAVEC.
1596         (microblaze_option_override): Don't use C++ style comments.
1597         (save_restore_insns): Remove unused variable base_offset.
1598         (microblaze_expand_prologue): Remove unused variable insn.
1599         (microblaze_secondary_reload): Adjust type to match target.h .
1600         (microblaze_elf_in_small_data_p): Move declarations to start of block.
1601         (microblaze_expand_move): Likewise.
1602         * config/microblaze/microblaze.h (LARGE_INT):
1603         Avoid signed / unsigned comparisons.
1604         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1605         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
1606         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
1608 2010-11-26  Michael Matz  <matz@suse.de>
1610         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
1612         * passes.c (init_optimization_passes): Remove superfluous
1613         copy-prop pass.
1615 2010-11-26  Richard Guenther  <rguenther@suse.de>
1617         PR lto/46648
1618         * gimple.c (gtc_visit): Do not return true for members of an
1619         SCC still being processed but the current lattice value of
1620         the member.  Treat SCC members comparison state as lattice,
1621         starting at equal, eventually dropping to unequal.
1622         (gimple_types_compatible_p_1): Likewise.
1624 2010-11-26  Richard Guenther  <rguenther@suse.de>
1626         PR middle-end/46559
1627         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
1628         for location list processing.
1630 2010-11-26  Richard Guenther  <rguenther@suse.de>
1632         PR lto/46560
1633         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
1634         flags manually.
1636 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1638         * config/s390/s390.c (print_operand_address): Replace assert with
1639         error message.
1640         (print_operand): Replace assertions, gcc_unreachable and
1641         fatal_insn with error messages.
1643 2010-11-26  Richard Guenther  <rguenther@suse.de>
1645         PR tree-optimization/46665
1646         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
1648 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
1650         * config/arm/arm.c (arm_option_override): enable loop array
1651         prefetching at -O3 for suitable targets, and configure params.
1652         * config/arm/arm-protos.h (struct tune_params): Add fields for
1653         configuring loop array prefetching.
1655 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
1657         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
1659 2010-11-26  Richard Guenther  <rguenther@suse.de>
1661         PR tree-optimization/46664
1662         * tree-affine.c (aff_combination_to_tree): Add rest last.
1664 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
1666         PR target/33637
1667         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
1668         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
1669         * configure: Regenerated.
1670         * exec-tool.in: Not quoting command, may have extra arguments.
1672 2010-11-26  Richard Guenther  <rguenther@suse.de>
1674         PR tree-optimization/46528
1675         PR debug/46338
1676         * profile.c (branch_prob): Do not split blocks based on locations
1677         from debug statements.
1679 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
1681         PR middle-end/46647
1682         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
1683         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
1685         PR bootstrap/45700
1686         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
1687         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
1688         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
1689         build6_loc): Define.
1690         * fold-const.c (protected_set_expr_location_unshare): New inline.
1691         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
1692         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
1693         pedantic_omit_one_operand_loc, omit_two_operands_loc,
1694         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
1695         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
1696         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
1697         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
1698         instead of buildN followed by SET_EXPR_LOCATION or
1699         protected_set_expr_location.
1700         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
1701         Use buildN_stat_loc instead of buildN_stat followed by
1702         SET_EXPR_LOCATION.
1704 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
1706         * Makefile.in (s-tm-texi): Remove spurous tab.
1708 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
1710         PR debug/46258
1711         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
1712         debug stmts.
1714 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
1716         * toplev.c (finalize): Add no_backend parameter.  Don't finish
1717         passes when preprocessing only.  Adjust...
1718         (do_compile): ... caller.
1720 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1722         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
1723         flag_unsafe_math_optimizations.
1724         (negsf2): Likewise.
1725         Move fnegabs related patterns together.  Only use fmpynfadd instruction
1726         to negate a multiply if !flag_signed_zeros is true.
1728 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
1730         * gengtype-state.c (read_state_structures): Initialize "previous".
1732 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
1733             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1735         * gengtype-state.c: Add new file.
1737         * gengtype.c (type count): New variable.
1738         (new_structure, find_param_structure, create_pointer)
1739         (create_array): Use it to set state_number in types.
1740         (dump_everything): Improve comment.
1741         (main): Call read_state and write_state. Print type_count.
1743         * gengtype.h (type_lineloc): New function.
1744         (read_state, write_state): New declarations.
1746         * Makefile.in (GENGTYPE_FLAGS): New variable.
1747         (s-gtype): Run gengtype twice and generate gtype.state.
1748         (build/gengtype-state.o): New rule.
1749         (build/gengtype$(build_exeext)): Link gengtype-state.o.
1750         (mostlyclean): Update comment.  Remove gtype.state.
1752 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
1754         PR middle-end/46637
1755         * combine.c (try_combine): When substing i2dest for i2src, pass
1756         1 as last argument even if
1757         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
1759 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
1761         PR middle-end/46647
1762         * builtins.c (target_char_cast): Check INTEGER_CST instead of
1763         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
1765 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
1767         * target.def (supports_split_stack, except_unwind_info): Take
1768         gcc_options parameters.
1769         * targhooks.c (default_except_unwind_info,
1770         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
1771         gcc_options parameters.
1772         * targhooks.h (default_except_unwind_info,
1773         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
1774         prototypes.
1775         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
1776         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
1777         Document that hooks must not be modified.
1778         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
1779         * doc/tm.texi: Regenerate.
1780         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
1781         &global_options to targetm.except_unwind_info.
1782         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
1783         dwarf2out_begin_prologue, dwarf2out_frame_init,
1784         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
1785         &global_options to targetm.except_unwind_info.
1786         * except.c (init_eh, finish_eh_generation,
1787         gate_convert_to_eh_region_ranges,
1788         output_one_function_exception_table): Pass &global_options to
1789         targetm.except_unwind_info.
1790         * expr.c (build_personality_function): Pass &global_options to
1791         targetm.except_unwind_info.
1792         * function.c (expand_function_end): Pass &global_options to
1793         targetm.except_unwind_info.
1794         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
1795         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
1796         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
1797         and targetm.supports_split_stack.  Remove assertions about opts
1798         and opts_set.
1799         (common_handle_option): Remove assertions about opts, opts_set and dc.
1800         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
1801         &global_options to targetm.except_unwind_info.
1802         * tree.c (build_common_builtin_nodes: Pass &global_options to
1803         targetm.except_unwind_info.
1804         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
1805         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
1806         thumb1_expand_prologue, thumb1_output_function_prologue,
1807         arm_unwind_emit, arm_output_fn_unwind): Update calls to
1808         arm_except_unwind_info.
1809         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
1810         parameter.
1811         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
1812         parameter.
1813         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
1814         ia64_reorg, ia64_asm_unwind_emit): Update calls to
1815         ia64_except_unwind_info.
1816         * config/pa/pa.c (pa_option_override): Pass &global_options to
1817         targetm.except_unwind_info.
1818         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
1819         Remove prototype.
1821 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
1823         * cgraphunit.c (process_function_and_variable_attributes):
1824         Mark dllexport-ed function/variables as needed.
1825         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
1826         as externally visible.
1828 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1830         PR rtl-optimization/46585
1831         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
1832         (vinsn_init): Skip computation of dependencies for local NOPs.
1833         (vinsn_delete): Don't try to free regsets for local NOPs.
1834         (setup_nop_and_exit_insns): Change definition of nop_pattern.
1836 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1838         PR rtl-optimization/46602
1839         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
1840         (tidy_control_flow): Here.
1842 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
1843             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1845         PR bootstrap/45888
1846         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
1847         Fix target.def pathname in timestamp comparison.
1849 2010-11-24  Richard Henderson  <rth@redhat.com>
1851         * config/ia64/predicates.md (pmpyshr_operand): New.
1852         * config/ia64/ia64.c (ia64_expand_unpack): New.
1853         (ia64_expand_widen_mul_v4hi): New.
1854         (ia64_expand_widen_sum): Update for pattern renames.
1855         (ia64_expand_dot_prod_v8qi): Likewise.
1856         * config/ia64/ia64-protos.h: Update.
1857         * config/ia64/vect.md (vecwider): New mode attribute.
1858         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
1859         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
1860         (pmpyshr2, pmpyshr2_u): New.
1861         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
1862         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
1863         (mulv2si3): New.
1864         (vec_pack_ssat_v4hi): Rename from pack2_sss.
1865         (vec_pack_usat_v4hi): Rename from *pack2_uss.
1866         (vec_pack_ssat_v2si): Rename from pack4_sss.
1867         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
1868         vec_select operation.
1869         (vec_interleave_highv8qi): Similarly.
1870         (mux1_alt): Rename from *mux1_alt.
1871         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
1872         (vec_interleave_lowv4hi): Rename from unpack2_l.
1873         (vec_interleave_highv4hi): Rename from unpack2_h.
1874         (mix2_r): Rename from *mix2_r.
1875         (mix2_l): Similarly.
1876         (vec_extract_evenodd_helper): New.
1877         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
1878         (vec_interleave_lowv2si): Rename from *unpack4_l.
1879         (vec_interleave_highv2si): Rename from *unpack4_h.
1880         (vec_extract_evenv2si, vec_extract_oddv2si): New.
1881         (vec_interleave_lowv2sf): Rename from fmix_r.
1882         (vec_interleave_highv2sf): Rename from *fmix_l.
1883         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
1884         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
1885         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
1886         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
1888 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1890         * targhooks.c (default_except_unwind_info): Remove
1891         MUST_USE_SJLJ_EXCEPTIONS case.
1892         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1893         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1894         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1895         * doc/tm.texi: Regenerate.
1896         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
1898 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1900         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1901         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
1902         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
1903         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
1904         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
1906 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1908         PR target/46519
1909         * config/i386/i386.c (ix86_expand_call): Don't check
1910         TREE_THIS_VOLATILE.
1912 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1914         PR target/46519
1915         * config/i386/i386.c (upper_128bits_state): New.
1916         (block_info_def): Remove upper_128bits_set and done.  Add state,
1917         referenced, count, processed and rescanned.
1918         (check_avx256_stores): Updated.
1919         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1920         Call note_stores only if needed.  Set referenced and count.
1921         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1922         (rescan_move_or_delete_vzeroupper): New.
1923         (move_or_delete_vzeroupper):  Process and rescan all all basic
1924         blocks instead of predecessor blocks of all exit points.
1925         (ix86_option_override_internal): Enable vzeroupper optimization
1926         only for -fexpensive-optimizations and not optimizing for size.
1927         (use_avx256_p): Removed.
1928         (init_cumulative_args): Don't set use_avx256_p.
1929         (ix86_function_arg): Likewise.
1930         (ix86_expand_move): Likewise.
1931         (ix86_expand_vector_move_misalign): Likewise.
1932         (ix86_local_alignment): Likewise.
1933         (ix86_minimum_alignment): Likewise.
1934         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1935         vzeroupper.
1936         (ix86_expand_call): Likewise.
1938         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1939         and use_avx256_p.  Add rescan_vzeroupper_p.
1941 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1943         * toplev.c: Include <signal.h>.
1945 2010-11-24  Richard Guenther  <rguenther@suse.de>
1947         PR lto/43218
1948         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1949         conflicting function signatures as non-inlineable.
1951 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1953         PR rtl-optimization/46614
1954         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1955          (deps_analyze_insn): Mark JUMP_INSNs in
1956         last_pending_memory_flush that weren't added through
1957         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1958         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1959         on INSN_LIST instead of JUMP_P check on its operand.
1960         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1962 2010-11-24  Richard Guenther  <rguenther@suse.de>
1964         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1966 2010-11-24  Richard Guenther  <rguenther@suse.de>
1968         PR lto/46606
1969         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1970         a FIELD_DECL that is type correct issue a warning and fixup
1971         with a VIEW_CONVERT_EXPR.
1973 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1975         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1976         Explain static numbering of dump files.
1978 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1980         * common.opt (user_vect_verbosity_level): New Variable entry.
1981         (ftree-vectorizer-verbose=): Mark as UInteger.
1982         * flag-types.h (enum vect_verbosity_levels): Move from enum
1983         verbosity_levels in tree-vectorizer.h.
1984         * opts.c: Don't include tree.h.
1985         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1986         gcc_options parameter; take integer option argument.
1987         (common_handle_option): Update call to vect_set_verbosity_level.
1988         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1989         (vect_set_verbosity_level): Move to opts.c.
1990         (vect_verbosity_level, vect_print_dump_info): Update for change of
1991         enum name.
1992         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1993         (vect_print_dump_info): Update for change of enum name.
1994         * tree.h (vect_set_verbosity_level): Remove.
1995         * Makefile.in (opts.o): Update dependencies.
1997 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1999         PR middle-end/46629
2000         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
2001         instead of insn with any_condjump_p.
2003 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
2005         * config/mips/loongson.md: Change the description comment of the file
2006         and update the copyright years.
2007         (define_insn "<u>div<mode>3): Add loongson3a support.
2008         (define_insn "<u>mod<mode>3"): Likewise.
2009         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
2010         mul<mode>3_mul3_loongson.
2011         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
2012         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
2014 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2016         * common.opt (initial_max_fld_align, flag_debug_asm,
2017         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
2018         flag_print_asm_name, graph_dump_format, help_printed,
2019         help_columns, flag_opts_finished): New Variable entries.
2020         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
2021         frandom-seed=): Mark deferred.
2022         (fsched-verbose=): Use UInteger and Var.
2023         * flags.h (set_struct_debug_option, flag_print_asm_name,
2024         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
2025         graph_dump_format): Don't declare here.
2026         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
2027         * opts-global.c: Include dbgcnt.h and debug.h.
2028         (decode_options): Pass location to finish_options.
2029         (handle_common_deferred_options): Check flag_dump_all_passed.
2030         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
2031         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
2032         OPT_fstack_limit.
2033         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
2034         (set_struct_debug_option): Add location_t parameter.  Update
2035         recursive call.  Use error_at.
2036         (default_options_optimization): Use error_at.
2037         (finish_options): Add location_t parameter.  Use
2038         opts->x_flag_opts_finished instead of first_time_p.  Use
2039         opts->x_optimize instead of optimize.  Use error_at.  Pass
2040         location to inform.
2041         (print_filtered_help): Use opts->x_help_printed to track what
2042         options have been printed.
2043         (print_specific_help): Use opts->x_help_columns to track number of
2044         columns.
2045         (common_handle_option): Pass locations and gcc_options pointers to
2046         more functions.  Use warning_at instead of fnotice and warning.
2047         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
2048         OPT_fdebug_prefix_map_.  Use error_at.  Set
2049         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
2050         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
2051         OPT_fsched_verbose_.
2052         (handle_param): Add location_r parameter.  Use error_at.
2053         (set_debug_level): Add location_r parameter.  Use error_at and
2054         warning_at.
2055         (setup_core_dumping): Add diagnostic_context parameter.
2056         (decode_d_option): Add gcc_options, location_t and
2057         diagnostic_context parameters and use them instead of global
2058         state.  Use warning_at.
2059         (enable_warning_as_error): Use error_at.
2060         * opts.h (finish_options): Update prototype.
2061         (set_struct_debug_option): Declare here.
2062         * rtl.h (fix_sched_param): Remove.
2063         * stor-layout.c (initial_max_fld_align): Remove.
2064         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
2065         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
2066         (process_options): Set maximum_field_alignment.
2067         * tree.h (initial_max_fld_align) Don't declare here.
2068         * Makefile.in (opts.o, opts-global.o): Update dependencies.
2070 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2072         * flag-types.h (struct visibility_flags): Don't declare here.
2073         * flags.h (strip_off_ending, fast_math_flags_set_p,
2074         fast_math_flags_struct_set_p): Declare here.
2075         (visibility_options): Don't declare here.
2076         * opts-common.c (option_enabled, get_option_state): Move from
2077         opts.c.
2078         * opts-global.c: Include diagnostic.h instead of
2079         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
2080         and toplev.h.
2081         (const_char_p, ignored_options, in_fnames, num_in_fnames,
2082         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
2083         print_ignored_options, unknown_option_callback,
2084         post_handling_callback, lang_handle_option, add_input_filename,
2085         read_cmdline_options, initial_lang_mask, init_options_once,
2086         decode_cmdline_options_to_array_default_mask,
2087         set_default_handlers, decode_options): Move from opts.c.
2088         (print_ignored_options): Use warning_at instead of saving and
2089         restoring input_location.
2090         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
2091         instead of expr.h.  Don't include langhooks.h, except.h or
2092         lto-streamer.h.  Add more comments on includes.
2093         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
2094         toplev.c.
2095         (visibility_options): Move to c-family/c-common.c.
2096         (const_char_p, ignored_options, in_fnames, num_in_fnames,
2097         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
2098         print_ignored_options, unknown_option_callback,
2099         post_handling_callback, lang_handle_option, add_input_filename,
2100         read_cmdline_options, initial_lang_mask, init_options_once,
2101         decode_cmdline_options_to_array_default_mask,
2102         set_default_handlers, decode_options): Move to opts-global.c.
2103         (target_handle_option, default_options_optimization,
2104         finish_options, common_handle_option): Remove static.
2105         (option_enabled, get_option_state): Move to opts-common.c.
2106         * opts.h (common_handle_option, target_handle_option,
2107         finish_options, default_options_optimization): Declare.
2108         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
2109         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
2110         opts.c.
2111         * toplev.h (strip_off_ending, decode_d_option,
2112         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
2113         declare here.
2114         * Makefile.in (opts.o, opts-global.o): Update dependencies.
2116 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
2118         PR driver/42690
2119         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
2120         options, replace by call of pass-through-libs spec function to process
2121         link_gcc_c_sequence spec.
2122         (lto_libgcc_spec): Delete variable.
2123         (static_specs[]): Remove related entry.
2124         (static_spec_functions[]): Add new entry for pass-through-libs.
2125         (main): Don't generate deleted lto_libgcc_spec.
2126         (pass_through_libs_spec_func): New function to implement the new
2127         pass-through-libs spec function.
2128         * doc/invoke.texi (pass-through-libs): Document new spec function.
2130 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2132         * doc/options.texi (Warning, Optimization): Document.
2134 2010-11-23  Jan Hubicka  <jh@suse.cz>
2136         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
2137         (tree_decl_with_vis): Add implicit_section_name_p.
2138         * targhooks.h (default_function_section): Declare.
2139         * target.def (function_section): New hook.
2140         * defaults.h (HOT_TEXT_SECTION_NAME,
2141         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2142         * predict.c (choose_function_section): Remove.
2143         (estimate_bb_frequencies): Do not use choose_function_section.
2144         * coretypes.h (enum node_frequency): Move here from cgraph.h
2145         * cgraph.h (enum node_frequency): Remove.
2146         * varasm.c (initialize_cold_section_name, unlikely_text_section,
2147         unlikely_text_section_p): Remove.
2148         (named_subsection_entry): New structure.
2149         (get_text_section): New function.
2150         (default_function_section): New function.
2151         (function_section_1): Break out from ...; handle profile info.
2152         (function_section): ... here.
2153         (unlikely_text_section): Remove.
2154         (unlikely_text_section_p): Use function_section_1.
2155         (assemble_start_function): Do not initialize cold section.
2156         (default_section_type_flags): Do not special case cold subsection.
2157         (switch_to_section): Likewise.
2158         * output.h (get_text_section): Define.
2159         * config/i386/winnt.c: Do not special case cold section.
2160         * config/darwin-protos.h (darwin_function_section): Declare.
2161         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
2162         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2163         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
2164         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2165         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
2166         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
2167         * config/darwin.c (machopic_select_section): Use
2168         darwin_function_section.
2169         (darwin_function_section): New function.
2170         * config/darwin.h (HOT_TEXT_SECTION_NAME,
2171         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2172         (TARGET_ASM_FUNCTION_SECTION): Define.
2173         * system.h (HOT_TEXT_SECTION_NAME,
2174         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
2176 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
2178         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
2179         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
2181 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
2183         PR middle-end/46499
2184         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
2185         following unconditional jumps.
2187 2010-11-23  Richard Guenther  <rguenther@suse.de>
2189         * doc/md.texi (386 constraints): Clarify A constraint documentation.
2191 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
2192             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2194         * gengtype.c (enum typekind, struct options)
2195         (struct nested_ptr_data, struct pair, NUM_PARAM)
2196         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
2197         Move to gengtype.h.
2198         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
2199         Remove static, add zero state_number.
2200         (typedefs, structures, param_structs, variables): Remove static.
2201         (create_option): Remove.
2202         (create_string_option, create_type_option, create_nested_option):
2203         New functions.
2204         (create_nested_ptr_option): Use create_nested_option.
2205         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
2206         new create*option functions.
2207         (process_gc_options): Adjust for discriminated option.
2208         (output_mangled_typename): Handle TYPE_NONE.
2209         (walk_type): Test option kinds.
2210         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
2211         (write_func_for_structure, write_type, write_local, write_root)
2212         (write_roots, note_def_vec, dump_options): Adjust for
2213         discriminated option.
2215         * gengtype.h (typedefs, structures, param_structs, variables
2216         enum typekind): Move from gengtype.c
2217         (enum option_kind): New discriminating enumeration.
2218         (struct options): Becomes discriminated.
2219         (struct nested_ptr_data): Nove from gengtype.c
2220         (create_string_option, create_type_option, create_nested_option)
2221         (create_nested_ptr_option): New functions
2222         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
2223         (UNION_OR_STRUCT_P): Move from gengtype.c
2225         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
2226         discriminated options.
2228 2010-11-23  Richard Guenther  <rguenther@suse.de>
2230         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
2231         twice.  Avoid re-allocating the ops vector all the time.
2233 2010-11-23  Richard Guenther  <rguenther@suse.de>
2235         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
2236         is_gimple_min_invariant, group tree code checks to allow
2237         combining them.
2238         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
2239         of is_gimple_reg.
2241 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
2243         * config.gcc (sparc*-*-*): Reorder.
2245 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
2247         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
2248         Remove ENABLE_CHECKING around DBGPRINTF.
2250 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
2252         * common.opt (exit_after_options, write_symbols, debug_info_level,
2253         use_gnu_debug_info_extensions): New Variable entries.
2254         (fprofile-dir=): Use Var.
2255         * flag-types.h (enum debug_info_level): Rename to enum
2256         debug_info_levels.
2257         * flags.h (write_symbols, debug_info_level,
2258         use_gnu_debug_info_extensions): Remove declarations.
2259         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
2260         (set_struct_debug_option): Make static variables const.
2261         (use_gnu_debug_info_extensions): Remove.
2262         (set_debug_level, print_filtered_help, print_specific_help,
2263         fast_math_flags_set_p): Take gcc_options parameters and use them
2264         in place of global variables.
2265         (print_filtered_help): Make new_help non-static.
2266         (print_specific_help): Update call to print_filtered_help.
2267         (common_handle_option): Update calls to print_specific_help.  Use
2268         gcc_options structure for more settings.  Make --help table
2269         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
2270         set_debug_level.
2271         * toplev.c (profile_data_prefix): Remove.
2272         * toplev.h (profile_data_prefix, exit_after_options): Remove
2273         declarations.
2274         (fast_math_flags_set_p): Update prototype.
2275         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
2276         Update call to fast_math_flags_set_p.
2278 2010-11-22  Richard Henderson  <rth@redhat.com>
2280         PR target/46434
2281         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
2282         return the address register extracted.
2283         (crx_decompose_address): Update the extracted address register.
2285 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
2287         PR driver/43335
2288         * gcc.c (main): Don't crash when lto-wrapper program is not found.
2290 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
2292         PR target/46608
2293         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
2294         * config/picochip/picochip-protos.h: Don't include "target.h" .
2295         (picochip_secondary_reload): Don't declare.
2297         PR target/46613
2298         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
2299         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
2300         static.
2302 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
2304         PR bootstrap/46609
2305         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
2306         (source_dot_c_frul): Likewise.
2308 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
2310         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
2312 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
2314         PR bootstrap/44970
2315         * Makefile.in (fwprop.o) Add sparseset.h.
2316         * fwprop.c: Include sparseset.h
2317         (struct find_occurrence_data, find_occurrence_callback,
2318         find_occurrence): Remove.
2319         (active_defs, active_defs_check, register_active_defs,
2320         update_df_init, update_uses): New.
2321         (update_df): Rewrite.
2322         (try_fwprop_subst, forward_propagate_asm): Add calls to
2323         update_df_init and update_df.
2324         (fwprop_init): Allocate active_defs and active_defs_check.
2325         (fwprop_done): Free them.
2326         (fwprop, fwprop_addr): Adjust comments.
2327         * df.h (df_uses_create): Declare.
2328         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
2329         (df_ref_create): Return result of df_ref_create_structure directly.
2330         (df_ref_create_structure): Call df_install_ref_incremental when
2331         no collection_rec is passed.
2332         (df_ref_record): Do not create multiword hard reg info when no
2333         collection_rec is passed.
2334         (df_uses_create): New.
2336 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
2338         PR middle-end/43057
2339         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
2340         setting location.
2342 2010-11-22  Richard Guenther  <rguenther@suse.de>
2344         * gimple-fold.c (maybe_fold_reference): When canonicalizing
2345         MEM_REFs, preserve volatileness.
2346         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
2347         addresses.
2349 2010-11-22  Richard Guenther  <rguenther@suse.de>
2351         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
2353 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
2355         PR rtl-optimization/45652
2356         * alias.c (get_reg_base_value): New.
2357         * rtl.h (get_reg_base_value): Add prototype.
2358         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
2359         non-null REG_BASE_VALUE for renaming.
2361 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
2362             Basile Starynkevitch  <basile@starynkevitch.net>
2364         * gengtype.c: Include xregex.h and obstack.h
2365         Added comments about role of get_output_file_with_visibility and
2366         our regexpr machinery.
2367         (frul_actionrout_t, struct file_rule_st): New.
2368         (hader_dot_h_frul, source_dot_c_frul): New functions.
2369         (NULL_REGEX,  NULL_FRULACT): New.
2370         (files_rules): New.
2371         (matching_file_name_substitute): New function.
2372         (get_output_file_with_visibility): Updated comments and rewritten
2373         to use the new files_rules machinery.
2375         * Makefile.in (XREGEX_H): Added variable.
2376         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
2378 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
2380         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
2382 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
2384         * target.def (conditional_register_usage): Define.
2385         * reginfo.c (init_reg_sets_1): Call
2386         targetm.conditional_register_usage.
2387         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
2388         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
2389         for making it a hook.
2390         * doc/tm.texi: Regenerate.
2391         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2392         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
2393         New function.
2394         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2395         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2396         * config/arc/arc.c (arc_conditional_register_usage): ...here.
2397         New function.
2398         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2399         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2400         * config/arm/arm.c (arm_conditional_register_usage): ...here.
2401         New function.
2402         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2403         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
2404         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
2405         * config/bfin/bfin.c (conditional_register_usage): Move code into...
2406         (bfin_conditional_register_usage): ...here.  New function.
2407         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2408         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
2409         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
2410         * config/cris/cris.c (cris_conditional_register_usage): Make static.
2411         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2412         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
2413         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
2414         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
2415         * config/frv/frv.c (frv_conditional_register_usage): Make static.
2416         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2417         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2418         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
2419         New function.
2420         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2421         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
2422         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
2423         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
2424         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2425         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
2426         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
2427         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
2428         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2429         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2430         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
2431         New function.
2432         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2433         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
2434         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
2435         Delete.
2436         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
2437         static.
2438         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2439         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
2440         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
2441         * config/mep/mep.c (mep_conditional_register_usage): Make static.
2442         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2443         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
2444         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
2445         * config/mips/mips.c (mips_conditional_register_usage): Make static.
2446         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2447         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
2448         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
2449         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
2450         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2451         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2452         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
2453         ...here.  New function.
2454         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2455         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2456         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
2457         * config/pa/pa.c (pa_conditional_register_usage): ...here.
2458         New function.
2459         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2460         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2461         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
2462         New function.
2463         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2464         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
2465         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
2466         Delete.
2467         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
2468         static.
2469         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2470         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
2471         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
2472         * config/rx/rx.c (rx_conditional_register_usage): Make static.
2473         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2474         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
2475         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
2476         * config/s390/s390.c (s390_conditional_register_usage): Make static.
2477         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2478         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2479         * config/score/score.c (score_conditional_register_usage): ...here.
2480         New function.
2481         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2482         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2483         * config/sh/sh.c (sh_conditional_register_usage): ...here.
2484         New function.
2485         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2486         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2487         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
2488         New function.
2489         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2490         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
2491         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
2492         * config/spu/spu.c (spu_conditional_register_usage): Make static.
2493         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2494         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2495         * config/v850/v850.c (v850_conditional_register_usage): ...here.
2496         New function.
2497         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2499 2010-11-21  Jan Hubicka  <jh@suse.cz>
2500             Dominique d'Humieres <dominiq@lps.ens.ft>
2502         PR target/46510
2503         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
2504         finalize external decls.
2506 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
2508         * system.h (strerror): Poison.
2510 2010-11-21  Richard Henderson  <rth@redhat.com>
2512         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
2513         for infq/huge_valq.
2515 2010-11-21  Richard Henderson  <rth@redhat.com>
2517         PR rtl-optimization/46571
2518         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
2519         (compute_hash_table_work): Use NONDEBUG_INSN_P.
2521 2010-11-21  Paul Koning  <ni1d@arrl.net>
2523         * config/mips/pdp11.md (negsi2): Fix wrong code.
2525 2010-11-21  Paul Koning  <ni1d@arrl.net>
2527         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
2528         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2530 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
2532         * config/mips/mips.c (machine_function): Rename load_label_length to
2533         load_label_num_insns.
2534         (mips_load_label_length): Rename to...
2535         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
2536         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
2538 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
2540         PR target/46533
2541         * config/alpha/predicates.md (direct_call_operand): Return false
2542         for !TARGET_SMALL_TEXT targets.
2544 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
2546         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
2547         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
2548         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
2549         * doc/tm.texi: Regenerate.
2550         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
2551         HANDLE_PRAGMA_WEAK): Poison.
2552         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2553         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2554         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
2555         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
2556         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2557         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2558         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2559         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
2560         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2561         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
2562         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2563         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
2564         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2565         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2566         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2567         (HANDLE_PRAGMA_WEAK): Don't undefine.
2568         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2569         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
2570         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2571         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
2572         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2573         (HANDLE_PRAGMA_WEAK): Don't undefine.
2574         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2575         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
2576         (HANDLE_PRAGMA_PACK): Don't undefine.
2577         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
2578         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2579         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2580         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2581         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
2582         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2583         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2584         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2585         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
2586         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2587         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
2588         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2589         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2590         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2591         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2592         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
2593         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2595 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
2597         PR target/31100
2598         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
2599         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
2600         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
2602 2010-11-20  Jan Hubicka  <jh@suse.cz>
2604         * cgraph.c (ld_plugin_symbol_resolution_names): New.
2605         (dump_cgraph_node): Dump resolution.
2606         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
2607         (cgraph_comdat_can_be_unshared_p): Dclare.
2608         * lto-streamer-out.c (produce_symtab): Use
2609         cgraph_comdat_can_be_unshared_p.
2610         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
2611         (cgraph_comdat_can_be_unshared_p): New function based on logic
2612         in cgraph_externally_visible_p.
2613         (cgraph_externally_visible_p): Use it.
2614         (varpool_externally_visible_p): Virtual tables can be unshared.
2615         * varpool.c (dump_varpool_node): Dump resolution.
2617 2010-11-20  Jan Hubicka  <jh@suse.cz>
2619         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
2621 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2623         PR other/46202
2624         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
2625         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
2626         shell quoting.
2627         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
2628         (install-strip): New target.
2629         (STRIPPROG): New variable, exported if STRIP is set.
2630         * doc/install.texi (Final install): Minor markup and code style
2631         fixes.  Document install-strip target.
2633 2010-11-20  Paul Koning  <ni1d@arrl.net>
2635         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
2636         pdp11_regno_reg_class): New functions.
2637         * config/pdp11/pdp11.md (define_constants): Add register numbers.
2638         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
2639         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
2640         functions.
2641         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
2642         frame pointer and argument pointer pseudo-registers.
2643         (ARG_POINTER_REGNUM): Define.
2644         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
2645         argument pointer.
2646         (FIRST_PARM_OFFSET): Update for argument pointer.
2647         (INITIAL_FRAME_POINTER_OFFSET): Delete.
2648         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
2649         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
2650         frame pointer and argument pointer.
2652 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
2654         PR debug/46561
2655         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
2656         when looking for immediate uses.
2658         PR tree-optimization/45830
2659         * stmt.c (expand_switch_using_bit_tests_p): New function.
2660         (expand_case): Use it.
2661         * tree.h (expand_switch_using_bit_tests_p): New prototype.
2662         * tree-switch-conversion.c (struct switch_conv_info): Add
2663         bit_test_uniq, bit_test_count and bit_test_bb fields.
2664         (check_range): Fix a comment.
2665         (check_process_case): Compute bit_test_uniq and bit_test_count.
2666         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
2667         allocation.
2668         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
2669         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
2670         (array_value_type): New function.
2671         (build_one_array): Use it, if it returned different type,
2672         fold_convert all constructor fields and convert back to the
2673         wider type in the generated code.
2674         (process_switch): Initialize bit_test_uniq, bit_test_count and
2675         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
2676         returned true.
2678 2010-11-19  Michael Matz  <matz@suse.de>
2680         PR tree-optimization/46077
2681         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
2683 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
2685         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2686         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
2687         function.
2688         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2690 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2692         * mode-switching.c (optimize_mode_switching): Use
2693         FOR_BB_INSNS instead of open-coded loop.
2694         * cfgrtl.c (redirect_branch_edge): Ditto.
2696 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
2698         PR target/46436
2699         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
2700         to accomodate 32 bit HOST_WIDE_INT.
2701         (m68hc11_emit_logical): Remove unused variable insn.
2702         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
2703         this_insn_uses_iy before use.
2705         PR target/46434
2706         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
2708 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2710         PR c/46547
2711         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
2712         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
2714 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2716         * doc/extend.texi (Function attributes): Document PowerPC target
2717         attributes that are supported.
2718         (Pragmas): Document that PowerPC now supports target pragmas.
2720         * doc/options.texi (TargetVariable): Document TargetVariable,
2721         HeaderInclude, and SourceInclude.
2723         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
2724         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
2725         -ffp-contract=off.
2727         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
2728         SourceInclude directives.  Fix a cut+paste error with target save
2729         enum variables.  Sort enums in the structures after ints and
2730         before shorts.
2731         * opth-gen.awk: Ditto.
2733         * configure.ac: Add support for HeaderInclude and SourceInclude option
2734         directives to add the appropriate files to the dependency lists.
2735         * configure: Regenerate.
2736         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
2737         (OPTIONS_C_EXTRA): New variable for SourceInclude.
2738         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
2739         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
2740         (gcc-options.o): Ditto.
2741         * opt-include.awk: New awk script to handle HeaderInclude and
2742         TargetInclude.
2744         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
2745         gets saved in the target options.
2746         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
2747         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
2748         (-mprototype): Ditto.
2749         (-mbit-word): ditto.
2750         (-mregnames): Ditto.
2751         (-msecure-plt): Ditto.
2752         (-mbss-plt): Ditto.
2753         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
2754         (-mpowerpc-gfxopt): Ditto.
2755         (-mmfcrf): Ditto.
2756         (-mpopcntb): Ditto.
2757         (-mfprnd): Ditto.
2758         (-mcmpb): Ditto.
2759         (-mmmfpgpr): Ditto.
2760         (-maltivec): Ditto.
2761         (-mhard-dfp): Ditto.
2762         (-mmulhw): Ditto.
2763         (-mdlmzb): Ditto.
2764         (-mmultiple): Ditto.
2765         (-mstring): Ditto.
2766         (-mpopcntd): Ditto.
2767         (-mfriz): Ditto.
2768         (-mvsx): Ditto.
2769         (-mno-update): Ditto.
2770         (-mavoid-indexed-addresses): Ditto.
2771         (-mtls-markers): Ditto.
2772         (-msched-epilog): Ditto.
2773         (-msched-prolog): Ditto.
2774         (-maix-struct-return): Ditto.
2775         (-msvr4-struct-return): Ditto.
2776         (-mxl-compat): Ditto.
2777         (-mrecip-precision): Ditto.
2778         (-mfp-in-toc): Ditto.
2779         (-msum-in-toc): Ditto.
2780         (-mvrsave): Ditto.
2781         (-mblock-move-inline-limit=): Ditto.
2782         (-misel): Ditto.
2783         (-mpaired): Ditto.
2784         (-mlongcall): Ditto.
2785         (-mgen-cell-microcode): Ditto.
2786         (-mwarn-cell-microcode): Ditto.
2787         (-mwarn-altivec-long): Ditto.
2788         (-mprioritize-restricted-insns=): Ditto.
2789         (-msingle-float): Ditto.
2790         (-mdouble-float): Ditto.
2791         (-msimple-fpu): Ditto.
2792         (-mxilinx-fpu): Ditto.
2793         * config/rs6000/aix64.opt (-mpe): Ditto.
2795         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
2796         (rs6000_cpu): Move variable to be a target variable.  Rename
2797         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
2798         -mdebug=<xxx> variables into a single int.
2799         (rs6000_always_hint): Ditto.
2800         (rs6000_sched_groups): Ditto.
2801         (rs6000_align_branch_targets): Ditto.
2802         (rs6000_sched_costly_dep): Ditto.
2803         (rs6000_sched_insert_nops): Ditto.
2804         (rs6000_long_double_type_size): Ditto.
2805         (rs6000_ieeequad): Ditto.
2806         (rs6000_altivec_abi): Ditto.
2807         (rs6000_spe): Ditto.
2808         (rs6000_spe_abi): Ditto.
2809         (rs6000_float_gprs): Ditto.
2810         (rs6000_darwin64_abi): Ditto.
2811         (can_override_loop_align): Ditto.
2812         (rs6000_sdata): Ditto.
2813         (rs6000_tls_size): Ditto.
2814         (rs6000_current_abi): Ditto.
2815         (rs6000_traceback): Ditto.
2816         (rs6000_alignment_flags): Ditto.
2817         (rs6000_current_cmodel): Ditto.
2818         (rs6000_recip_control): Ditto.
2819         (rs6000_cpu_index): Ditto.
2820         (rs6000_tune_index): Ditto.
2821         (rs6000_debug): Ditto.
2822         (rs6000_target_flags_explict): Ditto.
2824         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
2825         declaration.
2827         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
2828         cmodel.  Change all uses.
2830         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
2831         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
2832         Rename cmodel to rs6000_current_cmodel.
2833         (rs6000_sched_groups): Ditto.
2834         (rs6000_align_branch_targets): Ditto.
2835         (rs6000_sched_costly_dep): Ditto.
2836         (rs6000_sched_insert_nops): Ditto.
2837         (rs6000_long_double_type_size): Ditto.
2838         (rs6000_ieeequad): Ditto.
2839         (rs6000_altivec_abi): Ditto.
2840         (rs6000_spe): Ditto.
2841         (rs6000_spe_abi): Ditto.
2842         (rs6000_float_gprs): Ditto.
2843         (rs6000_darwin64_abi): Ditto.
2844         (can_override_loop_align): Ditto.
2845         (rs6000_sdata): Ditto.
2846         (rs6000_tls_size): Ditto.
2847         (rs6000_current_abi): Ditto.
2848         (rs6000_traceback): Ditto.
2849         (rs6000_alignment_flags): Ditto.
2850         (rs6000_current_cmodel): Ditto.
2851         (rs6000_recip_control): Ditto.
2852         (rs6000_cpu_index): Ditto.
2853         (rs6000_tune_index): Ditto.
2854         (rs6000_debug): Ditto.
2855         (rs6000_target_flags_explict): Ditto.
2856         (rs6000_sched_insert_nops_str): Make static.
2857         (rs6000_sched_costly_dep_str): Ditto.
2858         (rs6000_recip_name): Ditto.
2859         (rs6000_abi_name): Ditto.
2860         (rs6000_sdata_name): Ditto.
2861         (enum rs6000_traceback_name): Move to rs6000-opts.h.
2862         (rs6000_parse_tls_size_option): Delete.
2863         (rs6000_valid_attribute_p): New function for target attributes and
2864         pragmas.
2865         (rs6000_function_specific_save): Ditto.
2866         (rs6000_function_specific_restore): Ditto.
2867         (rs6000_function_specific_print): Ditto.
2868         (rs6000_can_inline_p): Ditto.
2869         (rs6000_set_current_function): Ditto.
2870         (rs6000_inner_target_options): Ditto.
2871         (rs6000_debug_target_options): Ditto.
2872         (rs6000_pragma_target_parse): Ditto.
2873         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
2874         attributes and pragmas.
2875         (TARGET_OPTION_SAVE): Ditto.
2876         (TARGET_OPTION_RESTORE): Ditto.
2877         (TARGET_OPTION_PRINT): Ditto.
2878         (TARGET_CAN_INLINE_P): Ditto.
2879         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2880         (POWER_MASKS): Move to file level scope from the
2881         rs6000_option_override_internal function.
2882         (POWERPC_MASKS): Ditto.
2883         (ISA_*_MASKS): Ditto.
2884         (struct rs6000_ptt): Ditto.
2885         (processor_target_table): Ditto.
2886         (rs6000_cpu_name_lookup): Map cpu name to an index in
2887         processor_target_table.
2888         (rs6000_debug_reg_global): Print more information on processor
2889         options for -mdebug=reg.
2890         (rs6000_init_hard_regno_mode_ok): Add support for target
2891         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
2892         Allow -mdebug=val1,val2.  Rename cmodel variable.
2893         (rs6000_option_override_internal): Ditto.
2894         (rs6000_option_override): Ditto.
2895         (rs6000_handle_option): Ditto.
2896         (rs6000_conditional_register_usage): Add debug trace message.
2897         (struct rs6000_opt_mask): New for target attribute/pragma support.
2898         (rs6000_opt_masks): Ditto.
2899         (struct rs6000_opt_var): Ditto.
2900         (rs6000_opt_vars): Ditto.
2901         (rs6000_previous_function): Ditto.
2903         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
2904         wasn't already included.
2905         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2906         (enum processor_type): Ditto.
2907         (rs6000_cpu): Ditto.
2908         (enum fpu_type_t): Ditto.
2909         (fpu_type): Ditto.
2910         (enum rs6000_dependence_cost): Ditto.
2911         (enum rs6000_nop_insertion): Ditto.
2912         (enum group_termination): Ditto.
2913         (rs6000_long_double_type_size): Ditto.
2914         (rs6000_ieeequad): Ditto.
2915         (rs6000_altivec_abi): Ditto.
2916         (rs6000_spe_abi): Ditto.
2917         (rs6000_spe): Ditto.
2918         (rs6000_float_gprs): Ditto.
2919         (rs6000_alignment_flags): Ditto.
2920         (rs6000_sched_insert_nops): Ditto.
2921         (enum rs6000_vector): Ditto.
2922         (enum rs6000_abi): Ditto.
2923         (rs6000_current_opt): Ditto.
2924         (rs6000_debug_*): Delete.
2925         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2926         (TARGET_DEBUG*): Ditto.
2928         * config/rs6000/rs6000-opts.h: New header file to define the enums
2929         that are used in target variables that are now defined in rs6000.opt.
2931         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2932         rs6000-opts.h.
2933         (rs6000_sdata): Ditto.
2934         (rs6000_abi_name): Delete.
2935         (rs6000_sdata_name): Ditto.
2936         (rs6000_tls_size_string): Ditto.
2938 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2940         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2941         Variable entries.
2942         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2943         should_emit_struct_debug): Move from opts.c.
2944         * flag-types.h (enum debug_struct_file): Move from opts.c.
2945         * flags.h (should_emit_struct_debug): Remove.
2946         (base_of_path): Declare.
2947         (set_struct_debug_option): Add gcc_options parameter.
2948         * optc-gen.awk, opth-gen.awk: Handle array variables.
2949         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2950         debug_struct_generic): Remove.
2951         (set_struct_debug_option): Add gcc_options parameter.
2952         (base_of_path): Remove static.
2953         (main_input_basename, main_input_baselength, matches_main_base,
2954         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2955         Remove.
2956         * toplev.c (main_input_basename, main_input_baselength): Define
2957         here.
2958         * toplev.h (main_input_basename, main_input_baselength): Declare
2959         here.
2961 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2963         * common.opt (flag_instrument_functions_exclude_functions,
2964         flag_instrument_functions_exclude_files): New Variable definitions.
2965         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2966         * gimplify.c (char_p): Declare type and vectors.
2967         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2968         * opts.c (flag_instrument_functions_exclude_functions,
2969         flag_instrument_functions_exclude_files): Remove.
2970         (add_comma_separated_to_vector): Take void **.
2971         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2972         (common_handle_option): Use options structure for
2973         -finstrument-functions-exclude- options.
2975 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2977         * doc/options.texi (Var): Document effects of Defer.
2978         (Defer): Document.
2979         * opt-functions.awk (var_type, var_set): Handle deferred options.
2980         * opts-common.c (set_option): Handle CLVC_DEFER.
2981         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2982         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2983         fstack-limit-symbol=): Mark as deferred.
2984         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2985         plugin.h.
2986         (print_filtered_help): Don't report state of CLVC_DEFER options.
2987         (common_handle_option): Move code for OPT_fcall_used_,
2988         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2989         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2990         OPT_fstack_limit_symbol_ to opts-global.c.
2991         (option_enabled, get_option_state): Handle CLVC_DEFER.
2992         * opts.h: Include vec.h.
2993         (enum cl_var_type): Add CLVC_DEFER.
2994         (cl_deferred_option): Define type and vectors.
2995         (handle_common_deferred_options): Declare.
2996         * opts-global.c: New.
2997         * toplev.c (toplev_main): Call handle_common_deferred_options
2998         * Makefile.in (OPTS_H): Include $(VEC_H).
2999         (OBJS-common): Include opts-global.o.
3000         (opts.o): Update dependencies.
3001         (opts-global.o): Add dependencies.
3003 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
3005         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
3006         to objc_declare_protocols.
3008 2010-11-19  Richard Guenther  <rguenther@suse.de>
3010         PR lto/45789
3011         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
3012         IDENTIFIERs do not stream TREE_TYPE.
3013         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
3015 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
3017         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
3019 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
3021         PR target/45870
3022         * dwarf2out.c (const_ok_for_output_1): Don't complain about
3023         non-delegitimized TLS UNSPECs.
3025 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
3026             Ian Lance Taylor  <iant@google.com>
3028         * config/darwin-c.c (darwin_additional_format_types): Export.
3030 2010-11-18  Paul Koning  <ni1d@arrl.net>
3032         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
3033         pointer.
3035 2010-11-18  Paul Koning  <ni1d@arrl.net>
3037         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
3038         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
3039         * config/pdp11/pdp11.opt (-mabshi): Delete.
3041 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
3043         * resource.h (struct resources): Fix typo in the comment.
3045 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
3047         PR target/46546
3048         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
3050 2010-11-18  Richard Henderson  <rth@redhat.com>
3052         PR middle-end/46515
3053         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
3054         maybe_copy_epilogue_insn; handle prologue insns as well.
3055         * rtl.h, cfglayout.c: Update for rename.
3056         * recog.c (peep2_attempt): Copy prologue/epilogue data for
3057         RTX_FRAME_RELATED_P insns.
3059 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
3061         PR middle-end/46534
3062         * builtins.c (fold_builtin_printf): Don't copy and modify string
3063         before build_string_literal, instead modify what
3064         build_string_literal returned.
3066 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
3068         PR c/33193
3069         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
3070         REALPART_EXPR and IMAGPART_EXPR.
3072 2010-11-18  Richard Guenther  <rguenther@suse.de>
3074         PR tree-optimization/46172
3075         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
3076         function.
3077         (slpeel_tree_peel_loop_to_edge): Call it.
3079 2010-11-18  Jeff Law  <law@redhat.com>
3081         PR middle-end-optimization/46297
3082         * postreload.c (reload_combine_note_store): Deal with embedded
3083         side effects in MEM expressions.
3085 2010-11-18  Richard Guenther  <rguenther@suse.de>
3087         PR lto/45089
3088         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
3089         when checking is not enabled.
3091 2010-11-18  Richard Guenther  <rguenther@suse.de>
3093         PR lto/46525
3094         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
3095         type leaders.
3096         (gimple_register_canonical_type): Also cache the canoncial type
3097         for non type leaders.
3099 2010-11-18  Richard Guenther  <rguenther@suse.de>
3101         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
3103 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
3105         PR middle-end/46518
3106         * sel-sched-ir.c (init_expr): Use the correct type for
3107         target_available.
3108         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
3110 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
3112         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
3113         as well as -mrelocatable at the same time.
3115 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
3117         PR target/46422
3118         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
3119         Call the clz builtin.
3121 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
3122             Steve Ellcey  <sje@cup.hp.com>
3124         PR middle-end/31490
3125         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
3126         if section attribute used.
3128 2010-11-17  Jan Hubicka  <jh@suse.cz>
3130         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
3131         expand errno setting variant when optimizing for size.
3133 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
3135         * postreload.c (reload_combine): Call control_flow_insn_p only once.
3136         Reverse backward loop.  Fix formatting issues.
3138 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
3140         * c-parser.c (c_token_is_qualifier,
3141         c_parser_next_token_is_qualifier): New.
3142         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
3143         Improve error message on specs->tagdef_seen_p.
3144         (c_parser_struct_or_union_specifier): Improve error recovery.
3145         (c_parser_declspecs): Move exit condition on C_ID_ID early.
3146         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
3147         using c_parser_next_token_is_qualifier; extend it to cover
3148         a ctsk_tagdef typespec and !typespec_ok in general.
3150 2010-11-17  Richard Guenther  <rguenther@suse.de>
3152         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
3153         (gimple_mod_pow2_value_transform): Likewise.
3154         (gimple_mod_subtract_transform): Likewise.
3156 2010-11-17  Richard Guenther  <rguenther@suse.de>
3158         PR lto/46504
3159         * gimple.c (gimple_register_canonical_type): Make sure to only
3160         make type leaders canonical types.
3162 2010-11-17  Michael Matz  <matz@suse.de>
3164         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
3165         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
3166         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
3167         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
3168         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
3169         (pass_build_ssa): ... but here.
3170         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
3171         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
3172         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
3173         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
3174         * predict.c (rebuild_frequencies): Ditto.
3175         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
3176         * emit-rtl.c (verify_rtl_sharing): Ditto.
3177         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
3178         * tree-ssa-live.c (remove_unused_locals): Ditto.
3179         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
3180         * tree-ssa.c (pass_early_warn_uninitialized,
3181         execute_update_addresses_taken, pass_update_address_taken): Ditto.
3182         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
3183         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
3184         * passes.c (pass_postreload, execute_todo): Ditto.
3185         * tree-ssanames.c (pass_release_ssa_names): Ditto.
3187 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
3189         * doc/invoke.texi (-dy): Remove.
3190         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
3191         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
3192         * langhooks.c (lhd_do_nothing_i): Remove.
3193         * langhooks.h (lang_hooks.parse_file): Take no arguments.
3194         * toplev.c (set_yydebug): Remove.
3195         (compile_file): Update call to lang_hooks.parse_file.
3196         (decode_d_option): Don't handle -dy.
3198 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
3200         PR rtl-optimization/46440
3201         * combine.c (update_cfg_for_uncondjump): When changing
3202         an indirect jump into unconditional jump, remove BARRIERs
3203         from bb's footer.
3205 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
3207         * opts.c (target_handle_option): Do not assert that loc ==
3208         UNKNOWN_LOCATION.
3210 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
3211             Richard Guenther  <rguenther@suse.de>
3213         PR middle-end/45838
3214         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
3215         call_may_clobber_ref_p_1): Return true for __sync_* and some
3216         OpenMP builtins that act as threading barriers.
3218 2010-11-17  Richard Guenther  <rguenther@suse.de>
3220         PR tree-optimization/46498
3221         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
3223 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3225         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
3226         (xtensa_function_arg_boundary): ...this.
3227         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
3228         thinko in declaration.
3229         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
3230         number of parameters to picochip_function_arg_boundary.
3231         (picochip_arg_advance): Likewise.
3233 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3235         PR target/46512
3236         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
3237         under check for type.
3239 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3241         * ifcvt.c (dead_or_predicable): Fix typo.
3243 2010-11-16  Richard Henderson  <rth@redhat.com>
3245         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
3246         * config/s390/s390.opt (mfused-madd): Remove.
3247         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
3248         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3249         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
3250         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
3252 2010-11-16  Richard Henderson  <rth@redhat.com>
3254         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
3255         * config/rs6000/rs6000.opt (mfused-madd): Remove.
3256         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
3257         (*altivec_vmaddfp_1): Remove.
3258         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
3259         (altivec_mulv4sf3): Expand to FMA directly.
3260         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
3261         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
3262         * config/rs6000/paired.md (paired_madds0): Use FMA.
3263         (paired_madds1): Likewise.
3264         (*paired_madd): Rename from paired_madd; use FMA.
3265         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
3266         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
3267         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
3268         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
3269         (rs6000_emit_madd): Use fma_optab.
3270         (rs6000_emit_msub): Use fms_optab.
3271         (rs6000_emit_nmsub): Expand the FMA pattern directly.
3272         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
3273         (*fmasf4_fpr): Rename from fmasf4_fpr.
3274         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
3275         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
3276         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
3277         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
3278         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
3279         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
3280         (*fmadf4_fpr): Rename from fmadf4_fpr.
3281         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
3282         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
3283         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
3284         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
3285         (fmasf4, fmadf4): Macroize into...
3286         (fma<FMA_F>4): ... here.
3287         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
3288         (nfma<FMA_F>4, nfms<FMA_F>4): New.
3289         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
3290         TARGET_FUSED_MADD.
3291         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
3292         (*vsx_fmadd<mode>4_1): Remove.
3293         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
3294         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
3295         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
3296         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
3297         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
3298         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
3299         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
3301 2010-11-16  Richard Henderson  <rth@redhat.com>
3303         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
3304         (fmasf4, fnmadf4, fnmasf4): Likewise.
3305         (unnamed plus+mult insns and splitters): Delete.
3307 2010-11-16  Richard Henderson  <rth@redhat.com>
3309         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
3310         (fnma<VSF>4): Rename from fnms_<VSF>.
3311         (fms<VSF>4): Rename from fms_<VSF>.
3312         (fma<VDF>4): Rename from fma_<VDF>.
3313         (fms<VDF>4): Rename from fms_<VDF>.
3314         (nfma<VDF>4): Rename from fnma_<VDF>.
3315         (nfms<VDF>4): Rename from fnms_<VDF>.
3316         (fnma<VDF>4, fnms<VDF>4): New expanders.
3317         (floatunsdisf2): Update for the renames.
3318         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
3319         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
3321 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3323         PR rtl-optimization/46490
3324         * combine.c (expand_compound_operation): Fix thinko.
3326 2010-11-16  Richard Henderson  <rth@redhat.com>
3328         PR target/46470
3329         * recog.c (peep2_attempt): Convert frame-related info when possible.
3330         (peep2_fill_buffer): Allow frame-related insns into the buffer.
3331         (peephole2_optimize): Allow peep2_attempt to fail.
3333 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3335         PR rtl-optimization/46315
3336         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
3337         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
3338         extracted from...
3339         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
3340         (remove_reg_equal_equiv_notes_for_defs): ...this.
3341         (delete_unmarked_insns): Adjust to above renaming.
3342         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
3343         referring to registers set in the insns being moved, if any.
3345         * df-core.c (df_ref_dump): New function extracted from...
3346         (df_refs_chain_dump): ...here.  Call it.
3347         (df_regs_chain_dump): Likewise.
3348         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
3349         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
3351 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
3353         PR rtl-optimization/46395
3354         * postreload.c (reload_combine): Invalidate register use
3355         information on all control flow insns.
3357         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
3358         LABEL_REF in UNSPEC operand.
3360 2010-11-16  Jan Hubicka  <jh@suse.cz>
3362         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
3363         when !flag_toplevel_reorder do not remove unless variable is
3364         COMDAT or ARTIFICIAL.
3365         * ipa.c (varpool_can_remove_if_no_refs): ... here.
3366         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
3367         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
3368         * varpool.c (decide_is_variable_needed): Do not handle visibility
3369         issues.
3370         (varpool_finalize_decl): Likewise.
3371         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
3372         update outdated comment on DECL_RTL_SET_P check.
3374 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3376         * config/sol2.h (NM_FLAGS): Define.
3377         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
3378         * doc/tm.texi: Update.
3380 2010-11-16  Nick Clifton  <nickc@redhat.com>
3382         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
3383         (msubsf4): Rename to fmssf4, and use fma.
3384         (nmaddsf4): Rename to fnmasf4 and use fma.
3385         (nmsubsf4): Rename to fnmssf4 and use fma.
3387 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
3389         PR target/44762
3390         * config/score/score3.c (score3_return_in_memory): Constify arguments.
3391         (score3_in_small_data_p, score3_function_value): Likewise.
3392         (score3_trampoline_init): Use LCT_NORMAL.
3393         (score3_print_operand): Initialize code as UNKNOWN.
3394         * config/score/predicates.md (score_load_multiple_operation):
3395         Remove unused variable.
3396         (score_store_multiple_operation): Likewise.
3397         * config/score/score7.c (score7_return_in_memory): Constify arguments.
3398         (score7_in_small_data_p, score7_function_value): Likewise.
3399         (score7_trampoline_init): Use LCT_NORMAL.
3400         (score7_print_operand): Initialize code as UNKNOWN.
3401         * config/score/score3.h (score3_return_in_memory): Update prototype.
3402         (score3_in_small_data_p, score3_function_value): Likewise.
3403         * config/score/score-protos.h (score_function_value): Likewise.
3404         * config/score/score7.h (score7_return_in_memory): Update prototype.
3405         (score7_in_small_data_p, score7_function_value): Likewise.
3406         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
3407         (score_return_in_memory, score_pass_by_reference): Constify arguments.
3408         (score_output_mi_thunk, score_function_prologue): Don't return a value.
3409         (score_function_epilogue, score_in_small_data_p): Likewise.
3410         (score_option_override, score_asm_trampoline_template): Likewise.
3411         (score_trampoline_init, score_print_operand): Likewise.
3412         (score_print_operand_address, score_prologue): Likewise.
3413         (score_epilogue, score_call, score_call_value): Likewise.
3414         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
3415         (score_function_arg_advance): Likewise. Make static.
3416         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
3417         (score_function_arg, score_legitimate_address_p): Make static.
3418         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
3419         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
3420         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
3421         Allow (W) == HOST_BITS_PER_WIDE_INT.
3423         PR java/46386
3424         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
3425         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
3427 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3429         * config/arc/arc.c: Delete pasto.
3430         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
3432 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
3434         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
3435         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
3436         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
3437         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3438         (mn10300_preferred_reload_class,
3439         mn10300_preferred_output_reload_class): New functions.
3441 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3443         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
3444         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
3445         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
3446         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
3448 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3450         * builtins.c (std_gimplify_va_arg_expr): Use
3451         targetm.calls.function_arg_boundary.
3452         * function.c (assign_parms, locate_and_pad_parm): Likewise.
3453         * calls.c (struct arg_data): Update comment.
3454         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
3455         * target.def (function_arg_boundary): Define.
3456         * targhooks.h (default_function_arg_boundary): Declare.
3457         * targhooks.c (default_function_arg_boundary): Define.
3458         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
3459         TARGET_FUNCTION_ARG_BOUNDARY.
3460         (FUNCTION_ARG_BOUNDARY): Delete.
3461         (TARGET_FUNCTION_ARG_BOUNDARY): New.
3462         * doc/tm.texi: Regenerate.
3463         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
3464         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
3465         * config/arc/arc.c (arc_function_arg_boundary): Define.
3466         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3467         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
3468         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
3469         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
3470         (arm_function_arg_boundary): Define.
3471         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3472         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
3473         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
3474         * config/frv/frv.c (frv_function_arg_boundary): Make static.
3475         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3476         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
3477         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
3478         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
3479         (ix86_compat_function_arg_boundary): Take and return unsigned int.
3480         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3481         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
3482         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
3483         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
3484         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3485         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
3486         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
3487         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3488         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
3489         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
3490         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
3491         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3492         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
3493         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
3494         * config/mips/mips.c (mips_function_arg_boundary): Make static.
3495         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3496         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
3497         * config/pa/pa.c (pa_function_arg_boundary): Define.
3498         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3499         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
3500         * config/picochip/picochip-protos.h
3501         (picochip_get_function_arg_boundary): Delete.
3502         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
3503         Rename to...
3504         (picochip_function_arg_boundary): ...this.  Make static.
3505         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
3506         (picochip_arg_advance): Adjust.
3507         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3508         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
3509         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
3510         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
3511         (rs6000_function_arg_boundary): ...this.  Make static.
3512         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
3513         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3514         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
3515         * config/rx/rx.c (rx_function_arg_boundary): Define.
3516         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3517         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
3518         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
3519         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3520         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
3521         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
3522         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
3523         (xtensa_function_arg_boundary): ...this.  Make static.
3524         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3526 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3528         * expr.c (alignment_for_piecewise_move): New function.
3529         (widest_int_mode_for_size): New function.
3530         (move_by_pieces, move_by_pieces_ninsns): Call them.
3531         (can_store_by_pieces, store_by_pieces_1): Likewise.
3533 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3535         * gcc.c (char_p): Define.  Define a VEC of it.
3536         (n_linker_options, n_assembler_options, n_preprocessor_options):
3537         Delete.
3538         (linker_options, assembler_options, preprocessor_options): Convert
3539         to a VEC.
3540         (add_preprocessor_option): Adjust.
3541         (add_assembler_option): Adjust.
3542         (add_linker_option): Adjust.
3543         (do_specs_vec): New function.
3544         (do_spec_1): Call it.  Adjust for new types.
3546 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3548         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
3549         (sreal.o, statistics.o, stringpool.o): Likewise.
3551 2010-11-16  Richard Guenther  <rguenther@suse.de>
3553         PR tree-optimization/44545
3554         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
3555         statements are not reassociatable.
3556         (reassociate_bb): Likewise.
3558 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3560         * bitmap.c: Delete unnecessary includes.
3561         * ebitmap.c: Likewise.
3562         * et-forest.c: Likewise.
3563         * sreal.c: Likewise.
3564         * statistics.c: Likewise.
3565         * stringpool.c: Likewise.
3566         * double-int.c: Add comment for inclusion of tm.h.
3568 2010-11-16  Richard Guenther  <rguenther@suse.de>
3570         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
3571         (visit_nary_op): ... this.
3572         (visit_binary_op): Remove.
3573         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
3575 2010-11-16  Richard Guenther  <rguenther@suse.de>
3577         PR middle-end/45172
3578         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
3580 2010-11-16  Nick Clifton  <nickc@redhat.com>
3582         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
3583         record is packed.
3585 2010-11-15  Richard Henderson  <rth@redhat.com>
3587         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
3588         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
3589         DOT_PROD_EXPR.
3591 2010-11-15  Richard Henderson  <rth@redhat.com>
3593         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
3594         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
3595         fma rtx_code.
3597 2010-11-15  Richard Henderson  <rth@redhat.com>
3599         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
3600         and *mulsubsf4 respectively.  Use fma rtx_code.
3602 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
3604         * gcc.c: Include "vec.h".
3605         (argbuf): Make into a VEC.
3606         (argbuf_length, argbuf_index): Remove.
3607         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
3608         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
3609         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
3610         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
3611         (gcc.o): Depend on $(VEC_H).
3613 2010-11-15  Richard Henderson  <rth@redhat.com>
3615         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
3616         via FMA if unsafe math.
3617         (insert_var_expansion_initialization): Handle FMA.
3618         (combine_var_copies_in_loop_exit): Likewise.
3620 2010-11-15  Richard Henderson  <rth@redhat.com>
3622         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
3623         * config/ia64/ia64.opt: Remove mfused-madd.
3624         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
3625         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
3626         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
3627         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
3628         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
3629         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
3630         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
3631         (fmav2sf4): Rename from fpma; use FMA code.
3632         (fmsv2sf4): Rename from fpms; use FMA code.
3633         (fnmav2sf4): Rename from *fpnma; use FMA code.
3634         * config/ia64/ia64.md (MODE_SDF): New iterator.
3635         (suffix): New mode attribute.
3636         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
3637         (fmssf4): Rename from *fmssf4.
3638         (fnmasf4): Rename from *nfmasf4.
3639         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
3640         (*nmadddf4, *nmadddf4_truncsf): Remove.
3641         (fmsdf4): Rename from *fmsdf4.
3642         (fnmadf4): Rename from *nfmadf4.
3643         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
3644         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
3645         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
3646         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
3647         (fmsxf4): Rename from *fmsxf4.
3648         (fnmaxf4): Rename from *nfmaxf4.
3649         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
3650         (*fnmaxf_trunc_<MODE_SDF>): New.
3652 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
3654         PR tree-optimization/46461
3655         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
3656         a gimple val.
3658 2010-11-15  Ian Lance Taylor  <iant@google.com>
3660         * godump.c: New file.
3661         * common.opt (fdump-go-spec=): New option.
3662         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
3663         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
3664         (TYPE_SYMTAB_IS_DIE): Define.
3665         (struct tree_type): Change GTY for symtab field to use
3666         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
3667         to pick the union field.
3668         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
3669         (dump_go_spec_init): Declare.
3670         * toplev.c (process_options): Handle flag_dump_go_spec.
3671         * debug.c: Include "tree.h".
3672         (do_nothing_debug_hooks): Set tree_type_symtab_field.
3673         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3674         * dbxout.c (dbx_debug_hooks): Likewise.
3675         (xcoff_debug_hooks): Likewise.
3676         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3677         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
3678         SDB_DEBUGGING_INFO is not defined.
3679         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
3680         (Overall Options): Document -fdump-go-spec.
3681         * Makefile.in (OBJS-common): Add godump.o.
3682         (debug.o): Add dependency on $(TREE_H).
3683         (godump.o): New target.
3684         (GTFILES): Add $(srcdir)/godump.c.
3686 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
3688         PR debug/46095
3689         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
3690         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
3691         style < 0, add REG_FRAME_RELATED_EXPR.
3693         PR debug/46387
3694         * rtl.h (vt_equate_reg_base_value): New prototype.
3695         * alias.c (vt_equate_reg_base_value): New function.
3696         * var-tracking.c (vt_init_cfa_base): Use it.
3698 2010-11-15  Jan Hubicka  <jh@suse.cz>
3699             Diego Novillo  <dnovillo@google.com>
3701         PR lto/41528
3702         * doc/lto.texi: Add.
3703         * doc/gccint.texi: Add reference to lto.texi.
3704         * doc/invoke.texi: Update user documentation for LTO.
3705         Move internal flags to lto.texi
3707 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
3709         * c-typeck.c (build_unary_op): Use
3710         objc_build_incr_expr_for_property_ref to build the pre/post
3711         increment/decrement of an Objective-C property ref, and skip the
3712         lvalue_or_else check in that case.
3714 2010-11-15  Martin Jambor  <mjambor@suse.cz>
3716         PR tree-optimization/46349
3717         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
3718         (contains_vce_or_bfcref_p): Likewise.
3719         (sra_modify_assign): Use them.
3721 2010-11-15  Richard Guenther  <rguenther@suse.de>
3723         PR tree-optimization/46467
3724         * tree-ssa-structalias.c (do_structure_copy): Properly treat
3725         variables without subvars.
3727 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
3729         * config/picochip/picochip.c (file header): Picochip name change.
3730         * config/picochip/picochip.md (file header): Likewise.
3731         * config/picochip/predicates.md (file header): Likewise.
3732         * config/picochip/dfa_space.md (file header): Likewise.
3733         * config/picochip/dfa_speed.md (file header): Likewise.
3734         * config/picochip/picochip.h(file header): Likewise.
3735         * config/picochip/constraints.md (file header): Likewise.
3736         * config/picochip/picochip-protos.h (file header): Likewise.
3737         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
3738         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
3739         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
3740         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
3741         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
3742         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
3743         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
3744         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
3745         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
3746         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
3747         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
3748         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
3749         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
3750         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
3752 2010-11-15  Richard Guenther  <rguenther@suse.de>
3754         PR bootstrap/46474
3755         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
3757 2010-11-15  Nick Clifton  <nickc@redhat.com>
3759         * config/stormy16/stormy16.c (direct_return): Do not generate a
3760         direct return for interrupt handlers.
3762 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
3764         * Makefile.in (tm.texi): Replace with rule for:
3765         ($(srcdir)/doc/tm.texi).
3766         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
3767         $(srcdir)/doc/tm.texi .
3768         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
3769         tm.texi .
3771         PR target/46427
3772         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
3774         PR bootstrap/45444
3775         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
3776         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
3778         PR target/46432
3779         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
3781 2010-11-15  Richard Guenther  <rguenther@suse.de>
3783         PR lto/44150
3784         * lto-opts.c (lto_write_options): Write -fexceptions even if
3785         not set by the user.
3787 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3789         PR c/46462
3790         * c-decl.c (declspecs_add_type): Make variables with error types
3791         integers.
3792         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
3793         do not start a declaration before an Objective-C foreach.
3794         (c_parser_declaration_or_fndef): Improve recovery after unknown
3795         type name.
3796         (c_parser_for_statement): Hoist entrance of "foreach context"
3797         before ifs, add corresponding reset where it was missing.  Do
3798         not set objc_could_be_foreach_context for C.
3800 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
3802         PR tree-optimization/45722
3803         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
3804         this is a reference to a component.
3805         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
3806         (ipa_note_param_call): Adjust comment.
3808 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
3810         * config/mips/mips.c (machine_function): Remove
3811         initialized_mips16_gp_pseudo_p.
3812         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
3813         detect whether a pseudo has already been created.  Unconditionally
3814         create a new one if not.
3815         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
3816         expanding to rtl.  Create a new pseudo otherwise, if allowed.
3818 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
3820         PR target/43440
3821         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
3822         * tm.texi: Regenerated.
3823         * output.h (decode_reg_name_and_count): Declare.
3824         * varasm.c (decode_reg_name_and_count): New function.
3825         (decode_reg_name): Reimplement using decode_reg_name_and_count.
3826         * reginfo.c (fix_register): Use decode_reg_name_and_count and
3827         iterate over all regs used.
3828         * stmt.c (expand_asm_operands): Likewise.
3829         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
3830         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
3831         multiple machine registers.
3833 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
3835         * stor-layout.c (place_union_field): Do not put location information
3836         on offset expressions.
3837         (place_field): Likewise.
3838         (finalize_record_size): Likewise on size expressions.
3839         (finalize_type_size): Likewise.
3840         (layout_type): Likewise.
3842 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
3844         PR debug/42889
3845         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
3846         * df-core.c (df_set_bb_dirty_nonrl): Remove.
3847         * df.h (df_set_bb_dirty_nonlr): Likewise.
3849 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
3851         * config/mips/mips.md (call_internal): Pass curr_insn to
3852         mips_split_call.
3853         (call_internal_direct): Ditto.
3854         (call_value_internal): Ditto.
3855         (call_value_internal_direct): Ditto.
3856         (call_value_multiple_internal): Ditto.
3857         * config/mips/mips.c (mips_split_call): Do not copy
3858         CALL_INSN_FUNCTION_USAGE here.
3860 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
3862         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
3863         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
3864         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
3865         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
3866         (TUNE_LOONGSON_3A): Define.
3867         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
3868         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
3869         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
3870         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
3871         (mips_rtx_cost_data): Add Loongson-3A.
3873 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3875         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
3876         switches.
3878 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3880         * dwarf2out.c (macinfo_entry): New struct.
3881         (output_comp_unit): Emit the section start label here and flag that we
3882         will emit an info section.
3883         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
3884         emitting directly.
3885         (dwarf2out_end_source_file): Likewise.
3886         (dwarf2out_define): Likewise.
3887         (dwarf2out_undef): Likewise.
3888         (output_macinfo): New.
3889         (dwarf2out_init): Do not emit debug section switches here, allocate a
3890         vec for macinfo, when required.
3891         (dwarf2out_finish): First switch to debug_abbrev_section here.
3892         debug_line_section,  debug_macinfo_section, Likewise.
3893         Check that the pubtypes table has at least one unpruned entry before
3894         trying to emit it.
3896 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3898         PR c/20385
3899         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
3900         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
3901         token lookahead.
3902         (c_parser_compound_statement_nostart, c_parser_label,
3903         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
3904         (c_parser_declaration_or_fndef): Detect the case now matched by
3905         c_parser_next_tokens_start_declaration, give error and correct it.
3907 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3909         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
3910         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
3911         with typespec_kind.
3912         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
3913         (shadow_tag_warned, check_compound_literal_type): Adjust
3914         uses of tag_defined_p.
3915         (declspecs_add_type): Set typespec_kind.
3916         * c-parser.c (c_parser_declaration_or_fndef,
3917         c_parser_declspecs, c_parser_struct_declaration,
3918         c_parser_parameter_declaration, c_parser_type_name,
3919         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
3920         of type_seen_p.
3921         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
3922         tag_defined_p, pass ctsk_firstref through.
3924 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3926         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
3927         (struct format_wanted_type): Replace field "name" with "kind", add
3928         "format_start" and "format_length".
3929         (check_format_info_main): Fill in new fields.  Fill in
3930         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
3931         after the final NUL outside the while loop.  Do not include
3932         width and precision modifiers in the format_start/format_length
3933         of the main format.
3934         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
3935         arguments.  Compute WANTED_TYPE first so that format_type_warning
3936         can be called for missing arguments.  Adjust calls to
3937         format_type_warning.
3938         (format_type_warning): Fetch as much information as possible
3939         from format_wanted_type.  Adjust printing now that every
3940         warning has a "descr", as well as for missing argument warnings
3941         and to include % sign for format specifiers.
3943 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
3945         PR rtl-optimization/46204
3946         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
3947         Update all callers.  Do not recompute topological order.  Adjust
3948         fallthrough edges following a degenerate conditional jump.
3950 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3952         * opts-common.c (control_warning_option): New.
3953         * opts.c (set_default_handlers): New.
3954         (decode_options): Use set_default_handlers and
3955         control_warning_option.
3956         (common_handle_option): Update call to enable_warning_as_error.
3957         (enable_warning_as_error): Take gcc_options parameters.  Use
3958         control_warning_option.
3959         * opts.h (set_default_handlers, control_warning_option): Declare.
3961 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3963         * Makefile.in (OPTS_H): Define.
3964         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3965         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3966         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3967         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3968         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3969         * gcc.c (driver_handle_option): Take location_t parameter.
3970         (process_command, do_self_spec): Update calls to
3971         read_cmdline_option.
3972         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3973         * langhooks.c (lhd_handle_option): Take location_t parameter.
3974         * langhooks.h (handle_option): Take location_t parameter.
3975         * lto-opts.c (lto_reissue_options): Update call to set_option.
3976         * opts-common.c (handle_option): Make static.  Take location_t
3977         parameter and pass it to other functions.
3978         (handle_generated_option): Take location_t parameter and pass it
3979         to other functions.
3980         (read_cmdline_option): Take location_t parameter and pass it to
3981         other functions.  Use warning_at and error_at.
3982         (set_option): Take location_t parameter and pass it to other
3983         functions.
3984         * opts.c (common_handle_option): Take location_t parameter and
3985         pass it to other functions.
3986         (enable_warning_as_error): Make static.  Take location_t parameter
3987         and pass it to other functions.
3988         (lang_handle_option): Take location_t parameter and pass it to
3989         other functions.
3990         (target_handle_option): Take location_t parameter.
3991         (read_cmdline_options, maybe_default_option,
3992         maybe_default_options, default_options_optimization,
3993         decode_options): Take location_t parameter and pass it to other
3994         functions.
3995         * opts.h: Include input.h.
3996         (struct cl_option_handler_func, decode_options, set_option,
3997         handle_generated_option, read_cmdline_option): Take location_t
3998         parameters.
3999         (handle_option, enable_warning_as_error): Remove.
4000         * toplev.c (toplev_main): Update call to decode_options.
4002 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
4004         * graphite-cloog-util.c (oppose_constraint,
4005         cloog_matrix_to_ppl_constraint,
4006         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
4007         CLooG isl uses unsigned integers.  This triggered a warning.
4009 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
4011         PR target/46438
4012         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
4013         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
4014         (xtensa_function_arg_1): De-constify cum.
4015         (xtensa_expand_prologue): Use add_reg_note.
4017         PR target/46435
4018         * config/cris/cris.c (saved_regs_mentioned): Delete.
4019         (cris_reload_address_legitimized): Cast itype to enum reload_type.
4020         Remove unused variable op0p.
4021         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
4022         (cris_emit_movem_store): Use add_reg_note.
4024         PR bootstrap/46456
4025         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
4027 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
4029         * function.c (expand_function_end): Set the locator of the prologue on
4030         the stack checking insns.
4032 2010-11-12  Richard Henderson  <rth@redhat.com>
4034         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
4035         * config/xtensa/xtensa.opt (mfused-madd): Remove.
4036         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
4037         MASK_FUSED_MADD.
4038         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
4039         (fnmasf4): Rename from mulsubsf3; use fma.
4041 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
4042             Richard Henderson  <rth@redhat.com>
4044         PR target/46428
4045         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
4046         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
4047         comparison.
4049 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
4051         * opts-common.c (decode_cmdline_option): Initialize separate_args.
4053 2010-11-12  Jan Hubicka  <jh@suse.cz>
4055         * doc/invoke.texi (early-inlining-insns): Update default.
4056         * params.def (early-inlining-insns): Default to 10.
4058 2010-11-12  Olivier Hainque  <hainque@adacore.com>
4060         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
4062 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4064         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
4065         (SUPPORTS_INIT_PRIORITY): Define.
4067 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
4069         PR target/46430
4070         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
4071         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
4072         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
4073         (avr_device_to_devicelib): Likewise.
4074         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
4075         into block.
4076         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
4077         (zero_extendhidi2, zero_extendsidi2): Likewise.
4078         * config/avr/avr.c (avr_num_arg_regs): Constify type.
4079         (avr_return_addr_rtx): De-constify tem.
4080         (avr_rotate_bytes): Move declarations to start of block.
4081         Don't use variable length array.  Put nested if/else into block.
4083         PR rtl-optimization/46433
4084         * var-tracking.c: Include tm_p.h .
4086         PR bootstrap/44756
4087         PR build/44767
4088         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
4089         should be unsigned.
4090         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
4091         * doc/tm.texi: Regenerate.
4093         PR target/46412
4094         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
4095         * config/bfin/bfin.c: Include sel-sched.h .
4096         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
4097         (expand_interrupt_handler_prologue): Remove unused variable insn.
4098         (bfin_load_pic_reg): Likewise.
4099         (bfin_rtx_costs): Make code / outer_code variables of type
4100         enum rtx_code, copied from re-named parameters.
4101         (bfin_local_alignment): Change align argument and return type
4102         to unsigned.
4103         (bfin_adjust_cost): Remove unused variable insn_type.
4104         Declare variables at start of block.
4105         (struct loop_info): Rename to...
4106         (struct loop_info_d).
4107         (workaround_rts_anomaly): Change type of icode to int.
4108         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
4109         with int-typed variable.
4110         (note_np_check_stores): Likewise.
4111         (trapping_loads_p): Remove unused variable pat.
4112         (bfin_expand_binop_builtin): Use expand_normal.
4113         (bfin_expand_unop_builtin): Likewise.
4114         (bfin_expand_builtin): Likewise.  Set tmode before use.
4116         PR middle-end/44769
4117         * final.c (split_double): Don't use BITS_PER_WORD directly in
4118         shift count.
4120         PR target/46431
4121         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
4122         assignment.
4124         PR target/46450
4125         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
4126         Use add_reg_note.
4127         (xstormy16_function_arg): Dereference cum.
4128         (xstormy16_expand_builtin): Use expand_normal.
4129         Change type of omode to enum machine_mode.
4130         (combine_bnp): Rename and to and_insn.
4132         PR target/46437
4133         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
4134         localreg.
4136 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
4138         PR debug/46375
4139         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
4141 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
4143         PR lto/46376
4144         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
4146 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
4148         PR c/44782
4149         * common.opt (fmax-errors=): New option.
4150         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
4151         * diagnostic.h (struct diagnostic_context): Add max_errors field.
4152         * diagnostic.c (diagnostic_initialize): Initialize it.
4153         (diagnostic_action_after_output): Exit if more than max_errors
4154         have been output.
4155         * doc/invoke.texi (Warning Options): Add -fmax-errors.
4156         (-fmax-errors): Document.
4158 2010-11-11  Richard Henderson  <rth@redhat.com>
4160         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
4162 2010-11-11  Richard Henderson  <rth@redhat.com>
4164         * config/fused-madd.opt: New file.
4165         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
4166         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
4167         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
4168         * config/i386/i386.opt (mfused-madd): Remove.
4169         * config/i386/sse.md (split_fma): Remove.
4170         (split_fms, split_fnma, split_fnms): Remove.
4172 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
4174         PR target/46088
4175         * config/i386/i386.md (*ashl<mode>3_cconly,
4176         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
4177         change nonimmediate_operand predicate to register_operand.
4179 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
4181         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
4183 2010-11-11  Jan Hubicka  <jh@suse.cz>
4185         * opts.c (finish_options): Do not error on -flto-partition alone.
4187         * doc/invoke.texi (-fwhopr): Merge into -flto section.
4188         (-flto-partition): Document none.
4189         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
4190         * lto-wrapper.c: Update comment.
4191         (run_gcc): Update LTO option parsing.
4192         * opts.c (finish_options): add support -flto-partition=none
4193         (common_handle_option): Remove fwhopr.
4194         * common.opt: Turn fwhopr into flto.
4195         * collect2.c (main): Update option handling.
4196         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
4197         * ipa-split.c (execute_split_functions): Remove flag_whopr.
4198         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
4199         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
4200         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
4202 2010-11-11  Jan Hubicka  <jh@suse.cz>
4204         PR tree-optimize/40436
4205         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
4206         (eliminated_by_inlining_prob): ... this one; return 50% probability
4207         for SRA.
4208         (estimate_function_body_sizes): Update use of
4209         eliminated_by_inlining_prob; estimate static function size
4210         for 2 instructions.
4212 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
4214         PR target/44749
4215         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
4216         declare.  Change type of argument four to type int.
4217         (mep_secondary_input_reload_class): Returns enum reg_class.
4218         (mep_secondary_output_reload_class): Likewise.
4219         (mep_function_value): Change types of arguments to cont_tree.
4220         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
4221         argument four to type int.
4222         (mep_secondary_input_reload_class): Returns enum reg_class.
4223         (mep_secondary_output_reload_class): Likewise.
4224         (mep_function_value): Change types of arguments to cont_tree.
4225         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
4226         mep_regno_reg_class to enum reg_class.
4228 2010-11-11  Richard Henderson  <rth@redhat.com>
4230         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
4231         that the target has the exact fma operation that we matched.
4233 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
4235         * reginfo.c (fix_register): Avoid inserting English word in
4236         diagnostic sentence.  Use %qs for quoting and %'.
4238 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
4240         * config/i386/driver-i386.c (host_detect_local_cpu): Support
4241         Intel processor family 6, model 0x2c.
4243 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
4245         * opts.c (warning_as_error_callback,
4246         register_warning_as_error_callback): Remove.
4247         (enable_warning_as_error): Don't use warning_as_error_callback.
4248         * opts.h (register_warning_as_error_callback): Remove.
4250 2010-11-11  Richard Henderson  <rth@redhat.com>
4252         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
4253         in between the MULT and the PLUS/MINUS.
4255 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
4257         PR middle-end/46388
4258         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
4259         BLKmode mode for it.
4260         (expand_expr_real_1): Similarly for op0.
4262 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4264         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
4265         Document optional target selector.
4267 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
4269         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
4270         assembling high and low parts of size if not using 32-bit HWINT; else
4271         use DECL_SIZE_UNITS, not DECL_SIZE.
4273 2010-11-11  Martin Jambor  <mjambor@suse.cz>
4275         PR tree-optimization/46383
4276         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
4277         offsets.
4278         (compute_complex_ancestor_jump_func): Likewise.
4279         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
4281 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
4283         PR debug/46150
4284         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
4285         true if expr1->hash != expr2->hash.
4287 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4289         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
4290         diagnostics with lowercase letters.
4291         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
4292         lowercase letters.
4293         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
4294         diagnostic.
4295         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4296         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
4297         lowercase letters.
4298         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4299         Remove trailing ' ' from diagnostic.
4300         * config/avr/avr.c (print_operand_address): Start diagnostic with
4301         a lowercase letter and remove trailing '.'.
4302         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
4303         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
4304         with lowercase letters.  Use %' in diagnostics.  Remove trailing
4305         '.' from diagnostics.
4306         (bfin_handle_longcall_attribute): Use %' in diagnostic.
4307         * config/cris/cris.c (cris_split_movdx,
4308         cris_expand_pic_call_address): Start diagnostics with lowercase
4309         letters.
4310         (cris_asm_output_label_ref): Use %' in diagnostic.
4311         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
4312         letter.
4313         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
4314         lowercase letter.
4315         * config/darwin-c.c (version_as_macro): Start diagnostic with a
4316         lowercase letter.
4317         * config/darwin-driver.c (darwin_default_min_version): Use %' in
4318         diagnostic.
4319         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
4320         diagnostic.
4321         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4322         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
4323         diagnostics.
4324         * config/i386/i386.c (ix86_option_override_internal): Write
4325         diagnostic as a single sentence without trailing '.'.  Use %' in
4326         diagnostics.
4327         (ix86_function_sseregparm, classify_argument): Start diagnostics
4328         with lowercase letters.
4329         (ix86_expand_prologue): Use %' in diagnostic.
4330         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
4331         diagnostic.
4332         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
4333         lowercase letter.
4334         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
4335         diagnostic.
4336         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4337         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
4338         '`' in help text.
4339         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
4340         lowercase letter.
4341         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
4342         lowercase letters.
4343         * config/microblaze/microblaze.c (microblaze_handle_option):
4344         Remove trailing '.' from diagnostic.
4345         (print_operand): Start diagnostic with a lowercase letter.
4346         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
4347         lowercase letters.  Avoid '`' in diagnostics.
4348         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
4349         lowercase letters.  Avoid '`' in diagnostics.
4350         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
4351         lowercase letters.  Avoid '`' in diagnostics.
4352         * config/picochip/picochip.c (picochip_option_override,
4353         picochip_emit_save_register, picochip_function_arg,
4354         picochip_output_label, picochip_output_internal_label,
4355         picochip_asm_output_opcode, picochip_output_cbranch,
4356         picochip_output_compare, picochip_output_branch,
4357         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
4358         diagnostics. Start diagnostics with lowercase letters.  Use %' in
4359         diagnostics.
4360         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
4361         "SPE" capitalization.  Start diagnostic with a lowercase letter.
4362         (rs6000_handle_option): Start diagnostics with lowercase letters.
4363         (def_builtin): Remove trailing '.' from diagnostic.
4364         (rs6000_savres_routine_name): Start diagnostic with a lowercase
4365         letter.
4366         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
4367         diagnostic.
4368         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
4369         lowercase letter.
4370         * config/s390/s390.c (s390_option_override) Start diagnostics with
4371         lowercase letters.  Use %' in diagnostic.
4372         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
4373         lowercase letters.
4374         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
4375         diagnostic.
4376         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
4377         diagnostic.
4378         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
4379         diagnostic.
4380         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4381         * config/spu/spu.c (spu_option_override): Start diagnostics with
4382         lowercase letters.  Use %qs for quoting in diagnostics.
4383         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
4384         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
4385         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
4386         from diagnostic.
4387         * convert.c (convert_to_integer, convert_to_vector): Use %' in
4388         diagnostics.
4389         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
4390         letter and use "cannot" spelling.
4391         * expmed.c (extract_fixed_bit_field): Start diagnostic with
4392         lowercase letter and format as a single sentence without '.'.
4393         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
4394         Use %' in diagnostics.
4395         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
4396         Use %' in diagnostics.
4397         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
4398         Use %' in diagnostics.
4399         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
4400         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
4401         with lowercase letters and remove tailing '.' and '\n'.
4402         * lto-cgraph.c (input_profile_summary): Start diagnostic with
4403         lowercase letter and remove trailing '.'.
4404         (input_cgraph): Start diagnostics with lowercase letters and
4405         remove trailing '\n'.
4406         * opts.c (finish_options, common_handle_option): Start diagnostics
4407         with lowercase letters and remove trailing '.'.  Fix typo in
4408         diagnostic.
4409         * passes.c (position_pass): Start diagnostic with lowercase letter.
4410         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
4411         register_callback, try_init_one_plugin): Start diagnostics with
4412         lowercase letters.
4413         * reload1.c (spill_failure): Use %' in diagnostic.
4414         (gen_reload): Start diagnostic with a lowercase letter.
4415         * stor-layout.c (place_field): Start diagnostic with a lowercase
4416         letter.
4417         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
4418         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
4419         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
4420         Start diagnostics with lowercase letters, remove trailing '.' and
4421         use %' in diagnostics.
4422         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
4423         (verify_ssa): Don't split diagnostic across two error calls.
4424         Spell out "number" and use %' in diagnostic.
4425         * value-prof.c (visit_hist, check_counter): Start diagnostics with
4426         lowercase letters.
4428 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
4430         PR middle-end/46419
4431         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
4432         (_mm_cvtpu16_ps): Ditto.
4434 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4436         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
4437         warn_larger_than, larger_than_size, warn_frame_larger_than,
4438         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
4439         default_visibility, flag_tls_default): New Variable declarations.
4440         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
4441         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
4442         (v): Declare as Common and document here.
4443         * flags.h (default_visibility, flag_generate_lto,
4444         warn_larger_than, larger_than_size, warn_frame_larger_than,
4445         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
4446         flag_shlib, flag_excess_precision_cmdline): Remove.
4447         (set_Wstrict_aliasing): Update prototype.
4448         * gcc.c (verbose_flag): Remove.
4449         (driver_handle_option): Add diagnostic_context parameter.  Don't
4450         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
4451         incrementing it.
4452         * opts-common.c (handle_option): Pass dc to handler.
4453         * opts.c (warn_larger_than, larger_than_size,
4454         warn_frame_larger_than, frame_larger_than_size,
4455         default_visibility): Remove.
4456         (common_handle_option): Add diagnostic_context parameter.
4457         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
4458         gcc_options parameters.
4459         (lang_handle_option, target_handle_option, read_cmdline_options,
4460         decode_options): Add diagnostic_context parameters.
4461         (finish_options): Access option state through opts pointer where
4462         possible.
4463         (common_handle_option): Access option state through opts pointer
4464         where possible.  Do not set local static variable verbose.  Do not
4465         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
4466         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
4467         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
4468         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
4469         OPT_fwhopr_.  Do not explicitly set .opt file variables for
4470         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
4471         (set_Wstrict_aliasing): Add gcc_options parameter.
4472         * opts.h (struct cl_option_handler_func): Add diagnostic_context
4473         parameter to handler.
4474         (decode_options): Add diagnostic_context parameter.
4475         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
4476         asm_file_name, flag_generate_lto, flag_gen_aux_info,
4477         aux_info_file_name, flag_shlib, flag_tls_default,
4478         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
4479         (toplev_main): Pass global_dc to decode_options.
4480         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
4481         aux_info_file_name, asm_file_name): Remove.
4482         * tree.h (flag_tls_default): Remove.
4484 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
4486         PR target/45986
4487         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
4488         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
4490 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
4492         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
4493         (x86_64-*-*): Likewise.
4494         * config/i386/cpuid.h: Define TBM bit.
4495         * config/i386/driver-i386.c (host_detect_local_cpu): Define
4496         and set has_tbm.
4497         * config/i386/i386-c.c (ix86_target_macros_internal): Check
4498         isa_flag for TBM.
4499         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
4500         (OPTION_MASK_ISA_TBM_UNSET): New.
4501         (ix86_handle_option): Handle -mtbm.
4502         (isa_opts): Add -mtbm.
4503         (enum pta_flags): Add PTA_TBM.
4504         (ix86_option_override_internal): Add TBM support.
4505         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
4506         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
4507         (IX86_BUILTIN_BEXTRI64): Likewise.
4508         (bdesc_args): Add TBM intrinsics.
4509         (ix86_expand_builtin): Add TBM specific case.
4510         * config/i386/i386.h (TARGET_TBM): New for TBM.
4511         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
4512         (tbm_bextri_<mode>): Likewise.
4513         (*tbm_blcfill_<mode>): Likewise.
4514         (*tbm_blci_<mode>): Likewise.
4515         (*tbm_blcic_<mode>): Likewise.
4516         (*tbm_blcmsk_<mode>): Likewise.
4517         (*tbm_blcs_<mode>): Likewise.
4518         (*tbm_blsfill_<mode>): Likewise.
4519         (*tbm_blsic_<mode>): Likewise.
4520         (*tbm_t1mskc_<mode>): Likewise.
4521         (*tbm_tzmsk_<mode>): Likewise.
4522         * config/i386/i386.opt: Add -mtbm.
4523         * config/i386/tbmintrin.h (__bextri_u32): New.
4524         (__blcfill_u32): Likewise.
4525         (__blci_u32): Likewise.
4526         (__blcic_u32): Likewise.
4527         (__blcmsk_u32): Likewise.
4528         (__blcs_u32): Likewise.
4529         (__blsfill_u32): Likewise.
4530         (__blsic_u32): Likewise.
4531         (__t1mskc_u32): Likewise.
4532         (__tzmsk_u32): Likewise.
4533         (__bextri_u64): Likewise.
4534         (__blcfill_u64): Likewise.
4535         (__blci_u64): Likewise.
4536         (__blcic_u64): Likewise.
4537         (__blcmsk_u64): Likewise.
4538         (__blcs_u64): Likewise.
4539         (__blsfill_u64): Likewise.
4540         (__blsic_u64): Likewise.
4541         (__t1mskc_u64): Likewise.
4542         (__tzmsk_u64): Likewise.
4543         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
4544         * doc/invoke.texi: Document -mtbm.
4545         * doc/extend.texi: Document TBM built-in functions.
4547 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
4549         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
4550         (x86_64-*-*): Likewise.
4551         * config/i386/cpuid.h: Define BMI bit.
4552         * config/i386/driver-i386.c (host_detect_local_cpu): Define
4553         and set has_bmi.
4554         * config/i386/i386-c.c (ix86_target_macros_internal): Check
4555         isa_flag for BMI.
4556         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
4557         (OPTION_MASK_ISA_BMI_UNSET): New.
4558         (ix86_handle_option): Handle -mbmi.
4559         (isa_opts): Add -mbmi.
4560         (enum pta_flags): Add PTA_BMI.
4561         (ix86_option_override_internal): Add BMI support.
4562         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
4563         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
4564         (IX86_BUILTIN_BEXTR64): Likewise.
4565         (IX86_BUILTIN_CTZS): Likewise.
4566         (bdesc_args): Add BMI intrinsics.
4567         (ix86_expand_args_builtin): Add BMI specific cases.
4568         * config/i386/i386.h (TARGET_BMI): New for BMI.
4569         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
4570         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
4571         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
4572         (UNSPEC_TZCNT): Likewise.
4573         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
4574         (bmi_andn_<mode>): New for BMI.
4575         (bmi_bextr_<mode>): Likewise.
4576         (bmi_blsi_<mode>): Likewise.
4577         (bmi_blsmsk_<mode>): Likewise.
4578         (bmi_blsr_<mode>): Likewise.
4579         * config/i386/i386.opt: Add -mbmi.
4580         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
4581         * config/i386/bmiintrin.h (__lzcnt_u16): New.
4582         (__tzcnt_u16): Likewise.
4583         (__andn_u32): Likewise.
4584         (__bextr_u32): Likewise.
4585         (__blsi_u32): Likewise.
4586         (__blsmsk_u32): Likewise.
4587         (__blsr_u32): Likewise.
4588         (__lzcnt_u32): Likewise.
4589         (__tzcnt_u32): Likewise.
4590         (__andn_u64): Likewise.
4591         (__bextr_u64): Likewise.
4592         (__blsi_u64): Likewise.
4593         (__blsmsk_u64): Likewise.
4594         (__blsr_u64): Likewise.
4595         (__lzcnt_u64): Likewise.
4596         (__tzcnt_u64): Likewise.
4597         * doc/invoke.texi: Document -mbmi and -mno-bmi.
4598         * doc/extend.texi: Document BMI built-in functions.
4600 2010-11-10  Jan Hubicka  <jh@suse.cz>
4602         PR tree-optimize/46228
4603         * doc/invoke.texi (comdat-sharing-probability): Document.
4604         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
4605         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
4607 2010-11-10  Jan Hubicka  <jh@suse.cz>
4609         PR tree-optimize/46228
4610         * cgraph.c (cgraph_propagate_frequency): Fix typo.
4612 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
4614         PR tree-optimization/46414
4615         * tree-inline.c (estimate_move_cost): Check preferred vector
4616         mode for vector type.
4618 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4620         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
4622 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
4624         PR tree-optimization/45971
4625         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
4626         for phi nodes analyzable by scev.
4628 2010-11-10  Richard Guenther  <rguenther@suse.de>
4630         PR tree-optimization/44964
4631         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
4633 2010-11-10  Martin Jambor  <mjambor@suse.cz>
4635         PR tree-optimization/46351
4636         PR tree-optimization/46377
4637         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
4638         aggregate bit-fields.
4640 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4642         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4643         * doc/tm.texi: Regenerate.
4644         * opts-common.c (tm.h): Don't include.
4645         (target_option_translations): Remove.
4646         (decode_cmdline_options_to_array): Don't handle translating options.
4647         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
4648         * config/darwin-driver.c: Don't condition includes on
4649         CROSS_DIRECTORY_STRUCTURE.
4650         (darwin_default_min_version): Make static.
4651         (darwin_driver_init): New.  Call darwin_default_min_version if not
4652         CROSS_DIRECTORY_STRUCTURE.
4653         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4654         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
4655         (ASM_SPEC): Add %{static}.
4656         (darwin_default_min_version): Don't declare.
4657         (darwin_driver_init): Declare.
4658         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
4659         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
4660         * config/darwin.opt (all_load, allowable_client,
4661         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
4662         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
4663         exported_symbols_list, filelist, findirect-virtual-calls,
4664         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
4665         framework, fterminated-vtables, gfull, gused, image_base, init,
4666         install_name, multi_module, multiply_defined,
4667         multiply_defined_unused, no_dead_strip_inits_and_terms,
4668         seg_addr_table, seg_addr_table_filename, segaddr,
4669         segs_read_only_addr, segs_read_write_addr, single_module,
4670         umbrella, unexported_symbols_list, weak_reference_mismatches,
4671         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
4672         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
4673         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
4674         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
4675         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
4676         (ASM_SPEC): Add %{static}.
4677         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
4678         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4679         (DRIVER_SELF_SPECS): Handle options formerly in
4680         TARGET_OPTION_TRANSLATE_TABLE.
4681         * config/mep/mep.opt (mfar): New.
4682         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4683         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
4684         TARGET_OPTION_TRANSLATE_TABLE.
4685         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
4686         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
4687         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
4688         ffix-and-continue, findirect-data): New.
4689         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4690         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
4691         (mnofpu): Define mask and use Report here.
4693 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4695         * config/s390/s390.c (s390_emit_prologue): Report the stack
4696         size if -fstack-usage is used.
4698 2010-11-10  Richard Guenther  <rguenther@suse.de>
4700         PR tree-optimization/46398
4701         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
4703 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
4705         PR target/44760
4706         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
4707         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
4708         GP_REG_OR_PSEUDO_STRICT_P.
4709         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
4710         unexpected alternative.
4711         (*movsf_internal): Likewise.
4712         (indirect_jump): Replace call to non-existant function with call to
4713         internal_error.
4714         (tablejump): Likewise.
4715         * config/iq2000/iq2000.c: Include df.h .
4716         (iq2000_function_arg_advance): Use CONST_CAST2.
4717         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
4718         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
4719         a non-zero function address.
4720         (iq2000_initial_elimination_offset): Add gcc_unreachable for
4721         unexpected value of FROM.
4722         (symbolic_expression_p): Delete.
4723         (iq2000_function_value): Constify func.
4724         (expand_one_builtin): Use expand_normal.
4725         (iq2000_print_operand): Don't print VALUE if calculating it failed.
4727         PR rtl-optimization/44764
4728         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
4730         PR target/46407
4731         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
4732         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
4733         with ATTRIBUTE_UNUSED.
4734         (valid_psw_flag): Constify parameter which.
4735         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
4737         PR target/46415
4738         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
4739         (mmix_dbx_register_number): Likewise.
4740         * config/mmix/mmix.c: Include df.h .
4741         (mmix_local_alignment): Change argument basic_align and return type
4742         to unsigned.
4743         (mmix_dbx_register_number): Change argument and return type to
4744         unsigned.
4745         (mmix_expand_prologue): Use add_reg_note.
4747         PR target/46417
4748         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
4749         (spu_split_store): Use aform.
4750         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
4752 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4754         PR/46268
4755         * doc/gty.texi (GTY Options): Clarify that variable_size produces
4756         allocators taking size in bytes, compare with length option.  Add
4757         size calculation example.
4758         (Invoking the garbage collector): Ensure that sentences are
4759         followed by two spaces.  Describe that pointer fields must be
4760         initialized at ggc_collect call.
4761         (Troubleshooting): New section.
4763 2010-11-09  Jan Hubicka  <jh@suse.cz>
4765         PR tree-optimization/40436
4766         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
4767         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
4768         normal instructions; be sure bultin is not implemented in this file;
4769         compute non-zero return cost.
4770         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
4771         * tree-inline.h (eni_weights_d): Add return cost.
4773 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
4775         * c-parser.c (c_parser_struct_declaration): Handle declaration
4776         specifiers followed by CPP_CLOSE_BRACE.
4778 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
4780         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
4781         split occurs before reload, and we allocate memory at the time of
4782         the split, not during expansion.  Add attributes.
4783         (floatsi<mode>2_lfiwax_mem): Ditto.
4784         (floatunssi<mode>2_lfiwzx): Ditto.
4785         (floatunssi<mode>2_lfiwzx_mem): Ditto.
4786         (floatsidf2): Ditto.
4787         (floatunssisf2): Ditto.
4788         (floatunssidf2): Ditto.
4789         (fix_trunc<mode>si2): Ditto.
4790         (fix_trunc<mode>si2_stfiwx): Ditto.
4791         (fix_trunc<mode>si2_internal): Ditto.
4792         (fix_trunc<mode>si2): Ditto.
4793         (fix_trunc<mode>di2): Ditto.
4794         (fixuns_trunc<mode>si2_stfiwx): Ditto.
4795         (floatsisf2): Ditto.
4796         (floatdidf2_mem): Ditto.
4797         (floatunsdidf2_mem): Ditto.
4798         (floatunsdidf2): Ditto.
4799         (floatdisf2_internal1): Ditto.
4800         (floatdisf2_mem): Ditto.
4801         (floatunsdisf2_mem): Ditto.
4802         (floatsi<mode>2_lfiwax_mem2): Delete.
4803         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
4804         (fix_trunc<mode>si2_mem): Ditto.
4805         (fixuns_trunc<mode>si2_mem): Ditto.
4806         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
4807         type operations to reduce copying the values to multiple memory slots.
4808         (roundu32<mode>2_fprs): Ditto.
4810         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
4811         PRE_INC, PRE_DEC, PRE_MODIFY.
4812         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
4814         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
4815         Delete prototype.
4817 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4819         PR target/43808
4820         * cfgexpand.c (partition_stack_vars): Call
4821         update_alias_info_with_stack_vars unconditionally.
4822         (update_alias_info_with_stack_vars): Allow unused
4823         unreferenced vars when not optimizing.
4825 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
4827         PR tree-optimization/46036
4828         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
4829         add_to_dst_predicate_list.
4831 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4833         PR debug/46171
4834         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
4835         earlier.
4836         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
4837         argument, call dead_debug_reset when adding REG_UNUSED note.
4838         (dead_debug_reset): New function.
4839         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
4840         df_create_unused_note callers.
4842 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
4844         * config/fr30/fr30.c: Include "df.h".
4846 2010-11-09  Richard Guenther  <rguenther@suse.de>
4848         PR tree-optimization/46355
4849         * tree-loop-distribution.c (tree_loop_distribution): Do not
4850         distribute loops without a single exit.
4852 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4854         PR rtl-optimization/46237
4855         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
4856         saved hard regs if they might get partially clobbered.
4858 2010-11-09  Paul Koning  <ni1d@arrl.net>
4860         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
4862 2010-11-09  Richard Guenther  <rguenther@suse.de>
4864         PR tree-optimization/46177
4865         * tree-loop-distribution.c (prop_phis): Remove.
4866         (generate_builtin): Re-use the old loop exit edge to avoid
4867         needing to update PHI nodes.
4869 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
4871         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
4872         type of args_size to unsigned HOST_WIDE_INT.
4874         PR target/44755
4875         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
4876         * config/t-pnt16-warn: New file.
4877         * config/picochip/picochip.c (picochip_emit_stack_allocate):
4878         Use add_reg_note.
4879         (picochip_emit_save_register): Likewise.
4880         (picochip_emit_restore_register): Remove variable insn.
4881         (picochip_legitimize_address): Don't use C++ style comments.
4882         (picochip_legitimize_reload_address): Likewise.
4883         (reorder_var_tracking_notes): Remove variable vliw_start.
4884         (picochip_reorg): Cast first arguemnt to emit_note_after to
4885         enum insn_note.
4886         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
4887         (picochip_expand_builtin_3op): Likewise.
4888         (picochip_expand_builtin_2opvoid): Likewise.
4889         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
4890         (picochip_expand_array_testport): Likewise.
4891         (picochip_init_builtins): Remove unused variables.
4892         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
4893         to unsigned long, and output it as such.
4894         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
4895         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
4896         (schedType): Cast result of picochip_schedule_type to
4897         enum attr_schedType.
4899         PR target/44759
4900         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
4901         conditional to type of S.
4902         (mn10300_function_arg): Remove unused variable align.
4903         (mn10300_arg_partial_bytes): Likewise.
4904         * config/mn10300/mn10300.md (attribute cpu): Cast value to
4905         enum attr_cpu.
4907 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4909         PR bootstrap/46392
4910         * gengtype-parse.c (type): Call get_input_file_name to get file name.
4912 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4914         * tree.h (contains_placeholder_p): Fix comment.
4915         (type_contains_placeholder_p): Adjust comment.
4916         * tree.c (contains_placeholder_p): Fix comment.
4917         (type_contains_placeholder_1): Do not recurse on pointed-to types and
4918         adjust comment.
4919         (type_contains_placeholder_p): Add comment.
4921 2010-11-09  Paul Koning  <ni1d@arrl.net>
4923         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
4924         output of byte values.
4926 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4928         PR middle-end/46360
4929         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
4930         not in SSA mode.
4932 2010-11-09  Richard Guenther  <rguenther@suse.de>
4934         PR middle-end/46221
4935         * varasm.c (compute_visible_aliases): New function.
4936         (remove_unreachable_alias_pairs): Aliases make a target available
4937         even though we reclaimed the cgraph node.
4938         (finish_aliases_1): Likewise.
4939         * Makefile.in (varasm.o): Add pointer-set.h dependency.
4941 2010-11-09  Nick Clifton  <nickc@redhat.com>
4943         * config/mn10300/mn10300-modes.def: New file.
4945 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
4946             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4948         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
4949         (plugin_files, get_file_basename, get_file_realbasename)
4950         (get_file_langdir, error_at_line, gt_files, this_file)
4951         (system_h_file, read_input_list, create_field_all)
4952         (get_file_srcdir_relative_path, get_file_basename)
4953         (get_file_langdir, get_file_gtfilename)
4954         (get_output_file_with_visibility, get_output_file_name)
4955         (struct flist, put_mangled_filename, walk_type)
4956         (put_mangled_filename, finish_root_table, write_roots): Use
4957         input_file-s.
4958         (lang_dir_names, num_lang_dirs): Remove static.
4959         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
4960         (main): Use input_file-s.
4962         * gengtype.h: (struct input_file_st, input_file): New type.
4963         (struct fileloc): Use it.
4964         (gt_files, num_gt_files, this_file, system_h_file)
4965         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4966         (get_input_file_name): New function.
4967         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4968         use input_file.
4969         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4970         (get_output_file_name): Ditto.
4972         * gengtype-lex.l (yybegin): Use input_file.
4974         * gengtype-parse.c (parse_error): Use input_file.
4976 2010-11-08  Xinliang David Li  <davidxl@google.com>
4978         PR tree-optimization/46316
4979         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4980         * double-int.h (double_int_mul_with_sign): New function.
4981         * double-int.c (double_int_mul_with_sign): New function.
4983 2010-11-08  Paul Koning  <ni1d@arrl.net>
4985         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4987 2010-11-08  Paul Koning  <ni1d@arrl.net>
4989         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4991 2010-11-08  Paul Koning  <ni1d@arrl.net>
4993         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4994         to 8 bits.
4996 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4998         PR target/46378
4999         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
5000         turn on ISA 2.04 rounding instructions for power5.
5002         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
5003         not ISA 2.02.
5005         PR target/45585
5006         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
5007         in FPR registers.
5008         (movdi_low_st): Ditto.
5010 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
5011             Richard Henderson  <rth@redhat.com>
5013         PR target/44758
5014         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
5015         (attribute acc_group): Cast value to enum attr_acc_group.
5016         (*movdi_nodouble+6): Use gen_int_mode.
5017         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
5018         if RTX_CODE is defined or not.
5019         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
5020         struct frv_io.
5021         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
5022         (frv_frame_access, frv_expand_prologue): Remove unused variables.
5023         (frv_expand_block_clear): Likewise.
5024         (frv_trampoline_init): Use LCT_NORMAL.
5025         (struct frv_packet_group): New struct, broken out of type of
5026         frv_packet.
5027         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
5028         use cast in loop counter increment.
5029         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
5030         assigning to io->type.
5031         (bdesc_set): Use rtx_code UNKNOWN in initializer.
5032         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
5033         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
5034         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
5035         (frv_read_argument): Use expand_normal.
5037         PR target/44757
5038         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
5039         lm32_legitimate_constant_p.
5040         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
5041         * config/lm32/lm32.c (gen_int_relational): Make new block for
5042         LE / LT / LEU / LTU case.  Declare variables at start of block.
5043         (lm32_block_move_inline): Use XALLOCAVEC.
5045 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5047         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
5049 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
5051         * gengtype (get_output_file_for_structure): Ensure type is union
5052         or struct.
5053         (write_splay_tree_allocator_def): Use
5054         get_output_file_with_visibility.
5056 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5058         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
5059         to defined values in case of an error.
5060         (s390_option_override): Skip further processing if the -march
5061         parameter wasn't recognized.
5063 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
5065         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
5066         assert that REG is a hard register number before using it as an index.
5068         PR bootstrap/46358
5069         * config/i386/i386.c (ix86_expand_split_stack_prologue):
5070         Avoid warnings when HOST_WIDE_INT is 32 bit.
5072 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
5074         PR target/46208
5075         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
5076         (sparc_promote_prototypes): Likewise.
5077         (sparc_promote_function_mode): Promote in 32-bit mode as well.
5078         (sparc_return_in_memory): Remove superfluous parentheses.
5079         (sparc_struct_value_rtx): Fix long lines.
5080         (sparc_function_value_1): Promote in 32-bit mode as well.
5082 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
5084         PR rtl-optimization/45352
5085         * sel-sched.c (find_best_expr): Do not set pneed_stall when
5086         the variable_issue hook is not implemented.
5087         (fill_insns): Remove dead variable stall_iterations.
5088         (init_seqno_1): Force EBB start for resetting sched cycles on any
5089         successor blocks of the rescheduled region.
5090         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
5091         (reset_sched_cycles_in_current_ebb): Add debug printing.
5092         New variable issued_insns.  Advance state when we have issued
5093         issue_rate insns.
5095 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
5097         * gengtype (main): Get here's position using POS_HERE macro for
5098         do*typedef calls.
5100 2010-11-07  Ian Lance Taylor  <iant@google.com>
5102         PR target/46089
5103         * config/i386/i386.c (split_stack_fn_large): New static variable.
5104         (ix86_expand_split_stack_prologue): Handle large model.
5106 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
5108         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
5109         all possible addressing modes.
5111 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
5113         PR tree-optimization/46346
5114         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
5116 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
5118         * config/mips/mips.c: Revert previous patch.
5119         * config/mips/mips.md: Likewise.
5121 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
5123         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
5124         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
5125         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
5126         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
5127         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
5128         to use FMA.
5129         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
5130         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
5131         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
5132         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
5134 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
5136         PR c/43384
5137         * c-decl.c (lookup_label): Labels can only be referenced in a
5138         function's scope.
5139         (store_parm_decls_oldstyle): Skip erroneous parameters.
5141 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
5143         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
5144         LIBCALL_VALUE): Remove macros.
5145         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5146         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5147         (fr30_function_value_regno_p, fr30_function_value,
5148         fr30_libcall_value): New functions.
5150 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
5152         PR middle-end/46314
5153         * target.def (generate_internal_label): New asm_out hook.
5154         * output.h (default_generate_internal_label): Declare.
5155         * varasm.c (default_generate_internal_label): Define.
5157 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
5159         PR target/44981
5160         * doc/extend.tex (format): Document NSString extension.
5161         (format_arg): Likewise.
5162         (Darwin Format Checks): New section.
5163         * doc/tm.texi: Document string object hooks (generated).
5164         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
5165         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
5166         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
5167         * target.def (objc_construct_string_object): Rename, amend
5168         documentation.
5169         (string_object_ref_type_p): New hook.
5170         (check_string_object_format_arg): New hook.
5171         * c-parser.c (c_parser_attributes): Allow objective-c class names as
5172         attribute identifiers.
5173         * config/darwin-c.c (darwin_cfstring_ref_p): New.
5174         (darwin_check_cfstring_format_arg): New.
5175         (darwin_additional_format_types): New.
5176         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
5177         (darwin_check_cfstring_format_arg): New.
5178         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
5179         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
5180         (TARGET_N_FORMAT_TYPES): New.
5181         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
5183 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
5184             Pascal Obry  <obry@adacore.com>
5186         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
5187         in 64-bit mode and 17 otherwise.
5189 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5191         PR debug/45939
5192         * var-tracking.c (emit_note_insn_var_location): Make sure that
5193         call related var location notes come before the normal ones.
5195 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
5197         PR target/46326
5198         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
5199         in the last change.
5201 2010-11-05  Ian Lance Taylor  <iant@google.com>
5203         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
5205 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
5207         PR c/44772
5208         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
5209         pointer_set_contains if DECL_NAME is NULL.
5211 2010-11-05  Ian Lance Taylor  <iant@google.com>
5213         PR target/46084
5214         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
5215         request enough additional space for alignment, and force alignment.
5217 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
5219         * config/i386/i386.c (legitimate_pic_address_disp_p):
5220         Handle UNSPEC_PCREL.
5221         (ix86_legitimate_address_p): Likewise.
5222         (legitimize_pic_address): Likewise.
5223         (output_pic_addr_const): Likewise.
5224         (ix86_delegitimize_address): Likewise.
5225         (ix86_find_base_term): Likewise.
5226         (memory_address_length): Likewise.
5227         (x86_output_mi_thunk): Handle special case x64
5228         for non local binding.
5229         * config/i386/i386.md (UNSPEC_PCREL): New.
5230         * config/i386/winnt.c (i386_pe_binds_local_p):
5231         Allow weak symbol for x64 windows with non-local binding.
5233 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
5235         PR target/45670
5236         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
5237         instead of EXPAND_NORMAL for base expansion.
5239 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
5241         * config.gcc: Support --with-fpmath=avx for x86.
5242         * config/i386/avxmath.h: New.
5243         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
5245 2010-11-05  Ian Lance Taylor  <iant@google.com>
5247         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
5248         * gengtype.c (walk_type): Don't recognize descbits option.
5250 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
5252         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
5253         WORD_SWITCH_TAKES_ARG): Remove.
5254         * doc/options.texi (Args): Document.
5255         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
5256         * doc/tm.texi: Regenerate.
5257         * opt-functions.awk (switch_flags): Handle Args.
5258         * opts-common.c: Update comment on tm.h include.
5259         (decode_cmdline_option): Handle options with multiple arguments.
5260         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
5261         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
5262         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
5263         CL_COMMON): Update values.
5264         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
5265         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
5266         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
5267         sectobjectsymbols, sectorder, segcreate, segprot): New.
5269 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
5270             Uros Bizjak  <ubizjak@gmail.com>
5272         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
5273         256bit AVX register is used.
5274         (ix86_expand_vector_move_misalign): Likewise.
5275         (ix86_expand_vector_move): Replace use_avx256_p with
5276         VALID_AVX256_REG_MODE.
5278 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
5280          PR target/44750
5281         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
5282         change.  Set $@-warn.o to -Wno-error.
5284         PR bootstrap/44756
5285         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
5286         comparing it to a signed value.
5288         PR middle-end/44766
5289         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
5290         PR bootstrap/44770
5291         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
5292         to i.
5294         PR target/44754
5295         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
5296         (m32c_function_arg).  Add comma between arguments two and three.
5297         (m32c_promote_prototypes): Remove declaration.
5298         (current_function_special_page_vector): Likewise.
5299         (m32c_regno_reg_class): Change return type to enum reg_class.
5300         (m32c_pushm_popm): Use add_reg_note.
5301         (m32c_push_rounding): Change return type to unsigned int.
5302         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
5303         enum reload_type.
5304         (m32c_insert_attributes): Constify variable name.
5305         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
5306         (m32c_prepare_shift): Remove variable lref.
5307         (m32c_expand_movcc): Remove variable cmp.
5308         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
5309         (m32c_compare_redundant): Remove variable op2.
5310         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
5311         (m32c_pragma_memregs): Assign the number to target_memregs.
5312         (m32c_pragma_address): Remove variable var_str.
5313         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
5314         enum reg_class.
5315         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
5316         * config/m32c/bitops.md (andsi3): Add default case to switch.
5317         (iorsi3, xorsi3): Likewise.
5318         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
5319         * config/m32c/jump.md (call, call_value): Likewise.
5320         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
5321         (m32c_regno_reg_class): Likewise.
5322         (current_function_special_page_vector): Declare.
5324 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
5326         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
5328         PR tree-optimization/46099
5329         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
5330         if it is NULL and uid wasn't found in the hash table.  Just fold the
5331         result if it is NULL otherwise.  Insert other potentially needed
5332         stmts right before current stmt instead of on the entry edge.
5333         (struct elv_data): Add gsi and reset fields.
5334         (eliminate_local_variables_1): Adjust caller.  If take_address_of
5335         failed for debug stmt, set dta->reset and return.
5336         (eliminate_local_variables_stmt): Change STMT argument for GSI,
5337         pass GSI through to the callback, handle resetting of debug stmts.
5338         (eliminate_local_variables): Adjust caller.  Process debug stmts
5339         in second phase.
5341         PR middle-end/43690
5342         * gimplify.c (gimplify_asm_expr): If a "m" input is a
5343         {pre,post}{in,de}crement, fail.
5345         PR debug/46307
5346         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
5347         * tree-pretty-print.c (dump_generic_node): Likewise.
5348         (op_code_prio): Likewise.
5349         * cfgexpand.c (expand_debug_expr): Likewise.
5351 2010-11-04  Paul Koning  <ni1d@arrl.net>
5353         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
5354         constraints.
5356 2010-11-04  Chao-ying Fu  <fu@mips.com>
5358         * configure.ac: Test assembler support for DSP Rev1 mult.
5359         * configure: Regenerate.
5360         * config.in: Regenerate.
5361         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
5362         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
5363         (CODE_FOR_mips_multu): New define.
5364         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
5365         dspr2_32 to dsp_32.
5366         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
5367         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
5368         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
5369         New define_expand patterns.
5370         * config/mips/constraints.md (ka): Update the constraint to test
5371         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
5372         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
5373         mips_multu): Delete.
5374         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
5375         Change target constraint to "ka".
5376         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
5377         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
5378         Emit the accumulator destination when ISA_HAS_DSP_MULT.
5379         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
5380         Emit the accumulator destination when ISA_HAS_DSP_MULT.
5381         (<u>maddsidi4): Likewise.
5382         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
5383         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
5385 2010-11-04  Paul Koning  <ni1d@arrl.net>
5387         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
5389 2010-11-04  Paul Koning  <ni1d@arrl.net>
5391         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
5393 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
5395         Fixed using the Objective-C 2.0 dot-syntax with class names.
5396         * c-parser.c (c_parser_next_token_starts_declspecs): In
5397         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
5398         (c_parser_next_token_starts_declaration): Same.
5399         (c_parser_postfix_expression): Parse the Objective-C 2.0
5400         dot-syntax with a class name.
5402 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
5404         * final.c (compute_alignments): Compute/free loop info all the time.
5405         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
5406         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
5407         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
5408         * config/rs6000/rs6000.c (cfgloop.h): Include.
5409         (can_override_loop_align): New.
5410         (rs6000_option_override_internal): Set it.
5411         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
5412         (rs6000_loop_align): New function.
5413         (rs6000_loop_align_max_skip): Likewise.
5415 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5417         PR driver/45703
5418         * collect2.c (main): Print --help output to stdout.  Do not
5419         exit right away, so ld --help is appended.  Add empty lines
5420         to separate output suitably.
5422 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
5424         PR tree-optimization/46233
5425         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
5426         after calling analyze_function, not before.
5428         PR target/46234
5429         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
5430         instead of build_va_arg_indirect_ref.
5431         * config/spu/spu.c (spu_va_start): Likewise.
5432         * config/s390/s390.c (s390_va_start): Likewise.
5434 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
5436         PR middle-end/46292
5437         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
5438         if the innermode is not vector mode, determine the mode of a subreg
5439         by using mode_for_size of inner_size.
5441 2010-11-04  Richard Guenther  <rguenther@suse.de>
5443         PR rtl-optimization/46183
5444         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
5445         (execute_rtl_pre): Likewise.
5446         (execute_rtl_hoist): Likewise.
5448 2010-11-04  Richard Guenther  <rguenther@suse.de>
5450         PR tree-optimization/46068
5451         * ipa-split.c (consider_split): Remove gcc_unreachable.
5453 2010-11-04  Richard Guenther  <rguenther@suse.de>
5455         * tree-nested.c (build_addr): Use build_fold_addr_expr.
5457 2010-11-04  Richard Guenther  <rguenther@suse.de>
5459         PR tree-optimization/45991
5460         * gimplify.c (force_gimple_operand_1): Use the provded test
5461         function in the initial test.
5463 2010-11-04  Jeff Law  <law@redhat.com>
5465         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
5466         of readonly memory equivalances for const/pure calls.
5468 2010-11-04  Richard Guenther  <rguenther@suse.de>
5470         PR tree-optimization/45733
5471         * tree-vect-stmts.c (reverse_vec_elements): Honor the
5472         permute builtins function return type.
5474 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
5476         PR middle-end/44765
5477         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
5478         as an index, check it is not INVALID_REGNUM.
5480         PR bootstrap/44756
5481         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
5482         unsignedp.
5483         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
5485         PR bootstrap/44756
5486         * function.c (thread_prologue_and_epilogue_insns): Add
5487         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
5489         PR bootstrap/44756
5490         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
5492         PR target/44750
5493         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
5494         (pdp11_preferred_reload_class): Rename class to rclass.
5495         (pdp11_preferred_output_reload_class): Likewise.
5496         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
5497         ALL_COMPILERFLAGS .
5498         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
5500         PR bootstrap/44756
5501         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
5502         iteration variables to enum machine_mode.
5504         PR target/44751
5505         * config/h8300/h8300.c: Include df.h.
5506         (push, pop): Use add_reg_note.
5507         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
5508         (compute_a_shift_cc): Likewise.
5509         (expand_a_shift): Argument code has type enum rtx_code.
5510         (struct shift_insn): Member cc_valid has type enum attr_cc.
5511         (struct shift_info) <cc_inline, cc_special>: Likewise.
5512         enum attr_cc.
5513         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
5514         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
5516 2010-11-04  Ira Rosen  <irar@il.ibm.com>
5518         PR tree-optimization/46213
5519         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
5520         MINUS_EXPR only if the first operand is reduction operand.
5522 2010-11-04  Richard Guenther  <rguenther@suse.de>
5523             Richard Henderson  <rth@redhat.com>
5525         * tree.def (FMA_EXPR): New tree code.
5526         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
5527         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
5528         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
5529         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
5530         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
5531         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
5532         (execute_optimize_widening_mul): Call it.  Reorganize to allow
5533         dead stmt removal.  Move TODO flags ...
5534         (pass_optimize_widening_mul): ... here.
5535         * flag-types.h (enum fp_contract_mode): New enum.
5536         * common.opt (flag_fp_contract_mode): New variable.
5537         (-ffp-contract): New option.
5538         * opts.c (common_handle_option): Handle it.
5539         * doc/invoke.texi (-ffp-contract): Document.
5540         * tree.h (fold_fma): Declare.
5541         * builtins.c (fold_fma): New function.
5542         (fold_builtin_fma): Likewise.
5543         (fold_builtin_3): Call it for fma.
5544         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
5545         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
5546         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
5547         New expanders.
5548         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
5549         named patterns.
5550         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
5551         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
5552         (fms_optab, fnma_optab, fnms_optab): New defines.
5553         * gimplify.c (gimplify_expr): Handle binary truth expressions
5554         explicitly.  Handle FMA_EXPR.
5555         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
5556         operations.
5558 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5559             Richard Guenther  <rguenther@suse.de>
5561         * passes.c (init_optimization_passes): Move veclower after SSA.
5562         * tree-vect-generic.c (uniform_vector_p): New function.
5563         (expand_vector_operations_1): Handle conversion.
5564         (pass_lower_vector): Update SSA form.
5566 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
5568         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
5569         plugin capabilities.
5570         * configure: Regenerate.
5572 2010-11-03  Xinliang David Li  <davidxl@google.com>
5574         PR target/46200
5575         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
5576         Adjust cbase if the use stmt is after iv update.
5578 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5580         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
5582 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5584         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
5585         comment.  Pass true to the last argument of output_stack_adjust.
5587 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5589         PR target/46295
5590         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
5591         if 256bit AVX register is used.
5593 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
5595         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
5596         xsmindp/xsmaxdp on VSX for single precision min/max.
5597         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
5598         (vsx_sminsf3): Ditto.
5600 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5602         * combine.c (try_combine): Fix formatting issues, improve comments and
5603         fix a pasto.
5605 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5607         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
5608         of the result before building binary expressions.
5610 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5612         PR rtl-optimization/45865
5613         * Makefile.in (df-problems.o): Revert revision 164552.
5614         * basic-block.h (enum bb_flags): Likewise.
5615         * cfgcleanup.c (block_was_dirty): Likewise.
5616         (try_forward_edges): Likewise.
5617         (try_crossjump_bb): Likewise.
5618         (try_head_merge_bb): Likewise.
5619         (try_optimize_cfg): Likewise.
5620         (cleanup_cfg): Likewise.
5621         * df-core.c (df_set_bb_dirty): Likewise.
5622         * df-problems.c: Likewise.
5623         (df_simulate_find_uses): Likewise.
5624         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
5625         (find_memory, find_memory_store): Likewise.
5626         (can_move_insns_across): Likewise.
5627         * df.h (can_move_insns_across): Likewise.
5628         * ifcvt.c (find_memory): Likewise.
5629         (dead_or_predicable): Likewise.
5631 2010-11-03  Richard Guenther  <rguenther@suse.de>
5633         PR middle-end/46288
5634         * predict.c (strip_predict_hints): Simply DCE builtin expect if
5635         the result is unused.
5637 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5639         PR tree-optimization/46009
5640         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
5641         cond_if_else_store_replacement if bb1 and bb2 have the same
5642         single successor.
5643         (cond_store_replacement): Use gimple_assign_single_p, don't
5644         check if rhs is SSA_NAME or invariant.  Call release_defs for
5645         assign.
5646         (cond_if_else_store_replacement): New function.
5648 2010-11-03  Richard Guenther  <rguenther@suse.de>
5650         * opts.c (finish_options): Properly check for all WHOPR
5651         flags before complaining about -flto-partition.
5653 2010-11-04  Alan Modra  <amodra@gmail.com>
5655         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
5656         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
5657         TARGET_SECURE_PLT.
5658         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
5659         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
5660         on input, "r" on output.
5662 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
5664         Implemented -fobjc-std=objc1 flag.
5665         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
5666         option.
5667         * doc/standards.texi (Standards): Updated the section on
5668         Objective-C; mention support for Objective-C 2.0 features and the
5669         new -fstd-objc=objc1 flag to disable them.
5671 2010-11-03  Richard Guenther  <rguenther@suse.de>
5673         PR middle-end/46241
5674         * dwarf2out.c (scope_die_for): Properly detect global scope.
5676 2010-11-03  Richard Guenther  <rguenther@suse.de>
5678         PR tree-optimization/46190
5679         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5680         Properly compute peel iterations.
5682 2010-11-03  Richard Guenther  <rguenther@suse.de>
5684         PR tree-optimization/46286
5685         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
5686         re-allocated vector data.
5688 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5690         PR target/46285
5691         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
5692         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
5693         is completed.
5695 2010-11-03  Richard Guenther  <rguenther@suse.de>
5697         PR tree-optimization/46217
5698         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
5699         flag matches.
5700         (execute_update_addresses_taken): Likewise.
5702 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
5704         PR bootstrap/44335
5705         * targhooks.c (targhook_words_big_endian): New function.
5706         (targhook_float_words_big_endian): Likewise.
5707         * targhooks.h (targhook_words_big_endian): Declare.
5708         (targhook_float_words_big_endian): Likewise.
5709         * target.def (words_big_endian, float_words_big_endian): New hooks.
5711 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5713         PR tree-optimization/46165
5714         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
5715         a normal call into noreturn call.
5717 2010-11-03  Richard Guenther  <rguenther@suse.de>
5719         PR middle-end/46251
5720         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
5721         not INDIRECT_REFs.
5723 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5725         PR tree-optimization/46107
5726         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
5727         if cfg_hook_duplicate_loop_to_header_edge failed.
5729 2010-11-03  Ian Lance Taylor  <iant@google.com>
5731         PR lto/46273
5732         * config.gcc: Don't set lto_binary_reader.
5733         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5734         (Configuration): Mention --disable-lto.  Remove --with-libelf
5735         paragraph.
5737 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5739         PR debug/46252
5740         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
5741         prev_real_insn.
5742         * gcse.c (insert_insn_end_basic_block): Likewise.
5744         PR rtl-optimization/46034
5745         PR rtl-optimization/46212
5746         PR rtl-optimization/46248
5747         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
5748         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
5749         before i0dest -> i0src substitution and pass 1 instead of 0 as last
5750         argument to subst on i2pat.
5752 2010-11-02  Ian Lance Taylor  <iant@google.com>
5754         * configure.ac: Use AC_SYS_LARGEFILE.
5755         * configure: Rebuild.
5756         * config.in: Rebuild.
5758 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5760         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
5761         fold_convert.
5762         * c-typeck.c (build_function_call_vec): Likewise.
5763         * cfgexpand.c (expand_debug_expr): Likewise.
5764         * cgraphunit.c (assemble_thunk): Likewise.
5765         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
5766         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
5767         (fold_binary_loc, fold_ternary_loc): Likewise.
5768         * gimple-fold.c (get_symbol_constant_value): Likewise.
5769         * gimple-low.c (lower_builtin_setjmp): Likewise.
5770         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
5771         * gimplify.c (gimplify_init_constructor): Likewise.
5772         * lambda.h (build_linear_expr): Likewise.
5773         * omp-low.c (omp_reduction_init): Likewise.
5774         * tree-inline.c (remap_ssa_name): Likewise.
5775         * tree-object-size.c (compute_object_sizes): Likewise.
5776         * tree-sra.c (init_subtree_with_zero): Likewise.
5777         (sra_ipa_modify_assign): Likewise.
5778         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
5779         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
5780         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
5781         (undistribute_ops_list): Likewise.
5782         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
5783         * tree-vect-stmts.c (vectorizable_call): Likewise.
5784         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
5785         (build_zero_cst): Handle more cases directly.  Update comment.
5787 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5789         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
5790         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
5792         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
5793         and call ix86_split_call_vzeroupper instead of
5794         ix86_split_call_pop_vzeroupper.
5795         (*call_pop_1_vzeroupper): Likewise.
5796         (*sibcall_pop_1_vzeroupper): Likewise.
5797         (*call_value_pop_0_vzeroupper): Likewise.
5798         (*call_value_pop_1_vzeroupper): Likewise.
5799         (*sibcall_value_pop_1_vzeroupper): Likewise.
5801 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5803         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
5805 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
5807         * basic-block.h (insert_insn_end_bb_new): Delete.
5808         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
5810 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
5811             H.J. Lu  <hongjiu.lu@intel.com>
5813         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
5814         (ix86_split_call_pop_vzeroupper): Likewise.
5816         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
5817         (ix86_expand_call): Conditionally decorate calls with
5818         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
5819         (ix86_split_call_vzeroupper): New.
5820         (ix86_split_call_pop_vzeroupper): Likewise.
5822         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
5823         (*call_pop_0_vzeroupper): New insn_and_split pattern.
5824         (*call_pop_1_vzeroupper): Likewise.
5825         (*sibcall_pop_1_vzeroupper): Likewise.
5826         (*call_0_vzeroupper): Likewise.
5827         (*call_1_vzeroupper): Likewise.
5828         (*sibcall_1_vzeroupper): Likewise.
5829         (*call_1_rex64_vzeroupper): Likewise.
5830         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
5831         (*call_1_rex64_large_vzeroupper): Likewise.
5832         (*sibcall_1_rex64_vzeroupper): Likewise.
5833         (*call_value_pop_0_vzeroupper): Likewise.
5834         (*call_value_pop_1_vzeroupper): Likewise.
5835         (*sibcall_value_pop_1_vzeroupper): Likewise.
5836         (*call_value_0_vzeroupper): Likewise.
5837         (*call_value_0_rex64_vzeroupper): Likewise.
5838         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
5839         (*call_value_1_vzeroupper): Likewise.
5840         (*sibcall_value_1_vzeroupper): Likewise.
5841         (*call_value_1_rex64_vzeroupper): Likewise.
5842         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
5843         (*call_value_1_rex64_large_vzeroupper): Likewise.
5844         (*sibcall_value_1_rex64_vzeroupper): Likewise.
5846 2010-11-02  Ian Lance Taylor  <iant@google.com>
5848         PR lto/46273
5849         * config.gcc: Revert last patch: set lto_binary_reader.
5851 2010-11-02  Richard Guenther  <rguenther@suse.de>
5853         PR tree-optimization/46149
5854         * tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
5855         non-indirect MEM_REF variants.
5857 2010-11-02  Richard Guenther  <rguenther@suse.de>
5859         PR tree-optimization/46216
5860         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5861         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
5863 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5865         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
5866         (*-*-osf*): Likewise.
5867         * configure: Regenerate.
5869 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5871         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
5872         for Intel Core 2 and Core i7.
5874 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
5876         Model decoder of Core 2/i7 for multipass scheduling.
5878         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
5879         New type to hold target-specific data for multipass scheduling.
5880         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5881         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
5882         Core 2/i7.
5883         (core2i7_secondary_decoder_max_insn_size,)
5884         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
5885         New static variables.
5886         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
5887         ([_]ix86_first_cycle_multipass_data): New static variable.
5888         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
5889         Implement targetm.sched hooks.
5890         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
5891         of ...
5892         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
5893         Implement new targetm.sched hooks.
5894         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
5895         targetm.sched hook to install multipass scheduling hooks on demand.
5897         * doc/tm.texi.in: Document new targetm.sched hooks.
5898         * doc/tm.texi: Regenerate.
5900         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5901         (first_cycle_multipass_data_t): New typedef.
5902         (struct choice_entry: target_data): New field.
5903         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
5904         to allow target model restrictions not represented in DFA.
5905         (choose_ready, schedule_block): Update.
5906         (sched_extend_ready_list, sched_finish_ready_list): Call new target
5907         hooks to initialize target-specific data for multipass scheduling.
5908         * sched-int.h (max_issue): Update declaration.
5909         * sel-sched.c (choose_best_insn): Update.
5910         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
5911         (first_cycle_multipass_{init, fini}): Define and document new
5912         targetm.sched hooks.
5914 2010-11-02  Richard Guenther  <rguenther@suse.de>
5916         PR tree-optimization/46184
5917         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
5918         input vector type from the reduction operand as well.
5920 2010-11-02  Richard Guenther  <rguenther@suse.de>
5922         PR tree-optimization/46177
5923         * tree-loop-distribution.c (prop_phis): Use
5924         mark_virtual_phi_result_for_renaming.
5926 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5928         PR middle-end/46120
5929         * tree.c (get_binfo_at_offset): Bail out on artificial
5930         fields.  Identify primary bases according to their offsets.
5932 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5934         PR tree-optimization/45875
5935         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
5936         (gimple_get_relevant_ref_binfo): Detect primary bases according to
5937         their field offset.
5939 2010-11-02  Ian Lance Taylor  <iant@google.com>
5941         * doc/install.texi (Configuration): Note in two places that Java
5942         is not enabled by default.
5944 2010-11-02  Ian Lance Taylor  <iant@google.com>
5946         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5947         (Configuration): Mention --disable-lto.  Remove --with-libelf
5948         paragraph.
5950 2010-11-02  Ian Lance Taylor  <iant@google.com>
5952         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
5953         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
5954         LIBELFINC.  Remove HAVE_libelf.
5955         * config.gcc: Don't set lto_binary_reader.
5956         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
5957         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
5958         (LIBS): Remove $(LIBELFLIBS).
5959         (INCLUDES): Remove $(LIBELFINC).
5960         * configure: Rebuild.
5961         * config.in: Rebuild.
5963 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5965         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5966         (function_arg_advance): Delete.
5967         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5968         (FUNCTION_ARG): Delete.
5969         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5970         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5971         const_tree and a bool.
5972         (function-arg): Rename to...
5973         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5974         and a bool.
5975         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5976         targetm.calls.function_arg_advance.
5977         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5979 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5981         Merge from FSF "apple/trunk" branch.
5983         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5984         * config/darwin.opt: .. to here.
5985         (matt-stubs): New option.
5986         * config/i386/darwin.opt: Delete.
5987         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5988         (MACHO_DYNAMIC_NO_PIC_P): New.
5989         (MACHOPIC_INDIRECT): New.
5990         (MACHOPIC_PURE): New.
5991         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5992         (MACHOPIC_ATT_STUB): New.
5993         (CC1_SPEC): Do not remove mdynamic-no-pic.
5994         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5995         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5996         (FUNCTION_PROFILER): Correct over-length line.
5997         (SUBTARGET_OVERRIDE_OPTIONS): New.
5998         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5999         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
6000         (legitimate_constant_p): Handle mdynamic-no-pic.
6001         (ix86_legitimate_address_p): Likewise.
6002         (ix86_legitimize_address): Likewise.
6003         (ix86_expand_move): Likewise.
6004         (machopic_output_stub): Update for ATT-style stubs and
6005         mdynamic-no-pic.
6006         * config/darwin-protos.h (machopic_symbol_defined_p): New.
6007         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
6008         TARGET_DYNAMIC_NO_PIC: Remove.
6009         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
6010         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
6011         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
6012         Remove handling of mdynamic-no-pic.
6013         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
6014         Define if required.
6015         (machopic_symbol_defined_p): Do not try to use current_function_decl
6016         when generating _get_pc thunks within stubs.
6017         (machopic_indirect_data_reference): Rework for direct conditionals
6018         rather than #ifdefs, add x86 mdynamic-no-pic
6019         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
6020         defined value.
6021         (darwin_override_options): Handle mdynamic-no-pic here.
6022         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
6023         (machopic_lazy_symbol_ptr3_section): New.
6024         (machopic_picsymbol_stub2_section): New.
6025         (machopic_picsymbol_stub3_section): New.
6026         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
6027         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
6028         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
6029         Moved common definition from x86 and rs6000.
6030         (MACHO_DYNAMIC_NO_PIC_P): Override value.
6031         (MACHOPIC_INDIRECT): Likewise.
6032         (MACHOPIC_PURE): Likewise.
6033         * config.gcc (x86-darwin-*): Remove darwin.opt.
6035 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
6037         PR debug/46255
6038         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
6039         instead of gsi_last_bb.
6041 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
6042             Maxim Kuvyrkov  <maxim@codesourcery.com>
6044         * config/i386/i386.c (cpu_names): Add "corei7".
6045         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
6047 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
6048             Maxim Kuvyrkov  <maxim@codesourcery.com>
6050         Tune alignment for Intel Core i7
6052         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
6053         (enum processor_type): Update comment.  Add entries for Core i7.
6054         * config/i386-c.c (ix86_target_macros_internal): Update.
6055         * config/i386.c (m_COREI7{_32,_64}): New macros.
6056         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
6057         (processor_target_table): Tune alignment for Core i7.
6058         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
6060         * doc/invoke.texi: Document "corei7" option value.
6062 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
6063             Maxim Kuvyrkov  <maxim@codesourcery.com>
6064             H.J. Lu  <hjl.tools@gmail.com>
6066         Basic support for Intel Core i7
6068         * i386.c (ix86_option_override_internal): Add entry for corei7, use
6069         generic tuning.  Use generic32 when compiling for 32-bit ABI.
6071 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
6073         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
6074         sections and call darwin_asm_dwarf_section() to handle them.
6075         (darwin_asm_dwarf_section): New.
6076         (darwin_file_start): Remove code emitting dwarf section symbols.
6078 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
6080         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
6081         explicitly disable stack protection when building libgcc.
6082         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
6084 2010-11-01  Jason Merrill  <jason@redhat.com>
6086         * fold-const.c (fold_indirect_ref_1): Handle folding
6087         POINTER_PLUS_EXPR to ARRAY_REF.
6089 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
6091         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
6092         (sh_delegitimize_address): New function.
6094 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
6096         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
6097         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
6098         (CC1_SPEC): Don't handle -target.
6099         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
6100         options.
6101         * config/darwin.opt (Zallowable_client, Zbundle_loader,
6102         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
6103         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
6104         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
6105         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
6106         Zweak_reference_mismatches, client_name, compatibility_version,
6107         current_version, dylinker_install_name, pagezero_size,
6108         read_only_relocs, seg1addr, segs_read_only_addr,
6109         segs_read_write_addr, sub_library, sub_umbrella): New.
6110         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
6111         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
6112         * config/freebsd.opt: New.
6113         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
6114         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
6115         * config/rpath.opt: New.
6116         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
6117         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
6118         Use rpath.opt.
6120 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
6122         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
6123         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
6124         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
6125         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
6126         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
6127         Document that options in .opt files do not need to be included.
6128         * doc/tm.texi: Regenerate.
6129         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
6130         * opts-common.c: Update comment on tm.h include.
6131         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
6132         * system.h (SWITCH_TAKES_ARG): Poison.
6133         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
6134         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
6135         in darwin.opt.
6136         (LINK_COMMAND_SPEC_A): Don't include %{x}.
6137         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6138         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
6139         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
6140         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6141         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
6142         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
6143         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
6144         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
6145         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6146         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
6147         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
6148         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
6149         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
6150         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
6151         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
6152         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
6153         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
6154         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
6155         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
6156         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
6157         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
6158         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
6159         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6161 2010-11-01  Paul Koning  <ni1d@arrl.net>
6163         * config/pdp11/pdp11.md: Use iterators.
6164         (addqi3, subqi3, iorsi3, xorsi3): Delete.
6166 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
6168         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
6169         GCC_INSN_FLAGS_H.
6170         * libgcov.c (__gcov_indirect_call_profiler): Set
6171         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
6172         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
6174 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
6176         PR tree-optimization/46259
6178         Revert:
6179         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6180         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
6181         build_vector_from_val.
6183 2010-11-01  DJ Delorie  <dj@redhat.com>
6185         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
6186         as well as an assertion.
6188 2010-11-01  Paul Koning  <ni1d@arrl.net>
6190         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
6191         complex modes in memory.
6193 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
6195         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
6197 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
6199         PR target/45250
6200         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
6201         (cfa_base_offset): New variable.
6202         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
6203         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
6204         is NULL.
6205         (vt_init_cfa_base): Initialize cfa_base_offset.
6207 2010-11-01  Alan Modra  <amodra@gmail.com>
6209         PR target/46030
6210         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
6211         and savres_strategy.
6212         (stack_info): New file scope var.
6213         (rs6000_init_machine_status): Init stack_info.
6214         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
6215         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
6216         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
6217         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
6218         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
6219         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
6220         (rs6000_savres_strategy): Rewrite.
6221         (rs6000_stack_info): Use "stack_info" in place of local "info".
6222         Return cached stack info when reload_completed unless ENABLE_CHECKING
6223         in which case confirm newly calculated stack info matches old info.
6224         Delay calculation of lr_save_p, set it for out of line gp save/restore
6225         as well as fp.  Call rs6000_savres_strategy from here..
6226         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
6227         (rs6000_output_function_prologue): Use info->savres_strategy to
6228         determine whether fp save/restore externs need to be emitted.
6230 2010-10-31  Jason Merrill  <jason@redhat.com>
6232         * tree.h (EXPR_LOC_OR_HERE): New macro.
6233         * builtins.c (c_strlen): Use it.
6234         * c-decl.c (build_enumerator): Likewise.
6235         * gimplify.c (internal_get_tmp_var): Likewise.
6236         (shortcut_cond_expr): Likewise.
6237         (gimplify_one_sizepos): Likewise.
6239 2010-10-31  Richard Henderson  <rth@redhat.com>
6241         * config/i386/cygming.h (TARGET_SEH): New.
6242         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
6243         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
6244         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
6245         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
6246         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
6247         (ASM_DECLARE_FUNCTION_SIZE): New.
6248         * config/i386/i386-protos.h: Update.
6249         * config/i386/i386.c (ix86_option_override_internal): Enable
6250         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
6251         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
6252         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
6253         (ix86_compute_frame_layout): For SEH, disable
6254         use_fast_prologue_epilogue, move frame pointer to the end of
6255         the frame.  Initialize hfp_save_offset.
6256         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
6257         at end of prologue for SEH.
6258         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
6259         emit blockage at beginning of epilogue.
6260         (ix86_expand_binary_operator): After reload, emit LEA if needed.
6261         (ix86_output_call_insn): New.
6262         * config/i386/i386.h (TARGET_SEH): New.
6263         (struct machine_function): Add member seh.
6264         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
6265         * config/i386/winnt.c (struct seh_frame_state): New.
6266         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
6267         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
6268         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
6269         i386_pe_start_function, i386_pe_end_function): New.
6271         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
6272         as CFA_STORE in rules 12 and 13.
6274 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
6276         PR tree-optimization/46142
6277         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
6278         accommodate third function argument.
6280 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6282         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
6284 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6286         * fold-const.c (build_zero_vector): Use build_vector_from_val.
6287         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
6288         (get_initial_def_for_reduction): Likewise.
6289         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
6290         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
6291         * tree.c (build_one_cst): Likewise.
6292         (build_vector_from_val): Use types_compatible_p for assert.
6294 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6296         * emit-rtl.c (mark_used_flags): New function.
6297         (set_used_flags, reset_used_flags): Call it.
6299 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
6301         PR middle-end/44569
6302         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
6303         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
6305 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
6307         PR target/46195
6308         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
6309         (ix86_compat_aligned_value_p): This.
6310         (ix86_old_function_arg_boundary): Renamed to ...
6311         (ix86_compat_function_arg_boundary): This.  Updated.
6312         (ix86_contains_aligned_value_p): New.
6313         (ix86_function_arg_boundary): Align long double parameters on
6314         stack to 4byte in 32bit.
6316 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
6318         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
6319         * c-parser.c (c_parser_objc_at_property_declaration): Removed
6320         parsing of RID_COPIES and RID_IVAR.  Updated call to
6321         objc_add_property_declaration.
6322         * c-typecheck.c (build_component_ref): Call
6323         objc_maybe_build_component_ref instead of objc_build_setter_call.
6324         Use objc_is_property_ref to improve Objective-C checks.
6325         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
6326         of objc_build_getter_call.
6328 2010-10-29  Paul Koning  <ni1d@arrl.net>
6330         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6331         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
6332         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
6333         (REG_OK_STRICT): Move description.
6335 2010-10-29  Paul Koning  <ni1d@arrl.net>
6337         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
6339 2010-10-29  Paul Koning  <ni1d@arrl.net>
6341         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
6343 2010-10-29  Paul Koning  <ni1d@arrl.net>
6345         PR/41822
6346         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
6348 2010-10-29  Richard Henderson  <rth@redhat.com>
6350         PR rtl-opt/46226
6351         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
6352         for asm goto.
6354 2010-10-29  Paul Koning  <ni1d@arrl.net>
6356         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
6357         register to register move.
6359 2010-10-29  Paul Koning  <ni1d@arrl.net>
6361         * config/pdp11/pdp11.c (print_operand_address): Correct handling
6362         of integer constant addresses, delete vax-only logic.
6364 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
6366         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
6367         a conditional expression.
6369 2010-10-29  Paul Koning  <ni1d@arrl.net>
6371         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
6372         instruction encoding.
6374 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6375             Andrew Pinski  <pinskia@gmail.com>
6377         * tree.h (build_vector_from_val): Declare.
6378         * tree.c (build_vector_from_val): New function.
6379         * c-typeck.c (build_binary_op): Handle vector shifting.
6380         * doc/extend.texi: Description of the vector shifting operation.
6382 2010-10-29  Paul Koning  <pkoning@equallogic.com>
6384         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
6385         pdp11_secondary_memory_needed): Declare.
6386         * config/pdp11/predicates.md (float_operand): New predicate.
6387         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
6388         (cbranchdf4, movdf): Change predicate.
6389         (movsf): Handle FPU register case.
6390         (truncdfsf2, extendsfdf2): Add FPU register case.
6391         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
6392         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
6393         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6394         (pdp11_register_move_cost): Update cost matrix.
6395         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
6396         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
6397         pdp11_secondary_memory_needed): New function.
6398         (pdp11_return_in_memory): Add other float types.
6399         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
6400         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
6401         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
6402         REGISTER_MOVE_COST): Delete.
6403         (BASE_RETURN_VALUE_REG): Add other float types.
6405 2010-10-29  Nick Clifton  <nickc@redhat.com>
6407         * doc/invoke.texi: Document -mam34 and -mtune options.
6408         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
6409         (mn10300_tune_cpu): New variable.
6410         (mn10300_handle_option): Handle -mam34 and -mtune options.
6411         (mn10300_option_override): Convert tune string into tune cpu variable.
6412         (mn10300_legitimate_constant_p): Delete unused local variable.
6413         (is_load_insn): New function.
6414         (is_store_insn): New function.
6415         (mn10300_adjust_schedule_cost): New function.
6416         (TARGET_SCHED_ADJUST_COST): Define.
6417         * config/mn10300/mn10300.opt (mam34): New option.
6418         (mtune): New option.
6419         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
6420         (enum processor_type): Add AM34.
6421         (TARGET_AM34): Define.
6422         * config/mn10300/mn10300.md (attr cpu): Add am34.
6423         Add pipeline description.
6424         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
6425         Remove unneeded alternatives.  Add timing attribute.
6426         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
6427         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
6428         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
6429         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
6430         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
6431         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
6432         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
6433         float_conditional_branch, jump, indirect_jump, tablejump,
6434         call_internal, call_value_internal, zero_extendqisi2_am33,
6435         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
6436         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
6437         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
6438         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
6439         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
6440         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
6441         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
6442         return_internal_regs, store_movm, return, call_next_insn):
6443         Add timing attribute.
6444         (am33_subsi3): Add missing clobber of CC_REG.
6445         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
6446         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
6447         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
6448         extendqisi2): Fix predicates.
6449         (call_internal, call_internal_value): Separate alternatives.
6450         * config/mn10300/t-mn10300: Add AM34 multilib.
6452 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
6454         * config/sh/sh.c (sh_promote_function_mode): Use
6455         default_promote_function_mode if !sh_promote_prototypes.
6457 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
6459         * recog.c (split_all_insns): Remove dead code.
6461 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6463         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6465 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6467         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
6468         (FUNCTION_ARG_ADVANCE): Delete.
6469         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
6470         functions.
6471         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
6472         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6473         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6475 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6477         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
6478         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6479         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
6480         Take a const_tree and a bool.
6481         (mcore_function_arg_advance): New function.
6482         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6484 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6486         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
6487         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6488         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
6489         Take a const_tree and a bool.
6490         (mcore_function_arg_advance): New function.
6491         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6493 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6495         * config/h8300/h8300-protos.h (function_arg): Delete.
6496         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6497         * config/h8300/h8300.c (function_arg): Rename to...
6498         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
6499         a bool.
6500         (h8300_function_arg_advance): New function.
6501         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6503 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6505         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
6506         to...
6507         * config/arc/arc.c (arc_function_arg): ...here and...
6508         (arc_function_arg_advance): ...here.  New functions.
6509         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6511 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6513         * config/crx/crx-protos.h (crx_function_arg): Delete.
6514         (crx_function_arg_advance): Delete.
6515         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6516         * config/crx/crx.c (crx_function_arg): Make static.  Take a
6517         const_tree and a bool.
6518         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
6519         (enough_regs_for_param): Take a const_tree.
6520         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6522 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6524         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
6525         (m68hc11_function_arg_advance): Delete.
6526         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
6527         (FUNCTION_ARG_ADVANCE): Delete.
6528         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
6529         Take a const_tree and a bool.
6530         (m68hc11_function_arg_advance): Likewise.
6531         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6533 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6535         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
6536         (xstormy16_function_arg_advance): Delete.
6537         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
6538         (FUNCTION_ARG_ADVANCE): Delete.
6539         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
6540         Take a const_tree and a bool.
6541         (xstormy16_function_arg_advance): Likewise.  Return void, updating
6542         the CUM parameter instead.
6543         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6545 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6547         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
6548         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6549         (MOXIE_FUNCTION_ARG_SIZE): Move to...
6550         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
6551         (moxie_function_arg): Make static.  Take a const_tree and a bool.
6552         (moxie_function_arg_advance): New function.
6553         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6555 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6557         * config/mn10300/mn10300-protos.h (function_arg): Delete.
6558         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
6559         (FUNCTION_ARG_ADVANCE): Delete.
6560         * config/mn10300/mn10300.c (function_arg): Rename to...
6561         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
6562         and a bool.
6563         (mn10300_function_arg_advance): New function.
6564         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6566 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6568         * config/iq2000/iq2000-protos.h (function_arg): Delete.
6569         (function_arg_advance): Delete.
6570         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6571         * config/iq2000/iq2000.c (function_arg): Rename to...
6572         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
6573         a bool.
6574         (function_arg_advance): Rename to...
6575         (iq2000_function_arg_advance): ...this.  Make static.  Take a
6576         const_tree and a bool.
6577         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
6578         iq2000_function_arg.
6579         (iq2000_pass_by_reference): Call iq2000_function_arg).
6580         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6582 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6584         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
6585         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6586         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
6587         const_tree.
6588         (fr30_function_arg): New function.
6589         (fr30_function_arg_advance): New function.
6590         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6592 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6594         * config/frv/frv-protos.h (frv_function_arg): Delete.
6595         (frv_function_arg_advance): Delete.
6596         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6597         * config/frv/frv.c (frv_function_arg): Rename to...
6598         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
6599         (frv_function_arg, frv_function_incoming_arg): New functions.
6600         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
6601         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6602         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6604 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
6606         PR target/46153
6607         * config/i386/sse.md (sse_movhlps_exp): Use destination
6608         returned from ix86_fixup_binary_operands to expand insn.
6609         (sse_movlhps_exp): Ditto.
6610         (sse_loadhps_exp): Ditto.
6611         (sse_loadlps_exp): Ditto.
6612         (sse2_loadhpd_exp): Ditto.
6613         (sse2_loadlpd_exp): Ditto.
6615 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
6617         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
6618         constants in thumb2.
6620 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
6622         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
6623         arithmetics in masking operations.
6624         (contains_muldiv): Likewise.
6625         (try_combine): Likewise.
6626         (find_split_point): Likewise.
6627         (combine_simplify_rtx): Likewise.
6628         (simplify_if_then_else): Likewise.
6629         (simplify_set): Likewise.
6630         (expand_compound_operation): Likewise.
6631         (expand_field_assignment): Likewise.
6632         (make_extraction): Likewise.
6633         (extract_left_shift): Likewise.
6634         (make_compound_operation): Likewise.
6635         (force_to_mode): Likewise.
6636         (make_field_assignment): Likewise.
6637         (reg_nonzero_bits_for_combine): Likewise.
6638         (simplify_shift_const_1): Likewise.
6639         (simplify_comparison): Likewise.
6641 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
6643         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
6644         (ia64_function_arg_advance): Delete.
6645         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
6646         (FUNCTION_ARG_ADVANCE): Delete.
6647         * config/ia64/ia64.c (ia64_function_arg): Rename to...
6648         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
6649         bool arguments.
6650         (ia64_function_arg, ia64_function_incoming_arg): New functions.
6651         (ia64_function_arg_advance): Make static.  Take a const_tree and
6652         a bool.
6653         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6654         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6656 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
6658         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
6659         (TARGET_GET_RAW_ARG_MODE): New.
6660         * doc/tm.texi: Regenerate.
6661         * target.def (get_raw_result_mode): New.
6662         (get_raw_arg_mode): New.
6663         * targhooks.c (default_get_reg_raw_mode): New.
6664         * targhooks.h (default_get_reg_raw_mode): New.
6665         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
6666         (apply_result_size): Ditto.
6667         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
6668         (TARGET_GET_RAW_RESULT_MODE): Define.
6669         (TARGET_GET_RAW_ARG_MODE): Ditto.
6671 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6673         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
6674         for newer Solaris 10 release.
6675         (sparc_fallback_frame_state): Likewise.
6677 2010-10-27  Jason Merrill  <jason@redhat.com>
6679         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
6680         variables sooner.
6682 2010-10-27  Jie Zhang  <jie@codesourcery.com>
6683             Maxim Kuvyrkov  <maxim@codesourcery.com>
6685         * haifa-sched.c (ISSUE_POINTS): Remove.
6686         (max_issue): Don't issue more than issue_rate instructions.
6688 2010-10-27  Ian Lance Taylor  <iant@google.com>
6690         PR target/46197
6691         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
6692         (split_stack_return): Replace UNSPEC_STACK_CHECK with
6693         UNSPECV_SPLIT_STACK_RETURN.
6695 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
6697         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
6699         * config/i386/i386.c (block_info): New.
6700         (BLOCK_INFO): Likewise.
6701         (call_avx256_state): Likewise.
6702         (check_avx256_stores): Likewise.
6703         (move_or_delete_vzeroupper_2): Likewise.
6704         (move_or_delete_vzeroupper_1): Likewise.
6705         (move_or_delete_vzeroupper): Likewise.
6706         (use_avx256_p): Likewise.
6707         (function_pass_avx256_p): Likewise.
6708         (flag_opts): Add -mvzeroupper.
6709         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
6710         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
6711         is disabled.
6712         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
6713         generate vzeroupper.
6714         (init_cumulative_args): Add an int to indicate caller.  Set
6715         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
6716         based on return type.
6717         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
6718         caller_pass_avx256_p based on argument type.
6719         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
6720         is used, but not returned by caller.
6721         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
6722         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
6723         is used.
6724         (ix86_minimum_alignment): Likewise.
6725         (ix86_expand_special_args_builtin): Set target to
6726         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
6727         (ix86_reorg): Run the vzeroupper optimization if needed.
6729         * config/i386/i386.h (ix86_args): Add caller.
6730         (INIT_CUMULATIVE_ARGS): Updated.
6731         (machine_function): Add use_vzeroupper_p, use_avx256_p,
6732         caller_pass_avx256_p, caller_return_avx256_p,
6733         callee_pass_avx256_p and callee_return_avx256_p.
6735         * config/i386/i386.opt (-mvzeroupper): New.
6737         * config/i386/predicates.md (vzeroupper_operation): Removed.
6739         * config/i386/sse.md (avx_vzeroupper): Removed.
6740         (*avx_vzeroupper): Removed.
6741         (avx_vzeroupper): New.
6743         * doc/invoke.texi: Document -mvzeroupper.
6745 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6747         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
6748         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
6749         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
6751 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6752             Olivier Hainque  <hainque@adacore.com>
6754         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
6755         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
6756         fs->signal_frame instead.
6758 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6760         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
6761         parsing of RID_COPIES and RID_IVAR.
6763 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6765         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
6766         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
6767         Do not use objc_set_property_attr, but use local variables
6768         instead.  Detect repeated usage of setter, getter and ivar
6769         attributes.  Improved error processing when a setter name does not
6770         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
6771         that the token is a keyword.  Updated call to
6772         objc_add_property_declaration.
6774 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6776         * c-parser.c (c_parser_objc_at_property): Renamed to
6777         c_parser_objc_at_property_declaration.  Updated calls to
6778         objc_add_property_variable, now objc_add_property_declaration.
6779         Code rewritten to be much more robust in recovering from syntax
6780         errors.  Added comments.
6781         (c_parser_objc_property_attrlist): Removed.
6782         (c_parser_external_declaration): Updated calls to
6783         c_parser_objc_at_property, now
6784         c_parser_objc_at_property_declaration.
6785         (c_parser_objc_methodprotolist): Same change.
6787 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6789         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
6791 2010-10-26  Jan Hubicka  <jh@suse.cz>
6793         * ipa.c (process_references): Enqueue all referenced nodes;
6794         mark as reachable only non-external nodes.
6795         (cgraph_remove_unreachable_nodes): All referenced nodes should
6796         be enqueued; remove bogues node->needed check.
6798 2010-10-26  Jan Hubicka  <jh@suse.cz>
6800         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
6801         to represent OMP.
6803 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6805         * config/i386/i386.md (split_stack_return): Replace
6806         unspec_volatile with unspec.
6808 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
6810         * doc/install.texi: Fix typo in --with-sysroot description.
6812 2010-10-26  Jan Hubicka  <jh@suse.cz>
6814         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
6815         Use info provided by linker plugin.
6817 2010-10-26  Jason Merrill  <jason@redhat.com>
6819         * varasm.c (constructor_static_from_elts_p): Don't require a
6820         CONSTRUCTOR to have elements to be suitable for static
6821         initialization.  Allow ARRAY_TYPE as well.
6823 2010-10-26  Jan Hubicka  <jh@suse.cz>
6825         PR middle-end/45736
6826         * cgraph.c (cgraph_set_readonly_flag): Rename to...
6827         (cgraph_set_const_flags) ... this one; get also looping argument;
6828         clear constructor/destructor flags.
6829         (cgraph_set_pure_flag): Likewise.
6830         (cgraph_set_looping_const_or_pure_flag): Remove.
6831         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
6832         to optimize away static ctors/dtors; it does not work on inline clones;
6833         external functions can always be rmeoved.
6834         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
6835         inline clones; in LTO external functions always can go.
6836         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
6837         (cgraph_mark_address_taken_node): Assert that we are not taking
6838         address of inline clone.
6839         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
6840         external functions.
6841         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
6842         address taken.
6843         (ipcp_initialize_node_lattices): Only local functions can be
6844         handled without cloning.
6845         * cgraph.h (cgraph_set_readonly_flag,
6846         cgraph_set_looping_const_or_pure_flag): Remove.
6847         (cgraph_set_const_flag): Declare.
6848         (cgraph_set_pure_flag): Update.
6849         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
6850         flags setting code.
6851         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
6852         look at inline clones; fix handling of external definitions.
6853         (cgraph_postorder): Do not look at inline clones in the first pass.
6854         (function_and_variable_visibility): Drop constructors/destructor
6855         flags at pure and const functions.
6856         * tree-profile.c (tree_profiling): Update.
6857         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
6858         address taken; external functions do not account to whole program size.
6859         (cgraph_decide_inlining): Likewise; do not try to inline
6860         functions already inlined.
6862 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6864         * doc/invoke.texi: Improve documentation of
6865         -fstrict-volatile-bitfields.
6867 2010-10-26  Ira Rosen  <irar@il.ibm.com>
6869         PR tree-optimization/46167
6870         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
6871         is basic block for the statement.
6873 2010-10-26  Paul Koning  <ni1d@arrl.net>
6875         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
6876         current definition of struct_real_format.
6878 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6880         PR target/44948
6881         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
6882         (ix86_function_arg_boundary): Always align parameters on stack
6883         in 64bit and align parameters with alignment >= 16byte on stack
6884         in 32bit.  Warn alignment change.
6886 2010-10-26  Ian Lance Taylor  <iant@google.com>
6888         PR middle-end/45687
6889         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
6890         offset.
6892 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
6894         Implement opaque-enum-specifiesr for C++0x
6895         * tree.h (ENUM_IS_OPAQUE): New.
6896         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
6898 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6900         * stor-layout.c (layout_decl): Use the field's type to
6901         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
6902         * config/arm/arm.c (arm_override_options): Default to
6903         -fstrict-volatile-bitfields.
6905 2010-10-25  Paul Koning  <ni1d@arrl.net>
6907         * config/pdp11/pdp11.md: Add define_constants for register
6908         numbers, branch offset limits.
6909         * config/pdp11/pdp11.c: Use named constants instead of numbers.
6910         * config/pdp11.pdp11.h: Ditto.
6912 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6914         * configure.ac: Use $cpu_type instead of $target to define the nop.
6915         * configure: Regenerate.
6917 2010-10-25  Jie Zhang  <jie@codesourcery.com>
6919         * combine.c (try_combine): If insns need to be kept around, check that
6920         they can be copied in the merged instruction.
6922 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6924         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
6925         has been modified.
6926         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
6927         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
6928         it has been modified.
6930 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6932         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
6934 2010-10-24  Paul Koning  <ni1d@arrl.net>
6936         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
6937         * config/pdp11/pdp11.c (output_jump): Ditto.
6939 2010-10-24  Ian Lance Taylor  <iant@google.com>
6941         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
6943 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6945         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
6946         least one insn with a locus corresponding to an edge's goto_locus,
6947         disregard non-fallthru edges to the exit block and merge the blocks
6948         created for the same goto_locus.
6950 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
6952         * gcc.c (n_switches_alloc_debug_check): New.
6953         (set_option_handlers): New.
6954         (process_command): Use set_option_handlers.
6955         (do_self_spec): Pass spec-generated options through option handlers.
6956         (main): Also save and restore n_switches_alloc when swapping
6957         switch arrays.
6959 2010-10-23  Richard Henderson  <rth@redhat.com>
6961         PR target/46144
6962         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6963         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6964         Honor matching operands when splitting to XOR.
6966 2010-10-23  Ian Lance Taylor  <iant@google.com>
6968         * tree-vrp.c (extract_range_from_binary_expr): If
6969         flag_non_call_exceptions don't eliminate division by zero.
6970         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6972 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6974         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6975         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6976         __ORDER_PDP_ENDIAN__.
6977         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6978         (struct DWstruct): Define based on __BYTE_ORDER__.
6979         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6980         (struct INTstruct): Define based on __BYTE_ORDER__.
6981         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6982         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6983         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6984         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6985         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6986         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6987         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6988         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6989         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6990         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6991         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6992         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6993         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6994         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6995         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6996         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6997         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6998         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6999         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7000         * doc/tm.texi: Regenerate.
7001         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
7002         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
7004 2010-10-23  Jie Zhang  <jie@codesourcery.com>
7006         PR rtl-optimization/37360
7007         * config/mips/mips.c (cached_can_issue_more): New local variable.
7008         (mips_sched_reorder_1): New.
7009         (mips_sched_reorder): Use mips_sched_reorder_1.
7010         (mips_sched_reorder2): New.
7011         (mips_variable_issue): Set cached_can_issue_more.
7012         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
7013         instead of mips_sched_reorder.
7015         Revert:
7016         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
7017         PR rtl-optimization/37360
7018         * haifa-sched.c (max_issue): Do not assert that we never issue more
7019         insns than issue_rate.  Add comment.
7021 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
7023         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
7024         location info of the expression.
7026 2010-10-22  DJ Delorie  <dj@redhat.com>
7028         * doc/extend.texi (Named Address Spaces): Document the M32C named
7029         address space.
7031         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
7032         __far address space.
7033         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
7034         "__far" address space for R8C and M16C processor variants.
7035         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
7036         (far_addr_space_p): New.
7037         (encode_pattern_1): Add sign and zero extend support.
7038         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
7039         (m32c_extra_constraint_p2): Add SF constraint.
7040         (m32c_legitimate_address_p): Support __far addresses.
7041         (m32c_addr_space_pointer_mode): New.
7042         (m32c_addr_space_address_mode): New.
7043         (m32c_addr_space_legitimate_address_p): New.
7044         (m32c_addr_space_legitimize_address): New.
7045         (m32c_addr_space_subset_p): New.
7046         (m32c_addr_space_convert): New.
7047         (conversions): Add __far operand patterns.
7048         (m32c_prepare_move): Force constants into registers for __far moves.
7049         (m32c_split_move): __far moves are always split.
7050         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
7051         * config/m32c/mov.md (mov<mode>_far_op1): New.
7052         (mov<mode>_far_op2): New.
7053         (movqi_op): Add __far (SF) support.
7054         (movhi_op): Likewise.
7055         (movsi_splittable): Split A1A0 also.
7057 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
7058             Andrew Pinski  <pinskia@gmail.com>
7060         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
7061         * doc/extend.texi: New paragraph
7063 2010-10-22  Paul Koning  <ni1d@arrl.net>
7065         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
7067 2010-10-22  DJ Delorie  <dj@redhat.com>
7069         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
7071 2010-10-22  Paul Koning  <ni1d@arrl.net>
7073         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
7075 2010-10-22  Richard Henderson  <rth@redhat.com>
7077         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
7078         cases for __builtin_fma and __builtin_fmaf.
7080 2010-10-22  Richard Henderson  <rth@redhat.com>
7082         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
7083         NEG+USE for vectors as well.
7084         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
7085         and splitter.
7087 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
7089         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
7090         SWITCH_CURTAILS_COMPILATION): Remove.
7091         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
7092         * doc/tm.texi: Regenerate.
7093         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
7095 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
7097         * config/i386/bdver1.md: New file.
7098         * config/i386/i386.md (include "bdver1.md"): Invoke the
7099         pipeline description for bdver1.
7100         (x86_sahf_1): Add "bdver1_decode" attribute.
7101         (*cmpfp_i_mixed): Likewise.
7102         (*cmpfp_i_sse): Likewise.
7103         (*cmpfp_i_i387): Likewise.
7104         (*cmpfp_iu_mixed): Likewise.
7105         (*cmpfp_iu_sse): Likewise.
7106         (*cmpfp_iu_387): Likewise.
7107         (*swap<mode>,*swap<mode>_1): Likewise.
7108         (fixuns_trunc<mode>hi2): Likewise.
7109         (fix_trunc<mode>si_sse): Likewise.
7110         (x86_fnstcw_1): Likewise.
7111         (x86_fldcw_1): Likewise.
7112         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
7113         (*floatsi<mode>2_vector_mixed): Likewise.
7114         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
7115         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
7116         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
7117         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
7118         (*floatsi<mode>2_vector_sse): Likewise.
7119         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
7120         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
7121         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
7122         (*mul<mode>3_1): Likewise.
7123         (*mulsi3_1_zext): Likewise.
7124         (*mulhi3_1): Likewise.
7125         (*mulqi3_1): Likewise.
7126         (*<u>mul<mode><dwi>3_1): Likewise.
7127         (*<u>mulqihi3_1): Likewise.
7128         (*<s>muldi3_highpart_1): Likewise.
7129         (*<s>mulsi3_highpart_1): Likewise.
7130         (*<s>mulsi3_highpart_zext): Likewise.
7131         (x86_64_shld): Likewise.
7132         (x86_shld): Likewise.
7133         (x86_64_shrd): Likewise.
7134         (x86_shrd): Likewise.
7135         (sqrtxf2): Likewise.
7136         (sqrt_extend<mode>xf2_i387): Likewise.
7137         (*sqrt<mode>2_sse): Likewise.
7138         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
7139         (sse_cvtsi2ssq): Likewise.
7140         (sse_cvtss2si): Likewise.
7141         (sse_cvtss2si_2): Likewise.
7142         (sse_cvtss2siq): Likewise.
7143         (sse_cvtss2siq_2): Likewise.
7144         (sse_cvttss2si): Likewise.
7145         (sse_cvttss2siq): Likewise.
7146         (sse2_cvtpi2pd): Likewise.
7147         (sse2_cvttpd2pi): Likewise.
7148         (sse2_cvtsi2sd): Likewise.
7149         (sse2_cvtsi2sdq): Likewise.
7150         (sse2_cvtsd2si): Likewise.
7151         (sse2_cvtsd2si_2): Likewise.
7152         (sse2_cvtsd2siq): Likewise.
7153         (sse2_cvtsd2siq_2): Likewise.
7154         (sse2_cvttsd2si): Likewise.
7155         (sse2_cvttsd2siq): Likewise.
7156         (*sse2_cvtpd2dq): Likewise.
7157         (*sse2_cvttpd2dq): Likewise.
7158         (sse2_cvtsd2ss): Likewise.
7159         (sse2_cvtss2sd): Likewise.
7160         (*sse2_cvtpd2ps): Likewise.
7161         (sse2_cvtps2pd): Likewise.
7163 2010-10-22  Richard Guenther  <rguenther@suse.de>
7165         PR middle-end/46137
7166         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
7167         remove the virtual operands if they are not needed.
7169 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
7171         * config/i386/i386.c (processor_costs bdver1_cost): Update
7172         insn costs and architectural parameters for bdver1.
7174 2010-10-22  Richard Guenther  <rguenther@suse.de>
7176         * gimple.h (gimple_register_canonical_type): Declare.
7177         * gimple.c (gimple_canonical_types): New global hashtable.
7178         (struct gimple_type_leader_entry_s): New type.
7179         (gimple_type_leader): New global cache.
7180         (gimple_lookup_type_leader): New function.
7181         (gtc_visit): Query the proper cache.
7182         (gimple_types_compatible_p): Likewise.
7183         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
7184         (gimple_canonical_type_eq): New function.
7185         (gimple_register_canonical_type): Likewise.
7186         (print_gimple_types_stats): Adjust for gimple_canonical_types.
7187         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
7188         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
7189         gimple_types_compatible_p for LTO.
7191 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
7193         PR target/46098
7194         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
7195         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
7196         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
7197         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
7198         (<sse>_movu<ssemodesuffix>): New expander.
7199         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
7200         (avx_movdqu<avxmodesuffix>): New expander.
7201         (*sse2_movdqu): Rename from sse2_movdqu.
7202         (sse2_movdqu): New expander.
7204 2010-10-22  Richard Guenther  <rguenther@suse.de>
7206         PR tree-optimization/45720
7207         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
7208         Handle negative step.
7209         (vect_enhance_data_refs_alignment): Likewise.
7210         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
7211         (vect_create_cond_for_align_checks): Likewise.
7212         (vect_create_cond_for_alias_checks): Likewise.
7214 2010-10-22  Ira Rosen  <irar@il.ibm.com>
7216         PR tree-optimization/46126
7217         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
7218         vectorizable_shift in case of basic block vectorization.
7220 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
7222         * target.h (enum opt_levels, struct default_options): New.
7223         * target.def (handle_ofast): Remove hook.
7224         (target_option.optimization): Change to
7225         target_option.optimization_table.
7226         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
7227         TARGET_OPTION_OPTIMIZATION_TABLE.
7228         (CAN_DEBUG_WITHOUT_FP): Remove.
7229         * doc/tm.texi: Regenerate.
7230         * opts.c (maybe_default_option, maybe_default_options,
7231         default_options_table): New.
7232         (default_options_optimization): Take extra parameters.  Don't
7233         assert that global_options and global_options_set are in use.  Use
7234         maybe_default_options.
7235         (decode_options): Pass extra parameters to
7236         default_options_optimization.
7237         * common.opt (falign-loops): Use value 0 with Var.
7238         (frerun-cse-after-loop, ftree-ter): Remove Init.
7239         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
7240         TARGET_OPTION_OPTIMIZATION): Remove.
7241         * targhooks.c (empty_optimization_table): New.
7242         * targhooks.h (empty_optimization_table): Declare.
7243         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
7244         * config/alpha/alpha.c (alpha_option_optimization_table,
7245         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7246         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
7247         * config/arm/arm.c (arm_option_optimization: Change to
7248         arm_option_optimization_table.
7249         (TARGET_OPTION_OPTIMIZATION): Change to
7250         TARGET_OPTION_OPTIMIZATION_TABLE.
7251         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
7252         * config/avr/avr.c (avr_option_optimization_table,
7253         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7254         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
7255         * config/cris/cris.c (cris_option_optimization): Change to
7256         cris_option_optimization_table.
7257         (TARGET_OPTION_OPTIMIZATION): Change to
7258         TARGET_OPTION_OPTIMIZATION_TABLE.
7259         * config/crx/crx.c (crx_option_optimization): Change to
7260         crx_option_optimization_table.
7261         (TARGET_OPTION_OPTIMIZATION): Change to
7262         TARGET_OPTION_OPTIMIZATION_TABLE.
7263         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
7264         * config/fr30/fr30.c (fr30_option_optimization_table,
7265         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7266         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
7267         * config/frv/frv.c (frv_option_optimization_table,
7268         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7269         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
7270         * config/h8300/h8300.c (h8300_option_optimization): Change to
7271         h8300_option_optimization_table.
7272         (TARGET_OPTION_OPTIMIZATION): Change to
7273         TARGET_OPTION_OPTIMIZATION_TABLE.
7274         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
7275         * config/i386/i386.c (ix86_option_optimization): Change to
7276         ix86_option_optimization_table.
7277         (TARGET_OPTION_OPTIMIZATION): Change to
7278         TARGET_OPTION_OPTIMIZATION_TABLE.
7279         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
7280         as initializer.
7281         * config/ia64/ia64.c (ia64_option_optimization): Change to
7282         ia64_option_optimization_table.
7283         (TARGET_OPTION_OPTIMIZATION): Change to
7284         TARGET_OPTION_OPTIMIZATION_TABLE.
7285         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
7286         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
7287         initializer.
7288         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
7289         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7290         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
7291         * config/lm32/lm32.c (lm32_option_optimization_table,
7292         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7293         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
7294         * config/m32r/m32r.c (m32r_option_optimization): Change to
7295         m32r_option_optimization_table.
7296         (TARGET_OPTION_OPTIMIZATION): Change to
7297         TARGET_OPTION_OPTIMIZATION_TABLE.
7298         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
7299         CAN_DEBUG_WITHOUT_FP): Remove.
7300         * config/mcore/mcore.c (mcore_option_optimization): Change to
7301         mcore_option_optimization_table.
7302         (TARGET_OPTION_OPTIMIZATION): Change to
7303         TARGET_OPTION_OPTIMIZATION_TABLE.
7304         * config/mep/mep.c (mep_option_optimization): Change to
7305         mep_option_optimization_table.
7306         (TARGET_OPTION_OPTIMIZATION): Change to
7307         TARGET_OPTION_OPTIMIZATION_TABLE.
7308         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
7309         * config/microblaze/microblaze.c
7310         (microblaze_option_optimization_table,
7311         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7312         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
7313         * config/mips/mips.c (mips_option_optimization_table,
7314         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7315         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
7316         * config/mmix/mmix.c (mmix_option_optimization): Change to
7317         mmix_option_optimization_table.
7318         (TARGET_OPTION_OPTIMIZATION): Change to
7319         TARGET_OPTION_OPTIMIZATION_TABLE.
7320         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
7321         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
7322         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7323         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
7324         * config/pa/pa.c (pa_option_optimization_table,
7325         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7326         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
7327         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
7328         pdp11_option_optimization_table.
7329         (TARGET_OPTION_OPTIMIZATION): Change to
7330         TARGET_OPTION_OPTIMIZATION_TABLE.
7331         * config/picochip/picochip.c (picochip_option_optimization_table,
7332         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7333         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
7334         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
7335         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7336         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
7337         * config/rx/rx.c (rx_option_optimization_table,
7338         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7339         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
7340         * config/s390/s390.c (s390_option_optimization): Change to
7341         s390_option_optimization_table.
7342         (s390_option_override): Update comment.
7343         (TARGET_OPTION_OPTIMIZATION): Change to
7344         TARGET_OPTION_OPTIMIZATION_TABLE.
7345         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
7346         * config/score/score.c (score_option_optimization_table,
7347         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7348         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
7349         * config/sh/sh.c (sh_option_optimization): Change to
7350         sh_option_optimization_table.
7351         (TARGET_OPTION_OPTIMIZATION): Change to
7352         TARGET_OPTION_OPTIMIZATION_TABLE.
7353         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
7354         (sh_option_override, expand_block_move, multcosts, find_barrier,
7355         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
7356         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
7357         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
7358         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
7359         instead of TARGET_SMALLCODE.
7360         * config/sh/sh.opt (mspace): Make into an alias for -Os.
7361         * config/sparc/sparc.c (sparc_option_optimization_table,
7362         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7363         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
7364         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
7365         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7366         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
7367         * config/v850/v850.c (v850_option_optimization): Change to
7368         v850_option_optimization_table.
7369         (TARGET_OPTION_OPTIMIZATION): Change to
7370         TARGET_OPTION_OPTIMIZATION_TABLE.
7371         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
7372         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
7373         xtensa_option_optimization_table.
7374         (TARGET_OPTION_OPTIMIZATION): Change to
7375         TARGET_OPTION_OPTIMIZATION_TABLE.
7376         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
7378 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
7380         Based on the CFString implementation in FSF apple/trunk branch.
7382         * target.def (objc_construct_string): New Hook.
7383         * doc/tm.texi (objc_construct_string): Document.
7384         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
7385         * config/t-darwin: Amend build rules for darwin.o.
7386         * config/darwin.opt: Add cfstrings flags.
7387         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
7388         (darwin_objc_construct_string): New.
7389         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
7390         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
7391         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
7392         (darwin_fold_builtin): Likewise.
7393         (darwin_build_constant_cfstring): Likewise.
7394         (darwin_objc_construct_string): Likewise.
7395         (darwin_cfstring_p): Likewise.
7396         (darwin_enter_string_into_cfstring_table): Likewise.
7397         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
7398         * config/darwin.c (darwin_running_cxx): New var.
7399         (machopic_select_section): Return cfstring_constant_object_section.
7400         (darwin_override_options): Set darwin_running_cxx.
7401         (add_builtin_field_decl): New.
7402         (darwin_init_cfstring_builtins): New.
7403         (darwin_build_constant_cfstring): New.
7404         (darwin_fold_builtin): New.
7405         (cfstring_hash): New.
7406         (cfstring_eq): New.
7407         (darwin_enter_string_into_cfstring_table): New.
7408         * config/darwin-sections.def (cfstring_constant_object_section): New.
7409         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
7410         (TARGET_OBJC_CONSTRUCT_STRING): Define.
7412 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7414         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
7415         TYPE_STUB_DECL instead of TREE_CHAIN.
7416         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
7417         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
7418         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
7419         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
7420         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
7421         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
7422         Likewise.
7423         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
7425 2010-10-22  Jie Zhang  <jie@codesourcery.com>
7427         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
7428         (copy_blkmode_from_reg): Likewise.
7429         (read_complex_part): Likewise.
7430         (expand_expr_real_1): Calculate packedp and pass it to
7431         extract_bit_field.
7432         * expr.h (extract_bit_field): Update declaration.
7433         * calls.c (store_unaligned_arguments_into_pseudos): Update call
7434         to extract_bit_field.
7435         * expmed.c (extract_fixed_bit_field): Update calls to
7436         extract_fixed_bit_field.
7437         (store_split_bit_field): Likewise.
7438         (extract_bit_field_1): Add new argument packedp.
7439         (extract_bit_field): Add new argument packedp.
7440         (extract_fixed_bit_field): Add new argument packedp and let
7441         packed attribute override volatile.
7442         * stmt.c (expand_return): Update call to extract_bit_field.
7444 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7446         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
7448 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7450         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
7451         of gcc_checking_assert.
7452         * sel-sched.c (code_motion_process_successors): Likewise.
7454 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
7456         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
7457         when stopping because of a different locus on edge or insn.
7458         (try_optimize_cfg): Add comment.
7459         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
7460         block is a forwarder block, propagate locus on the edge.
7461         (cfg_layout_merge_blocks): Likewise.
7463 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
7465         PR target/45946
7466         * config/i386/i386.md (*pushti2): New insn pattern.
7467         (pushti2 splitter): New insn splitter.
7468         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
7469         DWI mode iterator.
7471 2010-10-21  Paul Koning  <ni1d@arrl.net>
7473         * config/pdp11/pdp11-protos.md (arith_operand,
7474         const_immediate_operand, expand_shift_operand,
7475         immediate15_operand): Delete
7476         * config/pdp11/pdp11.c: Ditto.
7477         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
7478         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
7479         EXTRA_CONSTRAINT): Delete.
7480         * config/pdp11/pdp11.md (various): Use standard constraints
7481         instead of removed ones.
7482         * config/pdp11/constraints.md: New file.
7483         * config/pdp11/predicates.md: New file.
7485 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
7487         PR c/45834
7488         * alias.c (true_dependence_1): Remove obsolete check for QImode.
7489         (may_alias_p): Ditto.
7491 2010-10-21  Martin Jambor  <mjambor@suse.cz>
7493         PR tree-optimization/45875
7494         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
7496 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7498         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
7499         variables.
7500         (create_new_def_for): Likewise.
7502 2010-10-21  Nick Clifton  <nickc@redhat.com>
7504         * config/mn10300/mn10300.c: Fold code to 80-character width.
7505         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7506         MEM, CONST_INT and CONST_DOUBLE.
7507         (targetm): Move initialization to end of file.
7508         (print_operand): Rename to mn10300_print_operand.
7509         (print_operand_address): Rename to mn10300_print_operand_address.
7510         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
7511         (expand_prologue): Rename to mn10300_expand_prologue.
7512         (expand_epilogue): Rename to mn10300_expand_epilogue.
7513         (initial_offset): Rename to mn10300_initial_offset.
7514         (function_arg): Rename to mn10300_function_arg.
7515         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
7516         (symbolic_operand): Rename to mn10300_symbolic_operand.
7517         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
7518         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
7519         * config/mn10300/mn10300-protos.h: Update prototypes.
7520         * config/mn10300/mn10300.h: Fold code to 80-character width.
7521         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7522         MEM, CONST_INT and CONST_DOUBLE.
7523         (CPP_SPEC): Move to...
7524         (TARGET_CPU_CPP_BUILTINS): ... here.
7525         * config/mn10300/mn10300.md: Fold code to 80-character width.
7526         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7527         MEM, CONST_INT and CONST_DOUBLE.
7529 2010-10-21  Ira Rosen  <irar@il.ibm.com>
7531         PR tree-optimization/46049
7532         PR tree-optimization/46052
7533         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
7534         (vect_get_slp_defs): Add arguments.
7535         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
7536         operands to vect_get_slp_defs.
7537         (vectorizable_reduction): Fix comment, pass scalar operands to
7538         vect_get_slp_defs.
7539         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
7540         type to determine number of units in the created vector.
7541         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
7542         (vectorizable_conversion): Fix comment.
7543         (vectorizable_shift): New function.
7544         (vectorizable_operation): Move code that handles shifts to
7545         vectorizable_shift.
7546         (vectorizable_type_demotion): Fix comment, pass scalar operands to
7547         vect_get_slp_defs.
7548         (vectorizable_type_promotion, vectorizable_store): Likewise.
7549         (vectorizable_condition): Fix comment.
7550         (vect_analyze_stmt): Call vectorizable_shift.
7551         (vect_transform_stmt): Likewise.
7552         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
7553         Use it as the operand to create vectors for, except reduction
7554         initial definition and store.  Use operands type.
7555         (vect_get_slp_defs): Add new arguments.  Pass them to
7556          vect_get_constant_vectors.
7558 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7560         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
7561         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
7562         * cfghooks.c (fixup_reorder_chain): Likewise.
7563         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
7564         * cgraph.c (cgraph_add_thunk): Likewise.
7565         (cgraph_create_edge_1): Likewise.
7566         (cgraph_create_virtual_clone): Likewise.
7567         * ddg.c (add_cross_iteration_register_deps): Likewise.
7568         * dwarf2out.c (modified_type_die): Likewise.
7569         * emit-rtl.c (set_mem_alias_set): Likewise.
7570         * ggc-zone.c (zone_allocate_marks): Likewise.
7571         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
7572         * gimple.c (iterative_hash_gimple_type): Likewise.
7573         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
7574         (create_single_exit_edge): Likewise.
7575         * haifa-sched.c (choose_ready): Likewise.
7576         * lto-streamer-in.c (input_gimple_stmt): Likewise.
7577         * passes.c (execute_todo): Likewise.
7578         * sched-ebb.c (begin_schedule_ready): Likewise.
7579         * sel-sched.c (code_motion_process_successors): Likewise.
7580         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
7581         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
7582         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
7583         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
7584         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
7585         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
7586         (ssa_conflicts_add): Likewise.
7587         * tree-ssa-copy.c (replace_exp): Likewise.
7588         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
7589         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
7590         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
7591         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
7592         (compute_antic): Likewise.
7593         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
7594         (add_dependence): Likewise.
7595         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
7596         * tree-vrp.c (supports_overflow_infinity): Likewise.
7597         (make_overflow_infinity, negative_overflow_infinity): Likewise.
7598         (avoid_overflow_infinity, register_new_assert_for): Likewise.
7599         (process_assert_insertions_for): Likewise.
7600         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
7601         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
7602         (intersect_loc_chains, variable_merge_over_cur): Likewise.
7604 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7606         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
7607         * reload1.c (has_nonexceptional_receiver): Likewise.
7608         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
7609         (create_new_def_for): Likewise.
7610         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
7611         (merge_phi_nodes): Likewise.
7612         (has_abnormal_incoming_edge_p): Delete.
7614 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7616         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
7618 2010-10-21  Richard Guenther  <rguenther@suse.de>
7619             Michael Matz  <matz@suse.de>
7621         PR tree-optimization/45764
7622         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7623         Adjust initial misalignment for negative DR_STEP.
7624         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
7625         do not have the same alignment over the whole iteration domain.
7627 2010-10-21  Richard Guenther  <rguenther@suse.de>
7629         PR tree-optimization/46111
7630         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
7632 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7634         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
7636 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7638         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
7639         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
7641 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7643         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
7644         signal_frame.
7645         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
7647 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7649         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
7650         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
7652 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
7654         * basic-block.h (find_fallthru_edge): Define.
7655         * cfgcleanup.c (merge_blocks_move): Use it.
7656         (try_crossjump_bb): Likewise.
7657         * cfglayout.c (fixup_reorder_chains): Likewise.
7658         (fixup_fallthru_exit_predecessor): Likewise.
7659         * cfgrtl.c (rtl_split_edge): Likewise.
7660         (rtl_verify_flow_info): Likewise.
7661         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7662         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
7663         * ifcvt.c (block_fallthru): Likewise.
7664         * reload1.c (fixup_abnormal_edges): Likewise.
7665         * sched-ebb.c (being_schedule_ready): Likewise.
7666         (schedule_ebb): Likwise.
7667         * sched-rgn.c (find_single_block_region): Likewise.
7668         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
7669         * tree-complex.c (expand_complex_move): Likewise.
7670         * sched-int.h (find_fallthru_edge): Rename to...
7671         (find_fallthru_edge_from): ...this.
7672         * haifa-sched.c (find_fallthru_edge): Rename to...
7673         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
7674         (init_before_recovery): Call find_fallthru_edge_from.
7675         * sel-sched-ir.c (merge_fences): Likewise.
7676         * sel-sched.c (in_fallthru_bb_p): Likewise.
7677         (move_cond_jump): Likewise.
7679 2010-10-20  Paul Koning  <ni1d@arrl.net>
7681         * config/pdp11/pdp11.md (various): Fix conditions on a number of
7682         insn to check for target 11/40 or higher.
7684 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7686         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
7687         bool instead of a tree.
7688         (c_parser_objc_method_decl): Added bool argument.  Updated call to
7689         objc_build_method_signature.
7690         (c_parser_objc_method_definition): Do not call
7691         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
7692         c_parser_objc_method_decl and objc_start_method_definition.
7693         (c_parser_objc_methodproto): Do not call objc_set_method_type.
7694         Updated calls to c_parser_objc_method_type,
7695         c_parser_objc_method_decl and objc_add_method_declaration.
7697 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
7699         PR tree-optimization/45919
7700         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
7701         array members.
7703         PR tree-optimization/46066
7704         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
7705         instead of gsi_last_bb.
7707 2010-10-20  DJ Delorie  <dj@redhat.com>
7709         * config/m32c/m32c.c (m32c_option_override): Always disable
7710         function-cse in 16-bit mode.  Indirect calls are always worse than
7711         direct calls as there is no 16-bit indirect call opcode.
7712         (m32c_override_options_after_change): New, likewise.
7714 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
7716         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
7717         emitting the conditional move in the inner mode of the SUBREG.
7719 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
7721         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
7722         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
7723         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7724         (ia64_preferred_reload_class): Make static.  Change rclass argument
7725         and result types from enum reg_class to reg_class_t.
7727 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
7729         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
7730         call for single operand expression.
7732 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
7734         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
7735         if there is a call statement to pure or const function in the block.
7737 2010-10-20  Paul Koning  <pkoning@equallogic.com>
7739         Fix several build errors for pdp11 target.
7740         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
7741         (cbranchdf4): Conditional on TARGET_FPU.
7742         (movdf): Ditto; correct alternatives check.
7743         (movmemhi): Fix predicate and constraint.
7744         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
7746 2010-10-20  Richard Guenther  <rguenther@suse.de>
7748         PR lto/45667
7749         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
7750         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
7751         (verify_gimple_assign_single): Disable ADDR_EXPR type check
7752         when in LTO.
7754 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
7756         PR fortran/42169
7757         * ira-emit.c (store_can_be_removed_p): Return false instead of
7758         gcc_unreachable.
7760 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
7762         * fold-const.c (fold_binary_loc): New transformation.
7764 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
7766         PR target/46085
7767         * config/i386/sse.md (reduc_splus_v8sf): Updated.
7768         (reduc_splus_v4df): Likewise.
7770 2010-10-20  Richard Guenther  <rguenther@suse.de>
7772         PR tree-optimization/45860
7773         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
7774         conditional store replacement for non-register type stores.
7776 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
7778         * stor-layout.c (skip_simple_constant_arithmetic): New function.
7779         (self_referential_size): Use it instead of skip_simple_arithmetic.
7781 2010-10-20  Olivier Hainque  <hainque@adacore.com>
7783         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
7784         If the current function calls eh_return, claim live all registers
7785         that we need to check for liveness otherwise.
7787 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7789         * c-decl.c (c_write_global_declarations): Call
7790         objc_write_global_declarations when compiling Objective-C.
7791         * c-lang.c (finish_file): Removed.
7793 2010-10-19  DJ Delorie  <dj@redhat.com>
7795         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
7796         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
7797         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
7798         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
7799         * doc/tm.texi: Regenerate.
7800         * targhooks.h (default_label_align_after_barrier_max_skip,
7801         default_loop_align_max_skip, default_label_align_max_skip,
7802         default_jump_align_max_skip): Declare.
7803         * target.def (label_align_after_barrier_max_skip): New.
7804         (loop_align_max_skip): New.
7805         (label_align_max_skip): New.
7806         (jump_align_max_skip): New.
7807         * system.h (poison): Add those macros to the list.
7808         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
7809         (LOOP_ALIGN_MAX_SKIP): Remove.
7810         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
7811         (JUMP_ALIGN_MAX_SKIP): Remove.
7812         (default_label_align_after_barrier_max_skip): New.
7813         (default_loop_align_max_skip): New.
7814         (default_label_align_max_skip): New.
7815         (default_jump_align_max_skip): New.
7816         (compute_alignments): Use the new hooks.
7817         (shorten_branches): Likewise.
7819 2010-10-19  Richard Henderson  <rth@redhat.com>
7821         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
7822         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
7823         (fma4i_fmadd_<mode>): New.
7824         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
7825         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
7826         standard fma patterns.
7827         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
7828         enable for FMA.
7829         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7830         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7831         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
7833 2010-10-19  Paul Koning  <pkoning@equallogic.com>
7835         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
7836         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
7838 2010-10-19  Richard Henderson  <rth@redhat.com>
7840         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
7841         (fmadf4, *fmsdf4, *nfmadf4): New.
7842         (fmaxf4, *fmsxf4, *nfmaxf4): New.
7844 2010-10-19  Michael Eager  <eager@eagercon.com>
7846         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
7847         Use sjlj unwind info for exceptions.
7849 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
7851         PR fortran/43414
7852         * dwarf2out.c (add_calling_convention_attribute): Flag main
7853         Fortran subroutine with DW_AT_main_subprogram.
7855 2010-10-19  Nick Clifton  <nickc@redhat.com>
7857         * config/rx/rx.c (rx_function_value): Small integer types are
7858         promoted to SImode.
7859         (rx_promote_function_mode): New function.
7860         (TARGET_PROMOTE_FUNCTION_MODE): Define.
7862 2010-10-19  Nick Clifton  <nickc@redhat.com>
7864         * config/mep/mep.c (mep_print_operand): Use
7865         targetm.strip_name_encoding.
7866         (mep_output_aligned_common): Likewise.
7868 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
7870         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
7872 2010-10-18  Richard Henderson  <rth@redhat.com>
7874         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
7875         (fma (neg a) (neg b) c) and (fma a (neg b) c).
7877 2010-10-18  Richard Henderson  <rth@redhat.com>
7879         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
7880         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
7881         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
7882         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
7883         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
7884         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
7885         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
7886         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
7887         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
7888         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
7889         (bdesc_multi_arg): Remove the corresponding builtins.
7890         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
7891         (UNSPEC_FMA4_FMSUBADD): Remove.
7892         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
7893         * config/i386/sse.md (FMA4MODEF4): Remove.
7894         (FMAMODE): Add.
7895         (fma<mode>4): New expander.
7896         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
7897         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
7898         (*fma4i_fmsub_<mode>): Similarly.
7899         (*fma4i_fnmadd_<mode>): Similarly.
7900         (*fma4i_fnmsub_<mode>): Similarly.
7901         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
7902         with the first operand.
7903         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
7904         of explicit arithmetic.  Macroize with AVXMODEF2P.
7905         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
7906         (xop_frcz<mode>2): Macroize with FMAMODE.
7907         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
7908         the first operand.
7909         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
7910         extra negations.
7911         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
7912         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
7913         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
7914         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
7915         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
7916         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
7917         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
7918         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
7920 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
7922         PR rtl-optimization/45966
7923         * combine.c (try_combine): If added_sets_2, deal with the case
7924         where i0 feeds i1 and i1 feeds i2.
7926 2010-10-18  Jan Hubicka  <jh@suse.cz>
7928         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
7929         preserve flags before trying to guess on visibility.
7930         (varpool_externally_visible_p): New function.
7931         (function_and_variable_visibility): Use it.
7933 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7935         Implemented parsing @synthesize and @dynamic for Objective-C.
7936         * c-parser.c (c_parser_external_declaration): Recognize
7937         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
7938         (c_parser_objc_at_synthesize_declaration): New.
7939         (c_parser_objc_at_dynamic_declaration): New.
7941 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7943         * c-parser.c (c_parser_objc_class_declaration): After finding an
7944         error, parse the whole declaration then reset parser->error.
7946 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7948         PR target/46041
7949         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
7950         * builtins.c (mode_has_fma): Ditto.
7952 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
7954         PR target/36898
7955         PR middle-end/43760
7956         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
7958 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
7960         * config/i386/i386.c (ix86_option_override_internal): Define and
7961         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7962         default.
7963         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7964         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7966 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7968         Merge from 'apple/trunk' branch on FSF servers.
7969         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7970         following Objective-C change:
7972         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7974         Radar 4301047
7975         * c-parse.in (objc_quals): Build objc qualifier list same way
7976         as gcc-3.3
7978 2010-10-18  Jan Hubicka  <jh@suse.cz>
7980         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7981         function_and_variable_visibility): Revert accidental commit.
7983 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7985         Merge from 'apple/trunk' branch on FSF servers.
7986         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7987         the following Objective-C change:
7989         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7991         Radar 4204796
7992         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7993         'volatilized' type used in a typeof operator.
7995 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7997         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7998         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7999         rewrite modelled on gimple_purge_dead_eh_edges.
8000         (gimple_purge_all_dead_abnormal_call_edges): New function.
8001         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
8002         directly instead of through gimple_purge_dead_abnormal_call_edges.
8003         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
8004         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
8005         removed AB side-effects from one of its statements.
8006         (init_pre): Initialize need_ab_cleanup.
8007         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
8008         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
8010 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
8012         PR c/46015
8013         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
8014         on computed goto argument.
8016 2010-10-18  Richard Guenther  <rguenther@suse.de>
8018         PR tree-optimization/45967
8019         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
8020         (could_have_pointers): Likewise.
8021         (handle_rhs_call, handle_const_call, handle_pure_call,
8022         find_func_aliases, intra_create_variable_infos): Remove calls to them.
8023         (struct fieldoff): Add must_have_pointers field.
8024         (type_must_have_pointers): New function.
8025         (field_must_have_pointers): Likewise.
8026         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
8027         Adjust field merging.
8028         (create_function_info_for): May-have-pointers of varinfo is
8029         almost always true.
8030         (create_variable_info_for_1): Likewise.
8032 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
8034         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
8035         of operands to vec_concat.
8037 2010-10-18  Richard Guenther  <rguenther@suse.de>
8039         PR lto/44950
8040         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
8041         also clear references to entries of it.
8043 2010-10-18  Andi Kleen  <ak@linux.intel.com>
8045         PR other/43448
8046         * gccbug.in: Remove.
8047         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
8048         (doc, distclean, install-common): Remove reference to gccbug.
8049         * configure: Regenerate.
8050         * configure.ac (all_outputs): Remove gccbug.
8051         * doc/configfiles.texi: Remove references to gccbug.
8052         * doc/sourcebuild.texi: Dito.
8054 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
8056         PR middle-end/46019
8057         * fold-const.c (fold_binary_loc): If integer_pow2p has
8058         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
8060 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
8061             Jeremie Salvucci  <jeremie.salvucci@free.fr>
8063         * gengtype.c (verbosity_level): Add variable.
8064         (set_gc_used): Count variables for verbosity.
8065         (close_output_files): Backing up files, counting written ones
8066         verbosily.
8067         (write_types): Count emitted functions for verbosity. Added
8068         debug messages.
8069         (write_enum_defn): Count structures for verbosity. Added debug
8070         messages.
8071         (gengtype_long_options): Add "verbose" & "backupdir".
8072         (print_usage): Ditto.
8073         (main): Verbose display of parsed files.
8075         * gengtype.h (verbosity_level): Add declaration.
8077 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
8079         * gengtype.c (parse_program_options): Add allocation of
8080         plugin_files, and correct test on nb_plugin_files.
8082 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8084         Merge from 'apple/trunk' branch on FSF servers.
8086         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
8088         Radar 4133425
8089         * c-decl.c (undeclared_variable): Issue diagnostic on
8090         private 'ivar' access.
8092 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
8094         PR target/46051
8095         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
8096         generated sequence to match *avx_vperm2f128<mode>_nozero.
8097         (vec_interleave_lowv4df): Ditto.
8098         (vec_interleave_highv8sf): Ditto.
8099         (vec_interleave_lowv8sf): Ditto.
8101 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
8103         * libgcov.c (create_file_directory): Enable it for win32 case.
8104         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
8105         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
8106         (GCOV_PREFIX_SKIP): Likewise.
8108 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8110         * doc/objc.texi (GNU Objective-C runtime API): New section.
8111         (Modern GNU Objective-C runtime API): New section.
8112         (Traditional GNU Objective-C runtime API): New section.
8113         (Executing code before main): Mention that this section is
8114         specific to the GNU Objective-C runtime.
8115         (Garbage Collection): Same.
8117 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
8119         * c-parser.c (c_parser_for_statement): Move initialization of
8120         cond and incr before if.
8122 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
8124         * target.def (preferred_output_reload_class): New hook.
8125         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
8126         * doc/tm.texi: Regenerate.
8127         * targhooks.c (default_preferred_output_reload_class): New function.
8128         * targhooks.h (default_preferred_output_reload_class): Declare.
8129         * reload.c (find_dummy_reload): Change rclass argument type from
8130         enum reg_class to reg_class_t. Change this_alternative array type
8131         from enum reg_class to reg_class_t.
8132         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
8133         (push_reload): Change preferred_class variable type to reg_class_t.
8134         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
8135         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
8136         argument type from enum reg_class to reg_class_t. Use
8137         HARD_REGISTER_NUM_P predicate.
8138         * recog.h (reg_fits_class_p): Update prototype.
8140         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
8141         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
8142         Remove.
8143         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
8144         static. Change regclass argument and result types from enum reg_class
8145         to reg_class_t.
8146         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
8148 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
8150         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
8151         visibility enum, and handle @package.
8153 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8155         * doc/objc.texi (What you can and what you cannot do in +load):
8156         Document that sending messages to constant string objects in +load
8157         is not guaranteed to work.
8159 2010-10-16  Jan Hubicka  <jh@suse.cz>
8161         PR middle-end/44206
8162         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
8163         existence of refrences before removing the function.
8165 2010-10-16  Jan Hubicka  <jh@suse.cz>
8167         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
8168         only_called_at_startup and only_called_at_exit.
8169         (cgraph_propagate_frequency): Compute only_called_at_startup and
8170         only_called_at_exit.
8171         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
8172         only_called_at_exit.
8173         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
8174         flags.
8175         * predict.c (compute_function_frequency): Initialize the new flags.
8177 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
8179         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
8180         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
8181         on the bounds of its domain.
8182         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
8184 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
8186         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
8187         * config/avr/avr-protos.h (preferred_reload_class): Remove.
8188         * config/avr/avr.c (preferred_reload_class): Remove.
8189         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
8190         * config/pa/pa.c (emit_move_sequence): Update comment
8191         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
8192         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
8193         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
8194         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
8195         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
8196         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
8197         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
8198         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
8199         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
8200         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
8201         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
8202         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
8203         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
8205 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
8207         * opts.c (set_fast_math_flags,
8208         set_unsafe_math_optimizations_flags): Make static.
8209         * toplev.h (set_fast_math_flags,
8210         set_unsafe_math_optimizations_flags): Remove prototypes.
8212 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
8214         * config/arm/arm.c (arm_option_optimization): Set
8215         flag_section_anchors to 1 not 2.
8216         * config/i386/i386.c (ix86_option_override_internal): Check
8217         global_options_set.x_flag_zee and
8218         global_options_set.x_flag_omit_frame_pointer.
8219         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
8220         flag_zee to 2.
8221         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
8222         global_options_set.x_flag_omit_frame_pointer.
8223         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
8224         opts->x_flag_section_anchors to 1 not 2.
8225         * config/sh/sh.c (sh_option_optimization): Don't set
8226         flag_schedule_insns to 2.
8227         (sh_option_override): Check
8228         global_options_set.x_flag_schedule_insns.
8229         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
8231 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
8233         * configure.ac: Make sure inhibit_libc remains false for mingw targets
8234         as cross.
8235         * configure: Regenerated.
8237 2010-10-15  Xinliang David Li  <davidxl@google.com>
8239         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
8240         function.
8241         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
8242         into a recursive function.
8244 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
8246         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
8247         (*movdfcc_1): ditto.
8249 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8251         * target.def (target_option.init_struct): New hook.
8252         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
8253         * doc/tm.texi: Regenerate.
8254         * hooks.c (hook_void_gcc_optionsp): New.
8255         * hooks.h (hook_void_gcc_optionsp): Declare.
8256         * langhooks-def.h (lhd_init_options_struct): Remove.
8257         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
8258         * langhooks.c (lhd_init_options_struct): Remove.
8259         * opts.c (init_options_struct): Also call
8260         targetm.target_option.init_struct.
8261         * config/i386/i386.c (ix86_option_init_struct,
8262         TARGET_OPTION_INIT_STRUCT): New.
8263         (ix86_option_optimization): Move some settings to
8264         ix86_option_init_struct.
8265         * config/pdp11/pdp11.c (pdp11_option_init_struct,
8266         TARGET_OPTION_INIT_STRUCT): New.
8267         (pdp11_option_optimization): Move some settings to
8268         pdp11_option_init_struct.
8269         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
8270         rs6000_option_init_struct.  Use options structure pointer.
8271         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
8272         * config/s390/s390.c (s390_option_init_struct,
8273         TARGET_OPTION_INIT_STRUCT): New.
8274         (s390_option_optimization): Don't set
8275         flag_asynchronous_unwind_tables here.
8276         * config/sh/sh.c (sh_option_init_struct,
8277         TARGET_OPTION_INIT_STRUCT): New.
8278         (sh_option_optimization): Don't set flag_finite_math_only here.
8279         * config/spu/spu.c (spu_option_optimization): Replace by
8280         spu_option_optimization.  Use options structure pointer.
8281         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
8283 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8285         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
8287         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
8288         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
8289         (Standard names): Document fma.
8291         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
8292         __FP_FAST_FMAF, __FP_FAST_FMAL.
8294         * builitns.c (expand_builtin_mathfn_ternary): New function for
8295         expanding ternary math functions, like fma.
8296         (expand_builtin): Call it for the fma builtins.
8298         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
8299         ops at present.
8301         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
8302         vectorizable functions to support vectorizing fma.
8304         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
8305         Handle fma builtins.
8307         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
8308         (UNSPEC_VSX_MSUB): Ditto.
8309         (UNSPEC_VSX_NMADD): Ditto.
8310         (UNSPEC_VSX_NMSUB): Ditto.
8311         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
8312         of UNSPEC. Renumber combiner patterns.
8313         (vsx_fmsub<mode>4*): Ditto.
8314         (vsx_fnmadd<mode>4*): Ditto.
8315         (vsx_fnmsub<mode>4*): Ditto.
8317         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
8318         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
8319         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
8320         (altivec_vmaddfp_1): Ditto.
8321         (altivec_vmaddfp_2): Ditto.
8322         (atlivec_mulv4sf3): Ditto.
8323         (altivec_vnmsubfp): Ditto.
8324         (altivec_vnmsubfp_1): Ditto.
8325         (altivec_vnmsubfp_2): Ditto.
8326         (altivec_vnmsubfp_3): Delete.
8328         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
8329         (fmasf4_fpr): Ditto.
8330         (fmssf4_fpr): Ditto.
8331         (fnmasf4_fpr): Ditto.
8332         (fnmssf4_fpr): Ditto.
8333         (fmadf4): Ditto.
8334         (fmadf4_fpr): Ditto.
8335         (fmsdf4_fpr): Ditto.
8336         (fnmadf4_fpr): Ditto.
8337         (fnmsdf4_fpr): Ditto.
8339         * optabs.h (OTI_fma): Add fma optab.
8340         (fma_optab): Ditto.
8342         * genopinit.c (optabs): Set fma optab.
8344         * rtl.def (FMA): Add FMA rtl.
8346         * tree.h (mode_has_fma): New function to return if MODE supports a
8347         fast multiply and add instruction.
8348         * builtins.c (mode_has_fma): Ditto.
8350 2010-10-15  Jan Hubicka  <jh@suse.cz>
8352         * lto-streamer-out.c (write_symbol): Use pointer set of seen
8353         objects instead of bitmap.
8354         (produce_symtab): Likewise; output defined symbols first.
8356 2010-10-15  Jie Zhang  <jie@codesourcery.com>
8358         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
8359         Option Summary and Index.
8361 2010-10-15  Richard Guenther  <rguenther@suse.de>
8363         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
8364         for automatic variables again.
8366 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8368         * doc/extend.texi (Variable Length): Don't refer to VLAs not
8369         conforming to C99.
8371 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8373         * config/rx/rx.c (rx_option_optimization): Change to
8374         rx_override_options_after_change.  Don't change
8375         flag_lto_compression_level.  Don't check for changes to whether
8376         FPU instructions can be used.  Check and set only
8377         flag_finite_math_only, not other fast-math flags.
8378         (rx_option_override): Call rx_override_options_after_change.
8379         (TARGET_OPTION_OPTIMIZATION): Remove.
8380         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
8382 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8384         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
8385         disable section anchors for lang_hooks.name[4] != 'O'.
8387 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8389         * config/frv/frv.c (frv_option_optimization,
8390         TARGET_OPTION_OPTIMIZATION): Remove.
8391         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
8393 2010-10-15  Michael Matz  <matz@suse.de>
8395         * cgraphunit.c (clone_of_p): Define unconditionally.
8397 2010-10-15  Richard Guenther  <rguenther@suse.de>
8399         PR lto/45957
8400         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
8402 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
8404         * ifcvt.c (find_active_insn_before): New function.
8405         (find_active_insn_after): New function.
8406         (cond_exec_process_if_block): Use new functions to replace
8407         prev_active_insn() and next_active_insn().
8409 2010-10-14  Yao Qi  <yao@codesourcery.com>
8411         PR target/45447
8412         * config/arm/arm.c (arm_build_builtin_va_list): Assign
8413         va_list_name to TYPE_STUB_DECL (va_list_type).
8415 2010-10-14  Jan Hubicka  <jh@suse.cz>
8417         PR middle-end/45621
8418         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
8419         redirected to clone, be happy.
8420         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
8421         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
8422         former_clone_of unconditionally.
8424 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
8426         Merge from FSF apple 'trunk' branch.
8427         2006 Fariborz Jahanian  <fjahanian@apple.com>
8429         Radars 4436866, 4505126, 4506903, 4517826
8430         * c-parser.c (c_parser, objc_property_attr_context) New flag.
8431         (c_lex_one_token): Handle property attributes.
8432         (c_parser_external_declaration): Handle @property.
8433         (c_parser_declaration_or_fndef): Warn on invalid attributes before
8434         @alias, @class, @end and @property objc keywords.
8435         (c_parser_objc_methodprotolist): Handle @property.
8436         (c_parser_objc_property_attrlist): New.
8437         (c_parser_objc_at_property): New.
8438         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
8439         (build_modify_expr): Likewise.
8441 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
8443         PR tree-optimization/46008
8444         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
8446 2010-10-14  Richard Guenther  <rguenther@suse.de>
8448         PR tree-optimization/44913
8449         * tree-data-ref.c (disjoint_objects_p): Remove.
8450         (dr_may_alias_p): Simplify.  Only hand the base object to
8451         the alias-oracle.
8452         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
8453         some more trees, bail out instead of asserting.
8454         (ptr_derefs_may_alias_p): Likewise.  Export.
8455         (refs_may_alias_p_1): Handle STRING_CSTs.
8456         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
8458 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
8460         PR c/45969
8461         * c-typeck.c (build_binary_op): Don't try to compute a semantic
8462         type with excess precision for boolean operations.
8464 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
8465             Basile Starynkevitch  <basile@starynkevitch.net>
8467         * gengtype.c:  Include getopt.h and version.h.
8469         (lang_bitmap, struct outf, outf_p)
8470         (get_output_file_with_visibility, oprintf): Definitions moved to
8471         gengtype.h
8472         (output_files, header_file, srcdir, srcdir_len, this_file)
8473         (do_dump): No more static variables.
8474         (do_debug): New.
8475         (dbgprint_count_type_at): Added new function.
8476         (gengtype_long_options): New.
8477         (print_usage, print_version, parse_program_options): New.
8478         (main): Call parse_program_options, and removed old option
8479         handling code.  Added some debug output.
8481         * gengtype.h:  Updated copyright year.
8482         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
8483         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
8484         Moved from gengtype.c to here.
8485         (do_debug, read_state_filename, write_state_filename): New variables.
8486         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
8488         * Makefile.in:
8489         (REVISION): Always defined.
8490         (version.o): Removed ifdef REVISION_c.
8491         (s-gtype): Pass arguments to build/gengtype program.
8492         (build/version.o): Added building rule.
8493         (build/gengtype$(build_exeext)): Added build/version.o.
8495 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
8497         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
8498         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
8499         __strong macros.
8501 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
8503         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
8504         may_trap_or_fault_p instead of may_trap_p predicate.
8505         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
8506         (substitute_placeholder_in_expr): Likewise.
8507         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
8508         flag on MEM_REF nodes.
8509         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
8510         flags on INDIRECT_REF nodes.
8512 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
8514         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
8515         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
8516         (arm*-*-eabi*) <tm_file>: Likewise.
8517         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
8518         (frv-*-*linux*) <tm_file>: Likewise.
8519         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
8520         and associated helper macros.
8521         * config/frv/frv-abi.h: Delete.
8523 2010-10-14  Richard Guenther  <rguenther@suse.de>
8525         PR lto/44561
8526         * tree.def (NULLPTR_TYPE): New tree code.
8527         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
8528         * dwarf2out.c (is_base_type): Likewise.
8529         (gen_type_die_with_usage): Likewise.
8530         * sdbout.c (plain_type_1): Likewise.
8531         * tree.c (build_int_cst_wide): Likewise.
8532         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
8534 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
8536         * params.c (params_finished): New.
8537         (add_params): Assert !params_finished.
8538         (finish_params): New.
8539         (set_param_value_internal): Take params and params_set
8540         parameters.  Assert params_finished.
8541         (set_param_value, maybe_set_param_value): Take params and
8542         params_set parameters.  Update calls to set_param_value_internal.
8543         (set_default_param_value): Assert !params_finished.  Don't use
8544         set_param_value_internal.
8545         (default_param_value, init_param_values): New.
8546         * params.h (struct param_info): Change value to default_value.
8547         Remove set.
8548         (set_param_value, maybe_set_param_value): Add params and
8549         params_set parameters.
8550         (PARAM_VALUE): Get parameters from global_options.
8551         (PARAM_SET_P): Remove.
8552         (finish_params, default_param_value, init_param_values): New.
8553         * common.opt (param_values): New Variable.
8554         * config/arm/arm.c (arm_option_override): Pass extra arguments to
8555         maybe_set_param_value.
8556         * config/i386/i386.c (ix86_option_override_internal): Pass extra
8557         arguments to maybe_set_param_value.
8558         * config/picochip/picochip.c (picochip_option_override): Pass
8559         extra arguments to maybe_set_param_value.
8560         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
8561         extra arguments to maybe_set_param_value.
8562         * config/s390/s390.c (s390_option_override): Use
8563         maybe_set_param_value instead of set_param_value.  Pass extra
8564         arguments to maybe_set_param_value.
8565         * config/sparc/sparc.c (sparc_option_override): Pass extra
8566         arguments to maybe_set_param_value.
8567         * config/spu/spu.c (spu_option_override): Pass extra arguments to
8568         maybe_set_param_value.
8569         * opts.c (handle_param): Take opts and opts_set parameters.
8570         Update call to set_param_value.
8571         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
8572         initial_loop_invariant_max_bbs_in_loop): Remove.
8573         (init_options_once): Don't set them.
8574         (init_options_struct): Initialize parameters structures.
8575         (default_options_optimization): Use default_param_value when
8576         restoring defaults.  Update calls to maybe_set_param_value.
8577         (finish_options): Update calls to maybe_set_param_value.
8578         (common_handle_option): Update calls to handle_param and
8579         set_param_value.
8580         * toplev.c (DEFPARAM): Update definition for changes to param_info.
8581         (general_init): Call finish_params.
8583 2010-10-14  Nick Clifton  <nickc@redhat.com>
8585         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
8586         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
8587         (FIRST_PSEUDO_REGISTER): Increase by one.
8588         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
8589         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
8590         (MODES_TIEABLE): Call mn10300_modes_tieable.
8591         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
8592         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
8593         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
8594         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
8595         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
8596         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
8597         (mn10300_cc_status_mdep): Delete.
8598         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
8599         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
8600         the combine-stack-adjust pass.
8601         (print_operand): Use the mode of the comparison operation to
8602         select the comparison suffix.
8603         (notice_update_cc): Delete.
8604         (mn10300_secondary_reload_class): Remove test for stack pointer
8605         based arithmetic.
8606         (output_tst): Rename to mn10300_output_cmp.
8607         (impossible_plus_operand): Move into predicates.md.
8608         (mn10300_legitimize_address): Make static.
8609         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
8610         constant pic operands.
8611         (mn10300_legitimate_constant_p): New function.
8612         (mn10300_case_values_threshold): Make static.
8613         (mn10300_hard_regno_mode_ok): New function.
8614         (mn10300_modes_tieable): New function.
8615         (mn10300_select_cc_mode): New function.
8616         * config/mn10300/predicates.md (impossible_plus_operand): Define.
8617         * config/mn10300/mn10300-protos.h: Tidy.
8618         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
8619         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
8620         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
8621         with clobbers or sets of CC_REG.
8622         (CC_REG): Define.
8623         (mov*): Remove use of CLR instruction.
8624         (cbranch_si4_<code>): New pattern/split.
8625         (integer_conditional_branch): New pattern.
8626         (cbranch_sf4_<code>): New pattern/split.
8627         (float_conditional_branch): New pattern.
8628         (casesi): Use addsi3 pattern instead of movsi pattern to add and
8629         move a value at the same time.
8630         (cc0 peepholes): Remove.
8632 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8634         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
8635         on RTX_FRAME_RELATED_P insns and the insn to which
8636         NOTE_INSN_EPILOGUE_BEG is attached.
8637         * sched-vis.c (print_value): Allow NULL value.
8639 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8641         PR rtl-optimization/45570
8642         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
8643         assert that we are pipelining outer loops.  Allow returning
8644         zero predecessors.
8646 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8648         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
8649         (tidy_control_flow): Tidy vertical space.
8650         (sel_remove_bb): New variable idx.  Use it to remember the basic
8651         block index before deleting the block.
8652         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
8653         (sel_merge_blocks): ... here.
8654         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
8656 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
8658         * cse.c (is_dead_reg): Change into inline function that is not
8659         called through for_each_rtx.
8660         (set_live_p): Adjust caller.
8661         (insn_live_p): Don't reset DEBUG_INSNs here.
8662         (struct dead_debug_insn_data): New data.
8663         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
8664         (delete_trivially_dead_insns): If there is just one setter for the
8665         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
8666         and add DEBUG_INSN for it right before the removed setter and
8667         use the DEBUG_EXPR instead of the dead pseudo.
8669 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
8671         * et-forest.c (et_nca): Return NULL immediately when
8672         the dominance forest has disjoint components.
8674 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
8676         * ira.c (setup_class_hard_regs): Fix typo in indexing
8677         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
8679 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
8681         * graph.c (inbb): New variable.
8682         (start_bb): Set inbb to 1 if output is inside of a building block.
8683         (end_bb): Check if output is inside of a building block.
8685 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8687         PR rtl-optimization/45912
8688         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
8689         regno of registers instead of their index to compute the alignment.
8691 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
8693         * config/i386/i386.c (ix86_build_const_vector): Check vector
8694         mode instead of scalar mode.
8695         (ix86_build_signbit_mask): Likewise.
8696         (ix86_expand_fp_absneg_operator): Updated.
8697         (ix86_expand_copysign): Likewise.
8698         (ix86_expand_int_vcond): Likewise.
8699         (ix86_emit_swdivsf): Likewise.
8700         (ix86_sse_copysign_to_positive): Likewise.
8701         (ix86_expand_sse_fabs): Likewise.
8702         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
8703         * config/i386/sse.md (copysign<mode>3): Likewise.
8704         (sse2_cvtudq2ps): Likewise.
8705         (vec_unpacku_float_hi_v4si): Likewise.
8706         (vec_unpacku_float_lo_v4si): Likewise.
8708         * config/i386/i386.c (ix86_builtins): Add
8709         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
8710         (bdesc_args): Likewise.
8711         (ix86_builtin_vectorized_function): Support
8712         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
8713         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
8714         and IX86_BUILTIN_CVTPS2DQ256.
8715         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
8717         * config/i386/sse.md (STORENT_MODE): New.
8718         (VEC_FLOAT_MODE): Likewise.
8719         (VEC_EXTRACT_MODE): Likewise.
8720         (*avx_cvtdq2pd256_2): Likewise.
8721         (vec_pack_trunc_v4df): Likewise.
8722         (vec_interleave_highv8sf): Likewise.
8723         (vec_interleave_lowv8sf): Likewise.
8724         (storent<mode>): Macroized.
8725         (<code><mode>2: absneg): Likewise.
8726         (copysign<mode>3): Likewise.
8727         (vec_extract<mode>): Likewise.
8729         PR target/44180
8730         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
8731         for V8SFmode.
8733 2010-10-13  Richard Guenther  <rguenther@suse.de>
8734             H.J. Lu  <hongjiu.lu@intel.com>
8736         * config/i386/sse.md (reduc_splus_v8sf): Add.
8737         (reduc_splus_v4df): Likewise.
8738         (vec_unpacks_hi_v8sf): Likewise.
8739         (vec_unpacks_lo_v8sf): Likewise.
8740         (*avx_cvtps2pd256_2): Likewise.
8741         (vec_unpacks_float_hi_v8si): Likewise.
8742         (vec_unpacks_float_lo_v8si): Likewise.
8743         (vec_interleave_highv4df): Likewise.
8744         (vec_interleave_lowv4df): Likewise.
8746 2010-10-13  Richard Guenther  <rguenther@suse.de>
8748         PR objc/45878
8749         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
8750         alone if there are no virtual methods.
8752 2010-10-13  Richard Henderson  <rth@redhat.com>
8754         * expr.c (build_personality_function): Take parameter LANG instead
8755         of parameter NAME.  Build the name based on the lang prefix and the
8756         unwind method in use.
8757         * tree.c (lhd_gcc_personality): Update call to
8758         build_personality_function.
8760 2010-10-13  Richard Guenther  <rguenther@suse.de>
8762         PR objc/45878
8763         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
8765 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8767         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
8768         Canonicalize input operands of ASM_OPERANDS insns.
8770 2010-10-13  Richard Guenther  <rguenther@suse.de>
8772         PR tree-optimization/45788
8773         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
8774         EH update until fixup-cfg.
8776 2010-10-13  Julian Brown  <julian@codesourcery.com>
8778         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
8779         from CORE_REGS and GENERAL_REGS classes.
8780         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
8781         final constraint for register preferencing.
8783 2010-10-13  Richard Guenther  <rguenther@suse.de>
8785         PR tree-optimization/45970
8786         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
8787         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
8788         (stmt_kills_ref_p): Likewise.
8789         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
8791 2010-10-13  Richard Guenther  <rguenther@suse.de>
8793         PR tree-optimization/45982
8794         * tree-ssa-structalias.c (make_constraints_to): New function.
8795         (make_constraint_to): Implement in terms of make_constraints_to.
8796         (find_func_aliases): Properly make return values of pure/const
8797         functions escape if they assign to sth that is not a pointer.
8799 2010-10-13  Richard Guenther  <rguenther@suse.de>
8801         PR middle-end/45874
8802         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
8803         Fixup the CFG when EH was fixed up.
8805 2010-10-13  Ira Rosen  <irar@il.ibm.com>
8807         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
8808         Use operand's type for POINTER_PLUS_EXPR.
8810 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
8812         * c-parser.c (c_parser_for_statement): Initialize incr.
8814 2010-10-12  Xinliang David Li  <davidxl@google.com>
8816         PR tree-optimization/45972
8817         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
8818         with too many arguments.
8820 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8822         PR fortran/45636
8823         * tree-ssa-forwprop.c: Include expr.h.
8824         (constant_pointer_difference, simplify_builtin_call): New functions.
8825         (tree_ssa_forward_propagate_single_use_vars): Call
8826         simplify_builtin_call on builtin calls.
8828 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
8830         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
8831         (*adddi3_extend_sp32): Likewise.
8832         (*subdi3_insn_sp32): Likewise.
8833         (*subdi3_extend_sp32): Likewise.
8834         (*negdi2_sp32): Use negative test for consistency.
8836 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8838         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
8839         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8840         * config/fixed-bit.h: Likewise.
8841         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8842         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8843         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
8844         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
8845         (DF_SIZE): Likewise.
8846         * doc/tm.texi: Regenerate.
8848 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8850         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
8851         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
8852         (*isel_reversed_unsigned_<mode>): New.
8853         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
8854         as valid comparisons and adjust operands and output appropriately.
8855         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
8857 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
8859         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
8860         DATA_ALIGNMENT and add COND parameter. Update comments above.
8861         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
8862         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
8864 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
8866         PR bootstrap/45958
8867         * exec-tool.in: Support '-plugin' as the second option to the linker.
8869 2010-10-12  Richard Henderson  <rth@redhat.com>
8871         PR middle-end/45962
8872         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
8873         (expand_stack_vars): Assert large base allocated when used.
8875 2010-10-12  Richard Guenther  <rguenther@suse.de>
8877         * tree-ssa-structalias.c (get_constraint_for_1): Constants
8878         only point to nonlocal, not anything.
8880 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8882         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
8883         unwind info for exceptions.
8885 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8887         PR testsuite/45851
8888         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
8889         Document optional target selector.
8891 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
8893         * flag-types.h: New.
8894         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
8895         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
8896         options.h.
8897         (OPTIONS_H): Define.
8898         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
8899         of options.h.
8900         * configure.ac (tm_include_list): Include options.h not flags.h.
8901         * configure: Regenerate.
8902         * flags.h: Include flag-types.h.  Include options.h at top of file
8903         again.
8904         (enum debug_info_type, enum debug_info_level, enum
8905         debug_info_usage, enum symbol_visibility, struct visibility_flags,
8906         enum ira_algorithm, enum ira_region, enum excess_precision, enum
8907         graph_dump_types, enum stack_check_type,
8908         enum warn_strict_overflow_code): Move to flag-types.h
8909         * opth-gen.awk: Include flag-types.h in options.h.
8911 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8913         * expr.c (store_expr): Share code for STRING_CST and
8914         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
8915         check if target is a MEM.
8917         * rtl.h: Include hashtab.h.
8918         (iterative_hash_rtx): New prototype.
8919         * rtl.c (iterative_hash_rtx): New function.
8920         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
8921         (output_loc_list): Return immediately if emitted is set, set it.
8922         (hash_loc_operands, hash_locs, hash_loc_list,
8923         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
8924         optimize_location_lists_1, optimize_location_lists): New function.
8925         (dwarf2out_finish): Call optimize_location_lists.
8926         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
8928 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8930         PR testsuite/45974
8931         Revert:
8932         * Makefile.in ($(lang_checks_parallel))
8933         ($(lang_checks_parallelized)): Use single quotes for
8934         $(RUNTESTFLAGS), to allow passing quoted content.
8936 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8938         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
8939         actual_oldval.  Use __builtin_expect.
8940         (SUBWORD_VAL_CAS): Likewise.
8942 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8944         * recog.c (nonmemory_operand): Call immediate_operand for
8945         CONSTANT_P operands.
8947 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
8949         * config/i386/i386.md (movmem<mode>): Macroize expander from
8950         movmem{si,di} using SWI48 mode iterator.
8951         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
8952         *strmovsi_rex_1 using P mode iterator.
8953         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
8954         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
8955         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
8956         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
8957         (setmem<mode>): Macroize expander from setmem{si,di} using
8958         SWI48 mode iterator.
8959         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
8960         *strsetsi_rex_1 using P mode iterator.
8961         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8962         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8963         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8964         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8965         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8966         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8967         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8968         mode iterator.
8969         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8970         *strlenqi_rex_1 using P mode iterator.
8972 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8974         PR bootstrap/45445
8975         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8976         static functions.
8977         (mark_ref_live, mark_ref_dead): Use them.
8978         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8979         Save the original reg, and use the new functions.
8980         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8981         changed.
8982         (check_and_make_def_conflict): Save the original reg.
8984 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8986         PR middle-end/45699
8987         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8988         thunks.
8990 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8992         * Makefile.in ($(lang_checks_parallel))
8993         ($(lang_checks_parallelized)): Use single quotes for
8994         $(RUNTESTFLAGS), to allow passing quoted content.
8996         PR bootstrap/35855
8997         * opt-functions.awk (BEGIN): New section.
8998         (lower, upper, digit, alnum): New variables.
8999         (static_var, opt_sanitized_name): Use alnum instead of character
9000         classes, for non-C locale.
9001         * optc-gen.awk: Likewise.
9002         * opth-gen.awk: Likewise.
9004 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
9006         * target.def (preferred_reload_class): New hook.
9007         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
9008         * doc/tm.texi: Regenerate.
9009         * targhooks.c (default_preferred_reload_class): New function.
9010         * targhooks.h (default_preferred_reload_class): Declare.
9011         * reload.c (find_dummy_reload): Change preferred_class variable type
9012         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
9013         target hook.
9014         (find_reloads): Change goal_alternative array type from int to
9015         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
9016         (push_reload, find_reloads_address_part): Use
9017         TARGET_PREFERRED_RELOAD_CLASS target hook.
9018         * reload1.c (emit_input_reload_insns): Ditto.
9019         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
9020         hook. Change rclass argument and secondary_class variable types from
9021         'enum reg_class' to reg_class_t.
9023         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
9024         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
9025         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
9026         Change regclass argument and result types from enum reg_class to
9027         reg_class_t.
9028         (TARGET_PREFERRED_RELOAD_CLASS): Define.
9030 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
9032         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
9033         in masking operations.
9034         (simplify_const_unary_operation): Likewise.
9035         (simplify_binary_operation_1): Likewise.
9036         (simplify_const_binary_operation): Likewise.
9037         (simplify_const_relational_operation): Likewise.
9038         (simplify_ternary_operation): Likewise.
9039         (simplify_immed_subreg): Likewise.
9041 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9043         PR middle-end/45862
9044         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
9045         (TARGET_SUPPORTS_WEAK): New.
9046         * doc/tm.texi: Regenerate.
9047         * defaults.h (SUPPORTS_WEAK): Update comment.
9048         (TARGET_SUPPORTS_WEAK): New.
9049         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
9050         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
9051         SUPPORTS_WEAK.
9052         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
9053         make_decl_one_only): Likewise.
9054         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
9055         TARGET_SUPPORTS_WEAK.
9056         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
9057         instead of SUPPORTS_WEAK.
9059 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9061         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
9063 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
9065         * vec.h (VEC_qsort): Define.
9066         * dbxout.c (output_used_types): Use it.
9067         * df-scan.c (df_sort_and_compress_refs): Likewise.
9068         (df_sort_and_compress_mws): Likewise.
9069         * genautomata.c (uniq_sort_alt_states): Likewise.
9070         (evaluate_equiv_classes): Likewise.
9071         (output_trans_table): Likewise.
9072         (output_state): Likewise.
9073         * gimplify.c (compare_case_labels): Likewise.
9074         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
9075         * ipa.c (build_cdtor_fns): Likewise.
9076         * lto.c (lto_wpa_write_files): Likewise.
9077         * sel-sched.c (fill_vec_av_set): Likewise.
9078         * tree-predcom.c (determine_roots_comp): Likewise.
9079         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
9080         (splice_param_accesses): Likewise.
9081         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
9082         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
9083         (reassociate_bb): Likewise.
9084         * tree-ssa-sccvn.c (sort_scc): Likewise.
9085         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
9087 2010-10-11  Ian Lance Taylor  <iant@google.com>
9089         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
9090         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
9091         TREE_THIS_NOTRAP when appropriate.
9092         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
9093         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
9094         newly created MEM_REF.
9096 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
9098         Nathan Froyds patch to hooks FUNCTION_ARG etc.
9099         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
9100         (picochip_incoming_function_arg): Delete.
9101         (picochip_arg_advance): Delete.
9102         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
9103         (FUNCTION_INCOMING_ARG): Delete.
9104         (FUNCTION_ARG_ADVANCE): Delete.
9105         * config/picochip/picochip.c (picochip_function_arg): Take a
9106         const_tree and a bool.
9107         (picochip_incoming_function_arg): Likewise.
9108         (picochip_arg_advance): Likewise.
9109         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
9110         (TARGET_FUNCTION_ARG_ADVANCE): Define.
9112 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9114         PR middle-end/45955
9115         * ipa.c (build_cdtor): Delete endless loop.
9117 2010-10-07  Andi Kleen  <ak@linux.intel.com>
9119         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
9120         checksum-options.
9121         (checksum-options): Add.
9122         (cc1-dummy): Remove.
9123         (cc1-checksum): Change to run checksum over object files
9124         and options only.
9125         * dummy-checksum.c: Remove.
9126         * genchecksum.c: Update copyright.
9127         (usage): Allow multiple arguments.
9128         (BLOCKSIZE): Add.
9129         (dosum): Change for incremental checksum. Remove C output.
9130         (main): Iterate over all argument files. Add C output.
9132 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
9134         * params.c (set_param_value_internal): New.
9135         (set_param_value): Use set_param_value_internal.
9136         (maybe_set_param_value, set_default_param_value): New.
9137         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
9138         (maybe_set_param_value, set_default_param_value): Declare.
9139         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
9140         * config/i386/i386.c (ix86_option_override_internal): Use
9141         maybe_set_param_value.
9142         * config/ia64/ia64.c (ia64_option_default_params,
9143         TARGET_OPTION_DEFAULT_PARAMS): New.
9144         (ia64_option_optimization): Move some code to
9145         ia64_option_default_params.
9146         * config/picochip/picochip.c (picochip_option_override): Use
9147         maybe_set_param_value.
9148         * config/rs6000/rs6000.c (rs6000_option_default_params,
9149         TARGET_OPTION_DEFAULT_PARAMS): New.
9150         (rs6000_option_override_internal): Use maybe_set_param_value.
9151         (rs6000_option_optimization): Move some code to
9152         rs6000_option_default_params.
9153         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
9154         * config/sh/sh.c (sh_option_default_params,
9155         TARGET_OPTION_DEFAULT_PARAMS): New.
9156         (sh_option_optimization): Move some code to sh_option_default_params.
9157         * config/sparc/sparc.c (sparc_option_override): Use
9158         maybe_set_param_value.
9159         * config/spu/spu.c (spu_option_default_params,
9160         TARGET_OPTION_DEFAULT_PARAMS): New.
9161         (spu_option_optimization): Move some code to spu_option_default_params.
9162         (spu_option_override): Use maybe_set_param_value.
9163         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
9164         * doc/tm.texi: Regenerate.
9165         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
9166         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
9167         compiler_params.
9168         (default_options_optimization): Use maybe_set_param_value.
9169         (finish_options): Use maybe_set_param_value.
9170         * target.def (target_option.default_params): New hook.
9171         * toplev.c (general_init): Call targetm.target_option.default_params.
9173 2010-10-11  Ira Rosen  <irar@il.ibm.com>
9175         PR tree-optimization/45902
9176         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
9177         vector type for constants, unless it's a pointer.
9179 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9181         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
9183 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
9185         PR target/45870
9186         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
9187         (ix86_delegitimize_address): Use it.
9189 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
9191         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
9193 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
9195         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
9196         to cum struct in the call to function_arg_advance.
9197         (alpha_function_arg_advance): Mark named as unused.
9199 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
9201         * config/mips/mips.c (mips_handle_option): Make "value" with
9202         ATTRIBUTE_UNUSED.
9204 2010-10-09  Richard Henderson  <rth@redhat.com>
9206         PR rtl-opt/33721
9207         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
9208         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
9209         required_align, tidy the code a bit.  Emit split_stack code in the
9210         right place.  Mark the return value with the alignment properly.
9211         * expr.h (allocate_dynamic_stack_space): Update decl.
9212         * builtins.c (expand_builtin_apply): Update call to
9213         allocate_dynamic_stack_space.
9214         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
9215         * calls.c (initialize_argument_information): Update call to
9216         allocate_dynamic_stack_space.
9217         (expand_call): Likewise.
9219         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
9220         Don't update_stack_alignment here.
9221         (alloc_stack_frame_space): Make ALIGN unsigned.
9222         (stack_var_cmp): Sort by alignment too.
9223         (partition_stack_vars): Don't merge large and small alignment vars.
9224         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
9225         Take care when BASE is not virtual_stack_vars_rtx.
9226         (expand_stack_vars): Allocate dynamic stack space for large
9227         alignment variables.
9228         (expand_one_stack_var): Update all to expand_one_stack_var_at.
9229         (defer_stack_allocation): True for large alignment vars.
9230         (update_stack_alignment): Merge into ...
9231         (expand_one_var): ... here.
9232         (gimple_expand_cfg): Place code from expand_stack_vars.
9234 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9236         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9237         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
9238         (pdp11_function_arg_advance): New function.
9239         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9241 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9243         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
9244         * libgcc2.c: Likewise.
9246 2010-10-09  Richard Guenther  <rguenther@suse.de>
9248         PR lto/45956
9249         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
9250         Properly check if a decl is an automatic var.
9252 2010-10-09  Richard Guenther  <rguenther@suse.de>
9254         PR lto/45947
9255         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
9257 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9259         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
9260         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9261         * config/mmix/mmix.c (mmix_function_arg): Rename to...
9262         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
9263         bool arguments.
9264         (mmix_function_arg): New function.
9265         (mmix_function_incoming_arg): New function.
9266         (mmix_function_arg_advance): New function.
9267         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
9268         (TARGET_FUNCTION_ARG_ADVANCE): Define.
9270 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9272         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9273         * config/vax/vax.c (vax_function_arg): New function.
9274         (vax_function_arg_advance): New function.
9275         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9277 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9279         * config/pa/pa-protos.h (function_arg): Delete.
9280         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9281         * config/pa/pa.c (function_arg): Rename to...
9282         (pa_function_arg): ...this.  Make static.  Take a const_tree and
9283         a bool.
9284         (pa_function_arg_advance): New function.
9285         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9287 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9289         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9290         * config/m68k/m68k.c (m68k_function_arg): New function.
9291         (m68k_function_arg_advance): New function.
9292         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9294 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9296         * config/avr/avr-protos.h (function_arg): Delete.
9297         (function_arg_advance): Delete.
9298         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9299         * config/avr/avr.c (function_arg): Rename to...
9300         (avr_function_arg): ...this.  Make static.  Take a const_tree and
9301         a bool.
9302         (function_arg_advance): Rename to...
9303         (avr_function_arg_advance): ...this.  Make static.  Take a
9304         const_tree and a bool.
9305         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9307 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9309         * config/alpha/alpha-protos.h (function_arg): Delete.
9310         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9311         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
9312         * config/alpha/alpha.c (function_arg): Rename to...
9313         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
9314         a bool.  Delete TARGET_ABI_UNICOSMK code.
9315         (alpha_function_arg_advance): New function.
9316         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9318 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9320         * config/mep/mep-protos.h (mep_function_arg): Delete.
9321         (mep_function_arg_advance): Delete.
9322         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9323         * config/mep/mep.c (mep_function_arg): Make static.  Take a
9324         const_tree and a bool.
9325         (mep_function_arg_advance): Likewise.
9326         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9328 2010-10-09  Richard Guenther  <rguenther@suse.de>
9330         PR tree-optimization/45945
9331         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
9333 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
9335         PR tree-optimization/45612
9336         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
9337         Test LABEL_DECLs as well.  Fix formatting issues.
9338         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
9339         whose label is present in NON_SSA_VARS.
9340         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
9341         as well.  Fix formatting issues.
9342         (visit_bb): Fix typos and formatting issue.
9344 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9346         PR tree-optimization/45950
9347         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
9348         before initializing vno->op.
9350 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
9352         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
9353         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
9355 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
9357         PR target/45913
9358         * config/i386/i386.c (ix86_binary_operator_ok): Support
9359         "andhi/andsi/anddi" as a zero-extending move.
9361 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9363         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
9364         into a temporary array.
9366 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
9368         PR tree-optimization/45903
9369         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
9370         of {A,L}SHIFTRT of MEM.
9372 2010-10-08  Richard Guenther  <rguenther@suse.de>
9374         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
9375         Re-construct BLOCK_VARS.
9376         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
9377         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
9378         * tree.c (free_lang_data_in_block): Remove.
9379         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
9380         Do not touch the BLOCK tree.
9381         * expr.c (expand_expr_real_1): Allow externals.
9383 2010-10-08  Richard Guenther  <rguenther@suse.de>
9385         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
9386         Do not output BLOCK_SUBBLOCKS.
9387         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
9388         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
9389         Re-construct BLOCK_SUBBLOCKS of parent block.
9390         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
9391         for BINFO_BASE_ACCESSES.
9393 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
9395         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
9396         (TREE_H): Include $(FLAGS_H) instead of options.h.
9397         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
9398         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
9399         * common.opt (flag_complex_method, flag_evaluation_order,
9400         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
9401         Variable declarations.
9402         * configure.ac (tm_include_list): Include flags.h instead of options.h.
9403         * configure: Regenerate.
9404         * flags.h: Condition out contents for target libraries.  Include
9405         options.h at end of file.
9406         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
9407         flag_evaluation_order, flag_warn_unused_result): Remove.
9408         * gcc.c (main): Intialize global_options with global_options_init.
9409         * langhooks-def.h (lhd_init_options_struct): Declare.
9410         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
9411         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
9412         * langhooks.c (lhd_init_options_struct): New.
9413         * langhooks.h (struct lang_hooks): Add init_options_struct.
9414         Update comment on init_options.
9415         * optc-gen.awk: Generate initializer for global_options_init, not
9416         global_options.
9417         * opth-gen.awk: Condition out structure declarations for target
9418         libraries.  Declare global_options_init.
9419         * opts-common.c: Include flags.h instead of options.h.
9420         * opts.c (flag_warn_unused_result): Remove.
9421         (read_cmdline_options): Take gcc_options parameters.  Pass them to
9422         read_cmdline_option.
9423         (initial_lang_mask, initial_min_crossjump_insns,
9424         initial_max_fields_for_field_sensitive,
9425         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
9426         (init_options_once): New.  Split out of decode_options.
9427         (init_options_struct): New.  Split out of decode_options.
9428         (decode_cmdline_options_to_array_default_mask): New.
9429         (default_options_optimization): New.  Split out of decode_options.
9430         (decode_options): Move most code to other functions.  Update call
9431         to read_cmdline_options.
9432         (finish_options): New.  Split out of decode_options.
9433         * opts.h (decode_options): Add gcc_options parameters.
9434         (init_options_once, init_options_struct,
9435         decode_cmdline_options_to_array_default_mask): New.
9436         * toplev.c (flag_complex_method, flag_ira_algorithm,
9437         flag_ira_region, flag_evaluation_order): Remove.
9438         (general_init): Use global_options_init for initial flag values
9439         for global_dc.
9440         (toplev_main): Call init_options_once, init_options_struct,
9441         lang_hooks.init_options_struct,
9442         decode_cmdline_options_to_array_default_mask and
9443         lang_hooks.init_option before decode_options.  Update arguments to
9444         decode_options.
9445         * tree.h: Include flags.h instead of options.h.
9447 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9449         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9451 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9453         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
9454         Delete.
9455         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
9456         (FUNCTION_INCOMING_ARG): Delete.
9457         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
9458         (function_arg_slotno): Likewise.  Take bool arguments.
9459         (sparc_arg_partial_bytes): Update call to it.
9460         (function_arg): Rename to...
9461         (sparc_function_arg_1): ...this.  Take bool arguments.
9462         (sparc_function_arg, sparc_function_incoming_arg): New functions.
9463         (function_arg_advance): Rename to...
9464         (sparc_function_arg_advance): ...this.  Take bool argument.
9465         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
9466         (TARGET_FUNCTION_INCOMING_ARG): Define.
9468 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9470         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
9471         Delete.
9472         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9473         * config/bfin/bfin.c (function_arg_advance): Rename to...
9474         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
9475         and bool arguments.
9476         (function_arg): Rename to...
9477         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
9478         arguments.
9479         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9481 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9483         * config/score/score-protos.h (score_function_arg): Delete.
9484         (score_function_arg_advance): Delete.
9485         * config/score/score3.h (score3_function_arg_advance): Take a
9486         const_tree and a bool.
9487         (score3_function_arg): Likewise.
9488         * config/score/score7.h (score7_function_arg_advance): Likewise.
9489         (score7_function_arg): Likewise.
9490         * config/score/score3.c (score3_classify_arg): Likewise.
9491         (score3_function_arg_advance, score3_function_arg): Likewise.
9492         * config/score/score7.c (score7_classify_arg): Likewise.
9493         (score7_function_arg_advance, score7_function_arg): Likewise.
9494         * config/score/score.c (score_function_arg_advance): Likewise.
9495         (score_function_arg): Likewise.  De-const-ify `cum' argument.
9496         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9498 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9500         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
9501         (s390_function_arg): Delete.
9502         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9503         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
9504         (s390_function_arg_integer): Likewise.
9505         (s390_function_arg_advance): Make static.  Take a const_tree and
9506         a bool.
9507         (s390_function_arg): Likewise.
9508         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9510 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9512         * config/spu/spu-protos.h (spu_function_arg): Delete.
9513         * config/spu/spu.h (FUNCTION_ARG): Delete.
9514         (FUNCTION_ARG_ADVANCE): Move code to ...
9515         * config/spu/spu.c (spu_function_arg_advance): New function.
9516         (spu_function_arg): Make static.  Take a const_tree and a bool.
9517         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
9518         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9520 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9522         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9524 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9526         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
9527         (init_vn_nary_op_from_op): New function.
9528         (init_vn_nary_op_from_stmt): New function.
9529         (vn_nary_op_lookup_1): New function.
9530         (sizeof_vn_nary_op): New function.
9531         (alloc_vn_nary_op_noinit): New function.
9532         (alloc_vn_nary_op): New function.
9533         (vn_nary_op_insert_into): New function.
9534         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
9535         (vn_nary_op_lookup): Likewise.
9536         (vn_nary_op_lookup_stmt): Likewise.
9537         (vn_nary_op_insert_pieces): Likewise.
9538         (vn_nary_op_insert): Likewise.
9539         (vn_nary_op_insert_stmt): Likewise.
9540         (copy_nary): Likewise.
9541         (set_value_id_for_result): New function.
9542         (set_hashtable_value_ids): Call it.
9544 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9546         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9547         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
9549 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9551         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
9552         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9554 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
9556         PR debug/45656
9557         * cse.c (cse_extended_basic_block): Preserve cc0 info across
9558         debug isnsn.  Skip them when searching for cc0 setter.
9559         (set_live_p): Skip debug insns when searching for cc0 user.
9561 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
9563         PR debug/45673
9564         PR debug/45604
9565         PR debug/45419
9566         PR debug/45408
9567         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
9568         type of MEM_REFs to INTEGER_CSTs.
9570 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
9572         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
9573         m68hc11_print_operand_address.
9575 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
9577         * builtins.c (rewrite_call_expr): Move code to...
9578         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
9579         (rewrite_call_expr_array): New function.
9580         (fold_builtin_sprintf_chk_1): New function.
9581         (fold_builtin_sprintf_chk): Call it.
9582         (gimple_fold_builtin_sprintf_chk): Likewise.
9583         (fold_builtin_snprintf_chk_1): New function.
9584         (fold_builtin_snprintf_chk): Call it.
9585         (gimple_fold_builtin_snprintf_chk): Likewise.
9586         (gimple_rewrite_call_expr): Delete.
9588 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9590         * config.host: Update copyright year.
9592 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9594         * config.host (host_lto_plugin_soname): New shell variable.
9595         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
9596         * config.in: Regenerate.
9597         * configure: Regenerate.
9598         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
9599         LTO plugin shared library.
9601 2010-10-07  Richard Henderson  <rth@redhat.com>
9603         * target.h (enum unwind_info_type): Move ...
9604         * coretypes.h: ... here.
9606 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
9608         * doc/objc.texi (Fast enumeration protocol): Mention that
9609         'unsigned int' can also be used instead of 'unsigned long' in
9610         countByEnumeratingWithState:objects:count:.
9612 2010-10-07  Martin Jambor  <mjambor@suse.cz>
9614         * tree-sra.c (struct access): New field grp_assignment_write.
9615         (dump_access): Dump grp_assignment_write.
9616         (build_accesses_from_assign): Set grp_assignment_write.
9617         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
9618         (mark_read_status): Renamed to mark_rw_status, individual values
9619         renamed too.
9620         (analyze_access_subtree): Changed type of mark_write to
9621         mark_read_status.  Fixed propagating of mark_read and
9622         mark_write.  Changed benefit estimate.  Updated comment.
9624 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
9626         PR Tree-Vect/45847
9627         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
9628         check for vectype_out returned by get_vectype_for_scalar_type().
9630 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
9632         PR target/45805
9633         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
9634         constraint, add register specifier in instruction template.
9635         (neon_vec_pack_trunc_<mode>): Likewise.
9636         (neon_vec_<US>mult_<mode>): Add register specifier to
9637         instruction template.
9639 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9641         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
9642         cygwin2.o.
9643         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
9644         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
9645         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
9646         (cygwin2.o): Likewise.
9647         * config/i386/cygwin1.c: Delete file.
9648         * config/i386/cygwin2.c: Likewise.
9649         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
9650         make all {%!mno-cygwin} ones unconditional.
9651         (STARTFILE_SPEC): Likewise.
9652         (REAL_LIBGCC_SPEC): Likewise.
9653         (LIB_SPEC): Likewise.
9654         (CXX_WRAP_SPEC): Likewise.
9655         (LINK_SPEC): Likewise.
9656         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
9657         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
9658         (cygwin_gplusplus_include_dir): Delete now-unused array.
9659         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
9660         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
9661         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
9662         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
9663         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
9664         (cygwin_local_include_dir): Delete now-unused array.
9665         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
9666         (cygwin_cross_include_dir): Delete now-unused array.
9667         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
9668         (cygwin_tool_include_dir): Delete now-unused array.
9669         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
9670         (cygwin_standard_include_dir): Delete now-unused array.
9671         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
9672         (GEN_CVT_ARRAY): Delete now-unused macro definition.
9673         (cvt_to_mingw): Delete now-unused array.
9674         (mingw_scan): Remove prototype of deleted function.
9675         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
9676         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
9677         * doc/invoke.texi (-mcygwin): Don't document removed option.
9678         (-mno-cygwin): Likewise.
9680 2010-10-07  Richard Guenther  <rguenther@suse.de>
9682         * machmode.h (mode_for_vector): Declare.
9683         * stor-layout.c (mode_for_vector): New function, split out from ...
9684         (layout_type): ... here.
9685         * tree-vectorizer.h (current_vector_size): Declare.
9686         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
9687         mask vector type is available.
9688         (get_vectype_for_scalar_type): Rename to ...
9689         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
9690         size argument.
9691         (get_vectype_for_scalar_type): New wrapper around
9692         get_vectype_for_scalar_type_and_size using current_vector_size.
9693         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
9694         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
9695         of vect_analyze_loop here.
9696         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
9697         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
9698         to autodetect.
9699         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
9700         V8SF to V8SI conversion builtin.
9702 2010-10-07  Richard Guenther  <rguenther@suse.de>
9704         * target.def (autovectorize_vector_sizes): New target hook.
9705         * targhooks.c (default_autovectorize_vector_sizes): New function.
9706         * targhooks.h (default_autovectorize_vector_sizes): Declare.
9707         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
9708         Document.
9709         * doc/tm.texi: Update.
9710         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
9711         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9713 2010-10-07  Richard Guenther  <rguenther@suse.de>
9715         * target.def (units_per_simd_word): Rename to ...
9716         (preferred_simd_mode): ... this.  Return mode instead of size.
9717         * targhooks.c (default_units_per_simd_word): Rename to ...
9718         (default_preferred_simd_mode): ... this.  Return word_mode.
9719         * targhooks.h (default_preferred_simd_mode): Declare.
9720         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
9721         (arm_preferred_simd_mode): ... this.  Re-implement.
9722         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
9723         (ix86_preferred_simd_mode): ... this.  Re-implement.
9724         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
9725         (sparc_preferred_simd_mode): ... this.  Re-implement.
9726         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
9727         (mips_preferred_simd_mode): ... this.  Re-implement.
9728         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
9729         (rs6000_preferred_simd_mode): ... this.  Re-implement.
9730         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
9731         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
9732         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
9733         * doc/tm.texi: Update.
9735 2010-10-07  Richard Guenther  <rguenther@suse.de>
9737         PR middle-end/45869
9738         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
9739         of pointers.
9741 2010-10-07  Alan Modra  <amodra@gmail.com>
9743         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
9744         rather than sign extension by hand.
9746 2010-10-07  Jan Hubicka  <jh@suse.cz>
9748         PR middle-end/45926
9749         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
9751 2010-10-07  Richard Guenther  <rguenther@suse.de>
9753         PR bootstrap/45914
9754         * configure.ac: Fix typo.
9755         * configure: Regenerated.
9757 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9759         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
9760         define_builtin_std where it's unnecessary.
9761         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
9763 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
9765         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
9766         * doc/tm.texi.in: Regenerate.
9767         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
9768         * targhooks.c (default_class_likely_spilled_p): Don't use the
9769         CLASS_LIKELY_SPILLED_P macro.
9771         * config/arm/arm.md: Update comment.
9773 2010-10-06  Jan Hubicka  <jh@suse.cz>
9775         * ipa.c (cgraph_remove_unreachable_nodes): External references can
9776         always be removed.
9777         (cgraph_externally_visible_p): We can not bring local comdats that
9778         are known to linker; fix handling of internal visibility.
9779         (function_and_variable_visibility): Likewise.
9781 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
9783         PR rtl-optimization/45394
9784         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
9785         (struct rtx_subst_pair): Remove AFTER field.
9786         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
9787         (propagate_for_debug): Remove MOVE parameter and adjust.
9788         (try_combine): In the special case where I2 is a PARALLEL, combine only
9789         destinations of SETs and set I2SRC to the I2 source.
9790         Adjust calls to propagate_for_debug throughout.
9791         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
9792         insns.
9794 2010-10-06  Olivier Hainque  <hainque@adacore.com>
9796         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
9797         switch on insn codes as sequence of ifs.
9799 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
9801         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
9802         be UI_NONE for picochip.
9803         (picochip_option_override): Do not disable exception flags.
9804         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
9805         Declare.
9807 2010-10-06  Richard Guenther  <rguenther@suse.de>
9809         * Makefile.in (regmove.o): Depend on $(TARGET_H).
9811 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
9813         Implemented fast enumeration for Objective-C.
9814         * c-parser.c (objc_could_be_foreach_context): New.
9815         (c_lex_one_token): Recognize RID_IN keyword in a potential
9816         Objective-C foreach context.
9817         (c_parser_declaration_or_fndef): Added parameter.  Accept
9818         Objective-C RID_IN keyword as terminating a declaration; in that
9819         case, return the declaration in the new parameter.
9820         (c_parser_extenral_declaration): Updated calls to
9821         c_parser_declaration_or_fndef.
9822         (c_parser_declaration_or_fndef): Same change.
9823         (c_parser_compound_statement_nostart): Same change.
9824         (c_parser_label): Same change.
9825         (c_parser_objc_methodprotolist): Same change.
9826         (c_parser_omp_for_loop): Same change.
9827         (c_parser_for_statement): Detect and parse Objective-C foreach
9828         statements.
9829         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
9830         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
9831         fast enumeration parsing code to turn off the c99 error but still
9832         perform checks on the loop declarations.
9833         * c-tree.h (check_for_loop_decls): Updated declaration.
9834         * doc/objc.texi: Document fast enumeration.
9836 2010-10-06  Nick Clifton  <nickc@redhat.com>
9838         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
9839         (MDR_REGNUM): Define.
9840         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
9841         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
9842         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
9843         (REGISTER_NAMES): Add MDR.
9844         (DWARF2_DEBUGGING_INFO): Define to 1.
9845         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9846         (F): New function.  Sets RTX_FRAME_RELATED_P.
9847         (mn10300_gen_multiple_store): Use F.
9848         (expand_prologue): Use F.  Use gen_movsf() to push floating
9849         point registers.
9850         (expand_epilogue): Use gen_movsf() to pop floating point registers.
9851         (mn10300_option_override): Disable combine stack adjust pass.
9853 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
9855         PR target/45901
9856         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
9857         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
9859 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
9861         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
9862         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
9863         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
9864         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
9865         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
9866         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
9867         BUILT_IN_TOUPPER): Mark as leaf.
9869         PR middle-end/45838
9870         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
9871         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
9872         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
9873         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
9874         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
9875         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
9876         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
9878 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
9880         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
9881         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9882         (m68hc11_class_likely_spilled_p): New function.
9884 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
9886         * c-parser.c (c_parser_objc_method_definition): Updated comment.
9888 2010-10-05  Jan Hubicka  <jh@suse.cz>
9890         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
9891         Document.
9892         * opts.c (decode_options): Handle lto partitions.
9893         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
9894         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
9896 2010-10-05  Jan Hubicka  <jh@suse.cz>
9898         * cgraphunit.c (assemble_function): Output thunks and aliases before
9899         the function itself.
9901 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9903         * config/picochip/picochip.c (picochip_option_override): Disable
9904         exception flags for picochip.
9906 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
9908         * opts-common.c (handle_option, handle_generated_option,
9909         read_cmdline_option, set_option): Add diagnostic_context
9910         parameter.  Update calls among these functions.
9911         (set_option): Don't use global_dc.
9912         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
9913         (decode_options): Pass global_dc to enable_warning_as_error.
9914         (common_handle_option): Pass global_dc to enable_warning_as_error.
9915         (enable_warning_as_error): Add diagnostic_context parameter.
9916         Document parameters.  Don't use global_dc.  Pass
9917         diagnostic_context parameter to handle_generated_option.
9918         * opts.h (set_option, handle_option, handle_generated_option,
9919         read_cmdline_option, enable_warning_as_error): Add
9920         diagnostic_context parameter.
9921         * Makefile.in (lto-opts.o): Update dependencies.
9922         * coretypes.h (struct diagnostic_context, diagnostic_context):
9923         Declare here.
9924         * diagnostic.h (diagnostic_context): Don't declare typedef here.
9925         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
9926         * langhooks-def.h (struct diagnostic_context): Don't declare here.
9927         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
9928         using diagnostic_context typedef.
9929         * langhooks.c (lhd_initialize_diagnostics): Declare using
9930         diagnostic_context typedef.
9931         * langhooks.h (struct diagnostic_context): Don't declare here.
9932         (initialize_diagnostics, print_error_function): Declare using
9933         diagnostic_context typedef.
9934         * lto-opts.c: Include diagnostic.h.
9935         (lto_reissue_options): Pass global_dc to set_option.  Pass
9936         DK_UNSPECIFIED not 0.
9937         * plugin.c (plugins_internal_error_function): Declare using
9938         diagnostic_context typedef.
9939         * plugin.h (struct diagnostic_context): Don't declare here.
9940         (plugins_internal_error_function): Declare using
9941         diagnostic_context typedef.
9943 2010-10-05  Olivier Hainque  <hainque@adacore.com>
9944             Nicolas Roche  <roche@adacore.com>
9946         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
9947         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
9949 2010-10-05  Ira Rosen  <irar@il.ibm.com>
9951         PR tree-optimization/45752
9952         * tree-vect-slp.c (vect_get_mask_element): Remove static
9953         variables, make them function arguments.
9954         (vect_transform_slp_perm_load): Pass new arguments to
9955         vect_get_mask_element.
9957 2010-10-05  Richard Guenther  <rguenther@suse.de>
9959         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
9960         (gimple_mod_pow2): Likewise.
9961         (gimple_mod_subtract): Likewise.
9962         (gimple_ic): Likewise.
9963         (gimple_stringop_fixed_value): Likewise.
9964         * tree-profile.c (tree_init_edge_profiler): Mark profile
9965         functions nothrow and leaf.
9966         (add_abnormal_goto_call_edges): Remove.
9967         (tree_gen_edge_profiler): Work on SSA form.
9968         (tree_gen_ic_profiler): Likewise.  Simplify.
9969         (do_tree_profiling): Update SSA form.
9970         (pass_tree_profile): Remove.
9971         (do_tree_profiling): Likewise.
9972         (gate_tree_profile_ipa): New function.
9973         (pass_ipa_tree_profile): New.
9974         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9975         state of instrumented functions.
9976         * passes.c (init_optimization_passes): Remove early non-SSA
9977         inlining.  Move profiling after early optimizations.
9978         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9979         (pass_ipa_early_inline): Likewise.
9980         * tree-pass.h (pass_ipa_early_inline): Remove.
9981         (pass_tree_profile): Likewise.
9982         (pass_ipa_tree_profile): Declare.
9984 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9985             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9987         * config/s390/s390.c (z196_cost): New.
9988         (s390_handle_arch_option): Add -march=z196.
9989         (s390_option_override): Use the new cost function and use the z10
9990         defaults also for z196.
9991         (legitimate_reload_constant_p): Adjust comment.
9992         (legitimate_reload_fp_constant_p): New function.
9993         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9994         (preferred_la_operand_p): Avoid la with index on z196.
9995         (s390_adjust_priority): Trigger also for z196.
9996         (s390_issue_rate): Issue rate for z196 is 3.
9997         (s390_z10_fix_long_loop_prediction): Rename to ...
9998         (s390_fix_long_loop_prediction): ... this.
9999         (s390_reorg): Apply the z10 adjustments also for z196.
10000         (s390_loop_unroll_adjust): Do this also for z196.
10001         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
10002         (enum processor_flags): Add PF_Z196.
10003         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
10004         (TARGET_CPU_Z196, TARGET_Z196): New macros.
10005         * config.gcc: Enable z196 for --with-arch.
10006         * config/s390/2817.md: New file.
10007         * config/s390/2084.md: New type for multiply and add.
10008         * config/s390/2097.md: Likewise.
10009         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
10010         (UNSPECV_ATOMIC_OP): New constants.
10011         (fmadddf, fmaddsf): New values for type attribute.
10012         (z196prop): New insn attribute.
10013         (cpu, cpu_facility): Add z196.
10014         (ATOMIC_Z196): New code iterator.
10015         (noxa): New code attribute.
10016         (gk): New mode attribute.
10017         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
10018         Support load zero for fp constants.
10019         (fixuns_truncdddi2, fixuns_trunctddi2)
10020         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
10021         for z196.
10022         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
10023         (popcounthi2, popcountqi2): New expander.
10024         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
10025         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
10026         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
10027         insn definition.
10028         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
10029         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
10030         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
10031         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
10032         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
10033         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
10034         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
10035         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
10036         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
10037         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
10038         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
10039         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
10040         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
10041         Support new z196 instructions.
10043 2010-10-05  Richard Guenther  <rguenther@suse.de>
10045         PR middle-end/45877
10046         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
10047         case where gimplification optimizes away the stmt.
10049 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
10051         PR debug/45849
10052         * var-tracking.c (strip_pointer_flags): New function.
10053         (emit_note_insn_var_location): If rtx_equal_p check failed,
10054         retry on locations simplified with simplify_replace_fn_rtx
10055         and strip_pointer_flags as its callback.
10057 2010-10-04  Jan Hubicka  <jh@suse.cz>
10059         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
10060         (can_refer_decl_in_current_unit_p): ... this one; reverse return
10061         value; handle comdats too.
10062         (canonicalize_constructor_val): Use it; handle function_decls
10063         correctly.
10064         (gimple_fold_obj_type_ref_known_binfo): Likewise.
10065         * gimple.c (get_base_address): Accept all kinds of decls.
10067 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
10069         * flags.h (g_switch_value, g_switch_set): Remove.
10070         * opts.c (g_switch_value, g_switch_set): Remove.
10071         * config/g.opt (G): Add Var(g_switch_value).
10072         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
10073         (alpha_option_override): Check global_options_set.x_g_switch_value
10074         instead of g_switch_set.
10075         (alpha_in_small_data_p): Remove cast in comparison with
10076         g_switch_value.
10077         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
10078         g_switch_value to unsigned HOST_WIDE_INT.
10079         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
10080         with g_switch_value.
10081         (frv_handle_option): Don't handle -G here.
10082         (frv_option_override): Check global_options_set.x_g_switch_value
10083         instead of g_switch_set.  Don't modify g_switch_set.
10084         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
10085         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
10086         g_switch_value to unsigned HOST_WIDE_INT.
10087         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
10088         (ia64_option_override): Check global_options_set.x_g_switch_value
10089         instead of g_switch_set.
10090         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
10091         Remove.
10092         (lm32_in_small_data_p): Remove cast in comparison with
10093         g_switch_value.
10094         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
10095         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
10096         HOST_WIDE_INT.
10097         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
10098         (m32r_init): Check global_options_set.x_g_switch_value instead of
10099         g_switch_set.
10100         (m32r_in_small_data_p): Remove cast in comparison with
10101         g_switch_value.
10102         (m32r_file_start): Format g_switch_value with %d.
10103         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
10104         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
10105         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
10106         handle -G here.
10107         (microblaze_option_override): Check
10108         global_options_set.x_g_switch_value instead of g_switch_set.
10109         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
10110         (mips_option_override): Check global_options_set.x_g_switch_value
10111         instead of g_switch_set.
10112         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
10113         (rs6000_file_start): Format g_switch_value with %d.
10114         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
10115         comparisons with g_switch_value.
10116         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
10117         global_options_set.x_g_switch_value instead of g_switch_set.
10118         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10119         global_options_set.x_g_switch_value instead of g_switch_set.
10120         * config/score/score.c (score_handle_option): Don't handle -G here.
10121         * config/score/score3.c (score3_option_override): Check
10122         global_options_set.x_g_switch_value instead of g_switch_set.
10123         * config/score/score7.c (score7_option_override): Check
10124         global_options_set.x_g_switch_value instead of g_switch_set.
10126 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
10128         * common.opt (fira-coalesce): Remove.
10130         * doc/invoke.texi (flag_ira_coalesce): Remove.
10132         * ira-color.c (allocno_coalesced_p): Move before
10133         copy_freq_compare_func.
10134         processed_coalesced_allocno_bitmap): Ditto.
10135         (update_conflict_hard_regno_costs): Don't use
10136         ALLOCNO_FIRST_COALESCED_ALLOCNO.
10137         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
10138         (assign_hard_reg): Assume no coalesced allocnos.
10139         (get_coalesced_allocnos_attributes): Remove.
10140         (bucket_allocno_compare_func): Assume no coalesced allocnos.
10141         (push_allocno_to_stack): Ditto.
10142         (remove_allocno_from_bucket_and_push): Use
10143         ira_print_expanded_allocno instead of print_coalesced_allocno.
10144         (push_allocnos_to_stack): Assume uncoalesced allocnos.
10145         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
10146         all_conflicting_hard_regs.
10147         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
10148         (setup_allocno_left_conflicts_size): Ditto.
10149         (put_allocno_into_bucket): Ditto.
10150         (copy_freq_compare_func): Remove.
10151         (copy_freq_compare_func, merge_allocnos): Move before
10152         coalesced_pseudo_reg_freq_compare.
10153         coalesced_allocno_conflict_p): Ditto.
10154         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
10155         parameter.  Assume it true.
10156         (color_allocnos): Assume uncoalesced allocnos.  Use
10157         ira_print_expanded_allocno instead of print_coalesced_allocno.
10158         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
10159         parameter.
10161         * ira.c: Remove comment about coalescing.
10163 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
10165         * config/mips/mips.h (target_flags_explicit): Declare for
10166         GENERATOR_FILE.
10168 2010-10-04  Andi Kleen  <ak@linux.intel.com>
10170         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
10171         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
10173 2010-10-04  Matthias Klose  <doko@ubuntu.com>
10175         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
10176         multilib osdirname if it exists.
10177         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
10179 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
10181         PR middle-end/45876
10182         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
10183         arg0's type or its unsigned counterpart as utype.  Convert
10184         arg1 to utype unconditionally.
10186 2010-10-04  Julian Brown  <julian@codesourcery.com>
10188         * expr.c (expand_assignment): Add assertion to prevent emitting
10189         null rtx for movmisalign pattern.
10190         (expand_expr_real_1): Likewise.
10191         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
10192         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
10193         (arm_vector_alignment_reachable): New.
10194         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
10195         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
10196         (arm_print_operand): Include alignment qualifier in %A.
10197         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
10198         (movmisalign<mode>): New expander.
10199         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
10200         insn patterns.
10202 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
10204         * optc-gen.awk: Define global_options_set.  Don't define
10205         target_flags_explicit.
10206         * opth-gen.awk: Declare global_options_set.  Define
10207         target_flags_explicit as macro.
10208         * opts-common.c (handle_option): Take opts_set and generated_p
10209         parameters.
10210         (handle_generated_option, read_cmdline_option, set_option): Take
10211         opts_set parameter.
10212         (set_option): Use opts_set instead of hardcoding target_flags and
10213         target_flags_explicit.
10214         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
10215         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
10216         flag_value_profile_transformations_set, flag_peel_loops_set,
10217         flag_branch_probabilities_set, flag_inline_functions_set,
10218         flag_ipa_cp_set, flag_ipa_cp_clone_set,
10219         flag_predictive_commoning_set, flag_unswitch_loops_set,
10220         flag_gcse_after_reload_set): Remove.
10221         (common_handle_option, lang_handle_option, target_handle_option):
10222         Take opts_set parameter.  Assert that it is &global_options_set.
10223         (common_handle_option): Don't set _set variables.  Check opts_set
10224         instead of such variables.
10225         (enable_warning_as_error): Pass &global_options_set to
10226         handle_generated_option.
10227         * opts.h (cl_option_handler_func.handler, set_option,
10228         handle_option, handle_generated_option, read_cmdline_option): Add
10229         opts_set parameters.
10230         (handle_option): Add generated_p parameter.
10231         * config/i386/i386.c (ix86_function_specific_save,
10232         ix86_function_specific_restore): Updat for renaming of
10233         target_flags_explicit field.
10234         * config/i386/i386.opt (target_flags_explicit): Rename to
10235         ix86_target_flags_explicit.
10236         * config/ia64/ia64.c (ia64_override_options_after_change): Check
10237         global_options_set.x_flag_selective_scheduling and
10238         global_options_set.x_flag_selective_scheduling2, not
10239         sel_sched_switch_set.
10240         * flags.h (sel_sched_switch_set,
10241         flag_speculative_prefetching_set): Remove.
10242         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
10243         that it is &global_options_set.
10244         (process_command): Pass &global_options_set to read_cmdline_option.
10245         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
10246         set_option.
10247         * toplev.c (target_flags_explicit): Remove.
10249 2010-10-04  Jan Hubicka  <jh@suse.cz>
10251         PR middle-end/45871
10252         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
10253         use get_ref_base_and_offset to handle references.
10254         (fold_const_aggregate_ref): Update.
10256 2010-10-04  Martin Jambor  <mjambor@suse.cz>
10258         PR tree-optimization/45572
10259         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
10260         ipa_check_create_node_params.
10261         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
10263 2010-10-04  Yao Qi  <yao@codesourcery.com>
10265         * doc/passes.texi: Clean up.
10267 2010-10-03  Ian Lance Taylor  <iant@google.com>
10269         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
10270         referring to a field using a typedef name.
10271         (find_anonymous_field_with_type): New static function.
10272         (convert_to_anonymous_field): New static function.
10273         (convert_for_assignment): If -fplan9-extensions, permit converting
10274         pointer to struct to pointer to anonymous field.
10275         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
10276         (is_duplicate_field): New static function.
10277         (detect_field_duplicates_hash): If -fplan9-extensions, check for
10278         typedef names duplicating field names.
10279         (detect_field_duplicates): Likewise.
10280         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
10281         (C Dialect Options): Document -fplan9-extensions.
10282         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
10284 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
10286         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
10287         revision 164914.
10288         (vect_create_data_ref_ptr): Likewise.
10289         * tree-vect-stmts.c (vectorizable_store): Likewise.
10290         (perm_mask_for_reverse): Likewise.
10291         (reverse_vec_elements): Likewise.
10292         (vectorizable_load): Likewise.
10294 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10296         * cppbuiltin.c: New file.
10297         * cppbuiltin.h: New file.
10298         * Makefile.in: Take into account cppbuiltin.{h,c}.
10300 2010-10-03  Andi Kleen  <ak@linux.intel.com>
10302         * lto-cgraph.c (input_cgraph): Check for missing sections.
10304 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
10306         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
10307         to nonimmediate_operand.  Force operand 2 to register when allowed.
10308         (*<shiftrt_insn><mode>3_mask): Ditto.
10309         (*<rotate_insn><mode>3_mask): Ditto.
10311 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
10313         PR tree-optimization/45720
10314         PR tree-optimization/45764
10315         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
10316         Don't accept backwards consecutive accesses.
10317         (vect_create_data_ref_ptr): Disallow negative steps.
10319         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
10320         (perm_mask_for_reverse): Removed.
10321         (reverse_vec_elements): Likewise.
10322         (vectorizable_load): Don't handle negative steps.
10324 2010-10-02  Jan Hubicka  <jh@suse.cz>
10326         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
10327         call destination is known.
10329 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10331         PR target/45820
10332         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
10333         earlier.
10335 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10337         * doc/install.texi (Configuration): Document build_configargs,
10338         host_configargs, target_configargs.
10340 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
10342         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
10343         (*<shiftrt_insn><mode>3_mask): Ditto.
10344         (*<rotate_insn><mode>3_mask): Ditto.
10346 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
10348         PR tree-optimization/44716
10349         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
10350         (HOT_TEXT_SECTION_NAME): Define.
10352 2010-10-01  Nick Clifton  <nickc@redhat.com>
10354         * common.opt: Add -fcombine-stack-adjustments.
10355         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
10356         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
10357         flag_combine_stack_adjustments.
10358         * doc/invoke.texi: Document the new option.
10360 2010-10-01  Richard Guenther  <rguenther@suse.de>
10362         PR tree-optimization/45854
10363         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
10365 2010-10-01  Anthony Green  <green@moxielogic.com>
10367         * config.gcc: Fix moxie-*-rtems* configuration.
10369 2010-10-01  Richard Guenther  <rguenther@suse.de>
10371         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
10372         (gen_decl_die): Likewise.
10374 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10376         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
10377         to the function code for SPU MD builtins.
10378         (spu_expand_builtin): Update.
10379         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
10381 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10383         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
10384         sjlj_except_unwind_info.
10386 2010-10-01  Tristan Gingold  <gingold@adacore.com>
10388         * configure.ac: Define the nop insn for avr*-*-*
10389         * configure: Regenerate.
10391 2010-10-01  Alan Modra  <amodra@gmail.com>
10393         PR target/45807
10394         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
10395         extend toc_restore_insn.
10397 2010-09-30  Richard Guenther  <rguenther@suse.de>
10399         PR tree-optimization/43959
10400         * function.c (gimplify_parameters): Use create_tmp_reg instead of
10401         create_tmp_var.
10403 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
10405         * config/sh/sh.c (sh_expand_prologue): Set
10406         current_function_static_stack_size.
10408 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10410         * configure.ac: Check for Solaris 8 ld with .hidden support.
10411         * configure: Regenerate.
10413 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10415         PR middle-end/45758
10416         * graphite.c (graphite_initialize): Call scev_reset.
10418 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10420         * sese.h (scev_analyzable_p): Return false for real or floating
10421         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
10423 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10425         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
10426         and ps.
10427         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
10428         domain.
10429         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
10430         Do not allocate ub_expr, it is passed in initialized.
10432 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10434         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
10435         (build_cloog_prog): Dump CLooG input file when
10436         flag_graphite_dump_cloog is set.  This is disabled on trunk.
10437         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
10439 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10441         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
10442         verify_dominators for CDI_POST_DOMINATORS.
10443         * sese.h: Remove comment about CDI_POST_DOMINATORS.
10444         (recompute_all_dominators): Remove call to free_dominance_info
10445         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
10446         for CDI_POST_DOMINATORS.
10448 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10450         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
10451         over pbb_dim_iter_domain.
10453 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10455         * graphite-flattening.c: Fix comments.
10457 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10459         * Makefile.in (OBJS-common): Add graphite-flattening.o.
10460         (graphite-flattening.o): New rule.
10461         * common.opt (floop-flatten): New flag.
10462         * doc/invoke.texi (-floop-flatten): Documented.
10463         * graphite-flattening.c: New.
10464         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
10465         * graphite-poly.h (flatten_all_loops): Declared.
10466         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
10467         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
10468         is set, also set flag_graphite.
10470 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10472         * graphite-poly.c (cloog_checksum): New.
10473         * graphite-poly.h (cloog_checksum): Declared.
10475 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10477         * graphite-poly.c (pbb_number_of_iterations): Removed.
10478         (pbb_number_of_iterations_at_time): Correctly compute the number
10479         of iterations in the transformed loop.
10480         * graphite-poly.h (pbb_number_of_iterations): Removed.
10482 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10484         * graphite-poly.h (lst_update_scattering_seq): Removed.
10485         (lst_update_scattering): Correctly handle outermost loop dewey
10486         renumbering.
10488 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10490         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
10491         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
10492         * graphite-poly.h (lst_niter_for_loop): New.
10494 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10496         * graphite-poly.c (apply_poly_transforms): Do not abort when the
10497         transform read from disk is not legal.  Call fatal_error instead.
10499 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10501         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
10502         (print_scop_header): Removed.  Inlined in the only call place...
10503         (print_scop): ... here.
10505 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10507         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
10509 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10511         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
10513 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10515         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
10516         (dot_deps_stmt): Same.
10517         * graphite-poly.c (dot_lst): Same.
10519 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10521         * graphite-blocking.c (scop_do_strip_mine): Do not call
10522         graphite_legal_transform.
10523         (scop_do_block): Same.
10525 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
10527         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
10528         description.
10530 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10532         * tree-scalar-evolution.c (instantiate_array_ref): New.
10533         (instantiate_scev_r): Also handle ARRAY_REFs.
10535 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10537         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
10538         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
10539         RESULT_DECL, and FIELD_DECL.  Return false for an
10540         SSA_NAME_IS_DEFAULT_DEF.
10541         (compute_scalar_evolution_in_loop): Do not further analyze the
10542         scalar evolution when no_evolution_in_loop_p returns true.
10544 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10546         * tree-chrec.h (evolution_function_is_affine_p): Do not check
10547         whether CHREC_LEFT is invariant.  A function is affine when
10548         CHREC_RIGHT is invariant.
10550 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10552         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
10553         is_gimple_reg.
10554         (rewrite_degenerate_phi): Same.
10555         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
10557 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
10559         * graphite-scop-detection.c (graphite_can_represent_scev,
10560         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
10561         graphite_can_represent_loop): Remove outermost_loop.
10563 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10565         PR middle-end/45229
10566         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
10567         handle GIMPLE_CALLs with no LHS.
10569 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10571         * graphite-poly.c (init_graphite_out_file): New.
10572         (init_graphite_in_file): New.
10573         (apply_poly_transforms): Updated to enable reading and writing of
10574         multiple scop files.
10576 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
10578         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
10579         redundant checks.
10581 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10583         * graphite-clast-to-gimple.c (precision_for_value): Adjust
10584         computation of precision by 1.
10586 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10588         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
10589         (openscop_read_polyhedron_matrix): New.
10590         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
10591         (openscop_read_N_int): Same.
10592         * graphite-poly.c (openscop_read_N_int): New.
10593         (openscop_read_one_int): New.
10594         (openscop_read_N_string): New.
10595         (openscop_read_one_string): New.
10596         (openscop_read_powerset_matrix): New.
10597         (graphite_read_transforms): Remove.
10598         (graphite_read_scatt): New.
10599         (graphite_read_scop_file): New.
10600         (apply_poly_transforms): Updated to call graphite_read_scop_file.
10602 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10604         * graphite-poly.c: Change include order.
10606 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10608         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
10609         (cloog_matrix_nrows): New.
10611 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10613         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
10614         from matrix lines.
10615         * graphite-poly.c (openscop_print_scattering_function_1): Same.
10616         (print_scattering_function_1): Same.
10617         (openscop_print_pbb_domain): Same.
10618         (openscop_print_scop_context): Same.
10619         (print_scop_context): Same.
10621 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
10623         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
10624         (openscop_print_pdr_polyhedron): Print pph.
10626 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10628         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
10629         priority signed types.
10631 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10633         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
10634         the call to lang_hooks.types.type_for_size.  Call
10635         build_nonstandard_integer_type.
10637 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10639         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
10640         (openscop_print_polyhedron_matrix): New.
10641         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
10642         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
10643         (openscop_print_pdr_powerset): New.
10644         (openscop_print_powerset_matrix): New.
10645         (openscop_print_scattering_function_1): New.
10646         (print_scattering_function): Add support for scattering names and
10647         OpenScop format.
10648         (graphite_write_transforms): Remove.
10649         (print_pdr_access_layout): Updated to support OpenScop format.
10650         (print_pdr): Same.
10651         (openscop_print_pbb_domain): New.
10652         (print_pbb_body): Added a parameter to allow indicating that pbb_body
10653         is not provided.
10654         (print_pbb): Updated to call the new print_pbb_body.
10655         (openscop_print_scop_context): New.
10656         (print_scop_header): New.
10657         (print_scop): Updated to call print_scop_header.
10658         * graphite-poly.h: Document OpenScop format.
10660 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
10662         * config/cris/m32c.c (cris_memory_move_cost): New.
10663         (cris_register_move_cost): Make static. Change arguments type from
10664         enum reg_class to reg_class_t.
10665         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
10666         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10667         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
10669 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
10671         PR target/45843
10672         * config/i386/i386.c (ix86_gimplify_va_arg): Use
10673         INTVAL (XEXP (slot, 1)) as prev_size.
10675 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
10677         PR target/45837
10678         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
10679         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
10680         defined.
10681         * config/rs6000/option-defaults.h (toplevel): Change #if
10682         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
10683         global option changes.
10685 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
10687         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
10689         PR tree-optimization/31261
10690         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
10691         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
10693 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10695         PR bootstrap/45796
10696         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
10697         special-casing for generators and turn into ...
10698         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
10699         rule, for better error messages in case of toplevel dependency errors.
10700         (genprog): Add hooks, rename to ...
10701         (genprogerr): ... this, and let genprog also contain check,
10702         checksum, condmd.
10703         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
10704         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
10705         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
10707 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
10708             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10710         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
10711         for GMP, MPFR and MPC.
10713 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10715         * config/sparc/sparc.opt (mimpure-text): Move ...
10716         * config/sol2.opt: ... here.  Correct description.
10717         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
10718         * doc/invoke.texi (Option Summary, SPARC Options): Move
10719         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
10720         (Option Summary, Solaris 2 Options): ... here.
10721         (Submodel Options, Solaris 2 Options): New menu entry.
10722         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
10723         (Solaris 2 Options): ... here.
10725 2010-09-30  Michael Eager  <eager@eagercon.com>
10727         * extend.texi (interrupt_handler): Add MicroBlaze to list.
10728         (save_volatiles): Describe option for MicroBlaze.
10729         * invoke.texi: Add MicroBlaze Options.
10730         * contrib.texi: Add acknowledgment.
10731         * md.texi: Add MicroBlaze d and z constraints.
10732         * install.texi: Add microblaze-*-elf.
10733         * configure.ac: Add microblaze-*-* to target list.
10734         * configure: Regenerate.
10735         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
10736         * config/microblaze/microblaze-protos.h: New.
10737         * config/microblaze/crti.s: New.
10738         * config/microblaze/predicates.md: New.
10739         * config/microblaze/linux.h: New.
10740         * config/microblaze/microblaze.md: New.
10741         * config/microblaze/constraints.md: New.
10742         * config/microblaze/crtn.s: New.
10743         * config/microblaze/microblaze.opt: New.
10744         * config/microblaze/microblaze-c.c: New.
10745         * config/microblaze/t-microblaze: New.
10746         * config/microblaze/microblaze.c: New.
10747         * config/microblaze/microblaze.h: New.
10749 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
10751         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
10752         parse @optional/@required and set the flags as appropriate.
10754 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
10756         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
10758 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
10760         * opt-functions.awk (static_var): Update comment.
10761         (var_ref): Return offsetof expression or -1, not variable address.
10762         * optc-gen.awk: Generate structure field initializers instead of
10763         static variables.  Expect -1 for missing variables instead of null
10764         pointer.  Add gcc_options parameters to generated functions.
10765         * opth-gen.awk: Generate structure fields for static variables.
10766         Add gcc_options parameters to generated functions.
10767         * common.opt (optimize, optimize_size): Add variables.
10768         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
10769         &global_options to cl_target_option_restore.
10770         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
10771         &global_options to cl_optimization_restore, cl_target_option_save
10772         and cl_target_option_restore.
10773         (ix86_set_current_function): Pass &global_options to
10774         cl_target_option_restore.
10775         * config/pdp11/pdp11.h (optimize): Remove.
10776         * config/rs6000/rs6000.h (optimize): Remove.
10777         * config/sh/sh.h (optimize): Remove.
10778         * config/xtensa/xtensa.h (optimize): Remove.
10779         * coretypes.h (struct gcc_options): Declare.
10780         * diagnostic.c (diagnostic_initialize): Initialize
10781         context->option_state.
10782         (diagnostic_report_diagnostic): Pass option_state to
10783         option_enabled hook.
10784         * diagnostic.h (diagnostic_context.option_enabled): Add void *
10785         parameter.
10786         (diagnostic_context.option_state): New field.
10787         * final.c (final_start_function, final, final_scan_insn): Rename
10788         optimize parameter to optimize_p.
10789         * flags.h (optimize, optimize_size): Remove.
10790         * function.c (invoke_set_current_function_hook): Pass
10791         &global_options to cl_optimization_restore.
10792         * gcc.c (driver_handle_option): Take gcc_options parameter.
10793         Assert that it is &global_options.
10794         (process_command): Pass &global_options to read_cmdline_option.
10795         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
10796         option_enabled.
10797         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
10798         &global_options to set_option.
10799         * opts-common.c (handle_option, handle_generated_option,
10800         read_cmdline_option, set_option): Take explicit gcc_options
10801         parameters.  Use option_flag_var.
10802         (option_flag_var): New.
10803         * opts.c (common_handle_option, lang_handle_option,
10804         target_handle_option): Take gcc_options parameter.  Assert that it
10805         is &global_options.
10806         (read_cmdline_options): Pass &global_options to read_cmdline_option.
10807         (print_filtered_help): Use option_flag_var.  Pass &global_options
10808         to option_enabled.
10809         (common_handle_option): Use option_flag_var.
10810         (option_enabled): Take opts parameter.  Use option_flag_var.
10811         (get_option_state): Take gcc_options parameter.  Use
10812         option_flag_var.  Pass gcc_options parameter to option_enabled.
10813         (enable_warning_as_error): Pass &global_options to
10814         handle_generated_option.
10815         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
10816         (cl_option_handler_func.handler): Take gcc_options parameter.
10817         (option_enabled, get_option_state, set_option, handle_option,
10818         handle_generated_option, read_cmdline_option): Take gcc_options
10819         parameters.
10820         * toplev.c (optimize, optimize_size): Remove.
10821         (print_switch_values): Pass &global_options to option_enabled.
10822         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
10823         to get_option_state.
10824         (general_init): Initialize global_dc->option_state.
10825         * tree.c (build_optimization_node): Pass &global_options to
10826         cl_optimization_save.
10827         (build_target_option_node): Pass &global_options to
10828         cl_target_option_save.
10830 2010-09-30  Martin Jambor  <mjambor@suse.cz>
10832         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
10833         zero sized bit-fields.
10835 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
10837         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
10838         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
10839         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
10840         (c_parser_objc_class_declaration): Same change.
10841         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
10842         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10843         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
10844         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
10845         and RID_AT_PUBLIC instead of RID_PUBLIC.
10846         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
10847         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10849 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
10851         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
10852         Add links to current providers of packages for Solaris and IRIX.
10854 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10856         Merge from 'apple/trunk' branch on FSF servers.
10857         * c-parser.c: Applied change originally in c-parse.in.
10859         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
10861         Radar 4281748
10862         * c-decl.c (start_decl): Check for redeclaration of class name.
10863         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
10865 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
10867         * config/ia64/ia64.c (ia64_builtin_decl): New.
10868         (TARGET_BUILTIN_DECL): Define.
10869         (ia64_builtins): New.
10870         (ia64_init_builtins): Save decls in ia64_builtins.
10872 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
10874         PR target/40457
10875         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
10876         (move2add_use_add3_insn): Likewise.
10877         (reload_cse_move2add): Likewise.
10878         * rtlanal.c (get_full_rtx_cost): New function.
10879         * rtl.h (struct full_rtx_costs): New.
10880         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
10881         costs_add_n_insns): New inline functions.
10882         (get_full_rtx_cost): Declare.
10884         PR c/45054
10885         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
10886         invariants.  Check for reg_equiv_invariant.
10887         (reload): Assert that spilled_pseudos is empty when returning.
10889 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
10891         * config/i386/mingw32.h (TARGET_64BIT): replaced by
10892         TARGET_64BIT_DEFAULT in #if check.
10894 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
10896         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
10898 2010-09-29  Mike Stump  <mikestump@comcast.net>
10900         * config/darwin.h (flag_mkernel): Remove.
10901         (flag_apple_kext): Likewise.
10903 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10904             Jack Howarth  <howarth@bromo.med.uc.edu>
10906         * config/darwin.opt (undefined): Add.
10908 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10910         PR testsuite/45664
10911         * configure.ac: Add --enable-indirect-function option.
10912         * config.gcc: Add default_gnu_indirect_function.
10913         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
10914         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
10915         * varasm.c (do_assemble_alias): Adjust for macro name change.
10916         * configure: Rebuilt.
10917         * doc/install.texi: Document --enable-indirect-function.
10919 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10921         * doc/options.texi (Variable, Var, Init): Update documentation
10922         without reference to VarExists.
10923         (VarExists): Remove.
10924         * common.opt, config/i386/i386.opt, config/linux.opt,
10925         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
10926         Don't use VarExists.
10928 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10930         * optc-gen.awk: Generate global_options initializer instead of
10931         individual variables.  Add x_ prefix to names of structure members.
10932         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
10933         names of structure members.
10934         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10935         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
10936         * doc/tm.texi: Regenerate.
10937         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10938         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10939         * c-parser.c (disable_extension_diagnostics,
10940         restore_extension_diagnostics): Update names of cpp_options members.
10941         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10942         * common.opt (fcompare-debug-second): Don't use Var.
10943         * config/alpha/alpha.h (target_flags): Remove.
10944         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10945         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10946         * config/bfin/bfin.h (target_flags): Remove.
10947         * config/cris/cris.h (target_flags): Remove.
10948         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
10949         cl_target_option members.
10950         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
10951         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
10952         ix86_can_inline_p): Update names of cl_target_option members.
10953         * config/i386/i386.h (ix86_isa_flags): Remove.
10954         * config/lm32/lm32.h (target_flags): Remove.
10955         * config/mcore/mcore.h (mcore_stack_increment): Remove.
10956         * config/mcore/mcore.md (addsi3): Remove extern declaration of
10957         flag_omit_frame_pointer.
10958         * config/mep/mep.h (target_flags): Remove.
10959         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10960         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10961         * config/mmix/mmix.h (target_flags): Remove.
10962         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10963         flag_expensive_optimizations): Remove.
10964         * config/s390/s390.h (flag_pic): Remove.
10965         * config/score/score-conv.h (target_flags): Remove.
10966         * config/sh/sh.h (sh_fixed_range_str): Remove.
10967         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10968         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10969         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10970         * diagnostic.c (diagnostic_initialize): Update names of
10971         diagnostic_context members.
10972         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10973         warn_system_headers.
10974         (diagnostic_report_warnings_p): Update for new names.
10975         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10976         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10977         HARD_FRAME_POINTER_IS_ARG_POINTER.
10978         * flags.h (flag_compare_debug): Declare.
10979         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10980         * opts.c (flag_compare_debug): Define.
10981         (common_handle_option): Update names of diagnostic_context
10982         members.  Handle -fcompare-debug-second.
10983         (fast_math_flags_struct_set_p): Update names of cl_optimization
10984         members.
10985         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10986         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10987         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10988         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10989         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10990         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10991         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10992         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10993         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10995 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10997         * config/picochip/picochip.c (picochip_output_internal_label):
10998         This function can now be called for debug CFI labels, which can come
10999         in the middle of a vliw instruction.  Postpone until end of vliw.
11001 2010-09-29  Richard Guenther  <rguenther@suse.de>
11003         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
11004         (DECL_FILE_SCOPE_P): Use it.
11005         (TYPE_FILE_SCOPE_P): New macro.
11007 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11009         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
11010         a CPP_NAME which is a reserved word, clearly separate cases for
11011         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
11013 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11015         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
11016         token->value with the canonical spelling.  Do exactly like C and
11017         C++ and leave it as it is.
11019 2010-09-28  Richard Henderson  <rth@redhat.com>
11021         * config/alpha/alpha.c (alpha_builtins): New.
11022         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
11023         (alpha_builtin_function): New.
11024         (alpha_add_builtins, alpha_init_builtins): Use it.
11026 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
11028         * doc/standards.texi (Standards): Expanded the section on
11029         Objective-C and Objective-C++.
11031 2010-09-28  DJ Delorie  <dj@redhat.com>
11033         PR target/45800
11034         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
11035         volatile MEMs.
11037 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
11039         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
11040         attributes on methods.
11041          (c_parser_objc_method_definition): Handle attributes.
11042         (c_parser_objc_methodproto): Likewise.
11043         (c_parser_objc_maybe_method_attributes): New.
11044         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
11045         missing definition, similar to that in ObjC++.
11047 2010-09-28  Richard Henderson  <rth@redhat.com>
11049         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
11050         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
11051         (CONFIG_SJLJ_EXCEPTIONS): Remove.
11052         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
11053         (STACK_CHECK_PROTECT): Likewise.
11054         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
11055         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
11056         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
11057         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
11058         (dwarf2out_assembly_start): Likewise.
11059         * except.c (init_eh): Use targetm.except_unwind_info.
11060         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
11061         (output_one_function_exception_table): Likewise.
11062         * final.c: Unconditionally include dwarf2out.h.
11063         (final_start_function): Unconditionally call dwarf2out routines.
11064         (final_end_function, final_scan_insn): Likewise.
11065         * function.c (expand_function_end): Use targetm.except_unwind_info.
11066         * opts.c (decode_options): Use targetm.except_unwind_info.
11067         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
11068         * target.def (debug_unwind_info, except_unwind_info): New.
11069         * target.h (enum unwind_info_type): New.
11070         * targhooks.c (default_debug_unwind_info): New.
11071         (default_except_unwind_info): New.
11072         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
11073         * targhooks.h: Declare them.
11074         * tree-tailcall.c: Include "target.h"
11075         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
11076         * Makefile.in (tree-tailcall.o): Update.
11077         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
11078         (lhd_gcc_personality): Likewise.
11080         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
11081         (TARGET_EXCEPT_UNWIND_INFO): New.
11082         (DWARF2_UNWIND_INFO): Update.
11083         (TARGET_DEBUG_UNWIND_INFO): New.
11084         * doc/tm.texi: Rebuild.
11086         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
11087         targetm.except_unwind_info.
11089         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
11090         (arm_except_unwind_info): New.
11091         (arm_compute_func_type): Use it.
11092         (arm_expand_prologue, thumb_pushpop): Likewise.
11093         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
11094         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
11095         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
11096         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
11097         (DWARF2_UNWIND_INFO): Remove.
11098         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
11099         (ARM_EABI_UNWIND_TABLES): Remove.
11101         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
11102         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
11103         (ia64_except_unwind_info): New.
11104         (ia64_output_function_prologue): Use it.
11105         (ia64_add_bundle_selector_before): Likewise.
11106         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
11107         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
11108         (TARGET_UNWIND_INFO): Remove.
11110         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
11112 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
11114         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
11115         (c_parser_objc_protocol_definition): Likewise.
11116         (c_parser_external_declaration): Provide dummy attribute arguments.
11117         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
11118         (c_parser_objc_class_definition): Handle attributes.
11119         (c_parser_objc_protocol_definition): Likewise.
11121 2010-09-28  Tobias Burnus  <burnus@net-b.de>
11123         PR fortran/40569
11124         PR fortran/40568
11125         * toplev.h (save_decoded_options, save_decoded_options_count):
11126         New global variables.
11127         * toplev.c (save_decoded_options, save_decoded_options_count):
11128         Export variables.
11130 2010-09-28  Ian Lance Taylor  <iant@google.com>
11132         * config/i386/i386.c (ix86_supports_split_stack): Test
11133         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
11135 2010-09-28  Ian Lance Taylor  <iant@google.com>
11137         PR target/45815
11138         * opts.c (decode_options): Don't test whether the target supports
11139         split stack if flag_split_stack == 0.
11141 2010-09-28  Jan Hubicka  <jh@suse.cz>
11143         * builtin-attrs.def (ATTR_LEAF): New attribute.
11144         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
11145         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
11146         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
11147         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
11148         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
11149         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
11150         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
11151         * sync-builtins.def: Annotate all builtins by leaf.
11152         * omp-builtins.def: Annotate all builtins by leaf.
11153         * builtins.def: Annotate relevant builtins with leaf attribute.
11154         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
11155         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
11156         leaf.
11158 2010-09-28  Jan Hubicka  <jh@suse.cz>
11160         * tree-ssa-ccp.c (fold_ctor_reference): New function.
11161         (fold_const_aggregate_ref): Use it.
11162         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
11163         into external static.
11165 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11167         PR target/44452
11168         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
11169         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
11170         (ix86_solaris_return_in_memory): Remove.
11171         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
11172         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
11173         (TARGET_SUBTARGET_DEFAULT): Redefine.
11174         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
11175         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
11176         (TARGET_SUBTARGET_DEFAULT): Redefine.
11177         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
11178         -mvect8-ret-in-mem.
11179         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
11181 2010-09-29  Alan Modra  <amodra@gmail.com>
11183         PR target/45807
11184         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
11185         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
11186         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
11187         Delete.
11188         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
11189         (rs6000_emit_prologue): Don't just create frame save info for r2,
11190         actually save r2.
11192 2010-09-28  Richard Henderson  <rth@redhat.com>
11194         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
11195         when 8 bytes are requested.
11197 2010-09-28  Tristan Gingold  <gingold@adacore.com>
11199         * config/avr/avr.c (expand_prologue): Set
11200         current_function_static_stack_size.
11202 2010-09-28  Tristan Gingold  <gingold@adacore.com>
11204         * config/alpha/alpha.md: Change the initial condition of the
11205         probing loop.
11207 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
11209         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
11210         Split from *avx_<maxmin:code><mode>3.
11211         (*avx_<smaxmin:code><mode>3): Ditto.
11212         * config/i386/i386.md (maxmin): Remove code iterator.
11214 2010-09-27  Ian Lance Taylor  <iant@google.com>
11216         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
11217         requires assembler support for CFI directives.
11219 2010-09-27  Richard Henderson  <rth@redhat.com>
11221         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
11223 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
11225         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
11226         that AFTER is not in the range FROM..TO, inclusive.
11228 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
11229             Bernd Schmidt  <bernds@codesourcery.com>
11231         PR rtl-optimization/45792
11232         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
11233         If not all insns are to be merged, for each edge, stash the
11234         next candidate after the to-be-merged insns before doing the
11235         merge, and use them for the retry at the new insertion point.
11236         Handle CC0 targets when retrying.
11238 2010-09-27  Ian Lance Taylor  <iant@google.com>
11240         * common.opt (fsplit-stack): New option.
11241         * opts.c (decode_options): Set flag_split_stack to final value.
11242         * target.def (supports_split_stack): New hook.
11243         * gcc.c (STACK_SPLIT_SPEC): Define.
11244         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
11245         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
11246         (Code Gen Options): Document -fsplit-stack.
11247         * doc/extend.texi (Function Attributes): Mention no_split_stack.
11248         (Function Attributes): Document no_split_stack.
11249         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
11250         TARGET_SUPPORTS_SPLIT_STACK.
11251         * doc/tm.texi: Rebuild.
11252         * function.c (thread_prologue_and_epilogue_insns): If
11253         flag_split_stack, add split stack prologue.
11254         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
11255         * varasm.c (saw_no_split_stack): New static variable.
11256         (assemble_start_function): Set saw_no_split_stack if the function
11257         has the no_split_stack attribute.
11258         (file_end_indicate_split_stack): New function.
11259         * output.h (file_end_indicate_split_stack): Declare.
11260         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
11261         and function.
11262         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
11263         routines.
11264         * config/i386/i386.c (ix86_option_override_internal): Don't set
11265         expand_builtin_va_start to NULL if -fsplit-stack.
11266         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
11267         -fsplit-stack.
11268         (ix86_va_start): If -fsplit-stack, get overflow pointer from
11269         scratch register set by prologue.
11270         (ix86_code_end): If -fsplit-stack, call
11271         file_end_indicate_split_stack.
11272         (ix86_supports_split_stack): New static function.
11273         (SPLIT_STACK_AVAILABLE): Define.
11274         (split_stack_prologue_scratch_regno): New static function.
11275         (split_stack_fn): New static variable.
11276         (ix86_expand_split_stack_prologue): New function.
11277         (ix86_live_on_entry): New static function.
11278         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
11279         (output_pic_addr_const): Likewise.
11280         (i386_asm_output_addr_const_extra): Likewise.
11281         (ix86_expand_call): Change return type to rtx.  Return the new
11282         call instruction.
11283         (TARGET_SUPPORTS_SPLIT_STACK): Define.
11284         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
11285         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
11286         (split_stack_prologue, split_stack_return): New insns.
11287         (split_stack_space_check): New insn.
11288         * config/i386/i386.h (struct machine_function): Add
11289         split_stack_varargs_pointer field.
11290         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
11291         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
11292         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
11293         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
11294         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
11295         Declare.
11296         (ix86_expand_call): Update declaration.
11298 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
11300         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
11301         code.  Added byref, which was missing in the list of codes.
11302         Explain that enumeration values are encoded as the integer type
11303         that the compiler uses to store them.  Explain and make examples
11304         of how 'const' interacts with pointers, and the complication of
11305         the encoding of 'const char *'.
11306         (Legacy type encoding): New subsection, explaining that GCC emits
11307         incorrect type encodings for the NeXT runtime for compatibility
11308         reasons.
11309         (@@encode): New subsection, explaining @encode and particularly
11310         that protocol qualifiers are not recognized inside an @encode()
11311         expression.
11312         (Method signatures): New subsection, explaining how method
11313         signatures are encoded.
11315 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
11317         Merge from 'apple/trunk' branch on FSF servers.  Removed small
11318         change in build_conditional_expr that had been added when fixing
11319         PR objc/27377 and which did the same check in a less complete way.
11321         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
11323         Radar 4229905
11324         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
11325         looking for objective-c common pointer types.
11327         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
11329         Radar 4154928
11330         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
11331         use their ObjC common type.
11333 2010-09-27  Richard Guenther  <rguenther@suse.de>
11335         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
11337 2010-09-27  Jie Zhang  <jie@codesourcery.com>
11339         * print-tree.c (print_node): Print in-constant-pool.
11341 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
11343         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
11344         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
11345         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
11346         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
11348 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
11350         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
11351         from pro_epilogue_adjust_stack_<mode>_{1,2}.
11352         (pro_epilogue_adjust_stack_<mode>_add): Rename from
11353         pro_epilogue_adjust_stack_<mode>_3.
11354         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
11355         renamed pro_epilogue_adjust_stack_{si,di}_add.
11356         (ix86_expand_prologue): Use indirect functions.  Update for renamed
11357         pro_epilogue_adjust_stack_{si,di}_sub.
11359 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
11361         * config/i386/i386.md (movmsk_df): New insn.
11362         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
11363         sequence for TARGET_SSE_MATH.
11365 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
11367         * config/mips/mips.c (mips_builtin_decls): Declare.
11368         (mips_init_builtins): Store function declarations in
11369         mips_builtin_decls.
11370         (mips_builtin_decl): New function.
11371         (TARGET_BUILTIN_DECL): Define.
11373 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
11374             Richard Henderson  <rth@redhat.com>
11376         * config/i386/cygwin.asm: Include auto-host.h.
11377         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
11378         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
11379         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
11380         alignment code from the 64-bit path.  Use gas local labels.
11381         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
11382         from _di_2.  Remove the useless constant integer argument.
11383         (pro_epilogue_adjust_stack_<mode>_3): New.
11384         (allocate_stack_worker_probe_<mode>): Macroize from
11385         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
11386         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
11387         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
11388         (__chkstk_ms): New function.
11389         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
11390         * config/i386/t-interix: Likewise.
11391         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
11392         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
11393         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
11394         * configure, config.in: Rebuild.
11396 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
11398         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
11399         statements because of the return slot optimization.
11401 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
11403         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
11404         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
11405         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11406         (class_likely_spilled_p): Rename to...
11407         (avr_class_likely_spilled_p): ...this. Make static. Change argument
11408         type to reg_class_t.
11410 2010-09-24  Jan Hubicka  <jh@suse.cz>
11412         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
11413         (lto_symtab_resolve_symbols): Set it.
11414         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
11415         store resolution field in cgraph/varpool.
11416         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
11417         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
11418         (cgraph_dump_node): Drop used_from_object_file.
11419         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
11420         (cgraph_function_body_availability): Use decl_replaceable_p.
11421         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
11422         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
11423         cgraph_used_from_object_file_p.
11424         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
11425         cgraph_used_from_object_file_p.
11426         (resolution_used_from_other_file_p): New functoin.
11427         (cgraph_used_from_object_file_p): New predicate.
11428         * cgraph.h: Include plugin-api.h
11429         (struct cgraph_local_info): Remove used_from_object_file.
11430         (struct cgraph_node): Add resolution field.
11431         (struct varpool_node): Likewise; remove used_from_object_file;
11432         reove const_value_known.
11433         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
11434         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
11435         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
11436         varpool_used_from_object_file_p): Declare.
11437         (varpool_get_node, varpool_extra_name_alias): Update prototype.
11438         * tree.h (DECL_REPLACEABLE_P): Remove.
11439         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
11440         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
11441         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
11442         input_overwrite_node, input_node, input_varpool_node): Stream
11443         resolution.
11444         * expr.c (expand_expr_real_1): Use const_value_known_p
11445         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
11446         const_value_known.
11447         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
11448         (function_and_variable_visibility): Set resolution for local vars
11449         and functions; use varpool_used_from_object_file_p.
11450         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
11451         static functions.
11452         (default_binds_local_p_1): Use resolutoin info.
11453         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
11454         * varpool.c (varpool_get_node): Constify.
11455         (const_value_known_p): Do not use vnode->const_value_known;
11456         use decl_replaceable_p.
11457         (varpool_finalize_decl): Do not set const_value_known.
11458         (cgraph_variable_initializer_availability): Use decl_replaceable_p
11459         (varpool_extra_name_alias): Return new node.
11460         (varpool_used_from_object_file_p): New function.
11462 2010-09-24  Richard Henderson  <rth@redhat.com>
11464         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
11465         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
11466         (do_spill): Use REG_CFA_OFFSET.
11467         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
11468         as appropriate.
11469         (ia64_expand_epilogue): Likewise.
11470         (process_set): Split into ...
11471         (process_cfa_adjust_cfa): this,
11472         (process_cfa_register): this,
11473         (process_cfa_offset): and this new function.
11474         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
11475         instead of REG_FRAME_RELATED_EXPR.
11477 2010-09-24  Olivier Hainque  <hainque@adacore.com>
11479         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
11481 2010-09-24  Jan Hubicka  <jh@suse.cz>
11483         * doc/extend.texi: (attribute leaf): Document.
11484         * tree.c (local_define_builtin): Handle ECF_LEAF.
11485         (build_common_builtin_nodes): Set ECF_LEAF where needed.
11486         * tree.h (ECF_LEAF): New.
11487         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
11488         overwrittable and unavailable functions.
11489         (ipa_init): Put all_module_statics into optimization_summary_obstack.
11490         (copy_global_bitmap): Do not copy all_module_statics.
11491         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
11492         (propagate): Handle overwritable and unavailable leaf functions;
11493         initialize global info for overwritable and unavailable leaf functions;
11494         do not free all module statics.
11495         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
11496         local statics.
11497         * calls.c (flags_from_decl_or_type): Handle leaf.
11498         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
11499         abnormal gotos.
11501 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
11503         * gengtype.c: Reindented.
11504         * gengtype.h: Reindented.
11505         * gengtype-parse.c: Reindented.
11507 2010-09-24  Jan Hubicka  <jh@suse.cz>
11509         PR tree-optimization/45738
11510         PR tree-optimization/45741
11511         * expr.c (string_constant): Allow CONST_DECL too;
11512         check that DECL_INITIAL is set.
11513         * varpool.c (const_value_known_p): Only look into VAR_DECL
11514         and CONST_DECL.
11516 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
11518         * common.opt (undef): New.
11520 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
11522         PR middle-end/45234
11523         * rtl.h (enum global_rtl_index): Add
11524         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
11525         (LAST_VIRTUAL_POINTER_REGISTER): Define.
11526         (virtual_preferred_stack_boundary_rtx,
11527         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
11528         (LAST_VIRTUAL_REGISTER): Increase by one.
11529         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
11530         instead of LAST_VIRTUAL_REGISTER.
11531         * function.c (instantiate_new_reg): Handle
11532         virtual_preferred_stack_boundary_rtx.
11533         * emit-rtl.c (init_virtual_regs): Handle
11534         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
11535         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
11536         * explow.c (round_push): If crtl->preferred_stack_boundary
11537         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
11538         virtual_preferred_stack_boundary_rtx alignment instead of
11539         crtl->preferred_stack_boundary alignment.
11540         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
11541         macros.  Never decrease crtl->preferred_stack_boundary,
11542         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
11543         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
11544         stack_pointer_delta in dynamic allocation, even when size
11545         is constant.
11546         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
11547         macro.
11548         * print-rtl.c (print_rtx): Handle
11549         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
11550         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
11551         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
11552         * config/frv/frv.c (frv_emit_movsi): Likewise.
11553         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
11554         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
11555         Likewise.
11557         Revert:
11558         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11560         PR middle-end/45234
11561         * calls.c (expand_call): Make sure that all variable sized
11562         adjustments are multiple of preferred stack boundary after
11563         stack alignment.
11565 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
11566             Dominique Dhumieres  <dominiq@lps.ens.fr>
11568         PR bootstrap/45751
11569         * config/darwin-driver.c (darwin_default_min_version):
11570         Adjust size passed to memcpy in two places.
11572 2010-09-24  Richard Guenther  <rguenther@suse.de>
11574         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
11575         Make sure to not call set_type_context with error_mark_node.
11576         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
11578 2010-09-24  Richard Guenther  <rguenther@suse.de>
11580         * Makefile.in (OBJS-onestep): Remove.
11581         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
11582         (libbackend.a): Remove onestep support.
11583         (libbackend.o): Remove.
11584         * configure.ac (--enable-intermodule): Remove.
11585         * configure: Regenerate.
11587 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
11589         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
11590         reaching the end of a block if it occurs at a DEBUG_INSN.
11592 2010-09-09  Tristan Gingold  <gingold@adacore.com>
11594         PR target/44242
11595         * config/vms/vms-crt0-64.c: Removed.
11596         * config/vms/vms-crt0.c: Removed.
11597         * config/vms/vms-psxcrt0-64.c: Removed.
11598         * config/vms/vms-psxcrt0.c: Removed.
11599         * config/vms/vms-ucrt0.c: New file.
11600         * config/vms/t-vms64: Removed.
11601         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
11602         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
11603         * config.gcc (alpha-dec-vms): Use t-vms.
11605 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
11607         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
11608         underfull hbox in DVI output.
11609         (-fobjc-class-cxx-cdtors): Same change.
11610         (-fobjc-exceptions): Tidied up documentation.  Explain what the
11611         option does, but moved the (lenghty) description of the exception
11612         syntax into objc.texi.
11613         (-fobjc-gc): Explain that the option is not useful with the GNU
11614         runtime.
11615         (-fzero-link): Explain that the GNU runtime always works in
11616         "zero-link" mode.
11617         * doc/objc.texi: All sections: simplified @node declarations
11618         removing specification of next, previous, up node.
11619         (Objective-C): Updated introduction.
11620         (Garbage Collection): Updated.  The bohem-gc library is now
11621         included in gcc itself.  Mention that this section only applies to
11622         the GNU Objective-C runtime.
11623         (compatibility_alias): Small tidy up.
11624         (Exceptions): New section mostly containing text previously in the
11625         description of the -fobjc-exception command-line option.
11626         (Synchronization): Same.
11628 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
11630         * config/i386/i386.md (ix86_code_end): Move the initialization of
11631         xops array near the consumer.  Use AX_REG and SP_REG instead of
11632         numerical constants.
11634 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
11636         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
11637         method [methodname]' for an Objective-C method instead of the less
11638         satisfactory 'too many arguments to function' (with no method name).
11640 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
11642         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
11643         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
11644         (execute_update_addresses_taken): Remove parameter.  Execute the
11645         optimization unconditionally.
11646         * passes.c (execute_function_todo): Call execute_update_addresses_taken
11647         unconditionally if TODO_rebuild_alias is set, else only when optimizing
11648         if TODO_update_address_taken is set.
11650 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
11652         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11653         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
11654         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11655         (arm_output_addr_const_extra): Make static.
11657 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
11659         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
11660         define as unspec_volatile.
11661         ("nops"): Define as unspec_volatile. Use fputs to write to
11662         asm_out_file directly.  Output NOPs on separate lines using while loop.
11663         * config/i386/i386.c (ix86_code_end): Use fputs to write to
11664         asm_out_file directly.  Output NOPs on separate lines using while loop.
11666 2010-09-23  Richard Guenther  <rguenther@suse.de>
11668         PR tree-optimization/45565
11669         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
11670         Make sure to adjust the fndecl before replacing the stmt.
11672 2010-09-23  Richard Guenther  <rguenther@suse.de>
11674         PR middle-end/45750
11675         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
11676         gimplifying MEM_REF.
11678 2010-09-23  Alan Modra  <amodra@gmail.com>
11680         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
11681         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
11683 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
11685         PR rtl-optimization/44374
11686         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
11687         * df-core.c (df_set_bb_dirty): Set it.
11688         * ifcvt.c (find_memory): Remove function.
11689         (dead_or_predicable): Use can_move_insns_across.
11690         * df.h (can_move_insns_across): Declare function.
11691         * cfgcleanup.c (block_was_dirty): New static variable.
11692         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
11693         than df_get_bb_dirty.
11694         (try_head_merge_bb): New static function.
11695         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
11696         is set.
11697         * df-problems.c: Include "target.h"
11698         (df_simulate_find_uses): New static function.
11699         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
11700         (find_memory, find_memory_store): New static functions.
11701         (can_move_insns_across): New function.
11702         * Makefile.in (df-problems.o): Update dependencies.
11704 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11706         PR java/44095
11707         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
11708         is specified and the suffix of the file isn't ".c".
11709         * config/sparc/linux64.h (ASM_SPEC): Likewise.
11711 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11713         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
11714         * doc/cppopts.texi: Fix markup of index entry.
11715         * doc/extend.texi (Constructing Calls): Fix markup of
11716         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
11717         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
11718         (Vague Linkage, C++ Attributes): Fix markup of index entries and
11719         keywords.
11720         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
11721         avoid long lines.
11722         (C Dialect Options, C++ Dialect Options, Warning Options)
11723         (Debugging Options, Spec Files, Darwin Options)
11724         (i386 and x86-64 Options, MIPS Options)
11725         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
11726         index entries, avoid abbreviations, allow URLs to wrap, avoid
11727         long lines, avoid overlong pages from long @itemx lists.
11728         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
11729         * doc/standards.texi (Standards): Likewise.
11730         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
11732 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
11734         * opts-common.c (prune_options): Make static.  Work with decoded
11735         options.
11736         (decode_cmdline_options_to_array): Call prune_options.  Don't
11737         resize option array here.
11738         * opts.h (prune_options): Remove prototype.
11739         * gcc.c (process_command): Take decoded options; don't call
11740         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
11741         (main): Call decode_cmdline_options_to_array here instead of
11742         prune_options.  Update call to process_command.
11743         * config/darwin-driver.c: Include opts.h.
11744         (darwin_default_min_version): Work with decoded options.  Don't
11745         handle -b or -V here.
11746         * config/darwin.h (darwin_default_min_version): Update prototype.
11747         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
11748         darwin_default_min_version.
11749         * config/i386/cygwin.h (mingw_scan): Update prototype.
11750         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
11751         * config/i386/cygwin1.c: Include opts.h.
11752         (mingw_scan): Work with decoded options.
11753         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
11754         * config/t-darwin (darwin-driver.o): Update dependencies.
11756 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
11758         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
11759         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
11760         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
11761         -force-link, -force-link=, -language, -language=,
11762         -library-directory, -library-directory=, -no-canonical-prefixes,
11763         -no-standard-libraries, -no-warnings, -optimize, -output,
11764         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
11765         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
11766         -print-file-name=, -print-libgcc-file-name,
11767         -print-multi-directory, -print-multi-lib,
11768         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
11769         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
11770         -profile, -save-temps, -shared, -specs, -specs=, -static,
11771         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
11772         symbolic): New.
11773         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
11774         * gcc.c (A Short Introduction to Adding a Command-Line Option):
11775         Remove comment.
11776         (cc1_options): Correct specs for passing down --help,
11777         --target-help and --help=*.  Add spec for passing down --version.
11778         (struct option_map, option_map, target_option_translations,
11779         translate_options): Remove.
11780         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
11781         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
11782         OPT_fhelp_ and OPT_ftarget_help.
11783         (process_command): Don't call translate_options.  Call
11784         decode_cmdline_options_to_array before checking for
11785         -no-canonical-prefixes using decoded options.
11786         * opts-common.c (tm.h): Update comment on #include.
11787         (find_opt): Allow abbreviations of long options.
11788         (struct option_map, option_map): New.
11789         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
11790         and -mno handling.
11791         (target_option_translations): New.
11792         (decode_cmdline_options_to_array): Handle
11793         TARGET_OPTION_TRANSLATE_TABLE in driver.
11794         * opts.c (common_handle_option): Don't handle OPT_fhelp,
11795         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
11797 2010-09-22  Richard Guenther  <rguenther@suse.de>
11799         * tree-inline.c (optimize_inline_calls): Schedule cleanups
11800         only if we inlined something.  Block compaction and conditional
11801         folding are done by cfg cleanup.  Schedule update-address-taken.
11802         (tree_function_versioning): Remove redundant call to number_blocks.
11803         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
11804         folding is done by cfg cleanup.
11805         * passes.c (init_optimization_passes): Remove update-address-taken
11806         pass after IPA inlining.
11808 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
11810         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
11811         to update conditions. Fix reg_mode[] check.
11813 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
11815         * config/picochip/picochip.md (movhicc): Use expand to check whether
11816         movhicc is available and split it after reload.
11818 2010-09-22  Richard Guenther  <rguenther@suse.de>
11820         * tree-ssanames.c (release_dead_ssa_names): Do not remove
11821         callee edges here.
11822         * passes.c (init_optimization_passes): Remove early CFG cleanup.
11823         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
11824         (pass_cleanup_cfg): Likewise.
11825         (execute_fixup_cfg): Cleanup.
11826         * tree-pass.h (pass_cleanup_cfg): Remove.
11828 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11830         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
11831         builtins if it is true.
11832         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
11833         parameter.
11835 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11837         * tree-sra.c (struct access): New field grp_no_warning.
11838         (create_access_replacement): Set TREE_NO_WARNING according to
11839          grp_no_warning.
11840         (create_artificial_child_access): Use build_ref_for_model and set
11841         grp_no_warning if build_user_friendly_ref_for_offset fails.
11842         (propagate_subaccesses_across_link): Likewise.
11844 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11846         PR target/35664
11847         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
11848         ('f'): Likewise.
11850 2010-09-22  Tristan Gingold  <gingold@adacore.com>
11852         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
11854 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
11856         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
11857         * config/i386/i386.c (decide_alg): Update for rename.
11859 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
11861         PR rtl-optimization/45739
11862         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
11863         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
11865 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
11867         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
11868         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
11869         Remove.
11870         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
11871         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11873 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11875         PR objc/23710
11876         * c-parser.c (c_parser_objc_method_definition): Check the return
11877         value of objc_start_method_definition and if false is returned,
11878         parse the method definition but emit no code.
11880 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11882         PR objc/25965
11883         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
11884         call objc_get_interface_ivars ().
11886 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
11888         PR target/45694
11889         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
11890         static chain-register is used for 64-bit.
11892 2010-09-21  Richard Guenther  <rguenther@suse.de>
11894         * dwarf2out.c (is_cu_die): New function.
11895         (add_pubtype): Use it.
11896         (gen_subprogram_die): Likewise.
11897         (gen_struct_or_union_type_die): Likewise.
11898         (dwarf2out_finish): Likewise.
11899         (comp_unit_die): Rename to ...
11900         (single_comp_unit_die): ... this.
11901         (comp_unit_die): New function lazily constructing and
11902         returning single_comp_unit_die.
11903         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
11904         base_type_die, subrange_type_die, modified_type_die,
11905         lower_bound_default, add_bound_info, add_prototyped_attribute,
11906         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
11907         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
11908         force_decl_die, gen_namespace_die, dwarf2out_decl,
11909         dwarf2out_start_source_file, dwarf2out_end_source_file,
11910         prune_unused_types, dwarf2out_finish): Use it.
11911         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
11912         the global list of translation-unit decls.
11913         (dwarf2out_init): Do not create single_comp_unit_die here.
11914         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
11916 2010-09-21  Richard Guenther  <rguenther@suse.de>
11918         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
11919         for bool for C++.
11921 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
11923         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
11924         (qhs_extenddi_cstr): Likewise.
11925         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
11926         them for the source operand.
11928 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
11930         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
11931         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
11932         (ix86_split_ashr): Ditto.
11933         (ix86_split_lshr): Ditto.
11935 2010-09-21  Richard Guenther  <rguenther@suse.de>
11937         PR tree-optimization/45580
11938         * tree-ssa-propagate.c (substitute_and_fold): Always replace
11939         regular uses.
11940         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
11941         virtuals fold the call into a regular indirect one.
11943 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11945         PR rtl-optimization/42775
11946         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
11947         scheduling is enabled.
11949 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11951         PR rtl-optimization/45728
11952         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
11953         gen_lowpart_common first and if that fails, force_reg first
11954         before calling gen_lowpart.
11956         PR middle-end/45678
11957         * cfgexpand.c (expand_one_stack_var_at): Use
11958         crtl->max_used_stack_slot_alignment as max_align, instead
11959         of maximum of that and PREFERRED_STACK_BOUNDARY.
11960         Don't call update_stack_alignment.
11962 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11964         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11965         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11966         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11967         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11968         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11969         (build_nonstandard_integer_type): Likewise.
11970         (build_range_type_1): New function, built from...
11971         (build_range_type): ...this.  Call build_range_type_1.
11972         (build_nonshared_range_type): New function.
11973         (build_array_type_1): New function, built from...
11974         (build_array_type: ...this.  Call build_array_type_1.
11975         (build_nonshared_array_type): New function.
11976         * tree.h (build_nonshared_range_type): Declare.
11977         (build_nonshared_array_type): Likewise.
11979 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11981         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11982         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11983         (arm_class_likely_spilled_p): New function.
11985 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11987         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11988         indirect functions.
11989         (ix86_split_ashl): Ditto.
11990         (ix86_split_ashr): Ditto.
11991         (ix86_split_lshr): Ditto.
11992         (ix86_adjust_counter): Ditto.
11994 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11996         * c-family/c-common.h (constant_string_class): Documented with
11997         comment identical to the one already in c-common.c.
11999 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
12001         * dwarf2out.c (any_cfis_emitted): New static variable.
12002         (add_fde_cfi): Set it.
12003         (dwarf2out_frame_debug): Clear it before processing,
12004         if it is set afterwards, flush any queued reg saves.
12006         PR debug/45124
12007         * dwarf2out.c (add_accessibility_attribute): Assume
12008         DW_ACCESS_private as the default for dwarf_version > 2
12009         and DW_TAG_class_type parent.
12010         (gen_inheritance_die): Assume DW_ACCESS_public as the default
12011         for dwarf_version > 2 and parent other than DW_TAG_class_type.
12013 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
12015         PR target/45726
12016         * arm.md (arm_movt): Only enable on machines with MOVT.
12018 2010-09-20  Jie Zhang  <jie@codesourcery.com>
12020         * config/arm/arm.c (arm_address_offset_is_imm): New.
12021         (arm_early_store_addr_dep): New.
12022         (arm_early_load_addr_dep): New.
12023         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
12024         (arm_early_load_addr_dep): Declare.
12025         (arm_address_offset_is_imm): Declare.
12026         * config/arm/cortex-m4.md: New file.
12027         * config/arm/cortex-m4-fpu.md: New file.
12028         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
12029         (attr generic_sched): Exclude cortexm4.
12030         (attr generic_vfp): Exclude cortexm4.
12032 2010-09-20  Richard Guenther  <rguenther@suse.de>
12034         PR middle-end/45704
12035         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
12037 2010-09-20  Jan Hubicka  <jh@suse.cz>
12039         PR tree-optimize/45605
12040         * cgraph.h (const_value_known_p): Declare.
12041         (varpool_decide_const_value_known): Remove.
12042         * tree-ssa-ccp.c (get_base_constructor): Use it.
12043         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
12044         * expr.c (string_constant): Likewise.
12045         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
12046         * ipa.c (ipa_discover_readonly_nonaddressable_var,
12047         function_and_variable_visibility): Likewise.
12048         * gimplify.c (gimplify_call_expr): Likewise.
12049         * gimple-fold.c (get_symbol_constant_value): Likewise.
12050         * varpool.c (varpool_decide_const_value_known): Replace by...
12051         (const_value_known_p): ... this one; handle other kinds of DECLs
12052         too and work for automatic vars.
12053         (varpool_finalize_decl): Use const_value_known_p.
12055 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
12057         PR target/45726
12058         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
12060 2010-09-20  Richard Guenther  <rguenther@suse.de>
12062         PR tree-optimization/45705
12063         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
12065 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
12067         PR rtl-optimization/45695
12068         * combine.c (try_combine): When splitting a two set pattern,
12069         make sure the pattern which will be put into i2 doesn't use REGs
12070         or MEMs set by insns in between i2 and i3.
12072 2010-09-19  Jan Hubicka  <jh@suse.cz>
12074         PR lto/44246
12075         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
12076         processing same node twice.
12078 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
12080         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
12081         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12082         (bfin_class_likely_spilled_p): New function
12084 2010-09-19  Ira Rosen  <irar@il.ibm.com>
12086         PR tree-optimization/45714
12087         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
12088         created in vectorizable_call instead of the original statement in
12089         def stmt updates.
12091 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
12093         * config/i386/i386-protos.h (split_double_mode): New prototype.
12094         (split_di, split_ti): Remove prototypes.
12095         * config/i386/i386.c (split_double_mode): New function.
12096         (split_di, split_ti): Remove.
12097         (ix86_expand_branch): Use split_double_mode.
12098         (ix86_split_to_parts): Ditto.
12099         (ix86_split_ashl): Ditto.
12100         (ix86_split_ashr): Ditto.
12101         (ix86_split_lshr): Ditto.
12102         (ix86_force_to_memory): Ditto.
12103         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
12105 2010-09-18  Jan Hubicka  <jh@suse.cz>
12107         PR tree-optimization/45453
12108         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
12109         virtual functions are reachable.
12110         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
12111         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
12112         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
12113         when modifying function.
12115 2010-09-18  Jan Hubicka  <jh@suse.cz>
12117         PR tree-optimization/45605
12118         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
12119         * gimple-fold.c (static_object_in_other_unit_p): New function.
12120         (canonicalize_constructor_val): Use it.
12121         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
12122         returning NULL.
12123         (gimple_fold_obj_type_ref_known_binfo): Use
12124         static_object_in_other_unit_p.
12126 2010-09-18  Richard Guenther  <rguenther@suse.de>
12128         PR tree-optimization/45709
12129         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
12130         insertions until after all PHI nodes of the block are processed.
12132 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
12134         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
12136 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
12138         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
12140 2010-09-18  Richard Guenther  <rguenther@suse.de>
12142         PR tree-optimization/45709
12143         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
12145 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
12147         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
12148         (dot_deps_stmt): Same.
12149         * graphite-poly.c (dot_lst): Same.
12150         * graphite-scop-detection.c (dot_all_scops): Same.
12151         (dot_scop): Same.
12153 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
12155         Revert:
12156         2009-12-16  Ben Elliston  <bje@au.ibm.com>
12158         * tree-data-ref.c (dot_rdg_1): Added back.
12159         (dot_rdg): Same.  Added "#if 0" around system call.
12161 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12162             Richard Henderson  <rth@redhat.com>
12164         * config/i386/i386.c (initial_ix86_tune_features): Add
12165         X86_TUNE_PAD_SHORT_FUNCTION.
12166         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
12167         (ix86_count_insn): New.
12168         (ix86_pad_short_function): Likewise.
12169         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
12171         * config/i386/i386.h (ix86_tune_indices): Add
12172         X86_TUNE_PAD_SHORT_FUNCTION.
12173         (TARGET_PAD_SHORT_FUNCTION): New.
12175         * config/i386/i386.md (UNSPEC_NOPS): New.
12176         (nops): Likewise.
12178 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12180         PR middle-end/45234
12181         * calls.c (expand_call): Make sure that all variable sized
12182         adjustments are multiple of preferred stack boundary after
12183         stack alignment.
12185 2010-09-17  DJ Delorie  <dj@redhat.com>
12187         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
12188         passed an invalid value, print an error instead of ICEing.
12189         (valid_psw_flag): New.
12190         (rx_expand_builtin): Call it for setpsw/clrpsw.
12191         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
12193         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
12194         (bitclr_in_memory): Likewise.
12195         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
12197 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12199         PR middle-end/45678
12200         * cfgexpand.c (update_stack_alignment): New.
12201         (get_decl_align_unit): Use it.
12202         (expand_one_stack_var_at): Call update_stack_alignment.
12204 2010-09-17  Richard Guenther  <rguenther@suse.de>
12206         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
12207         Properly copy the read string.
12209 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
12211         * doc/options.texi (Variable): Document.
12212         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
12213         generate target_flags declarations explicitly.  Don't define
12214         VarExists variables for the driver.
12215         * common.opt (target_flags): New Variable record.
12216         (flag_dump_unnumbered, flag_dump_unnumbered_links,
12217         flag_var_tracking, flag_var_tracking_assignments,
12218         flag_var_tracking_assignments_toggle): Don't mark variables with
12219         VarExists.
12220         * config/i386/i386.c (ix86_isa_flags): Don't define here.
12221         * config/i386/i386.opt (ix86_isa_flags): Define here.
12222         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
12223         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
12224         VarExists.
12225         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
12226         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
12227         Only define for generator programs.
12228         * rtlanal.c (target_flags): Remove.
12229         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
12230         flag_var_tracking_assignments_toggle): Remove.
12232 2010-09-17  Michael Matz  <matz@suse.de>
12234         PR tree-optimization/43432
12235         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
12236         Accept backwards consecutive accesses.
12237         (vect_create_data_ref_ptr): If step is negative generate
12238         decreasing IVs.
12239         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
12240         (perm_mask_for_reverse, reverse_vec_elements): New functions.
12241         (vectorizable_load): Handle loads with negative steps when easily
12242         possible.
12244 2010-09-03  Jan Hubicka  <jh@suse.cz>
12246         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
12248 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
12250         * config/v850/v850.c (v850_function_value_regno_p): Make static.
12251         Adjust comments. Declare.
12252         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
12253         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
12255 2010-09-17  Richard Guenther  <rguenther@suse.de>
12257         * common.opt (combine): Remove.
12258         * gcc.c (default_compilers): Remove specs testing combine.
12259         The C compilers no longer can combine.
12260         (option_map): Remove -combine.
12261         (display_help): Remove -combine.
12262         (driver_handle_option): Remove OPT_combine handling.
12263         (compile_input_file_p): Remove.
12264         (do_spec): Remove code concerning combine.
12265         (main): Likewise.
12266         * doc/invoke.texi: Remove traces of -combine.
12267         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
12269 2010-09-17  Richard Guenther  <rguenther@suse.de>
12271         PR middle-end/45678
12272         * builtins.c (fold_builtin_memory_op): Always properly adjust
12273         alignment of memory accesses.
12275 2010-09-16  Jan Hubicka  <jh@suse.cz>
12277         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
12278         processing clone.
12280 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
12282         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
12284         * config/i386/i386.c (predict_jump): Add prototype.
12285         (flag_opts): Add -m8bit-idiv.
12286         (ix86_split_idivmod): New.
12288         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
12289         Add 2 splitters for SI/DI mode divide.
12290         (divmod<mode>4_1): New pattern.
12291         (udivmod<mode>4_1): Likewise.
12292         (testdi_ccno_1): Likewise.
12294         * config/i386/i386.opt (m8bit-idiv): New.
12296         * doc/invoke.texi: Document -m8bit-idiv.
12298 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
12300         PR bootstrap/45680
12301         * config/i386/i386.c (min_insn_size): Moved out of the
12302         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
12304 2010-09-16  Jan Hubicka  <jh@suse.cz>
12306         * lto-cgraph.c (lto_output_node): Fix handling of clones.
12307         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
12308         unreachable clones with reachable clones.
12309         * tree-inline.c (copy_bb): Fix sanity checking when producing
12310         unreachable clone.
12312 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
12314         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
12315         (TARGET_MEMORY_MOVE_COST): Define.
12316         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
12318 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
12320         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
12321         maybe_tidy_empty_bb.
12323         Revert:
12324         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12325         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12327 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
12329         * target.def (target_option.optimization): New hook.
12330         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
12331         TARGET_OPTION_OPTIMIZATION hook.
12332         * doc/tm.texi: Regenerate.
12333         * hooks.c (hook_void_int_int): New.
12334         * hooks.h (hook_void_int_int): Declare.
12335         * opts.c: Don't include tm_p.h.
12336         (decode_options): Use targetm.target_option.optimization instead
12337         of OPTIMIZATION_OPTIONS.
12338         * system.h (OPTIMIZATION_OPTIONS): Poison.
12339         * config/arm/arm-protos.h (arm_optimization_options): Remove.
12340         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
12341         (arm_optimization_options): Rename to arm_option_optimization.
12342         Make static.
12343         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
12344         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
12345         (cris_option_optimization): New.
12346         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
12347         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
12348         (crx_option_optimization): New.
12349         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
12350         * config/frv/frv-protos.h (frv_optimization_options): Remove.
12351         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
12352         (frv_optimization_options): Rename to frv_option_optimization.
12353         Make static.
12354         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
12355         * config/h8300/h8300.c (h8300_option_optimization): New.
12356         (TARGET_OPTION_OPTIMIZATION): Define.
12357         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
12358         * config/i386/i386-protos.h (optimization_options): Remove.
12359         * config/i386/i386.c (optimization_options): Rename to
12360         ix86_option_optimization.  Make static.
12361         (TARGET_OPTION_OPTIMIZATION): Define.
12362         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
12363         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
12364         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
12365         (ia64_optimization_options): Rename to ia64_option_optimization.
12366         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
12367         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
12368         commented-out definition.
12369         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
12370         instead of OPTIMIZATION_OPTIONS.
12371         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
12372         (m32r_option_optimization): New.
12373         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
12374         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
12375         Remove.
12376         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
12377         (mcore_option_optimization): New.
12378         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
12379         * config/mep/mep-protos.h (mep_optimization_options): Remove.
12380         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
12381         (mep_optimization_options): Rename to mep_option_optimization.
12382         Make static.  Take unused level and size parameters.
12383         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
12384         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
12385         (mmix_option_optimization): New.
12386         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
12387         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
12388         (pdp11_option_optimization): New.
12389         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
12390         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
12391         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
12392         (optimization_options): Rename to rs6000_option_optimization.
12393         Make static.
12394         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
12395         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
12396         * config/rx/rx.c (rx_set_optimization_options): Rename to
12397         rx_option_optimization.  Make static.  Take unused level and size
12398         parameters.
12399         (TARGET_OPTION_OPTIMIZATION): Define.
12400         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
12401         * config/s390/s390-protos.h (optimization_options): Remove.
12402         * config/s390/s390.c (optimization_options): Rename to
12403         s390_option_optimization.  Make static.  Don't mark size parameter
12404         unused.
12405         (TARGET_OPTION_OPTIMIZATION): Define.
12406         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
12407         * config/sh/sh-protos.h (sh_optimization_options): Remove.
12408         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
12409         (sh_optimization_options): Rename to sh_option_optimization.  Make
12410         static.  Don't mark parameters unused.
12411         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
12412         * config/spu/spu-protos.h (spu_optimization_options): Remove.
12413         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
12414         (spu_optimization_options): Rename to spu_option_optimization.
12415         Make static.
12416         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
12417         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
12418         (v850_option_optimization): New.
12419         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
12420         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
12421         (xtensa_option_optimization): New.
12422         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
12424 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
12426         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
12427         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
12428         * doc/tm.texi: Regenerate.
12429         * system.h (OVERRIDE_OPTIONS): Poison.
12430         * target.def (override): Default to hook_void_void.
12431         * targhooks.c (default_target_option_override): Remove.
12432         * genmodes.c, machmode.def: Update comments mentioning
12433         OVERRIDE_OPTIONS.
12434         * config/alpha/alpha-modes.def: Update comment mentioning
12435         alpha_override_options.
12436         * config/alpha/alpha-protos.h (override_options): Remove.
12437         * config/alpha/alpha.c (override_options): Rename to
12438         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
12439         (TARGET_OPTION_OVERRIDE): Define.
12440         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
12441         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
12442         of OVERRIDE_OPTIONS.
12443         * config/arc/arc-protos.h (arc_init): Remove.
12444         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
12445         (arc_init): Rename to arc_option_override.  Make static.
12446         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
12447         (OVERRIDE_OPTIONS): Remove.
12448         * config/arm/arm-protos.h (arm_override_options): Remove.
12449         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
12450         (arm_override_options): Rename to arm_option_override.  Make
12451         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
12452         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
12453         * config/arm/arm.md: Update comment referring to arm_override_options.
12454         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
12455         instead of OVERRIDE_OPTIONS.
12456         * config/avr/avr-protos.h (avr_override_options): Remove.
12457         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
12458         (avr_override_options): Rename to avr_option_override.  Make static.
12459         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
12460         * config/bfin/bfin-protos.h (override_options): Remove (twice).
12461         * config/bfin/bfin.c (override_options): Rename to
12462         bfin_option_override.  Make static.
12463         (TARGET_OPTION_OVERRIDE): Define.
12464         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
12465         * config/cris/cris-protos.h (cris_override_options): Remove.
12466         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
12467         (cris_override_options): Rename to cris_option_override.  Make static.
12468         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
12469         * config/frv/frv-protos.h (frv_override_options): Remove.
12470         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
12471         (frv_override_options): Rename to frv_option_override.  Make static.
12472         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
12473         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
12474         * config/h8300/h8300.c (h8300_init_once): Rename to
12475         h8300_option_override.  Make static.
12476         (TARGET_OPTION_OVERRIDE): Define.
12477         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
12478         * config/i386/i386-protos.h (override_options): Remove.
12479         * config/i386/i386.c (override_options): Rename to
12480         ix86_option_override_internal.  Make static.  Comments referring
12481         to this function and callers changed.
12482         (ix86_option_override): New.
12483         (TARGET_OPTION_OVERRIDE): Define.
12484         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
12485         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
12486         * config/ia64/ia64.c (ia64_file_start): Update comment referring
12487         to ia64_override_options.
12488         * config/iq2000/iq2000-protos.h (override_options): Remove.
12489         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
12490         (override_options): Rename to iq2000_option_override.  Make static.
12491         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
12492         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
12493         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
12494         (lm32_override_options): Rename to lm32_option_override.  Make static.
12495         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
12496         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
12497         (m32r_option_override): New.
12498         (m32r_init): Update comment.
12499         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
12500         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
12501         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
12502         (m68hc11_override_options): Rename to m68hc11_option_override.
12503         Make static.  Return void.
12504         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
12505         * config/m68k/m68k-protos.h (override_options): Remove.
12506         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
12507         (override_options): Rename to m68k_option_override.  Make static.
12508         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
12509         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
12510         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
12511         (mcore_override_options): Rename to mcore_option_override.  Make
12512         static.
12513         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
12514         * config/mep/mep-protos.h (mep_override_options): Remove.
12515         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
12516         (mep_override_options): Rename to mep_option_override.  Make static.
12517         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
12518         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
12519         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
12520         (mmix_override_options): Rename to mmix_option_override.  Make static.
12521         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
12522         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
12523         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
12524         (mn10300_override_options): Rename to mn10300_option_override.
12525         Make static.
12526         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
12527         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
12528         * config/moxie/moxie.c (moxie_override_options): Rename to
12529         moxie_option_override.  Make static.
12530         (TARGET_OPTION_OVERRIDE): Define.
12531         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
12532         * config/picochip/picochip-protos.h (picochip_override_options):
12533         Remove.  Update comment referring to picochip_override_options.
12534         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
12535         (picochip_override_options): Rename to picochip_option_override.
12536         Make static.  Update comment and definition of
12537         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
12538         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
12539         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12540         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12541         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12542         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12543         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12544         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
12545         instead of OVERRIDE_OPTIONS.
12546         * config/rs6000/rs6000-modes.def: Update comment referring to
12547         rs6000_override_options.
12548         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
12549         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
12550         (rs6000_override_options): Rename to
12551         rs6000_option_override_internal.  Make static.  Commented
12552         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
12553         (rs6000_option_override): New.
12554         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
12555         instead of OVERRIDE_OPTIONS.
12556         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12557         * config/s390/s390-protos.h (override_options): Remove.
12558         * config/s390/s390.c (override_options): Rename to
12559         s390_option_override.  Make static.
12560         (TARGET_OPTION_OVERRIDE): Define.
12561         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
12562         * config/score/score-protos.h (score_override_options): Remove.
12563         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
12564         (score_override_options): Rename to score_option_override.  Make
12565         static.
12566         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
12567         Update comment referring to override_options.
12568         * config/score/score3.c (score3_override_options): Rename to
12569         score3_option_override.
12570         * config/score/score3.h (score3_override_options): Rename to
12571         score3_option_override.
12572         * config/score/score7.c (score7_override_options): Rename to
12573         score7_option_override.
12574         * config/score/score7.h (score7_override_options): Rename to
12575         score7_option_override.
12576         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
12577         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
12578         (sparc_override_options): Rename to sparc_option_override.  Make
12579         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
12580         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
12581         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
12582         instead of OVERRIDE_OPTIONS.
12583         * config/spu/spu-protos.h (spu_override_options): Remove.
12584         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
12585         (spu_override_options): Rename to spu_option_override.  Make
12586         static.
12587         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
12588         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
12589         OVERRIDE_OPTIONS.
12590         * config/vax/vax-protos.h (override_options): Remove.
12591         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
12592         (override_options): Rename to vax_option_override.  Make static.
12593         Call SUBTARGET_OVERRIDE_OPTIONS.
12594         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
12595         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
12596         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
12597         * config/xtensa/xtensa-protos.h (override_options): Remove.
12598         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
12599         (override_options): Rename to xtensa_option_override.  Make static.
12600         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
12602 2010-09-16  Richard Guenther  <rguenther@suse.de>
12604         PR tree-optimization/45623
12605         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
12606         (get_constraint_for_component_ref): If computing a constraint
12607         for the rhs handle type punning through unions.
12608         (get_constraint_for_address_of): Adjust.
12609         (get_constraint_for_1): Likewise.
12610         (get_constraint_for): Likewise.
12611         (get_constraint_for_rhs): New function.
12612         (do_structure_copy): Adjust.
12613         (make_constraint_to): Likewise.
12614         (handle_const_call): Likewise.
12615         (find_func_aliases): Likewise.
12616         (process_ipa_clobber): Likewise.
12617         (create_variable_info_for): Likewise.
12619 2010-09-16  Ira Rosen  <irar@il.ibm.com>
12621         * tree-vectorizer.c: Fix documentation.
12622         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
12623         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
12624         is_pattern_stmt_p, is_loop_header_bb_p,
12625         stmt_vinfo_set_inside_of_loop_cost,
12626         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
12627         known_alignment_for_access_p): Likewise.
12628         * tree-vect-loop.c: Fix documentation.
12629         (vect_get_cost): Start function name from new line.
12630         * tree-vect-data-refs.c: Fix documentation.
12631         * tree-vect_stmts.c: Likewise.
12632         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
12633         (vectorizable_store): Free vec_oprnds if allocated.
12634         (vectorizable_condition): Initialize several variables to avoid
12635         warnings.
12636         * tree-vect-slp.c: Fix documentation.
12638 2010-09-16  Richard Guenther  <rguenther@suse.de>
12640         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
12641         is TS_TRANSLATION_UNIT_DECL.
12642         (initialize_tree_contains_struct): Adjust.
12643         (all_translation_units): New global vector.
12644         (build_translation_unit_decl): New function.
12645         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
12646         (struct tree_translation_unit_decl): New.
12647         (all_translation_units): Declare.
12648         (union tree_node): Add translation_unit_decl member.
12649         (build_translation_unit_decl): Declare.
12650         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
12651         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
12652         New function.
12653         (pack_value_fields): Call it.
12654         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
12655         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
12656         (lto_output_tree_pointers): Call it.
12657         * lto-streamer-in.c (lto_input_tree_ref): Handle references
12658         to TRANSLATION_UNIT_DECL.
12659         (unpack_ts_translation_unit_decl_value_fields): New function.
12660         (unpack_value_fields): Call it.
12661         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
12662         (lto_input_tree_pointers): Call it.
12663         * lto-streamer.c (check_handled_ts_structures): Adjust.
12664         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
12665         * c-decl.c (all_translation_units): Remove.
12666         (pop_scope): Use build_translation_unit_decl.
12667         (collect_all_refs): Adjust.
12668         (for_each_global_decl): Likewise.
12669         (c_write_global_declarations): Likewise.
12671 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
12673         PR bootstrap/45686
12674         * fold-const.c (fold_checksum_tree): Change slot from const void **
12675         to void **, use CONST_CAST_TREE to store into *slot.
12677 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
12679         * config/i386/i386.md: Remove unneeded empty conditions and
12680         preparation statements from expanders.
12681         * config/i386/mmx.md: Ditto.
12682         * config/i386/sse.md: Ditto.
12684 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
12686         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
12688 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12690         PR rtl-optimization/45593
12691         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
12692         insns that were in delay slots as stand-alone insns.
12694 2010-09-15  Ian Lance Taylor  <iant@google.com>
12696         * incpath.c (remove_duplicates): If name is not a directory, issue
12697         a warning rather than an error.
12699 2010-09-15  Martin Jambor  <mjambor@suse.cz>
12701         PR middle-end/45644
12702         * tree-sra.c (create_access): Check for bit-fields directly.
12704 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
12706         PR tree-optimization/45633
12707         * tree-cfg.c (verify_gimple_assign_binary): Allow
12708         MINUS_EXPR with lhs and rhs1 pointer vector and
12709         rhs2 sizetype vector.
12710         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
12711         or vector pointer use TER to optimize pointer subtraction.
12713 2010-09-15  Jie Zhang  <jie@codesourcery.com>
12715         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
12716         fcmpd to fcmps.
12718 2010-09-15  Ian Lance Taylor  <iant@google.com>
12720         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
12722 2010-09-15  Ian Lance Taylor  <iant@google.com>
12724         * function.c (get_arg_pointer_save_area): Set
12725         arg_pointer_save_area_init to true.
12727 2010-09-15  Martin Jambor  <mjambor@suse.cz>
12729         * tree-sra.c (generate_subtree_copies): Updated comment.
12730         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
12731         obtained from the statement iterator instead.
12732         (load_assign_lhs_subreplacements): Removed parameters lhs and
12733         right_offset, which is obtained from top_racc instead.  Parameter lacc
12734         is now expected to be the root of the processed tree rather than root's
12735         first child.  Updated all callers.
12737 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
12739         * config/pdp11/pdp11.c (register_move_cost): Rename to
12740         pdp11_register_move_cost.
12741         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
12742         pdp11_register_move_cost.
12743         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
12744         pdp11_register_move_cost instead of register_move_cost.
12746 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
12748         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
12749         pattern for vmovn. Expansion in case of non
12750         -mvectorize-with-neon-quad.
12751         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
12752         non- -mvectorize-with-neon-quad case.
12753         (move_lo_quad_<mode>): New expansion to vmov into low part.
12754         (move_hi_quad_<mode>): New expansion to vmov into high part.
12755         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
12756         (move_lo_quad_v4sf): Likewise.
12757         (move_lo_quad_v8hi): Likewise.
12758         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
12759         low part.
12760         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
12761         high part.
12762         * config/arm/iterators.md (ANY128): New mode iterator.
12763         (V_narrow_pack): New mode attribute.
12764         (V_HALF): Add attribute.
12765         (V_DOUBLE): Add attribute.
12766         (V_mode_nunits): Add attribute.
12768 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12770         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
12771         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
12773 2010-09-15  Olivier Hainque  <hainque@adacore.com>
12774             Jose Ruiz  <ruiz@adacore.com>
12776         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
12777         * config/alpha/osf5-unwind.h: New file.
12779 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12781         PR bootstrap/45672
12782         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
12783         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12784         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12786 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12788         * c-lang.h (struct lang_type): Add variable_size GTY option.
12790 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12792         PR bootstrap/45672
12793         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12795 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12797         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
12798         result isn't used in memory address.
12800 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12802         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
12803         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
12804         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
12805         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
12806         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
12807         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
12809         * target.def: Add units_per_simd_word to vectorize.
12811         * targhooks.c (default_units_per_simd_word): New.
12812         * targhooks.h (default_units_per_simd_word): Likewise.
12813         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
12814         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12815         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
12816         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12817         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12818         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12819         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12820         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12822         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
12823         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
12825         * tree-vect-stmts.c: Don't include "tm_p.h".
12826         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
12827         with targetm.vectorize.units_per_simd_word.
12829         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
12831         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
12833         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
12834         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12836         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
12837         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
12839         * doc/tm.texi: Regenerated.
12841 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12843         * tree-vect-stmts.c: Include "tm_p.h".
12845         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
12846         out of RTX_CODE.
12848 2010-09-14  Martin Jambor  <mjambor@suse.cz>
12850         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
12851         location of generated statement.  Changed all callers.
12852         (build_ref_for_model): New parameter loc which used to set location of
12853         all generated expressions.  Changed all callers.
12854         (generate_subtree_copies): Likewise.
12855         (init_subtree_with_zero): Likewise.
12856         (sra_modify_expr): Set locations of all generated statements and
12857         expressions to the location the original statement.
12858         (handle_unscalarized_data_in_subtree): Likewise.
12859         (load_assign_lhs_subreplacements): Likewise.
12860         (sra_modify_constructor_assign): Likewise.
12861         (sra_modify_assign): Likewise.
12863 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
12865         PR target/45277
12866         PR target/45363
12867         PR target/45407
12868         * doc/install.texi (sparc*-*-*): New section.
12869         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
12871 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12873         PR middle-end/45567
12874         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
12875         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
12876         (expand_builtin): Adjust caller.
12877         (expand_builtin_unop): Only use subtarget if it has the right mode.
12879 2010-09-14  Tristan Gingold  <gingold@adacore.com>
12881         * configure.ac (plugins): Fix typos.
12882         * configure: Regenerate.
12884 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12886         PR debug/45660
12887         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
12888         gen_type_die for function/method return type.
12890 2010-09-14  Ira Rosen  <irar@il.ibm.com>
12892         PR tree-optimization/45470
12893         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12894         can throw an exception.
12895         * tree-vect-stmts.c (vectorizable_call): Likewise.
12897 2010-09-14  DJ Delorie  <dj@redhat.com>
12899         PR target/44749
12900         * config/mep/mep-protos.h (mep_save_register_info,
12901         mep_reinit_regs, mep_init_regs): Declare.
12903         * config/mep/mep.c: Move all target definitions to the end of the
12904         file to avoid the need for duplicate declarations.
12905         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
12906         (mep_reorg_erepeat): Remove unused variables.
12907         (mep_expand_builtin): Likewise.
12909         * config/mep/mep-pragma.c: Don't include rtl.h.
12910         (INVALID_REGNUM): New.
12911         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
12912         functions.
12913         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
12914         Avoid enum/integer math.
12916 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
12918         PR target/44749
12919         * config/mep/t-mep (GTM_H): Add insn-constants.h.
12920         * config/mep/mep.c (mep_conditional_register_usage): Take no
12921         parameters.
12922         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
12923         prototype.
12924         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
12925         call to mep_conditional_register_usage.
12927 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12929         PR debug/43937
12930         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
12931         the DECL as well.
12933 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
12935         PR rtl-optimization/45617
12936         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
12937         even if low N bits of X aren't known to be zero.
12939 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
12941         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
12943         * config/i386/i386.c (initial_ix86_tune_features): Add
12944         X86_TUNE_VECTORIZE_DOUBLE.
12945         (ix86_units_per_simd_word): New.
12947         * config/i386/i386.h (ix86_tune_indices): Add
12948         X86_TUNE_VECTORIZE_DOUBLE.
12949         (TARGET_VECTORIZE_DOUBLE): New.
12950         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
12952 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
12954         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
12955         (new_temp_expr_table): Allocate call_cnt vector.
12956         (free_temp_expr_table): Free it.
12957         (process_replaceable): Add call_cnt parm and set in vector.
12958         (find_replaceable_in_bb): Skip replacement if def/use span a call.
12959         (debug_ter): Dump call_cnt value, remove stderr uses.
12961 2010-09-13  Jan Hubicka  <jh@suse.cz>
12963         * tree.c (build_zero_cst): New.
12964         * tree.h (build_zero_cst): Declare.
12965         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12966         (get_base_constructor): Break out from ...
12967         (fold_const_aggregate_ref): Here; handle empty constructors.
12969 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12971         * config/arm/arm.md: (define_attr "conds"): Update comment.
12972         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12973         conds attribute to clob.
12974         (arm_sync_compare_and_swapsi): Likewise.
12975         (arm_sync_compare_and_swap<mode>): Likewise.
12976         (arm_sync_lock_test_and_setsi): Likewise.
12977         (arm_sync_lock_test_and_set<mode>): Likewise.
12978         (arm_sync_new_<sync_optab>si): Likewise.
12979         (arm_sync_new_nandsi): Likewise.
12980         (arm_sync_new_<sync_optab><mode>): Likewise.
12981         (arm_sync_new_nand<mode>): Likewise.
12982         (arm_sync_old_<sync_optab>si): Likewise.
12983         (arm_sync_old_nandsi): Likewise.
12984         (arm_sync_old_<sync_optab><mode>): Likewise.
12985         (arm_sync_old_nand<mode>): Likewise.
12987 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12989         * fwprop.c (forward_propagate_and_simplify): Only attach a
12990         REG_EQUAL note to an insn if the destination is a register.
12991         * gcse.c (try_replace_reg): Likewise.
12993 2010-09-13  Richard Guenther  <rguenther@suse.de>
12995         PR tree-optimization/45611
12996         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12997         (copy_ref_info): Likewise.
12999 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
13001         PR debug/45604
13002         PR debug/45419
13003         PR debug/45408
13004         * tree-pretty-print.c (dump_generic_node): Disregard top-level
13005         types of MEM_REF pointer types to the same type.
13007 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
13009         PR rtl-optimization/41087
13010         * ifcvt.c (noce_get_condition): Don't allow conditions with
13011         side-effects.
13013 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
13015         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13016         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
13017         * config/frv/frv.c (frv_register_move_cost): Make static. Change
13018         arguments type to reg_class_t. Add mode argument.
13019         (frv_memory_move_cost): New.
13020         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
13022 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
13024         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
13025         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
13027 2010-09-10  Jan Hubicka  <jh@suse.cz>
13029         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
13031 2010-09-10  Richard Guenther  <rguenther@suse.de>
13033         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
13034         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
13035         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
13036         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
13037         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
13039 2010-09-10  Richard Guenther  <rguenther@suse.de>
13041         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
13042         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
13043         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
13044         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
13046 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
13048         PR middle-end/45634
13049         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
13050         of string folding is of integral type.
13052 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
13054         * doc/invoke.texi (-x): Fix typo.
13056 2010-09-10  Richard Guenther  <rguenther@suse.de>
13058         PR debug/44115
13059         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
13060         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
13061         Output DECL_DEBUG_EXPR.
13062         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
13063         Input DECL_DEBUG_EXPR.
13065 2010-09-10  Richard Guenther  <rguenther@suse.de>
13067         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
13068         (build_index_type): Implement in terms of build_range_type.
13069         (build_range_type): Do not allow NULL_TREE type, improve
13070         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
13071         if we didn't hash.
13072         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
13073         create a distinct copy of the type.
13075 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
13077         * configure: Regenerated.
13078         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
13080 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13082         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
13083         * config/arm/cortex-a9-neon.md: New and partially generated.
13084         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
13086 2010-09-10  Richard Guenther  <rguenther@suse.de>
13088         * tree.h (build_index_2_type): Remove.
13089         * tree.c (build_index_2_type): Remove.
13091 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
13093         PR bootstrap/45630
13094         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
13095         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
13096         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
13098 2010-09-10  Martin Jambor  <mjambor@suse.cz>
13100         PR tree-optimization/44972
13101         * tree-sra.c: Include toplev.h.
13102         (build_ref_for_offset): Entirely reimplemented.
13103         (build_ref_for_model): New function.
13104         (build_user_friendly_ref_for_offset): New function.
13105         (analyze_access_subtree): Removed build_ref_for_offset check.
13106         (propagate_subaccesses_across_link): Likewise.
13107         (create_artificial_child_access): Use
13108         build_user_friendly_ref_for_offset.
13109         (propagate_subaccesses_across_link): Likewise.
13110         (ref_expr_for_all_replacements_p): Removed.
13111         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
13112         (sra_modify_expr): Use build_ref_for_model.
13113         (load_assign_lhs_subreplacements): Likewise.
13114         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
13115         checks for return values of build_ref_for_offset.
13116         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
13117         build_ref_for_offset.
13118         * ipa-prop.h: Include gimple.h
13119         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
13120         (ipa_analyze_indirect_call_uses): Update comment.
13121         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
13122         (IPA_PROP_H): Likewise.
13124 2010-09-10  Martin Jambor  <mjambor@suse.cz>
13126         PR tree-optimization/44972
13127         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
13128         calling build_ref_for_offset.
13130 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13132         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
13133         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
13134         * config/arm/arm-tune.md: Regenerate.
13135         * doc/invoke.texi (ARM Options): Document it.
13137 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
13139         * config/i386/i386.c: Include sched-int.h.
13140         (TARGET_SCHED_DISPATCH): Defined.
13141         (TARGET_SCHED_DISPATCH_DO): Defined.
13142         (DISPATCH_WINDOW_SIZE): Defined.
13143         (MAX_DISPATCH_WINDOWS): Defined.
13144         (MAX_INSN): Defined.
13145         (MAX_IMM): Defined.
13146         (MAX_IMM_SIZE): Defined.
13147         (MAX_IMM_32): Defined.
13148         (MAX_IMM_64): Defined.
13149         (MAX_LOAD): Defined.
13150         (MAX_STORE): Defined.
13151         (BIG): Defined.
13152         (dispatch_group): New.
13153         (num_allowable_groups): New.
13154         (group_name): New.
13155         (sched_insn_info_s): New.
13156         (dispatch_windows_s): New.
13157         (imm_info_s): New.
13158         (dispatch_window_list): New.
13159         (dispatch_window_list1): New.
13160         (get_mem_group): New.
13161         (is_cmp): New.
13162         (dispatch_violation): New.
13163         (is_branch): New.
13164         (is_prefetch): New.
13165         (init_window): New.
13166         (allocate_window): New.
13167         (init_dispatch_sched): New.
13168         (is_end_basic_block): New.
13169         (process_end_window): New.
13170         (allocate_next_window): New.
13171         (find_constant_1): New.
13172         (find_constant): New.
13173         (get_num_immediates): New.
13174         (has_immediate): New.
13175         (get_insn_path): New.
13176         (get_insn_group): New.
13177         (count_num_restricted): New.
13178         (fits_dispatch_window): New.
13179         (add_insn_window): New.
13180         (add_to_dispatch_window): New.
13181         (debug_dispatch_window_file): New.
13182         (debug_dispatch_window): New.
13183         (debug_insn_dispatch_info_file): New.
13184         (debug_ready_dispatch): New.
13185         (do_dispatch): New.
13186         (has_dispatch): New.
13187         * config/i386/i386.h (debug_ready_dispatch): Declared.
13188         (debug_dispatch_window): Declared.
13189         * config/i386/i386.opt (mdispatch-scheduler): New flag.
13190         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
13191         (TARGET_SCHED_DISPATCH_DO): New.
13192         * doc/tm.texi: Regererated.
13193         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
13194         ready_remove_first_dispatch
13195         (schedule_block): Call targetm.sched.dispatch and
13196         targetm.sched.dispatch_do.
13197         (sched_init): Call targetm.sched.dispatch and
13198         targetm.sched.dispatch_do.
13199         (ready_remove_first_dispatch): New.
13200         (number_in_ready): New.
13201         (get_ready_element): New.
13202         * hooks.c (hook_bool_rtx_int_false): New.
13203         (hook_void_rtx_int): New.
13204         * hooks.h (hook_bool_rtx_int_false): Declared.
13205         (hook_void_rtx_int): Declared.
13206         * sched-int.h (IS_DISPATCH_ON): Defined.
13207         (IS_CMP): Defined.
13208         (DISPATCH_VIOLATION): Defined.
13209         (FITS_DISPATCH_WINDOW): Defined.
13210         (DISPATCH_INIT): Defined.
13211         (ADD_TO_DISPATCH_WINDOW): Defined.
13212         (get_ready_element): Declared.
13213         (number_in_ready): Declared.
13214         * target.def (dispatch): Defined.
13215         (dispatch_do): Defined.
13217 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
13219         PR middle-end/45312
13220         * reload1.c (merge_assigned_reloads): Remove.
13221         (reload_as_needed): Don't call it.
13223 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
13225         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
13226         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13227         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13229 2010-09-09  Matthias Klose  <doko@ubuntu.com>
13231         PR bootstrap/43847
13232         * configure.ac (--enable-plugin): Enhance for cross builds.
13233         * configure: Regenerate.
13235 2010-09-09  Jan Hubicka  <jh@suse.cz>
13237         PR tree-optimization/45598
13238         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
13239         string folding is of integral type.
13241 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
13243         * configure.ac (gnu_indirect_function): New test.
13244         * configure: Rebuilt.
13245         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
13246         * defaults.h (IFUNC_ASM_TYPE): Provide default.
13248         * doc/extend.texi (Function Attributes): Document ifunc.
13249         * varasm.c (do_assemble_alias): Deal with ifuncs too.
13251 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
13253         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
13254         epilogue instruction move.
13256 2010-09-09  Jan Hubicka  <jh@suse.cz>
13258         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
13259         command line to allow more partitions than input files.
13261 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
13263         PR middle-end/44554
13264         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
13266 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
13268         PR middle-end/40386
13269         * ira.c (pseudo_for_reload_consideration_p): Don't use
13270         flag_ira_share_spill_slots.
13272 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13274         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
13275         point zero operands that fit into a single GPR.
13276         (s390_preferred_reload_class): Ensure we only return general-purpose
13277         register classes.
13278         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
13279         floating-point zero operands into GPRs.
13280         ("*mov<mode>_64"): Likewise.
13281         ("mov<mode>"): Likewise using lhi.
13283 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13285         * config/s390/s390.c (s390_symref_operand_p): Return false for
13286         literal pool references.
13287         (s390_check_qrst_address): Update caller.
13289 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
13291         * config/i386/predicates.md (ext_register_operand): Check that
13292         SUBREG_REG is really a register before looking for REGNO.
13293         (reg_not_xmm0_operand): Handle SUBREGs correctly.
13294         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
13296 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
13298         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
13299         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
13300         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
13301         * print-rtl.c (print_rtx): Likewise.
13302         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
13303         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
13304         for ADDR_EXPR with non-addressable object.
13305         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
13306         (struct dw_val_struct): Add v.val_decl_ref.
13307         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
13308         Handle DW_OP_GNU_implicit_pointer.
13309         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
13310         (get_ref_die_offset_label): New function.
13311         (implicit_ptr_descriptor): New function.
13312         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
13313         (loc_descriptor): Likewise.
13314         (gen_variable_die): Put even definitions into decl_die_table.
13315         (resolve_addr_in_expr): Resolve still unresolved
13316         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
13317         return false.
13318         (dwarf2out_finish): Call output_location_lists after outputting
13319         .debug_info and .debug_abbrev instead of before.
13321 2010-09-09  Roland McGrath  <roland@redhat.com>
13323         * dwarf2out.c (DWARF_REF_SIZE): Define.
13324         (size_of_loc_descr): Use it for DW_OP_call_ref.
13326 2010-09-09  Alan Modra  <amodra@gmail.com>
13328         * doc/invoke.text: Reinstate mcmodel=medium.
13329         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
13330         CMODEL_MEDIUM as default.
13331         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
13332         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
13333         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
13334         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
13336 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13338         PR target/45250
13339         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
13340         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
13341         (builtin_longjmp): Likewise.
13342         (allocate_stack): Use hard_frame_pointer_rtx instead of
13343         frame_pointer_rtx.
13344         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
13345         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
13346         (pa_can_eliminate): Likewise.
13347         (TARGET_INTERNAL_ARG_POINTER): Define.
13348         (TARGET_CAN_ELIMINATE): Define.
13349         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
13350         pointer.
13351         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
13352         (pa_internal_arg_pointer, pa_can_eliminate,
13353         pa_initial_elimination_offset): New.
13354         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
13355         (HARD_FRAME_POINTER_REGNUM): Set to register three.
13356         (INITIAL_FRAME_POINTER_OFFSET): Delete.
13357         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
13358         Define.
13359         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
13360         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
13361         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
13362         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
13363         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
13364         new soft frame pointer.
13365         * config/pa/pa64-regs.h: Likewise.
13367 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
13369         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
13370         numerical constant.
13371         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
13373 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
13375         PR debug/45531
13376         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
13378 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
13380         PR debug/45419
13381         PR debug/45408
13382         * tree-pretty-print.c (dump_generic_node): Disregard top-level
13383         qualifiers in otherwise equal MEM_REF pointer types.
13384         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
13385         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
13387 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13389         PR target/44392
13390         * config/arm/arm.md (bswapsi2): Handle condition correctly
13391         for armv6 and optimize_size.
13393 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13395         PR other/18555
13396         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
13398 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
13400         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
13401         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
13402         ix86_expand_strlen, legitimate_pic_address_disp_p,
13403         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
13404         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
13405         ix86_check_movabs, ix86_secondary_memory_needed): Change function
13406         prototype to bool.
13407         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
13408         return_in_memory_ms_64, ix86_check_movabs,
13409         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
13410         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
13411         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
13412         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
13413         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
13414         ix86_secondary_memory_needed): Change to bool.  Return
13415         "true" and "false" values.
13416         * config/i386/i386.md: Return "true" and "false" values.
13418 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13420         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13421         run_expensive_tests.
13423 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13425         * toplev.c (output_stack_usage): Use lbasename instead of basename.
13427 2010-09-08  Martin Jambor  <mjambor@suse.cz>
13429         PR other/45443
13430         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
13431         at -O3.
13433 2010-09-08  Richard Guenther  <rguenther@suse.de>
13435         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
13436         (visit): Adjust.
13437         (iterative_hash_gimple_type): Likewise.
13438         (gimple_type_hash): Likewise.
13439         (gimple_register_type): Likewise.
13440         (print_gimple_types_stats): Likewise.
13441         (free_gimple_type_tables): Likewise.
13443 2010-09-08  Michael Matz  <matz@suse.de>
13445         PR tree-optimization/43430
13446         * tree-vect-stmts.c (vectorizable_condition): Support multiple
13447         copies for conditional statements if it's not part of a reduction.
13449 2010-09-08  Michael Matz  <matz@suse.de>
13451         PR tree-optimization/33244
13452         * tree-ssa-sink.c (statement_sink_location): Don't sink into
13453         empty loop latches.
13455 2010-09-08  Richard Guenther  <rguenther@suse.de>
13457         PR tree-optimization/45578
13458         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
13459         Be more careful when transfering alignment information to
13460         the new induction variable.
13461         (copy_ref_info): Likewise.
13463 2010-09-08  Richard Guenther  <rguenther@suse.de>
13465         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
13466         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
13468 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
13470         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
13471         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
13473 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
13475         PR doc/45587
13476         * doc/md.texi: Fixed modes on several standard pattern names.
13478 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
13480         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
13481         (ashl<mode>3): ...this.
13482         (loongson_psra<V_suffix>): Rename to...
13483         (ashr<mode>3): ...this.
13484         (loongson_psrl<V_suffix>): Rename to...
13485         (lshr<mode>3): ...this.
13486         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
13487         (CODE_FOR_loongson_psllw): Define.
13488         (CODE_FOR_loongson_psrlh): Define.
13489         (CODE_FOR_loongson_psrlw): Define.
13490         (CODE_FOR_loongson_psrah): Define.
13491         (CODE_FOR_loongson_psraw): Define.
13493 2010-09-07  Richard Henderson  <rth@redhat.com>
13495         * tree-vect-data-refs.c: Include tm_p.h.
13496         * Makefile.in (tree-vect-data-refs.o): Update deps.
13497         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
13498         Move delarations outside #ifdef RTX_CODE.
13500 2010-09-07  Richard Henderson  <rth@redhat.com>
13502         * final.c (rest_of_handle_final): Unconditionally do
13503         output_function_exception_table before assemble_end_function.
13505 2010-09-07  Jan Hubicka  <jh@suse.cz>
13507         * tree-inline.c (tree_inlinable_function_p): Do not test
13508         DECL_REPLACEABLE_P.
13509         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
13510         update_callee_keys, cgraph_decide_inlining): Test function availability.
13511         * cif-code.def (OVERWRITABLE): New code.
13513 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
13514             Jack Howarth  <howarth@bromo.med.uc.edu>
13516         PR target/36502
13517         PR target/42313
13518         PR target/44651
13519         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
13520         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
13521         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
13522         MAX macro.
13524 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13526         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
13527         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
13529 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13531         * config.gcc: Don't append t-android for Android targets.
13533         * config/t-android: Removed.
13535 2010-09-07  Richard Henderson  <rth@redhat.com>
13537         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
13538         * doc/tm.texi.in: Add doc marker.
13539         * doc/tm.texi: Rebuild.
13540         * except.c (switch_to_exception_section): Always build.
13541         (output_one_function_exception_table): Move section switch,
13542         personality output, and label output ...
13543         (output_function_exception_table): ... here.  Use the new
13544         personality hook.
13546         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
13547         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
13548         TARGET_ASM_INIT_SECTIONS): New.
13549         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
13550         make static.
13551         (TARGET_ASM_UNWIND_EMIT): Update to match.
13552         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
13554         * config/arm/arm.c (arm_asm_emit_except_personality): New.
13555         (arm_asm_init_sections): New.
13556         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
13558 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13560         * config/arm/arm.md: Remove unused variable.
13562 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
13564         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13565         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
13566         (m32r_memory_move_cost): New function.
13568 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13570         * config.gcc: Append t-android for Android targets.
13572         * config/t-android: New.
13574 2010-09-07  Richard Henderson  <rth@redhat.com>
13576         * target.def (unwind_emit_before_insn): New hook.
13577         * doc/tm.texi.in: Add @hook marker for it.
13578         * doc/tm.texi: Rebuild.
13579         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
13581 2010-09-07  Martin Jambor  <mjambor@suse.cz>
13583         PR fortran/43665
13584         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
13585         are any type attributes.
13587 2010-09-07  Jan Hubicka  <jh@suse.cz>
13589         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
13590         array_ref_low_bound in string access folding.
13592 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
13594         PR target/45206
13595         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
13596         eh_return fixup sequence.
13598 2010-09-07  Jan Hubicka  <jh@suse.cz>
13600         * gimple-fold.c (maybe_fold_reference): Verify that operand is
13601         gimple_min_invariant.
13603 2010-09-07  Richard Guenther  <rguenther@suse.de>
13605         PR middle-end/45569
13606         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
13607         nor CONSTRUCTOR can trap.
13608         * tree-complex.c (update_complex_assignment): Update EH info.
13610 2010-09-07  Richard Guenther  <rguenther@suse.de>
13612         PR middle-end/45569
13613         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
13614         * passes.c (execute_function_todo): Do not verify anything if
13615         we saw errors.
13617 2010-09-07  Richard Guenther  <rguenther@suse.de>
13619         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
13621 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
13623         PR target/43137
13624         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
13625         New define_mode_attrs.
13626         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
13627         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
13628         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
13629         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
13630         Remove pool_range attribute.
13631         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
13632         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
13633         pool_range and neg_pool_range attributes.
13634         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
13635         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
13636         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
13638 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13640         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
13641         check glibc.
13643 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
13645         PR target/22152
13646         * config/i386/mmx.md (*mov<mode>_internal_rex64,
13647         *mov<mode>_internal_avx, *mov<mode>_internal,
13648         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
13649         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
13651 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
13653         * c-typeck.c (do_warn_double_promotion): Remove.
13654         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
13655         Objective-C++ too.
13657 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
13659         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
13660         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
13661         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
13662         argument type to reg_class_t. Change result type to bool.
13663         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13665 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
13667         PR libobjc/19850
13668         * gthr-posix.h (__gthread_objc_thread_detach): Use
13669         _objc_thread_attribs when detaching a thread.
13670         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
13672 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13674         PR target/45524
13675         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
13676         * configure: Regenerated.
13678 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13680         * combine.c (try_combine): Set subst_low_luid to i0.
13682 2010-09-06  Richard Guenther  <rguenther@suse.de>
13684         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
13685         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
13686         (build_aligned_type): Declare.
13687         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
13688         (check_aligned_type): New function.
13689         (build_aligned_type): Likewise.
13690         * expr.c (expand_assignment): Handle misaligned stores via
13691         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
13692         (expand_expr_real_1): Likewise.
13693         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
13694         * tree-vect-stmts.c (vectorizable_store): Do not build
13695         MISALIGNED_INDIRECT_REF but initialize alignment information.
13696         (vectorizable_load): Likewise.
13697         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
13698         handling.
13699         * cfgexpand.c (expand_debug_expr): Likewise.
13700         * dwarf2out.c (loc_list_from_tree): Likewise.
13701         * fold-const.c (maybe_lvalue_p): Likewise.
13702         (operand_equal_p): Likewise.
13703         (build_fold_addr_expr_with_type_loc): Likewise.
13704         * gimplify.c (gimplify_addr_expr): Likewise.
13705         (gimplify_expr): Likewise.
13706         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
13707         (verify_gimple_assign_single): Likewise.
13708         * tree-dump.c (dequeue_and_dump): Likewise.
13709         (tree_could_trap_p): Likewise.
13710         * tree-predcom.c (ref_at_iteration): Likewise.
13711         * tree-pretty-print.c (dump_generic_node): Likewise.
13712         (op_code_prio): Likewise.
13713         (op_symbol_code): Likewise.
13714         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
13715         * tree-ssa-loop-im.c (for_each_index): Likewise.
13716         (gen_lsm_tmp_name): Likewise.
13717         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
13718         (find_interesting_uses_address): Likewise.
13719         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
13720         * tree-ssa-operands.c (get_expr_operands): Likewise.
13721         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
13722         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
13723         (ao_ref_init_from_vn_reference): Likewise.
13724         * tree.c (staticp): Likewise.
13725         (build1_stat): Likewise.
13726         (reference_alias_ptr_type): Likewise.
13727         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
13728         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
13729         MISALIGNED_INDIRECT_REF handling.
13731 2010-09-06  Richard Guenther  <rguenther@suse.de>
13733         PR tree-optimization/45534
13734         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
13735         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
13736         on the target.
13737         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
13738         valid on the target.
13740 2010-09-06  Andreas Schwab  <schwab@redhat.com>
13742         * configure.ac: Quote argument of AC_MSG_WARN.
13743         * configure: Regenerate.
13745 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
13747         * sel-sched.c (move_cond_jump): Correct arguments to
13748         maybe_tidy_empty_bb.
13749         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
13751 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
13753         PR rtl-optimization/44919
13754         * sel-sched.c (move_cond_jump): Remove assert, check that
13755         the several blocks case can only happen with mutually exclusive
13756         insns instead.  Rewrite the movement code to support moving through
13757         several basic blocks.
13759 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
13761         * config/i386/i386.md (iptrsize): New mode attribute.
13762         (tp_seg): Ditto.
13763         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
13764         mode iterator.
13765         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
13766         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
13767         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
13768         (stack_tls_protect_set_<mode>): Ditto from
13769         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
13770         of thread base pointer load.
13771         (stack_tls_protect_test_<mode>): Ditto from
13772         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
13773         of thread base pointer load.
13774         (stack_protect_set): Rewrite using indirect functions.
13775         (stack_protect_test): Ditto.
13776         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
13777         (ix86_print_operand): Handle '@'.
13779 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
13781         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
13782         MINUS_EXPR.
13784 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
13786         * doc/invoke.texi: Document -Wdouble-promotion.
13787         * c-typeck.c (convert_arguments): Check for implicit conversions
13788         from float to double.
13789         (do_warn_double_promotion): New function.
13790         (build_conditional_expr): Use it.
13791         (build_binary_op): Likewise.
13793 2010-09-05  Richard Guenther  <rguenther@suse.de>
13795         PR tree-optimization/45535
13796         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
13797         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
13798         dereferencing it.
13799         (indirect_refs_may_alias_p): Likewise.
13801 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
13803         * config/sh/sh.c (sh_option_override): Make static.
13804         Adjust comments.  Declare.
13805         (sh_function_value_regno_p): Likewise.
13806         (sh_register_move_cost): Modify the arguments, make static.
13807         Adjust comments.  Declare.
13808         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
13809         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13810         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
13811         REGISTER_MOVE_COST): Delete.
13812         * config/sh/sh-protos.h (sh_override_options): Delete.
13813         (sh_register_move_cost): Delete.
13814         (sh_function_value_regno_p): Delete.
13816 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
13818         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
13819         m32r_function_value_regno_p): New functions.
13820         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13821         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
13822         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
13823         FUNCTION_VALUE_REGNO_P): Remove.
13825 2010-09-04  Jan Hubicka  <jh@suse.cz>
13827         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
13828         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
13829         fold_read_from_constant_string.
13831         * gimple.h (canonicalize_constructor_val): Declare.
13832         * gimple-fold.c (canonicalize_constructor_val): New function.
13833         (get_symbol_constant_value):Use it.
13834         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
13836 2010-09-04  Jan Hubicka  <jh@suse.cz>
13838         * tree-switch-conversion.c (build_one_array): Set constructor to be
13839         static.
13840         * varpool.c (varpool_finalize_decl): Compute const_value_known.
13842 2010-09-04  Richard Guenther  <rguenther@suse.de>
13844         PR bootstrap/45519
13845         * tree-flow.h (force_gimple_operand_1): Declare.
13846         (force_gimple_operand_gsi_1): Likewise.
13847         * gimplify.c (force_gimple_operand_1): New worker taking a
13848         gimple predicate for ...
13849         (force_gimple_operand): ... which now wraps it.
13850         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
13851         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
13852         last change.
13853         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
13854         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
13855         (create_mem_ref): Likewise.
13857 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
13859         * config/i386/predicates.md (sse_reg_operand): New predicate.
13860         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
13861         predicate for operand 1.
13862         (XFmode push splitter): Use fp_register_operand predicate
13863         for operand 1.
13864         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
13865         (SF-DF float_extend push splitter): Add reload_completed insn
13866         predicate.
13867         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
13868         MODEF mode macro.  Add reload_completed insn predicate.
13870 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
13872         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
13873         (struct df_extract_ref): Remove.
13874         (union df_ref_d): Remove extract_ref member.
13875         (df_ref_create): Remove last three arguments.
13876         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
13877         * df-scan.c (df_ref_record): Remove last three arguments, do not
13878         pass them to df_ref_create_structure.
13879         (df_uses_record): Remove first and last three arguments.  Replace
13880         first argument with DF_REF_REGULAR, adjust calls to remove the
13881         width, offset and mode.  Always call recursively on the second
13882         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
13883         (df_ref_create_structure): Remove first argument.
13884         (struct df_scan_problem_data): Remove ref_extract_pool.
13885         (df_scan_free_internal): Do not free it.
13886         (df_scan_alloc): Do not allocate it.
13887         (df_ref_create): Remove last three arguments, do not pass them to
13888         df_ref_create_structure.
13889         (df_free_ref): Remove DF_REF_EXTRACT case.
13890         (df_notes_rescan): Adjust call to df_uses_record.
13891         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
13892         Remove DF_REF_EXTRACT case.
13893         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
13894         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
13895         and SUBREG definitions.
13896         (df_get_conditional_uses): Remove references to width/offset/mode,
13897         adjust call to df_ref_create_structure.
13898         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13899         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
13900         calls to df_uses_record and df_ref_record.
13901         * fwprop.c (update_df): Remove references to width/offset/mode,
13902         adjust call to df_ref_create.
13904 2010-09-03  Jan Hubicka  <jh@suse.cz>
13906         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
13907         (build_cdtor_fns): Update use of build_cdtor.
13909 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
13911         * doc/options.texi (SeparateAlias): Document.
13912         * opt-functions.awk (switch_flags): Handle SeparateAlias.
13913         * opth-gen.awk: Generate enumeration names for options marked
13914         SeparateAlias, but not for those marked Ignore.
13915         * opts-common.c (generate_canonical_option): Don't output separate
13916         argument for options marked CL_SEPARATE_ALIAS.
13917         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
13918         * opts.h (CL_SEPARATE_ALIAS): New.
13919         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13920         CL_COMMON): Adjust definitions.
13921         * config/i386/darwin.opt, config/mips/sde.opt: New.
13922         * common.opt (fdump-final-insns): New.
13923         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13924         i386/darwin.opt.
13925         (mips*-sde-elf*): Add mips/sde.opt.
13926         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
13927         -mno-data-in-code and -mcode-xonly here.
13928         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
13929         * gcc.c (option_map): Add "j" to --dump entry.
13930         (translate_options): Don't translate -d to -foutput-class-dir= here.
13932 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
13934         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
13935         DR_IS_WRITE.
13936         (compute_all_dependences): Same.
13937         (create_rdg_edge_for_ddr): Same.
13938         * tree-data-ref.h (DR_IS_WRITE): New.
13939         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
13940         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
13941         (write_memrefs_written_at_least_once): Same.
13942         * tree-predcom.c (suitable_component_p): Same.
13943         (determine_roots_comp): Same.
13944         (execute_load_motion): Same.
13945         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
13946         (vect_enhance_data_refs_alignment): Same.
13947         (vect_analyze_group_access): Same.
13949 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13951         PR testsuite/42843
13952         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
13953         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
13955 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
13957         * dwarf2out.c (file scope): Remove #if0'd code.
13958         (gen_subprogram_die): Same.
13960 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13962         PR middle-end/45484
13963         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13964         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13965         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13966         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13967         * config/i386/i386.c (output_set_got): Call it.
13969 2010-09-03  Michael Matz  <matz@suse.de>
13971         PR middle-end/45415
13972         * tree-sra.c (sra_modify_assign): If we modify the statement,
13973         say so.
13975         * tree-ssa.c (verify_ssa): Check number of operands and links
13976         per statement to agree.
13978 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13979             Iain Sandoe  <iains@gcc.gnu.org>
13981         PR target/45476
13982         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13983         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13984         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13986 2010-09-03  Richard Guenther  <rguenther@suse.de>
13988         * lto-streamer-out.c (output_function): Output function
13989         start and end loci.
13990         * lto-streamer-in.c (input_function): Input function start
13991         and end loci.
13993 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13995         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13996         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13997         * configure: Regenerate.
13998         * aclocal.m4: Regenerate.
14000 2010-09-03  Jan Hubicka  <jh@suse.cz>
14002         PR lto/44812
14003         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
14004         on functions/variables in other partition.
14006 2010-09-03  Jan Hubicka  <jh@suse.cz>
14008         * cgraph.h (struct varpool_node): Add const_value_known.
14009         (varpool_decide_const_value_known): Declare.
14010         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
14011         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
14012         (input_varpool_node): Restore const_value_known.
14013         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
14014         initializer folding.
14015         * ipa.c (ipa_discover_readonly_nonaddressable_var,
14016         function_and_variable_visibility): Compute const_value_known.
14017         * gimple-fold.c (get_symbol_constant_value): Use varpool for
14018         initializer folding.
14019         * varpool.c (varpool_decide_const_value_known): New function.
14021 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
14023         * config/i386/i386.md: Remove empty preparation statements
14024         from splitters.
14026 2010-09-03  Jan Hubicka  <jh@suse.cz>
14028         * passes.c (rest_of_decl_compilation): Do not add local vars into
14029         varpool.
14030         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
14031         static or extern vars are in varpool.
14032         (varpool_finalize_decl): Sanity check that only static vars are
14033         finalized.
14035 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
14037         PR debug/45500
14038         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
14039         not just generic vectors with BLKmode.
14041 2010-09-03  Richard Guenther  <rguenther@suse.de>
14043         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
14044         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
14045         * tree.h (TMR_SYMBOL): Remove.
14046         (TMR_BASE, TMR_OFFSET): Adjust.
14047         (TMR_INDEX2): New.
14048         * alias.c (ao_ref_from_mem): Use TMR_BASE.
14049         * builtins.c (get_object_alignment): Merge TMR_BASE and
14050         TMR_SYMBOL handling.
14051         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
14052         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
14053         handling.  Also allow TARGET_MEM_REF as base address.
14054         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
14055         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
14056         base.  Gimplify TMR_INDEX2.
14057         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
14058         * tree-dfa.c (get_ref_base_and_extent): Likewise.
14059         (get_addr_base_and_unit_offset): Likewise.
14060         * tree-eh.c (tree_could_trap_p): Likewise.
14061         * tree-pretty-print.c (dump_generic_node): Likewise.
14062         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
14063         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
14064         base to index2.
14065         (get_address_description): Reconstruct addres description
14066         from merged TMR_BASE and TMR_INDEX2.
14067         (maybe_fold_tmr): Fold propagated addresses.
14068         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
14069         MEM_REF and TARGET_MEM_REF paths.
14070         (indirect_refs_may_alias_p): Likewise.
14071         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
14072         instead of TMR_SYMBOL.
14073         * tree-ssa-operands.c (get_tmr_operands): Simplify.
14074         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
14075         according to changes ...
14076         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
14077         Split TARGET_MEM_REF into two fields plus the base.
14078         * tree.c (mem_ref_offset): Simplify.
14079         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
14080         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
14081         Strip NOPs when folding MEM_REF addresses.
14082         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
14083         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
14084         (fold_gimple_assign): ... not here.
14086 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
14088         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
14089         * config/mips/mips.c (mips_shift_truncation_mask): New function.
14090         (TARGET_SHIFT_TRUNCATION_MASK): Define.
14092 2010-09-02  Richard Henderson  <rth@redhat.com>
14094         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
14095         instead of readelf in the test.
14096         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
14097         in the .debug_frame section for coff targets.
14098         * configure: Rebuild.
14100 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
14102         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
14103         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
14104         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14105         (m32c_class_likely_spilled_p): Make static. Change argument type to
14106         reg_class_t. Change result type to bool.
14108 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
14110         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
14111         to convert (double)(long) into a single FRIZ instruction or not
14112         when -ffast-math is used.
14114         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
14115         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
14116         or FRIZ instruction if -ffast-math.
14117         * config/rs6000/rs6000.md (friz): Ditto.
14119         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
14121 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14123         * opth-gen.awk (quote, comma): Remove unused variables.
14125 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
14127         * arm.c (arm_override_options): Correct fall-back code to use
14128         SUBTARGET_CPU_DEFAULT.
14130 2010-09-02  Julian Brown  <julian@codesourcery.com>
14132         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
14133         unspecs.
14134         (vcond<mode>, vcondu<mode>): New expanders.
14135         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
14136         comparisons with zero.
14137         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
14138         * config/arm/constraints.md (Dz): New constraint.
14140 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
14142         * target.def (class_likely_spilled_p): New hook.
14143         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
14144         * doc/tm.texi: Regenerate.
14145         * targhooks.c (default_class_likely_spilled_p): New function.
14146         * targhooks.h (default_class_likely_spilled_p): Declare.
14147         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
14148         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
14149         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
14150         Use fixed_reg_set instead of fixed_regs.
14151         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
14152         * calls.c (avoid_likely_spilled_reg): Ditto.
14153         * ira-conflicts.c (ira_build_conflicts): Ditto.
14154         * ira.c (update_equiv_regs): Ditto.
14155         * mode-switching.c (create_pre_exit): Ditto.
14156         * regmove.c (find_matches): Ditto.
14157         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
14158         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
14159         (small_register_class_p): New inline function.
14160         (push_secondary_reload, find_reusable_reload, find_reloads): Use
14161         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
14163         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
14164         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
14165         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14167 2010-09-02  Richard Guenther  <rguenther@suse.de>
14169         PR tree-optimization/44937
14170         PR tree-optimization/45412
14171         * ipa-split.c (split_function): Properly remove PHI nodes.
14173 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14175         * opts.h (struct cl_option): Add warn_message field.
14176         (struct cl_decoded_option): Add warn_message field.
14177         * doc/options.texi (Ignore, Warn): Document.
14178         * opt-functions.awk (needs_state_p): Don't consider aliases or
14179         ignored options to need state saved.
14180         * optc-gen.awk: Handle Warn and Ignore.
14181         * opth-gen.awk: Output OPT_SPECIAL_ignore.
14182         * opts-common.c (decode_cmdline_option): Set warn_message field.
14183         Handle ignored options.
14184         (decode_cmdline_options_to_array, generate_option,
14185         generate_option_input_file): Set warn_message field.
14186         (read_cmdline_option): Generate warnings from warn_message field.
14187         Handle ignored options.
14188         * common.opt (Wunreachable-code, fargument-alias,
14189         fargument-noalias, fargument-noalias-global,
14190         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
14191         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
14192         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
14193         ftree-salias): Mark Ignore.
14194         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
14195         -mintel-syntax and -mno-intel-syntax here.
14196         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
14197         using Warn.
14198         * opts.c (common_handle_option): Don't handle options marked as
14199         ignored.
14200         (enable_warning_as_error): Handle ignored options.
14202 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14204         PR driver/44076
14205         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
14206         alias_target fields.
14207         * opt-functions.awk (opt_sanitized_name): Don't handle
14208         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
14209         * optc-gen.awk: Generate alias fields.
14210         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
14211         Don't generate such constants for aliases.
14212         * opts-common.c (generate_canonical_option): New.
14213         (decode_cmdline_option): Handle aliases.  Use
14214         generate_canonical_option for known options instead of copying the
14215         input option text.
14216         * doc/options.texi (Alias): Document.
14217         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
14218         fstack-check, specs): Mark as aliases.
14219         * gcc.c (driver_handle_option): Canonicalize -L options to joined
14220         arguments.
14221         (driver_handle_option): Don't handle OPT_specs.
14222         * opts.c (common_handle_option): Don't handle options marked as
14223         aliases.
14224         (enable_warning_as_error): Handle aliases.
14225         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
14226         OPT_Wlarger_than_eq.
14227         * tree-optimize.c (tree_rest_of_compilation): Use
14228         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
14230 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
14232         * config/i386/i386.md (nonmemory_operand): New mode attribute.
14233         (push memory peephole2): Macroize peepholes using SWI mode iterator.
14234         (move immediate to memory peephole2): Macroize peepholes using
14235         SWI124 mode iterator.
14236         (non-pairable NOT peephole2): Macroize peepholes using SWI124
14237         mode iterator.
14238         (simple lea add peephole2): Macroize peepholes using SWI48
14239         mode iterator.
14240         (simple lea mult peephole2): Ditto.
14241         (imul by 3,5,9 to lea peephole2): Ditto.
14242         (mov $-1, reg peephole2): Macroize peepholes using SWI248
14243         mode iterator.
14244         (imul $32bit_imm,mem,reg peephole2): Ditto.
14245         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
14247 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
14249         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
14251 2010-09-02  Olivier Hainque  <hainque@adacore.com>
14253         PR middle-end/44763
14254         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
14255         (allocno_priority_compare_func): Use it instead of a straight
14256         difference computation over priorities.
14258 2010-09-02  Andi Kleen  <ak@linux.intel.com>
14260         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
14262 2010-09-02  Ira Rosen  <irar@il.ibm.com>
14264         * tree-vectorizer.h (get_later_stmt): New function.
14265         (vect_analyze_data_ref_dependences): Add argument.
14266         * tree-vect-loop.c (vect_analyze_loop): Update call to
14267         vect_analyze_data_ref_dependences.
14268         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
14269         New function.
14270         (vect_analyze_data_ref_dependence): Add argument for basic block
14271         dependencies. Check dependencies in basic block vectorization.
14272         (vect_analyze_data_ref_dependences): Add argument and update call to
14273         vect_analyze_data_ref_dependences.
14274         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
14275         (vect_bb_vectorizable_with_dependencies): New.
14276         (vect_slp_analyze_bb): Check dependencies in basic block.
14277         (vect_schedule_slp_instance): Insert stores before the last store in
14278         SLP instance.
14280 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
14282         PR target/45476
14283         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
14284         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
14286 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
14288         PR middle-end/45458
14289         * bb-reorder.c (add_labels_and_missing_jumps): Treat
14290         bbs ending with throwing insns like blocks ending with a call.
14291         (fix_up_fall_thru_edges): Likewise.
14293 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
14295         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
14296         (m32c_function_arg_advance): Delete.
14297         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14298         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
14299         comments.  Take a const_tree and a bool.  Declare.
14300         (m32c_function_arg_advance): Likewise.
14301         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14303 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
14305         PR target/45476
14306         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
14307         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
14308         * config/i386/mingw32.h: ... here.
14310 2010-09-01  Andi Kleen  <ak@linux.intel.com>
14312         PR lto/45475
14313         * lto-streamer-in.c (lto_input_ts_target_option): Add.
14314         (lto_input_tree_pointers): Call lto_input_ts_target_option.
14315         * lto-streamer-out (lto_output_ts_target_option): Add.
14316         (lto_output_tree_pointers): Call lto_output_ts_target_option.
14318 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
14320         PR/target 45452
14321         * config/i386/cygwin.h: Change order of specified import libraries.
14322         * config/i386/mingw32.h: Likewise.
14323         * config/i386/t-cygwin: Likewise.
14324         * config/i386/t-mingw32: Likewise.
14325         * config/i386/t-mingw-w32: Likewise.
14326         * config/i386/t-mingw-w64: Likewise.
14328 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14330         * config/arm/neon-schedgen.ml (core): New type.
14331         (allCores): List of supported cores.
14332         (availability_table): Add supported cores.
14333         (collate_bypasses): Accept core as a parameter.
14334         (worst_case_latencies_and_bypasses): Accept core as a parameter.
14335         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
14336         and coreStr to get tune attribute and prefix for functional units.
14337         (emit_bypasses): Accept core name and use it.
14338         (calculate_per_core_availability_table): New.
14339         (filter_core): New.
14340         (calculate_core_availability_table): New.
14341         (main): Use calculate_core_availablity_table.
14342         * config/arm/cortex-a8-neon.md: Update copyright year.
14343         Regenerated from ml file and merged in.
14344         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
14345         cortex_a8_neon_mrc.
14347 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
14349         * Makefile.in (tree-switch-conversion.o): Update dependencies.
14351 2010-09-01  Richard Guenther  <rguenther@suse.de>
14353         * alias.c (ao_ref_from_mem): Adjust.
14354         * builtins.c (get_object_alignment): Likewise.
14355         * cfgexpand.c (expand_debug_expr): Likewise.
14356         * gimple.c (get_base_address): Likewise.
14357         * tree-dfa.c (get_ref_base_and_extent): Likewise.
14358         (get_addr_base_and_unit_offset): Likewise.  Fix for
14359         both TMR_SYMBOL and TMR_BASE being set.
14360         * tree-eh.c (tree_could_trap_p): Likewise.
14361         * gimplify.c (gimplify_expr): Do not attempt to gimplify
14362         TMR_SYMBOL.  Always gimplify TMR_BASE.
14363         * tree-cfg.c (verify_types_in_gimple_reference): Verify
14364         TMR_BASE if there is a TMR_SYMBOL.
14365         * tree-pretty-print.c (dump_generic_node): Adjust.
14366         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
14367         (tree_mem_ref_addr): Likewise.
14368         (create_mem_ref_raw): Likewise.
14369         (move_fixed_address_to_symbol): Likewise.
14370         (create_mem_ref): Likewise.
14371         (dump_mem_address): Likewise.
14372         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
14373         Fix for both TMR_SYMBOL and TMR_BASE being set.
14374         (indirect_refs_may_alias_p): Likewise.
14375         * tree-ssa-operands.c (get_tmr_operands): Adjust.
14376         * tree.def (TARGET_MEM_REF): Adjust documentation.
14378 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
14380         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
14381         Rename from X86_TUNE_ADD_ESP_4.
14382         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
14383         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
14384         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
14385         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
14386         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
14387         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
14388         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
14389         * config/i386/i386.c (initial_ix86_tune_features)
14390         <X86_TUNE_SINGLE_POP>: Invert members.
14391         <X86_TUNE_DOUBLE_POP>: Ditto.
14392         <X86_TUNE_SINGLE_PUSH>: Ditto.
14393         <X86_TUNE_DOUBLE_PUSH>: Ditto.
14394         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
14395         No longer exported.
14396         (push peephole2 patterns): Macroize peepholes using P mode iterator.
14397         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
14398         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
14399         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
14401 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
14403         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
14404         a volatile LHS if the constructor has only one element.
14406 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
14408         PR bootstrap/45321
14409         * tree.c (stdarg_p): Make fntype parameter const.
14410         * tree.h (stdarg_p): Likewise.
14411         (function_args_iterator): Remove unused fntype field.
14412         (function_args_iter_init): Do not initialize fntype
14413         field.  Make fntype parameter const.
14415 2010-09-01  Richard Guenther  <rguenther@suse.de>
14417         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
14418         estimate.
14419         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
14420         (execute_vrp): Compute number of iteration estimates.
14421         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
14422         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
14423         * tree-data-ref.c (estimated_loop_iterations): Adjust.
14424         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
14425         Infer loop bounds from undefined behavior based on a new parameter.
14426         (estimate_numbers_of_iterations): Likewise.
14427         (scev_probably_wraps_p): Adjust.
14428         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
14430 2010-09-01  Nick Clifton  <nickc@redhat.com>
14432         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
14433         where appropriate.
14434         (xstormy16_legitimate_address_p): Use true and false instead of 1
14435         and 0.
14436         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
14437         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
14438         magic constant 2.
14439         (xstormy16_expand_call): Fix comment at start of function.
14441 2010-09-01  Nick Clifton  <nickc@redhat.com>
14443         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
14444         when pushing accumulator register.
14445         (rx_get_stack_layout): Always save call clobbered registers inside
14446         interrupt handlers.
14447         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
14449 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
14451         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
14452         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
14454         * libgcc-std.ver (GCC_4.6.0): Define version.
14456 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
14458         * tree-nested.c (convert_all_function_calls): Iterate until after the
14459         sum of static chains in the nest doesn't change.
14461 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
14463         * config/m32c/m32c.c (classes_intersect): Remove.
14464         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
14465         reg_classes_intersect_p instead of classes_intersect.
14466         (class_can_hold_mode): Change arguments type from enum reg_class to
14467         reg_class_t.  Use reg_class_contents instead of class_contents.
14468         (m32c_register_move_cost): Make static. Change arguments type from
14469         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
14470         classes_intersect. Use reg_class_contents instead of class_contents.
14471         (m32c_memory_move_cost): Make static. Change arguments type from
14472         enum reg_class to reg_class_t.
14473         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14474         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14475         * config/m32c/m32c-protos.h (m32c_register_move_cost,
14476         m32c_memory_move_cost): Remove.
14478 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14480         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
14481         (arm_function_arg): Delete.
14482         (arm_needs_doubleword_align): Take a const_tree.
14483         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14484         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
14485         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
14486         (arm_function_arg): Make static.  Take a const_tree and a bool.
14487         (arm_function_arg_advance): Likewise.
14488         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14490 2010-08-31  Andi Kleen  <ak@linux.intel.com>
14492         * common.opt (fwhopr=): Update for -fwhopr=jobserver
14493         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
14494         * lto-wrapper.c (run_gcc): Add jobserver mode.
14495         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
14496         argument.
14498 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
14500         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
14501         (popsi1): Ditto.
14502         (*popdi1_epilogue): Ditto.
14503         (*popsi1_epilogue): Ditto.
14504         (popsi, popdi peephole2 patterns): Update peepholes for changed
14505         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
14507         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
14508         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
14510         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
14511         (override_options): Do not initialize removed ix86_gen_pop1.
14512         (gen_pop): New static function.
14513         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
14514         (release_scratch_register_on_entry): Ditto.
14515         (ix86_restore_reg_using_pop): Ditto.
14516         (ix86_expand_epilogue): Ditto.
14518 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
14520         PR middle-end/45461
14521         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
14523 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14525         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
14526         semicolons.
14528 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14530         * doc/extend.texi: Fix documentation of the return value of
14531         __builtin_choose_expr.
14533 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14535         * config/v850/v850-protos.h (function_arg): Delete.
14536         * config/v850/v850.h (FUNCTION_ARG): Delete.
14537         (FUNCTION_ARG_ADVANCE): Move code to...
14538         * config/v850/v850.c (v850_function_arg_advance): ...here.
14539         (v850_function_arg): Make static.  Take a const_tree and a bool.
14540         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14542 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14544         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
14545         these...
14546         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
14547         ...and these...
14548         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
14549         ..to here..
14550         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
14551         ...and here.
14552         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14554 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14556         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
14557         Delete.
14558         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14559         * config/rx/rx.c (rx_function_arg_size): Make static.
14560         (rx_function_arg): Likewise.
14561         (rx_function_arg_advance): New function.
14562         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14564 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
14566         * config/arm/arm.c (arm_override_options): Remove superfluous test.
14567         Fix indentation.
14569 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
14571         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
14572         (dwarf2out_decl) <CONST_DECL>: Likewise.
14574 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
14576         Stack usage support
14577         * common.opt (-fstack-usage): New option.
14578         * doc/invoke.texi (Debugging options): Document it.
14579         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
14580         allocate_dynamic_stack_space.
14581         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
14582         and propagate it to allocate_dynamic_stack_space.
14583         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
14584         * calls.c (initialize_argument_information): Pass TRUE as 4th
14585         argument to allocate_dynamic_stack_space.
14586         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
14587         to 1 when pushing a variable-sized argument onto the stack.  Pass
14588         TRUE as 4th argument to allocate_dynamic_stack_space.
14589         Update current_function_pushed_stack_size.
14590         (emit_library_call_value_1): Likewise.
14591         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
14592         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
14593         attempt to find an upper bound.  Remove redundant code for the
14594         SETJMP_VIA_SAVE_AREA case.
14595         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
14596         * function.h (struct stack_usage): New structure.
14597         (current_function_static_stack_size): New macro.
14598         (current_function_dynamic_stack_size): Likewise.
14599         (current_function_pushed_stack_size): Likewise.
14600         (current_function_dynamic_alloc_count): Likewise.
14601         (current_function_has_unbounded_dynamic_stack_size): Likewise.
14602         (current_function_allocates_dynamic_stack_space): Likewise.
14603         (struct function): Add new field 'su'.
14604         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
14605         add the value of the dynamic offset to the dynamic stack usage.
14606         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
14607         for variable-sized objects.
14608         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
14609         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
14610         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
14611         BUILT_IN_ALLOCA for variable-sized objects.
14612         * output.h (output_stack_usage): Declare.
14613         * toplev.c (stack_usage_file): New file pointer.
14614         (output_stack_usage): New function.
14615         (open_auxiliary_file): Likewise.
14616         (lang_dependent_init): Open file if flag_stack_usage is set.
14617         (finalize): Close file if stack_usage_file is not null.
14618         * tree.h (ALLOCA_FOR_VAR_P): New macro.
14619         * config/alpha/alpha.c (compute_frame_size): New function.
14620         (alpha_expand_prologue): Use it.
14621         (alpha_start_function): Likewise.
14622         (alpha_expand_epilogue): Likewise.  Set stack usage info.
14623         * config/i386/i386.c (ix86_expand_prologue): Likewise.
14624         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
14625         * config/mips/mips.c (mips_expand_prologue): Likewise.
14626         * config/pa/pa.c (hppa_expand_prologue): Likewise.
14627         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
14628         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
14630 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
14632         PR tree-optimization/45427
14633         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
14634         Handle the case that the exit is never taken correctly.
14635         (number_of_iterations_ne): Pass exit_must_be_taken to
14636         number_of_iterations_ne_max.
14638 2010-08-30  Catherine Moore  <clm@codesourcery.com>
14640         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
14641         Infer -mdspr2 for the the 74K.
14643 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
14645         PR debug/45419
14646         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
14648         PR middle-end/45423
14649         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
14650         and TRUTH_{AND,OR,XOR}_EXPR.
14651         * c-parser.c (c_parser_omp_atomic): Handle boolean
14652         {PRE,POST}_{INC,DEC}REMENT.
14654 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
14656         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
14657         (function_arg): Delete.
14658         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14659         (FUNCTION_INCOMING_ARG): Delete.
14660         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
14661         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
14662         and a bool.
14663         (function_arg): Rename to...
14664         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
14665         a bool.
14666         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
14667         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14668         (TARGET_FUNCTION_INCOMING_ARG): Define.
14670 2010-08-30  Richard Guenther  <rguenther@suse.de>
14672         PR tree-optimization/21602
14673         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
14674         using points-to information.
14676 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
14678         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
14680 2010-08-30  Richard Guenther  <rguenther@suse.de>
14682         PR tree-optimization/45449
14683         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
14684         variables.
14686 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
14688         * opts.h (CL_ERR_NEGATIVE): Define.
14689         * opts.c (unknown_option_callback): Don't postpone warnings for
14690         options marked with CL_ERR_NEGATIVE.
14691         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
14692         for negative versions of CL_REJECT_NEGATIVE options.
14694 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
14696         * config/i386/i386.md (zero_extendsidi2_1): Rename from
14697         zero_extendsidi2_32.
14698         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
14699         using SWI12 mode iterator.
14700         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
14701         to define_insn_and_split pattern.
14702         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
14703         using SWI24 mode iterator.
14704         (*zero_extendqi<mode>2_and): Macroize insn from
14705         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
14706         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
14707         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
14708         SWI24 mode iterator.
14709         (*zero_extendqi<mode>2_movzbl): Ditto from
14710         *zero_extendqi{hi,si}2_movzbl.
14711         (extendsidi2_1): Rename from extendsidi2_32.
14712         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
14713         SWI12 mode iterator.
14715 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
14717         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
14718         general purpose registers.
14719         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
14720         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
14721         with general purpose registers and memory operands.  Add associated
14722         CCImode post-reload splitter.
14723         * config/ia64/div.md: Change BImode to CCImode throughout.
14725 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
14727         * config/ia64/ia64.md (cstorebi4): Fix thinko.
14729 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
14731         * config/picochip/picochip.c (reorder_var_tracking_notes): This
14732         function was dropping debug insns which caused PR45299.
14734 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
14736         * config/i386/sse.md (extsuffix): New code attribute.
14737         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
14738         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
14739         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
14740         and sse4_1_zero_extendv4qiv4si2.
14741         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
14742         and sse4_1_zero_extendv2qiv2di2.
14743         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
14744         and sse4_1_zero_extendv4hiv4si2.
14745         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
14746         and sse4_1_zero_extendv2hiv2di2.
14747         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
14748         and sse4_1_zero_extendv2siv2di2
14750         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
14751         using any_extend code iterator.
14752         (*avx_<s>mulv8hi3_highpart): Macroize insn from
14753         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
14754         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
14756         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
14757         gen_sse4_1_sign_extend* functions.
14758         (struct builtin_description bdesc_args): Ditto.
14760 2010-08-27  Xinliang David Li  <davidxl@google.com>
14762         PR/45422
14763         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
14764         (iv_ca_set_no_cp): Update used inv expr count.
14765         (iv_ca_set_cp): Ditto.
14766         (iv_ca_new): Initialize new member.
14767         (iv_ca_free): Free memory.
14769 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14771         * config/sh/sh-protos.h (sh_function_arg): Delete.
14772         (sh_function_arg_advance): Delete.
14773         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14774         (PASS_IN_REG_P): Eliminate cast.
14775         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
14776         const_tree and a bool.
14777         (sh_function_arg): Likewise.
14778         (sh_output_mi_thunk): Call sh_function_arg_advance) and
14779         sh_function_arg.
14780         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14782 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
14783             Kaz Kojima  <kkojima@gcc.gnu.org>
14785         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
14786         when possible.
14787         (sh_expand_epilogue): Likewise.
14788         * config/sh/sh.md (movml_push_banked): New insn.
14789         (movml_pop_banked): Likewise.
14791 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
14793         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
14794         gen_regexp_oneof, gen_regexp_sequence): Use the string found
14795         in vector element 0 rather than the original string when there's
14796         only one element.
14797         (gen_regexp): Remove extra semicolon.
14799         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
14800         thumb2_movsf_vfp): Set attribute "insn".
14801         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
14802         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
14803         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
14804         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
14805         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
14806         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
14807         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
14808         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
14809         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
14810         if_not_arith, if_arith_not, cond_move_not): Likewise.
14812 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14814         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
14815         New declaration.
14816         (rs6000_allocate_stack_temp): Ditto.
14817         (rs6000_expand_convert_si_to_sfdf): Ditto.
14819         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
14820         line.  Update the options set if power6 or power7 server/embedded
14821         type options are used.  If we give a warning for no vsx under
14822         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
14823         (rs6000_allocate_stack_temp): New function to allocate a stack
14824         tempoary and adjust the address so it meets either REG+OFFSET or
14825         REG+REG addressing requirements.
14826         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
14827         that they can be used with the LFIWAX/LFIWZX instrucitons.
14828         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
14829         converting signed/unsigned SImode to either SFmode/DFmode.
14831         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
14832         whether certain instructions can be generated.
14833         (TARGET_FCTIDZ): Ditto.
14834         (TARGET_STFIWX): Ditto.
14835         (TARGET_LFIWAX): Ditto.
14836         (TARGET_LFIWZX): Ditto.
14837         (TARGET_FCFIDS): Ditto.
14838         (TARGET_FCFIDU): Ditto.
14839         (TARGET_FCFIDUS): Ditto.
14840         (TARGET_FCTIDUZ): Ditto.
14841         (TARGET_FCTIWUZ): Ditto.
14843         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
14844         (UNSPEC_FCTID): Ditto.
14845         (UNSPEC_LFIWAX): Ditto.
14846         (UNSPEC_LFIWZX): Ditto.
14847         (UNSPEC_FCTIWUZ): Ditto.
14848         (rreg): Use correct constraints.
14849         (SI_CONVERT_FP): New mode attribute for floating point conversion
14850         tests.
14851         (E500_CONVERT): Ditto.
14852         (lfiwax): New insns for converting from integer to floating point
14853         utilizing newer instructions.  Attempt to optimize conversions
14854         that come from memory so that we don't load the value into a GPR,
14855         spill it to the stack and reload it into a FPR.
14856         (floatsi<mode>2_lfiwax): Ditto.
14857         (floatsi<mode>2_lfiwax_mem): Ditto.
14858         (floatsi<mode>2_lfiwax_mem2): Ditto.
14859         (lfiwzx): Ditto.
14860         (floatunssi<mode>2_lfiwzx): Ditto.
14861         (floatunssi<mode>2_lfiwzx_mem): Ditto.
14862         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
14863         (floatdidf2_mem): Ditto.
14864         (floatunsdidf2_fcfidu): Ditto.
14865         (floatunsdidf2_mem): Ditto.
14866         (floatunsdisf2): Ditto.
14867         (floatunsdisf2_fcfidus): Ditto.
14868         (floatunsdisf2_mem): Ditto.
14869         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
14870         Use FCFID on 32-bit hosts that support it.
14871         (floatsidf2_internal): Ditto.
14872         (floatunssisf2): Ditto.
14873         (floatunssidf2): Ditto.
14874         (floatunssidf2_internal): Ditto.
14875         (floatsisf2): Ditto.
14876         (floatdidf2): Ditto.
14877         (floatdidf2_fpr): Ditto.
14878         (floatunsdidf2): Ditto.
14879         (floatdisf2): Ditto.
14880         (floatdisf2_fcfids): Ditto.
14881         (floatdisf2_internal1): Ditto.
14882         (fixuns_truncsfsi2): Delete, merge into common pattern for both
14883         SF/DF.  Add power7 support.
14884         (fix_truncsfsi2): Ditto.
14885         (fixuns_truncdfsi2): Ditto.
14886         (fixuns_truncdfdi2): Ditto.
14887         (fix_truncdfsi2): Ditto.
14888         (fix_truncdfsi2_internal): Ditto.
14889         (fix_truncdfsi2_internal_gfxopt): Ditto.
14890         (fix_truncdfsi2_mfpgpr): Ditto.
14891         (fctiwz): Ditto.
14892         (btruncdf2): Ditto.
14893         (btruncdf2_fpr): Ditto.
14894         (btructsf2): Ditto.
14895         (ceildf2): Ditto.
14896         (ceildf2_fpr): Ditto.
14897         (ceilsf2): Ditto.
14898         (floordf2): Ditto.
14899         (floordf2_fpr): Ditto.
14900         (floorsf2): Ditto.
14901         (rounddf2): Ditto.
14902         (rounddf2_fpr): Ditto.
14903         (roundsf2): Ditto.
14904         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
14905         (fix_trunc<mode>di2): Ditto.
14906         (fixuns_trunc<mode>si2): Ditto.
14907         (fixuns_trunc<mode>di2): Ditto.
14908         (fctiwz_<mode>): Ditto.
14909         (btrunc<mode>2): Ditto.
14910         (btrunc<mode>2_fpr): Ditto.
14911         (ceil<mode>2): Ditto.
14912         (ceil<mode>2_fpr): Ditto.
14913         (floor<mode>2): Ditto.
14914         (float<mode>2_fpr): Ditto.
14915         (round<mode>2): Ditto.
14916         (round<mode>2_fpr): Ditto.
14917         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
14918         (fixuns_trunc<mode>si2_stfiwx): Ditto.
14919         (fix_truncdfsi2_internal): Ditto.
14920         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
14921         converted value on stack, loaded into GPR, and then stored into
14922         the final destination.
14923         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
14924         FCTIDZ.
14925         (lrint<mode>di2): New insn, provide the lrint builtin functions.
14926         (ftruncdf2): Delete, unused.
14927         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
14929         * config/rs6000/vsx.md (toplevel): Update copyright year.
14930         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
14931         (VSr3): Ditto.
14933 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
14934             Jeremie Salvucci  <jeremie.salvucci@free.fr>
14936         * gengtype.c (output_type_enum): Test the right union member.
14938 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
14940         PR target/41484
14941         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
14942         operands for operand 1.
14943         (sse4_1_extendv4qiv4si2): Ditto.
14944         (sse4_1_extendv2qiv2di2): Ditto.
14945         (sse4_1_extendv4hiv4si2): Ditto.
14946         (sse4_1_extendv2hiv2di2): Ditto.
14947         (sse4_1_extendv2siv2di2): Ditto.
14948         (sse4_1_zero_extendv8qiv8hi2): Ditto.
14949         (sse4_1_zero_extendv4qiv4si2): Ditto.
14950         (sse4_1_zero_extendv2qiv2di2): Ditto.
14951         (sse4_1_zero_extendv4hiv4si2): Ditto.
14952         (sse4_1_zero_extendv2hiv2di2): Ditto.
14953         (sse4_1_zero_extendv2siv2di2): Ditto.
14954         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
14955         (*sse4_1_extendv4qiv4si2): Ditto.
14956         (*sse4_1_extendv2qiv2di2): Ditto.
14957         (*sse4_1_extendv4hiv4si2): Ditto.
14958         (*sse4_1_extendv2hiv2di2): Ditto.
14959         (*sse4_1_extendv2siv2di2): Ditto.
14960         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14961         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14962         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14963         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14964         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14965         (*sse4_1_zero_extendv2siv2di2): Ditto.
14967 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14969         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14970         (mips_function_arg): Delete.
14971         (mips_function_arg_boundary): Take a const_tree.
14972         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14973         (mips_arg_info): Likewise.
14974         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14975         instead of FUNCTION_ARG_ADVANCE.
14976         (mips_function_arg_advance): Adjust prototype.  Make static.
14977         (mips_function_arg): Likewise.
14978         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14979         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14981 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14983         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14984         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14985         (function_arg): Delete.
14986         (function_arg_boundary): Take a const_tree.
14987         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14988         (rs6000_spe_function_arg): Likewise.
14989         (rs6000_parm_start): Likewise.
14990         (rs6000_arg_size): Likewise.
14991         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14992         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14993         (rs6000_mixed_function_arg): Likewise.
14994         (function_arg): Rename to...
14995         (rs6000_function_arg): ...this.
14996         (function_arg_advance): Rename to...
14997         (rs6000_function_arg_advance_1): ...this
14998         (rs6000_function_arg_advance): New function.  Call it.
14999         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
15000         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
15001         (rs6000_function_value): Likewise.
15002         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15004 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15006         * config/arm/arm.md (enabled): Test the value of arch_enabled
15007         rather than just using it.
15009 2010-08-27  Olivier Hainque  <hainque@adacore.com>
15010             Eric Botcazou  <ebotcazou@adacore.com>
15012         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
15013         cover all the possible offsets from this base.
15014         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
15016 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
15018         PR tree-optimization/44485
15019         * calls.c (flags_from_decl_or_type): For const or pure
15020         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
15021         together with ECF_CONST resp. ECF_PURE.
15022         * builtins.c (expand_builtin): Use flags_from_decl_or_type
15023         instead of querying flags directly.
15024         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
15025         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
15027 2010-08-26  Richard Guenther  <rguenther@suse.de>
15029         PR tree-optimization/45255
15030         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
15031         and externals are also invariant.
15033 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
15035         PR rtl-optimization/44858
15036         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
15037         newi2pat, make sure they don't affect newpat.
15039         PR rtl-optimization/45400
15040         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
15041         SUBREG_REG if both modes are of MODE_INT class.
15043 2010-08-25  Julian Brown  <julian@codesourcery.com>
15045         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
15046         * config/arm/arm.md (generic_sched): No for Cortex-A5.
15047         (generic_vfp): Likewise.
15048         (cortex-a5.md): Include.
15049         * config/arm/cortex-a5.md: New.
15051 2010-08-25  Richard Guenther  <rguenther@suse.de>
15053         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
15054         * gimple.c (gimple_get_alias_set): Remove special handling
15055         for pointers.
15057 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
15059         PR middle-end/45355
15060         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
15061         dead_or_set_p when computing i0_feeds_i2_n.
15063         * combine.c (find_split_point): Undo canonicalization of multiply-add
15064         to (minus x (mult)) when it seems likely that this will increase the
15065         chances of a split.
15067 2010-08-25  Richard Guenther  <rguenther@suse.de>
15069         PR lto/44562
15070         * lto-streamer.c (lto_record_common_node): Do not mess with
15071         TYPE_CANONICAL when not in lto.
15072         * gimple.c (gimple_register_type): Likewise.
15074 2010-08-25  Richard Guenther  <rguenther@suse.de>
15076         PR tree-optimization/45316
15077         * tree-ssa-pre.c (eliminate): Properly clean EH info.
15079 2010-08-25  Richard Guenther  <rguenther@suse.de>
15081         PR tree-optimization/45393
15082         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
15083         and clean EH info.  Avoid SSA update.
15084         (execute_cse_sincos): Cleanup the CFG if it has changed.
15086 2010-08-25  Richard Guenther  <rguenther@suse.de>
15088         PR middle-end/45379
15089         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
15090         TARGET_MEM_REF in alignment computation.
15092 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
15094         PR tree-optimization/45059
15095         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
15096         type conversions from newop{1,2}.  Assert t is a comparison and
15097         newop{1,2} after the stripping are gimple vals.
15099 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
15101         * config/arm/iterators.md (VU, SE, V_widen_l): New.
15102         (V_unpack, US): New.
15103         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
15104         (vec_unpack<US>_lo_<mode>): Likewise.
15105         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
15106         (neon_vec_unpack<US>_lo_<mode>): Likewise.
15107         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
15108         (vec_widen_<US>mult_hi_<mode>): Likewise.
15109         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
15110         (neon_vec_<US>mult_hi_<mode>"): Likewise.
15111         (neon_unpack<US>_<mode>): Widening move intermediate step for
15112         vectorizing without -mvectorize-with-neon-quad.
15113         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
15114         for vectorizing without -mvectorize-with-neon-quad.
15115         * config/arm/predicates.md (vect_par_constant_high): Check for
15116         high-half lanes of a vector.
15117         (vect_par_constant_low): Check for low-half lanes of a vector.
15119 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
15121         * tree-if-conv.c (struct ifc_dr): New.
15122         (IFC_DR): New.
15123         (DR_WRITTEN_AT_LEAST_ONCE): New.
15124         (DR_RW_UNCONDITIONALLY): New.
15125         (memref_read_or_written_unconditionally): Use the cached values
15126         when possible.
15127         (write_memref_written_at_least_once): Same.
15128         (if_convertible_loop_p): Initialize and free DR->aux fields.
15130 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
15132         * gimple.c (gimple_could_trap_p_1): Not static anymore.
15133         Pass an extra bool parameter include_mem.
15134         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
15135         (gimple_assign_rhs_could_trap_p): Same.
15136         * gimple.h (gimple_could_trap_p_1): Declared.
15137         * tree-data-ref.h (same_data_refs_base_objects): New.
15138         (same_data_refs): New.
15139         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
15140         (write_memrefs_written_at_least_once): New.
15141         (ifcvt_memrefs_wont_trap): New.
15142         (operations_could_trap): New.
15143         (ifcvt_could_trap_p): New.
15144         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
15145         Gets a vector of data refs.
15146         (if_convertible_stmt_p): Same.
15147         (if_convertible_loop_p_1): New.
15148         (if_convertible_loop_p): Call if_convertible_loop_p_1.
15150 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
15152         * common.opt (ftree-loop-if-convert-stores): New flag.
15153         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
15154         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
15155         the created statement before GSI.
15156         (if_convertible_phi_p): Allow virtual phi nodes when
15157         flag_loop_if_convert_stores is set.
15158         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
15159         Do not handle types that do not match is_gimple_reg_type.
15160         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
15161         when flag_loop_if_convert_stores is set, as LHS can contain
15162         memory refs.
15163         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
15164         to if_convertible_gimple_assign_stmt_p.
15165         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
15166         (replace_phi_with_cond_gimple_assign_stmt): Renamed
15167         predicate_scalar_phi.  Do not handle virtual phi nodes.
15168         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
15169         Call predicate_scalar_phi.
15170         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
15171         just after the labels for flag_loop_if_convert_stores, otherwise
15172         insert the predicate in the end of the BB.
15173         (predicate_mem_writes): New.
15174         (combine_blocks): Call predicate_all_scalar_phis.  When
15175         flag_loop_if_convert_stores is set, call predicate_mem_writes.
15176         (tree_if_conversion): Call mark_sym_for_renaming when
15177         flag_loop_if_convert_stores is set.
15178         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
15179         flag_loop_if_convert_stores is set.
15181 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
15183         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
15184         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
15185         (pa_function_value): Make static.
15186         (override_options): Rename to...
15187         (pa_option_override): ...this. Make static.
15188         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
15189         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
15190         TARGET_OPTION_OVERRIDE): Define.
15191         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
15192         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
15193         Remove.
15194         * config/pa/pa-protos.h (override_options): Remove.
15196 2010-08-24  Richard Guenther  <rguenther@suse.de>
15198         PR middle-end/45379
15199         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
15200         if addr->index is NULL or zero.
15201         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
15202         TARGET_MEM_REF more properly.
15203         (indirect_ref_may_alias_decl_p): Likewise.
15204         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
15205         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
15207 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
15209         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
15210         (m32c_override_options): Rename to...
15211         (m32c_option_override): ...this. Make static.
15212         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
15213         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
15214         Remove.
15215         * config/m32c/m32c-protos.h (m32c_override_options,
15216         m32c_function_value_regno_p): Remove.
15218 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
15220         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
15221         Fix a typo in a previous commit.
15223 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
15225         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
15226         Pre-initialize innerloop_iters to one.
15228 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
15230         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
15231         existing static function global.
15233         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
15234         is changed to global.
15236         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
15237         may_be_nonaddressable_p on base, and don't collect this reference
15238         if the address of the base could not be taken.
15240 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
15242         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
15243         enable the compiler to autovectorize mathmetical functions for
15244         power7 using the Mathematical Acceleration Subsystem library.
15246         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
15247         handle which vector math library we have.
15248         (rs6000_override_options): Add -mveclibabi=mass support.
15249         (rs6000_builtin_vectorized_libmass): New function to handle auto
15250         vectorizing math functions that are in the MASS library.
15251         (rs6000_builtin_vectorized_function): Call it.
15253         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
15254         -mveclibabi=mass.
15256 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15258         PR boehm-gc/34544
15259         * gthr-posix.h (__gthread_active_init): Delete.
15260         (__gthread_active_p): Do activity check here.
15261         Don't include errno.h on hppa-hpux.  Update comment.
15262         * gthr-posix95.h (__gthread_active_init): Delete.
15263         (__gthread_active_p): Do activity check here.
15264         Don't include errno.h on hppa-hpux.  Update comment.
15265         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
15266         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
15267         add -lpthread when -mt or -pthread is specified.
15268         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
15269         (LINK_GCC_C_SEQUENCE_SPEC): Define.
15270         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
15271         (stublib.c, pthread_default_stacksize_np-stub.o,
15272         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
15273         $(T)libgcc_stub.a): Add methods.
15274         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
15275         (stublib.c, pthread_default_stacksize_np-stub.o,
15276         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
15277         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
15278         pthread_mutex_unlock): New stubs.
15280 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
15282         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
15283         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
15284         options.
15285         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
15286         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
15287         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
15288         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
15289         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
15290         "-l".
15291         * cppspec.c: Include opts.h.
15292         (lang_specific_driver): Use cl_decoded_option structures.
15293         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
15294         * doc/tm.texi: Regenerate.
15295         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
15296         (driver_handle_option): Allow driver options needing no special
15297         processing.
15298         (process_command): Decode options before call to
15299         lang_specific_driver.  Pass decoded options to
15300         lang_specific_driver.
15301         * gcc.h (lang_specific_driver): Update prototype.
15302         * gccspec.c: Include opts.h.
15303         (lang_specific_driver): Use cl_decoded_option structures.
15304         * opts-common.c (option_ok_for_language, generate_option,
15305         generate_option_input_file): New.
15306         (decode_cmdline_option): Use option_ok_for_language.
15307         (decode_cmdline_options_to_array): Use generate_option_input_file.
15308         (handle_generated_option): Use generate_option.
15309         * opts.h (generate_option, generate_option_input_file): Declare.
15311 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
15313         * config/mips/mips.c (mips_override_options): Rename to...
15314         (mips_option_override): ...this. Make static.
15315         (TARGET_OPTION_OVERRIDE): Define.
15316         (mips_in_small_data_p): Update comment.
15317         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
15318         (FIXED_REGISTERS): Update comment.
15319         * config/mips/mips-protos.h (mips_override_options): Remove.
15321 2010-08-21  Olivier Hainque  <hainque@adacore.com>
15323         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
15325 2010-08-21  Olivier Hainque  <hainque@adacore.com>
15327         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
15328         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
15330 2010-08-20  Jan Hubicka  <jh@suse.cz>
15332         * tree-pass.h (pass_ipa_cdtor_merge): New function.
15333         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
15334         heap allocated.
15335         (record_cdtor_fn): Move to ipa.c; do not test for
15336         have_ctors_dtors.
15337         (build_cdtor): Move to ipa.c; add code avoiding construction
15338         when target have ctors/dtors and there is only one ctor/dtor at given
15339         priority.
15340         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
15341         sort; reverse order of constructors.
15342         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
15343         (cgraph_finalize_function): Do not call record_cdtor_fn.
15344         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
15345         (cgraph_build_static_cdtor): Move to ipa.c.
15346         * ipa.c: Include target.h and tree-iterator.h.
15347         (cgraph_build_static_cdtor, static_ctors, static_dtors,
15348         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
15349         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
15350         pass_ipa_cdtor_merge): New.
15351         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
15352         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
15353         bounds access.
15355 2010-08-20  Jan Hubicka  <jh@suse.cz>
15357         PR c++/45307
15358         PR c++/17736
15359         * cgraph.h (cgraph_only_called_directly_p,
15360         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
15361         static cdtors.
15362         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
15363         are not needed.
15364         (cgraph_finalize_function): Static cdtors are reachable.
15365         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
15367 2010-08-20  Jan Hubicka  <jh@suse.cz>
15369         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
15370         flag_wpa.
15371         * lto-streamer-out.c (lto_output): Likewise.
15372         * passes.c (ipa_write_optimization_summaries): Initialize statement
15373         uids.
15375 2010-08-20  Olivier Hainque  <hainque@adacore.com>
15377         * tree.h (alias_diag_flags): New enum.
15378         (alias_pair): Add an 'emitted_diags' field.
15379         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
15380         (assemble_alias): Initialize emitted_diags of new pairs.
15382 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
15384         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
15385         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15386         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15387         (STACK_CHECK_PROTECT): Define.
15388         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
15389         (output_probe_stack_range): Likewise.
15390         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
15391         builtin stack checking is enabled.
15392         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
15393         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
15394         (probe_stack_range): New insn.
15396 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
15398         PR target/45336
15399         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
15400         short first.
15402         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
15403         char first.
15405 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15407         PR target/45336
15408         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
15409         to cover zero extension into 64-bit register.
15410         (*sse2_pextrw): Likewise.
15411         (*sse4_1_pextrd_zext): New insn.
15413 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
15415         revert r163410, partially revert r163267.
15416         * config/rs6000/darwin.h (LIB_SPEC): Remove.
15417         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
15418         Darwin versions.
15420 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15422         PR middle-end/44974
15423         * builtins.c (expand_builtin): Don't optimize away
15424         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
15426 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
15428         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
15429         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
15430         alternative 1 of operand 2.
15432 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15433             Paolo Bonzini  <bonzini@gnu.org>
15435         * simplify-rtx.c (simplify_unary_operation_1): Optimize
15436         (sign_extend (zero_extend (...)) and
15437         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
15439 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15441         PR rtl-optimization/45353
15442         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
15443         after bb_note is a BARRIER.
15445 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
15447         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
15448         linking libgcc.a.
15450 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15451             Michael Matz  <matz@suse.de>
15453         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
15455 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
15457         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
15458         (ggc_mark_roots): ...here.
15460 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
15462         * vec.h (FOR_EACH_VEC_ELT): Define.
15463         * c-decl.c: Use it.
15464         * cfgloop.c: Likewise.
15465         * cfgloopmanip.c: Likewise.
15466         * cgraph.c: Likewise.
15467         * cgraphunit.c: Likewise.
15468         * combine.c: Likewise.
15469         * config/bfin/bfin.c: Likewise.
15470         * config/mips/mips.c: Likewise.
15471         * config/rs6000/rs6000.c: Likewise.
15472         * dbxout.c: Likewise.
15473         * df-scan.c: Likewise.
15474         * dominance.c: Likewise.
15475         * dse.c: Likewise.
15476         * dwarf2out.c: Likewise.
15477         * except.c: Likewise.
15478         * expr.c: Likewise.
15479         * function.c: Likewise.
15480         * gcse.c: Likewise.
15481         * genattr.c: Likewise.
15482         * ggc-common.c: Likewise.
15483         * gimplify.c: Likewise.
15484         * graphite-blocking.c: Likewise.
15485         * graphite-clast-to-gimple.c: Likewise.
15486         * graphite-dependences.c: Likewise.
15487         * graphite-interchange.c: Likewise.
15488         * graphite-poly.c: Likewise.
15489         * graphite-scop-detection.c: Likewise.
15490         * graphite-sese-to-poly.c: Likewise.
15491         * graphite.c: Likewise.
15492         * haifa-sched.c: Likewise.
15493         * ifcvt.c: Likewise.
15494         * implicit-zee.c: Likewise.
15495         * ipa-prop.c: Likewise.
15496         * ipa-struct-reorg.c: Likewise.
15497         * ipa.c: Likewise.
15498         * ira-build.c: Likewise.
15499         * ira-color.c: Likewise.
15500         * ira-emit.c: Likewise.
15501         * lambda-code.c: Likewise.
15502         * loop-invariant.c: Likewise.
15503         * loop-unroll.c: Likewise.
15504         * lower-subreg.c: Likewise.
15505         * lto-cgraph.c: Likewise.
15506         * lto-opts.c: Likewise.
15507         * lto-streamer-in.c: Likewise.
15508         * lto-streamer-out.c: Likewise.
15509         * lto-streamer.c: Likewise.
15510         * lto-symtab.c: Likewise.
15511         * matrix-reorg.c: Likewise.
15512         * opts.c: Likewise.
15513         * predict.c: Likewise.
15514         * print-tree.c: Likewise.
15515         * sdbout.c: Likewise.
15516         * sel-sched-dump.c: Likewise.
15517         * sel-sched-ir.c: Likewise.
15518         * sel-sched.c: Likewise.
15519         * sese.c: Likewise.
15520         * stor-layout.c: Likewise.
15521         * tree-cfg.c: Likewise.
15522         * tree-cfgcleanup.c: Likewise.
15523         * tree-chrec.c: Likewise.
15524         * tree-data-ref.c: Likewise.
15525         * tree-emutls.c: Likewise.
15526         * tree-inline.c: Likewise.
15527         * tree-into-ssa.c: Likewise.
15528         * tree-loop-distribution.c: Likewise.
15529         * tree-loop-linear.c: Likewise.
15530         * tree-mudflap.c: Likewise.
15531         * tree-outof-ssa.c: Likewise.
15532         * tree-parloops.c: Likewise.
15533         * tree-predcom.c: Likewise.
15534         * tree-pretty-print.c: Likewise.
15535         * tree-scalar-evolution.c: Likewise.
15536         * tree-ssa-live.c: Likewise.
15537         * tree-ssa-loop-im.c: Likewise.
15538         * tree-ssa-loop-ivcanon.c: Likewise.
15539         * tree-ssa-loop-ivopts.c: Likewise.
15540         * tree-ssa-loop-manip.c: Likewise.
15541         * tree-ssa-loop-niter.c: Likewise.
15542         * tree-ssa-loop-prefetch.c: Likewise.
15543         * tree-ssa-phiprop.c: Likewise.
15544         * tree-ssa-pre.c: Likewise.
15545         * tree-ssa-reassoc.c: Likewise.
15546         * tree-ssa-sccvn.c: Likewise.
15547         * tree-ssa-structalias.c: Likewise.
15548         * tree-ssa.c: Likewise.
15549         * tree-vect-data-refs.c: Likewise.
15550         * tree-vect-loop-manip.c: Likewise.
15551         * tree-vect-loop.c: Likewise.
15552         * tree-vect-patterns.c: Likewise.
15553         * tree-vect-slp.c: Likewise.
15554         * tree-vect-stmts.c: Likewise.
15555         * tree-vrp.c: Likewise.
15556         * tree.c: Likewise.
15557         * value-prof.c: Likewise.
15558         * var-tracking.c: Likewise.
15559         * varasm.c: Likewise.
15560         * vmsdbgout.c: Likewise.
15562 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
15563             Richard Guenther  <richard.guenther@gmail.com>
15565         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
15566         copy the src value and return a copy.
15567         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
15568         (C++ Volatiles): Adjust to describe C++ semantics only.
15570 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
15572         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
15573         be zero or nonzero.
15574         * doc/tm.texi: Regenerate.
15575         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
15576         * df-scan.c (df_get_exit_block_use_set), reginfo.c
15577         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
15578         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
15579         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
15580         to 1.
15582 2010-08-20  Olivier Hainque  <hainque@adacore.com>
15584         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
15585         an extra nop past a sibling call at the very end.
15587 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
15589         PR bootstrap/45350
15590         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
15591         a comment.
15593 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
15595         * target.def (function_arg, function_incoming_arg): Remove const
15596         qualifier on CUMULATIVE_ARGS parameter.
15597         * targhooks.h (default_function_arg, default_function_incoming_arg):
15598         Likewise.
15599         * targhooks.c (default_function_arg, default_function_incoming_arg):
15600         Likewise.
15601         * config/i386/i386.c (ix86_function_arg): Likewise.
15603 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
15605         PR target/45336
15606         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
15607         SIGN_EXTENDs or ZERO_EXTENDs.
15609 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
15611         PR target/42172
15612         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
15613         Take its cost into account if nonnull.
15614         (insn_a_feeds_b): New static function.
15615         (combine_instructions): Look for four-insn combinations.
15616         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
15617         them into account when computing all_adjacent and looking for other
15618         uses.
15619         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
15620         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
15621         (try_combine): New arg I0.  Handle four-insn combinations.
15622         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
15623         like ELIM_I1.
15625 2010-08-19  Jason Merrill  <jason@redhat.com>
15627         PR c++/45307
15628         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
15629         if ctor is empty.
15630         (gimplify_modify_expr_rhs): Adjust.
15632 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
15634         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
15635         bitmap_bit_p.
15636         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
15637         * dominance.c (iterate_fix_dominators): Likewise.
15638         * dse.c (set_usage_bits): Likewise.
15639         (set_position_unneeded, record_store): Likewise.
15640         * gimple-fold.c (get_maxval_strlen): Likewise.
15641         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
15642         * ipa-inline.c (update_caller_keys): Likewise.
15643         * ipa-split.c (verify_non_ssa_vars): Likewise.
15644         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
15645         (close_type_exposed_parameter, close_type_full_escape): Likewise.
15646         (close_addressof_down): Likewise.
15647         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
15648         (setup_allocno_left_conflicts_size): Likewise.
15649         (ira_reassign_conflict_allocnos): Likewise.
15650         (ira_reassign_pseudos): Likewise.
15651         * ira-emit.c (change_loop): Likewise.
15652         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
15653         * lto-streamer-out.c (write_symbol): Likewise.
15654         * predict.c (expr_expected_value_1): Likewise.
15655         * regstat.c (regstat_bb_compute_ri): Likewise.
15656         * sel-sched.c (create_block_for_bookkeeping): Likewise.
15657         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
15658         * stmt.c (expand_case): Likewise.
15659         * tree-eh.c (emit_eh_dispatch): Likewise.
15660         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
15661         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
15662         Likewise.
15663         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
15664         (rdg_build_components): Likewise.
15665         * tree-object-size.c (collect_object_sizes_for): Likewise.
15666         * tree-sra.c (convert_callers): Likewise.
15667         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
15668         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
15669         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
15671 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
15673         * config/i386/i386.md (*lea_1): Use P mode iterator.
15674         (lea add splitter): Also handle DImode operands.
15675         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
15676         predicate.  Do not use ix86_lea_for_add_ok.
15677         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
15678         (lea ashift splitter): Also handle DImode operands.
15679         (DImode lea ashift splitter): Remove splitter.
15681 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
15683         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
15684         ix86_binary_operator_ok.
15686 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
15688         PR rtl-optimization/44691
15689         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
15690         is not a register.
15692 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
15694         PR target/45070
15695         * config/arm/arm.c (arm_output_epilogue): Ensure that return
15696          value of size 1-3 is handled correctly.
15698 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
15700         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
15701         type for the conditional has wide enough range.
15703 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
15705         PR target/45327
15706         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
15707         ix86_binary_operator_ok.
15709 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
15711         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
15712         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
15713         code to output insn mnemonic.  Fix comment.
15714         (*addsi_1_zext): Add r-r-0 alternative 1.
15715         <TYPE_LEA>: Split insn to lea.
15716         <default>: Handle alternative 1.
15717         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
15718         multi-level if_then_else RTX to set "type" attribute.
15719         <default>: Handle alternative 2.
15720         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
15721         Use cond RTX instead of multi-level if_then_else RTX to set
15722         "type" attribute.
15723         <default>: Handle alternatives 2 and 4.
15724         (lea splitters): Update calls to ix86_lea_for_add_ok.
15726         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
15727         argument.
15728         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
15730 2010-08-18  Richard Guenther  <rguenther@suse.de>
15732         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
15733         use operand helpers.
15735 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
15737         PR middle-end/45292
15738         * optabs.c (expand_bool_compare_and_swap): Expand pending
15739         pops before trying the optab.
15741 2010-08-18  Yao Qi  <yao@codesourcery.com>
15743         PR target/45094
15744         * config/arm/arm.c (output_move_double): Fix typo generating
15745         instructions ('ldr'->'str').
15747 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
15749         PR rtl-optimization/42575
15750         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
15751         live ranges.
15753 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15755         * config/arm/arm-protos.h (arm_expand_sync): New.
15756         (arm_output_memory_barrier, arm_output_sync_insn): New.
15757         (arm_sync_loop_insns): New.
15758         * config/arm/arm.c (FL_ARCH7): New.
15759         (FL_FOR_ARCH7): Include FL_ARCH7.
15760         (arm_arch7): New.
15761         (arm_print_operand): Support %C markup.
15762         (arm_legitimize_sync_memory): New.
15763         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
15764         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
15765         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
15766         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
15767         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
15768         (arm_process_output_sync_insn, arm_output_sync_insn): New.
15769         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
15770         * config/arm/arm.h (struct arm_sync_generator): New.
15771         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
15772         (TARGET_HAVE_MEMORY_BARRIER): New.
15773         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
15774         * config/arm/arm.md: Include sync.md.
15775         (UNSPEC_MEMORY_BARRIER): New.
15776         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
15777         (VUNSPEC_SYNC_OP):New.
15778         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
15779         (sync_result, sync_memory, sync_required_value): New attributes.
15780         (sync_new_value, sync_t1, sync_t2): Likewise.
15781         (sync_release_barrier, sync_op): Likewise.
15782         (length): Add logic to length attribute defintion to call
15783         arm_sync_loop_insns when appropriate.
15784         * config/arm/sync.md: New file.
15786 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15788         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
15789         ENABLE_TREE_CHECKING.
15790         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
15791         and GCC >= 4.3.
15793 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
15795         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
15796         or optimizing for size, always avoid lea if possible.
15798         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
15800 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
15802         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
15803         Dunmmy function with NULL return unless the target is
15804         OSX >= 10.6 (Darwin10).
15806 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
15808         * gcc.c (spec_function): Add remove-outfile.
15809         (remove_outfile_spec_function): New function.
15810         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
15811         * invoke.texi (replace-outfile): Document.
15813 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
15815         PR target/45296
15816         * reginfo.c (globalize_reg): Reject stack registers.
15818 2010-08-17  Richard Guenther  <rguenther@suse.de>
15820         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
15821         list of conditional equivalences.
15822         (free_all_edge_infos): Adjust.
15823         (record_equivalences_from_incoming_edge): Likewise.
15824         (record_cond): Likewise.
15825         (build_and_record_new_cond): Likewise.
15826         (record_conditions): Likewise.
15827         (dom_opt_leave_block): Likewise.
15829 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
15831         * doc/invoke.texi (ms-extension): Add documentation.
15833 2010-08-17  Richard Guenther  <rguenther@suse.de>
15835         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
15837 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
15839         PR c/40563
15840         * c-decl.c (diagnose_uninitialized_cst_member): New function.
15841         (finish_decl): Use it to issue a -Wc++-compat warning about
15842         uninitialized const field in struct or union.
15844         (finish_struct): Use strip_array_types.
15846 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15848         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
15849         functions.
15850         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
15851         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
15852         call block_nreverse here.
15853         (blocks_nreverse): Rename decl temporary to block.
15855 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
15857         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
15858         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
15859         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
15860         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
15861         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
15862         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
15863         thumb2_iorsi3): Delete.
15864         (orsi_notsi_si): No longer a named pattern.
15865         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
15866         * config/arm/predicates.md (shift_amount_operand): New.
15867         (mult_operator): New.
15868         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
15869         attr enabled): New.
15870         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
15871         arch matches t2.
15872         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
15873         (not_shiftsi_compare0): Likewise, renamed from
15874         arm_notsi_shiftsi_compare0.
15875         (not_shiftsi_compare0_scratch): Likweise, renamed from
15876         arm_notsi_shiftsi_compare0_scratch.
15877         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
15878         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
15879         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
15880         so that the register alternative is disabled when the shift_operator
15881         is MULT.  Use "M" as the constraint for constants.
15882         (arith_shiftsi splitter): Enable for TARGET_32BIT.
15883         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
15884         constraint for constants.
15885         (arith_shiftsi_compare0_scratch): Likewise.
15886         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
15887         Handle Thumb2 alternative.
15889 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15891         * doc/options.texi (NoDriverArg): Document.
15892         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
15893         -MDX and -MMDX.
15894         * opt-functions.awk (switch_flags): Handle NoDriverArg.
15895         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
15896         marking for CL_NO_DRIVER_ARG options when in the driver.
15897         * opts.h (CL_NO_DRIVER_ARG): Define.
15898         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15899         CL_COMMON): Update values.
15901 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15903         * common.opt: Add driver options.
15904         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
15905         * doc/options.texi (Driver, RejectDriver): Document.
15906         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
15907         print_prog_name, print_multi_directory, print_sysroot,
15908         print_multi_os_directory, print_multi_lib,
15909         print_sysroot_headers_suffix, report_times, combine_flag,
15910         use_pipes, wrapper_string): Remove.
15911         (save_switch, driver_unknown_option_callback,
15912         driver_wrong_lang_callback, driver_post_handling_callback,
15913         driver_handle_option): New.
15914         (spec_lang, last_language_n_infiles): Make file-scope static
15915         instead of local to process_command.
15916         (process_command): Use decode_cmdline_options_to_array and
15917         read_cmdline_option for option processing.  Compute have_c in
15918         prescan of decoded options.
15919         * opt-functions.awk (switch_flags): Handle Driver and
15920         RejectDriver.
15921         (var_type, var_type_struct): Handle Separate options as generating
15922         const char * variables.
15923         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
15924         CL_TARGET to be passed by caller if required.
15925         (decode_cmdline_options_to_array): Update comment.
15926         * opts.c (complain_wrong_lang): Handle options only valid for the
15927         driver.
15928         (decode_options): Update call to decode_cmdline_options_to_array.
15929         (print_filtered_help): Ignore driver-only options.
15930         (print_specific_help): Ignore CL_DRIVER.
15931         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
15932         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
15933         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
15934         Update values.
15936 2010-08-16  Richard Guenther  <rguenther@suse.de>
15938         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15939         TARGET_MEM_REF a bit.
15940         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
15941         (create_mem_ref_raw): Always create TMR_OFFSET, store the
15942         alias pointer type via it.
15943         (copy_mem_ref_info): Adjust.
15944         (maybe_fold_tmr): Likewise.
15945         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
15946         (reference_alias_ptr_type): Likewise.
15947         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
15948         adjust documentation of TMR_OFFSET operand.
15949         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
15950         use the alias pointer type.
15951         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
15952         initialize mem attrs but the TMR itself.
15953         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
15954         similar to MEM_REF.
15955         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
15956         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
15957         (unshare_and_remove_ssa_names): Likewise.
15958         (copy_ref_info): Adjust.
15959         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
15960         TARGET_MEM_REF case.
15961         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15962         at TMR_ORIGINAL.
15963         * tree.h (TMR_ORIGINAL): Remove.
15964         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15965         symbol return that.
15966         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15967         with a symbol.
15968         (get_addr_base_and_unit_offset): Likewise.
15969         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15970         TARGET_MEM_REFs.
15971         (indirect_ref_may_alias_decl_p): Likewise.
15972         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15974 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15976         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15977         with GCC version 4.6, the default setting (when not optimizing
15978         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15979         been changed to -fomit-frame-pointer.
15981 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15983         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15984         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15986 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15988         * doc/invoke.texi (Warning Options): Fix terminology and markup
15989         in the description of how unknown warning options are handled.
15991 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15993         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15994         in basic blocks.
15995         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15996         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15997         data references.
15998         (vect_bb_vectorization_profitable_p): New function.
15999         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
16000         check if it's worthwhile to vectorize the basic block.
16002 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
16004         * reload.h (register_move_cost, memory_move_secondary_cost,
16005         secondary_reload_class): Adjust prototype.
16006         * rtl.h (reg_class_subset_p): Adjust prototype.
16007         * reload.c (secondary_reload_class): Change arguments type from
16008         enum reg_class to reg_class_t. Change result type to reg_class_t.
16009         * reginfo.c (register_move_cost, reg_class_subset_p): Change
16010         arguments type from enum reg_class to reg_class_t.
16011         (memory_move_secondary_cost): Change arguments type from
16012         enum reg_class to reg_class_t. Change type of saved_flags to
16013         reg_class_t.
16015         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
16016         Remove macros.
16017         (mips_cost): Remove.
16018         (struct mips_rtx_cost_data): Moved to mips.c.
16019         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
16020         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
16021         (mips_cost): Make static.
16022         (mips_canonicalize_move_class): Change argument type to reg_class_t.
16023         Change result type to reg_class_t.
16024         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
16025         type from enum reg_class to reg_class_t.
16026         (mips_register_move_cost): Make static. Change arguments
16027         type from enum reg_class to reg_class_t.
16028         (mips_memory_move_cost): New function.
16029         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
16031 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
16033         PR rtl-optimization/43358
16034         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
16035         of a single hard register, using simplify_subreg_regno to decide
16036         what that register should be.
16038 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
16040         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
16041         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
16042         (loongson_pmull<V_suffix>): Rename to...
16043         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
16045 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
16047         * configure.ac: Enable -fomit-frame-pointer on darwin
16048         which support dwarf2.
16049         * config/i386/i386.c (override_options): Same.
16051 2010-08-13  Jie Zhang  <jie@codesourcery.com>
16053         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
16055 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
16057         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
16058         -MMD.
16060 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
16062         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
16063         up dot_prod pattern searching if a stmt is outside the loop.
16065 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
16066             Uros Bizjak  <ubizjak@gmail.com>
16068         * config.gcc: Handle --enable-frame-pointer.
16070         * configure.ac: Add --enable-frame-pointer.
16071         * configure: Regenerated.
16073         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
16074         (override_options): If not configured with --enable-frame-pointer,
16075         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
16076         optimizing for size), -fasynchronous-unwind-tables and
16077         -maccumulate-outgoing-args by default.
16079 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
16081         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
16083         PR middle-end/45262
16084         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
16085         -a overflows.  Normalize the range.
16087 2010-08-12  Richard Guenther  <rguenther@suse.de>
16089         PR tree-optimization/45232
16090         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
16091         for types with undefined overflow.
16092         (reassociate_bb): Allow re-associating of bit and min/max
16093         operations for types with undefined overflow.
16094         * tree-ssa-forwprop.c (associate_plusminus): New function.
16095         (tree_ssa_forward_propagate_single_use_vars): Call it.
16097 2010-08-12  Richard Guenther  <rguenther@suse.de>
16099         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
16100         * tree-ssa-alias.c (get_ptr_info): Move ...
16101         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
16102         align and misalign fields conservatively.
16103         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
16104         derive alignment information.
16105         (evaluate_stmt): Derive alignment information from memory
16106         allocation functions.
16107         * tree.h (get_pointer_alignment): Make unsigned.
16108         * builtins.c (get_object_alignment): Use alignment information we
16109         have computed for pointers.
16110         (get_pointer_alignment): Likewise.  Make conservative, return
16111         and unsigned value.
16112         (expand_builtin_strlen): Adjust.
16113         (expand_builtin_memcmp): Likewise.
16114         (expand_builtin_strcmp): Likewise.
16115         (expand_builtin_strncmp): Likewise.
16116         (get_builtin_sync_mem): Use at least mode alignment.
16117         (fold_builtin_memset): Adjust.
16118         (fold_builtin_memory_op): Likewise.
16119         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
16120         information also dump pointer alignment knowledge.
16121         (dump_gimple_stmt): Likewise.
16123 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
16125         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
16126         (EMPTY_FIELD_BOUNDARY): Remove.
16127         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
16129 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
16131         PR debug/45259
16132         * caller-save.c (save_call_clobbered_regs): Only swap notes with
16133         DEBUG_INSNs if n_regs_saved.
16135 2010-08-12  Wei Guozhi  <carrot@google.com>
16137         PR target/44999
16138         * config/arm/arm.md (andsi3): Change to zero extension if possible.
16139         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
16141 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
16143         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
16145         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
16147 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16149         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
16150         the case removed in the previous patch, when the only phi argument
16151         is defined in the same loop as the phi node itself.  Handle it
16152         separately from the invariant case by both propagating it outside
16153         the region and replacing the phi node with an assign.
16155 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16157         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
16158         constant phi nodes with one argument are is_gimple_min_invariant
16159         and SSA_NAME_IS_DEFAULT_DEF.
16161 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16163         * graphite-cloog-util.c (oppose_constraint):
16164         Extend loop counter's value range (CLOOG_ORG).
16165         (cloog_matrix_to_ppl_constraint): Same.
16166         (new_Constraint_System_from_Cloog_matrix): Same.
16167         * graphite-cloog-compat.h (matrix_num_type): New.
16169 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16171         * graphite.c (graphite_initialize): Do not initialize
16172         CLooG and initialize the Parma Polyhedra Library
16173         manually when using CLOOG_ORG.
16174         (graphite_finalize): Do not finalize CLooG and finalize
16175         the Parma Polyhedra Library manually when using CLOOG_ORG.
16176         * graphite-cloog-compat.h (cloog_initialize): Hide function
16177         when using CLOOG_ORG.
16178         (cloog_finalize): Same.
16180 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16182         * graphite-clast-to-gimple.c (free_scattering): Change
16183         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
16184         (CLOOG_ORG).
16185         (build_cloog_prog): Same.
16186         * graphite-cloog-compat.h (cloog_domain): Removed.
16187         (cloog_scattering): New.
16188         (cloog_set_domain): Removed.
16189         (cloog_set_scattering): New.
16190         (cloog_next_domain): Removed.
16191         (cloog_next_scattering): New.
16192         (cloog_set_next_domain): Removed.
16193         (cloog_set_next_scattering): New.
16194         (CloogScatteringList): New.
16195         (CloogScattering): New.
16196         (cloog_scattering_free): New.
16197         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
16198         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
16199         New.
16201 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16203         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
16204         CloogState.
16205         (set_cloog_options): Same.
16206         (print_clast_stmt): Same.
16207         (scop_to_clast): Same.
16208         (print_generated_program): Same.
16209         (gloog): Same.
16210         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
16211         (scop_to_clast): Extend with CloogState.
16212         * graphite-cloog-util.c: Include graphite-cloog-compat.h
16213         (new_Cloog_Domain_from_ppl_Polyhedron):
16214         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
16215         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
16216         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16217         * graphite-cloog-util.h (build_cloog_prog): Same.
16218         * graphite-cloog-copat.h (build_cloog_prog): New.
16219         (CloogState): New.
16220         (cloog_state_malloc): New.
16221         (cloog_state_free): New.
16222         (cloog_loop_malloc): New.
16223         (cloog_options_malloc): New.
16224         (cloog_statement_alloc): New.
16225         (cloog_domain_from_cloog_matrix): New.
16226         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
16227         (new_Cloog_Domain_from_ppl_Polyhedron): New.
16229 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16231         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
16232         type of NAME now depends on used CLooG version.
16233         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
16234         (gcc_type_for_clast_expr): Same.
16235         (print_clast_stmt): Replace pprint with clast_pprint.
16236         * graphite-cloog-compat.h: Provide compatibility macros for
16237         CLooG Legacy.
16238         (clast_name_p): New.
16239         (clast_expr_term): New.
16240         (clast_expr_red): New.
16241         (clast_expr_bin): New.
16242         (clast_pprint): New.
16244 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16246         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
16247         compatible to newer CLooG releases (CLOOG_ORG).
16248         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
16249         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
16250         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
16251         (build_cloog_prog) : New.
16252         (cloog_program_extract_scalars): New.
16253         (cloog_program_scatter): New.
16255 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16257         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
16258         conditionally (CLOOG_ORG).
16259         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
16260         (cloog_statement_usr): New.
16261         (cloog_domain): Same.
16262         (cloog_set_domain): Same.
16263         (cloog_next_domain): Same.
16264         (cloog_set_next_domain): Same.
16265         (cloog_program_nb_scattdims): Same.
16266         (cloog_program_set_nb_scattdims): Same.
16267         (cloog_program_names): Same.
16268         (cloog_program_set_names): Same.
16269         (cloog_program_set_context): Same.
16270         (cloog_program_set_loop): Same.
16271         (cloog_program_blocklist): Same.
16272         (cloog_program_set_blocklist): Same.
16273         (cloog_program_scaldims): Same.
16274         (cloog_program_set_scaldims): Same.
16275         (cloog_names_nb_parameters): Same.
16276         (cloog_names_set_nb_parameters): Same.
16277         (cloog_names_parameters): Same.
16278         (cloog_names_set_parameters): Same.
16279         (cloog_names_set_nb_iterators): Same.
16280         (cloog_names_set_iterators): Same.
16281         (cloog_names_set_nb_scattering): Same.
16282         (cloog_names_set_scattering): Same.
16283         (cloog_statement_set_usr): Same.
16284         (cloog_loop_set_next): Same.
16285         (cloog_loop_set_domain): Same.
16286         (cloog_loop_set_block): Same.
16287         (cloog_block_list_next): Same.
16288         (cloog_block_list_set_next):
16289         (cloog_block_list_set_block): Same.
16291 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16293         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
16294         a bool.
16295         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
16296         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
16297         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
16298         when something has been changed.
16299         (rewrite_commutative_reductions_out_of_ssa): Same.
16301 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16303         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
16304         handle the case when def is in the sese region.
16305         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
16306         for invariant expressions.
16307         (rewrite_cross_bb_phi_deps): Removed.
16308         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
16309         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
16310         rewrite_cross_bb_phi_deps.
16312 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16314         * graphite-sese-to-poly.c
16315         (rewrite_commutative_reductions_out_of_ssa_loop): Call
16316         scev_analyzable_p only on is_gimple_reg
16318 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16320         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
16321         (rewrite_close_phi_out_of_ssa): Propagate constant values or
16322         parametric expressions outside the scop region.
16323         (rewrite_cross_bb_scalar_deps): Same.
16324         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
16326 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16328         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
16329         SSA_NAME_DEF_STMT only on SSA_NAMEs.
16331 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16333         * tree-scalar-evolution.c (instantiate_scev_name): Do not
16334         instantiate default definitions.
16336 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
16337             Sebastian Pop  <sebastian.pop@amd.com>
16339         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
16340         (loop_exits_from_bb_p): New.
16341         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
16342         (loop_exits_from_bb_p): Declared.
16343         * graphite-scop-detection.c (scopdet_basic_block_info): Call
16344         loop_exits_to_bb_p.
16346 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16348         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
16349         extra parameter for the region.  Call scev_analyzable_p.
16350         (rewrite_reductions_out_of_ssa): Update call to
16351         rewrite_close_phi_out_of_ssa.
16352         (rewrite_cross_bb_phi_deps): Same.
16353         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
16354         parameter for the region.  Call scev_analyzable_p.
16355         (rewrite_commutative_reductions_out_of_ssa): Update call to
16356         rewrite_commutative_reductions_out_of_ssa_loop.
16358 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16360         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
16362 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16364         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
16365         SSA scalar phi nodes that can be scev_analyzable_p.
16367 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16369         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
16370         handle SSA_NAME_IS_DEFAULT_DEF.
16372 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16374         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
16376 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16378         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
16379         case non close-phi nodes with one argument.
16381 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16383         * sese.h (scev_analyzable_p): Scevs could be expressions without
16384         chrecs and still be scev_analyzable_p.
16386 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16388         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
16390 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16392         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
16393         * cfgloop.h (struct loop): Remove single_iv field.
16394         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
16395         (scop_canonicalize_loops): Removed.
16396         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
16397         over all the loop phi nodes in loop->header.
16398         (build_poly_scop): Remove use of scop_canonicalize_loops.
16400 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16402         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
16403         handle GIMPLE_CALL.
16405 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16407         * tree-chrec.c (chrec_apply): Should only apply to the specified
16408         variable.  Also handle multivariate chains of recurrences that
16409         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
16411 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16413         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
16414         (debug_clast_name_indexes_1): Removed.
16415         (debug_clast_name_indexes): Removed.
16416         (pbb_to_depth_to_oldiv): Removed.
16417         (build_iv_mapping): Replace the use of rename_map with iv_map.
16418         (translate_clast_user): Remove uses of rename_map.  Allocate and
16419         free iv_map.
16420         (translate_clast_for_loop): Remove uses of rename_map.
16421         (translate_clast_for): Same.
16422         (translate_clast_guard): Same.
16423         (translate_clast): Same.
16424         (gloog): Same.
16425         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
16426         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
16427         * sese.c (set_rename): Now static.
16428         (rename_variables_in_stmt): Removed.
16429         (rename_uses): New.
16430         (is_parameter): Removed.
16431         (is_iv): Removed.
16432         (expand_scalar_variables_call): Removed.
16433         (expand_scalar_variables_ssa_name): Removed.
16434         (expand_scalar_variables_expr): Removed.
16435         (expand_scalar_variables_stmt): Removed.
16436         (expand_scalar_variables): Removed.
16437         (rename_variables): Removed.
16438         (remove_condition): Removed.
16439         (get_true_edge_from_guard_bb): Removed.
16440         (get_false_edge_from_guard_bb): Removed.
16441         (struct igp): Removed.
16442         (default_before_guard): Removed.
16443         (convert_for_phi_arg): Removed.
16444         (add_guard_exit_phis): Removed.
16445         (insert_guard_phis): Removed.
16446         (graphite_copy_stmts_from_block): Now also uses iv_map and a
16447         region.  Do not copy conditions.  Do not copy induction variables.
16448         Call rename_uses.
16449         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
16450         the translated statement.  Use the iv_map for the induction
16451         variable renaming.
16452         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
16453         (set_rename): Removed declaration.
16454         (scev_analyzable_p): ...here.
16455         * tree-chrec.c (chrec_apply_map): New.
16456         * tree-chrec.h (chrec_apply_map): Declared.
16458 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16460         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
16461         insert_loop_close_phis.
16462         * sese.c (name_defined_in_loop_p): Removed.
16463         (expr_defined_in_loop_p): Removed.
16464         (alive_after_loop): Removed.
16465         (close_phi_not_yet_inserted_p): Removed.
16466         (struct alep): Removed.
16467         (add_loop_exit_phis): Removed.
16468         (insert_loop_close_phis): Removed.
16470 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16472         * graphite-cloog-util.c
16473         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
16474         * graphite-poly.c
16475         (psct_scattering_dim_for_loop_depth): Same.
16477 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16479         * graphite-cloog-util.h: Added cloog.h.
16480         * graphite-blocking.c: Removed cloog.h.
16481         * graphite-dependences.c: Same.
16482         * graphite-interchange.c: Same.
16483         * graphite-poly.c: Same.
16484         * graphite-ppl.c: Same.
16485         * graphite-scop-detection.c: Same.
16486         * graphite-sese-to-poly.c:
16487         Removed cloog.h.
16488         Removed graphite-clast-to-gimple.h.
16489         (check_poly_representation): Removed (unused).
16490         * graphite-sese-to-poly.h
16491         (check_poly_representation): Removed (unused).
16493 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16495         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
16496         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
16497         (graphite-cloog-util.o): New.
16498         (graphite-ppl.o): Added graphite-cloog-util.h.
16499         * graphite-clast-to-gimple.c:
16500         Added graphite-cloog-util.h to include statements.
16501         * graphite-cloog-util.c: New.
16502         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
16503         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16504         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16505         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16506         (insert_constraint_into_matrix): Same.
16507         (ppl_Constrain_System_number_of_constraints): Same.
16508         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
16509         (oppose_constraint): Same.
16510         (cloog_matrix_to_ppl_constraint): Same.
16511         (new_Constraint_System_from_Cloog_Matrix): Same.
16512         * graphite-cloog-util.h: New.
16513         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
16514         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16515         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16516         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16517         (insert_constraint_into_matrix): Same.
16518         * graphite-ppl.c:
16519         Added graphite-cloog-util.h to include statements.
16520         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
16521         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16522         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16523         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16524         (insert_constraint_into_matrix): Same.
16525         (ppl_Constrain_System_number_of_constraints): Same.
16526         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
16527         (oppose_constraint): Same.
16528         (cloog_matrix_to_ppl_constraint): Same.
16529         (new_Constraint_System_from_Cloog_Matrix): Same.
16530         * graphite-ppl.h:
16531         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
16532         graphite-cloog-util.h.
16533         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16534         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16535         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16536         (insert_constraint_into_matrix): Same.
16538 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16540         * graphite-clast-to-gimple.c
16541         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
16542         (precision_for_interval): Same.
16543         (gcc_type_for_interval): Same.
16544         (compute_type_for_level): Same.
16545         * graphite-interchange.c
16546         (lst_interchange_profitable_p): Same.
16547         * graphite-poly.c
16548         (psct_scattering_dim_for_loop_depth): Same.
16549         * graphite-ppl.c
16550         (ppl_max_for_le_pointset): Same.
16551         (ppl_min_for_le_pointset): Same.
16553 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16555         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
16556         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
16558 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16560         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
16561         rewrite_close_phi_out_of_ssa.
16563 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16565         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
16567 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16569         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
16570         rename_map.
16571         * sese.c (debug_rename_map): Same.
16572         (get_rename): Same.
16573         (set_rename): Same.
16574         (rename_variables_in_stmt): Same.
16575         (expand_scalar_variables_call): Same.
16576         (expand_scalar_variables_ssa_name): Same.
16577         (expand_scalar_variables_expr): Same.
16578         (expand_scalar_variables_stmt): Same.
16579         (expand_scalar_variables): Same.
16580         (rename_variables): Same.
16581         (graphite_copy_stmts_from_block): Same.
16582         (copy_bb_and_scalar_dependences): Same.
16584 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16586         * graphite-clast-to-gimple.c (copy_renames): Removed.
16587         (translate_clast_for): Do not call copy_renames.
16588         (translate_clast_guard): Same.
16590 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16592         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
16593         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
16594         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
16595         before rewrite_cross_bb_scalar_deps.
16597 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16599         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
16600         Early return in when flag_associative_math is not set.
16602 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16604         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
16605         of SSA copies on edges except for loop->latch.
16607 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16609         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
16610         Split out of rewrite_reductions_out_of_ssa.
16611         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
16612         Declared.
16613         * graphite.c (graphite_transform_loops): Call it.
16615 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16617         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
16619 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
16621         * dbgcnt.def (graphite_scop): New counter.
16622         * graphite.c: Include dbgcnt.h.
16623         (graphite_transform_loops): Use new counter to limit transformations.
16624         * Makefile.in (graphite.o): Depend on DBGCNT_H.
16626 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16628         * passes.c (init_optimization_passes): Add pass_graphite.
16629         Schedule a pass_copy_prop before pass_graphite_transforms.
16630         * timevar.def (TV_GRAPHITE): Declared.
16631         * tree-pass.h (pass_graphite): Declared.
16632         * tree-ssa-loop.c (pass_graphite): New.
16634 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16636         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
16637         Remove calls to rename_nb_iterations and rename_sese_parameters.
16638         * graphite-clast-to-gimple.h (gloog): Update declaration.
16639         * graphite.c (graphite_transform_loops): Update call to gloog.
16640         * sese.c (rename_variables_in_expr): Removed.
16641         (rename_nb_iterations): Removed.
16642         (rename_sese_parameters): Removed.
16643         * sese.h (rename_nb_iterations): Removed.
16644         (rename_sese_parameters): Removed.
16646 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16648         * graphite-clast-to-gimple.c (gloog): Remove call to
16649         sese_adjust_liveout_phis.
16650         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
16651         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
16652         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
16653         rewrite_phi_out_of_ssa.
16654         * sese.c (get_vdef_before_sese): Removed.
16655         (sese_adjust_vphi): Removed.
16656         (sese_adjust_liveout_phis): Removed.
16657         * sese.h (sese_adjust_liveout_phis): Removed.
16659 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16661         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
16662         argument for the place after which to insert the out of SSA copy.
16663         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
16664         (rewrite_phi_out_of_ssa): Same.
16665         (rewrite_cross_bb_scalar_deps): Same.
16666         (insert_copyout): Removed.
16667         (insert_copyin): Removed.
16668         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
16669         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
16670         insert_copyin.
16672 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16674         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
16675         (rewrite_reductions_out_of_ssa): Same.
16676         (rewrite_commutative_reductions_out_of_ssa): Same.
16677         (build_poly_scop): Do not call these functions.
16678         * graphite-sese-to-poly.h (build_poly_scop): Declared.
16679         (rewrite_reductions_out_of_ssa): Declared.
16680         (rewrite_commutative_reductions_out_of_ssa): Declared.
16681         * graphite.c (graphite_transform_loops): Call on every scop
16682         rewrite_commutative_reductions_out_of_ssa before calling
16683         rewrite_reductions_out_of_ssa and build_scop_bbs.
16685 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16687         * graphite-dependences.c (dot_deps): Make system call to dotty run
16688         in background.
16689         (dot_deps_stmt): Same.
16690         * graphite-poly.c (dot_lst): Same.
16692 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16694         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
16695         phi_arg_in_outermost_loop.
16696         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
16697         (remove_invariant_phi): Same.
16699 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
16701         * target.def (output_addr_const_extra): New hook.
16702         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
16703         * doc/tm.texi: Regenerate.
16704         * targhooks.c (default_asm_output_addr_const_extra): New function.
16705         * targhooks.h (default_asm_output_addr_const_extra): Declare.
16706         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
16707         target hook.
16709         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16710         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
16711         * config/i386/i386.h (output_addr_const_extra): Rename to...
16712         (i386_asm_output_addr_const_extra): ...this. Make static.
16713         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16715 2010-08-11  Richard Henderson  <rth@redhat.com>
16717         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
16719 2010-08-11  Nick Clifton  <nickc@redhat.com>
16721         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
16722         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
16723         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16724         stormy16-lib2-cmpsi.c.
16726         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
16727         -O2.
16729 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
16731         * opts.h (struct cl_option_handler_func): Make handler take
16732         cl_decoded_option structure as parameter, not individual elements.
16733         (struct cl_option_handlers): Make callbacks take cl_decoded_option
16734         structure as parameter, not individual elements.
16735         (handle_option): Take cl_decoded_option structure as parameter,
16736         not individual elements.
16737         (handle_generated_option): Declare.
16738         * opts-common.c (handle_option): Take cl_decoded_option structure
16739         as parameter, not individual elements.  Update calls to callback
16740         and handler functions.
16741         (handle_generated_option): New.
16742         (read_cmdline_option): Update calls to callback functions and
16743         handle_option.
16744         * opts.c (common_handle_option, complain_wrong_lang,
16745         unknown_option_callback, post_handling_callback,
16746         lang_handle_option, target_handle_option): Take cl_decoded_option
16747         structure as parameter, not individual elements.
16748         (lang_handle_option, target_handle_option, common_handle_option):
16749         Assert option has at most one argument.
16750         (enable_warning_as_error): Call handle_generated_option instead of
16751         handle_option.  Do not pass -Werror argument as argument of
16752         generated option.
16754 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16756         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16757         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16758         (SUBWORD_BOOL_CAS): Likewise.
16759         (SUBWORD_SYNC_OP): Likewise.
16760         (SUBWORD_TEST_AND_SET): Likewise.
16761         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16762         (SUBWORD_SYNC_OP): Likewise.
16763         (OP_AND_FETCH_WORD): Likewise.
16765 2010-08-10  Xinliang David Li  <davidxl@google.com>
16767         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
16768         compute max/min offset in address.
16770 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
16772         * ira-live.c: Include sbitmap.h.
16773         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
16774         Compress live ranges even more.
16776 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16778         * coverage.c (ctr_labels): Delete.
16780 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16782         PR bootstrap/45177
16783         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
16784         test here from arm_gen_load_multiple_1.
16785         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
16786         multiple_operation_profitable_p.
16788 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16790         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
16791         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
16793 2010-08-10  Richard Henderson  <rth@redhat.com>
16795         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
16796         after saving registers.  Assert that SSE registers are only saved
16797         with a sufficiently aligned frame.
16798         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
16799         remove stack_realign_fp handling.
16800         (ix86_expand_prologue): Save int registers before stack_realign_fp,
16801         and do not mark the stack alignment as frame related.
16802         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
16804         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
16805         saves when re-aligning the stack.
16807 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16809         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
16810         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
16811         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
16813 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16815         * dwarf2out.c (struct die_struct): Move die_tag to the end.
16817 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
16819         * config/arm/iterators.md: New file.
16820         * config/arm/arm.md: Include iterators.md.
16821         (QHSI): Move to new file.
16822         (LTUGEU, cnb, optab, ior_xor): Likewise.
16823         * config/arm/iwmmxt.md (VMMX): Move to new file.
16824         (VSHFT, MMX_char): Likewise.
16825         * config/arm/neon.md (VD): Move to new file.
16826         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
16827         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
16828         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
16829         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
16830         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
16831         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
16832         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
16833         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
16834         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
16835         (Is_d_reg, V_mode_nunits): Likewise.
16836         * config/arm/vec-common.md (VALL): Move to new file.
16837         (VALLW, VINT, VINTW): Likewise.
16839 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16841         PR middle-end/45182
16842         * combine.c (make_compound_operation): Don't try to convert
16843         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
16845 2010-08-10  Richard Guenther  <rguenther@suse.de>
16847         * tree.h (get_object_alignment): Adjust prototype.
16848         * builtins.c (get_object_alignment): Return unsigned int,
16849         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
16850         and TARGET_MEM_REF properly.
16851         (get_pointer_alignment): Adjust.
16852         * emit-rtl.c (get_mem_align_offset): Adjust comment.
16853         (set_mem_attributes_minus_bitpos): Adjust.
16854         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
16856 2010-08-10  Richard Guenther  <rguenther@suse.de>
16858         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
16859         (copy_prop_visit_assignment): Simplify.
16860         (copy_prop_visit_stmt): Also visit assignments from
16861         constants.
16862         (copy_prop_visit_phi_node): Use operand_equal_p.
16864 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16866         * ipa-split.c (find_split_points): Free stack.
16868 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16870         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
16871         * tree.c (tree_node_kind): Delete corresponding entries.
16873 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16875         * alias.c (may_alias_p): Remove unused ret.
16877 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
16879         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
16880         alias_sets_conflict_p.
16881         (walk_mems_1): Moved from alias.c.
16882         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
16883         in alias.c.
16884         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
16885         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
16886         * alias.c (walk_mems_2): Moved to ddg.c.
16887         (walk_mems_1): Ditto.
16888         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
16889         to ddg.c.
16890         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
16891         disambiguation.
16892         *(may_alias_p): New function to check whether two memory expression
16893         may alias or not. Currently used in buidling inter-iteration memory
16894         dependence.
16895         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
16896         (insn_alias_sets_conflict_p): Removed
16897         *rtl.h (may_alias_p): New function prototype.
16899 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16901         * tree.c (nreverse): Assert that we don't have a BLOCK.
16903 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16905         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
16906         * config/arm/arm.c (arm_get_pcs_model): Likewise.
16907         * config/avr/avr.c (init_cumulative_args): Likewise.
16908         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16909         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
16910         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
16911         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
16912         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
16913         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16914         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
16915         * dwarf2out.c (gen_subprogram_die): Likewise.
16916         * function.c (allocate_struct_function): Likewise.
16917         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
16918         (deserves_ellipsis): Delete.
16920 2010-08-09  Richard Guenther  <rguenther@suse.de>
16922         * tree-ssa-copy.c (cached_last_copy_of): Remove.
16923         (valueize_val): New function.
16924         (get_last_copy_of): Remove.
16925         (set_copy_of_val): Simplify.
16926         (dump_copy_of): Likewise.
16927         (copy_prop_visit_cond_stmt): Use valueize_val.
16928         (copy_prop_visit_phi_node): Properly handle unvisited names.
16929         Drop code managing copy-of chains.
16930         (init_copy_prop): Adjust.
16931         (fini_copy_prop): Likewise.
16932         (execute_copy_prop): Remove obsolete comment.
16934 2010-08-09  Richard Guenther  <rguenther@suse.de>
16936         PR middle-end/44632
16937         * function.c (gimplify_parameters): Do not clear addressable
16938         bit of the original parameter.
16940 2010-08-09  Richard Guenther  <rguenther@suse.de>
16942         PR middle-end/45212
16943         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
16944         alignment from MEM_REF offset only if we took it from the
16945         base object.
16947 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
16949         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
16951 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16953         * c-tree.h (build_arg_info): Declare.
16954         * c-decl.c (build_arg_info): Define.
16955         (get_parm_info): Call it.  Delete initialization code.
16956         * c-parser.c (c_parser_parms_declarator): Likewise.
16957         (c_parser_parms_list_declaractor): Likewise.
16959 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16961         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16962         (struct c_arg_info): Change type of tags field.
16963         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16964         (get_parm_info): Likewise.
16965         (store_parm_decls_newstyle): Likewise.
16967 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16969         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16970         (branch_island_list): Delete.
16971         (branch_islands): Declare.
16972         (add_compiler_branch_island): Adjust for branch_islands instead of
16973         branch_island_list.
16974         (macho_branch_islands): Likewise.
16975         (no_previous_def): Likewise.
16976         (get_prev_label): Likewise.
16978 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16980         PR boehm-gc/34544
16981         * gthr-posix.h (__gthread_start): Delete.
16982         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16983         pthread_create to determine if hpux pthreads are active.
16984         * gthr-posix95.h (__gthread_start): Delete.
16985         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16987 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16989         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16990         _WIN64 not expanded.
16992 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16993             H.J. Lu  <hongjiu.lu@intel.com>
16995         PR target/45213
16996         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16997         to output 32bit SFmode immediate as 8 byte sign extended value.
16999 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17001         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
17002         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
17003         (SUBWORD_BOOL_CAS): Likewise.
17004         (SUBWORD_SYNC_OP): Likewise.
17005         (SUBWORD_TEST_AND_SET): Likewise.
17006         (FETCH_AND_OP_WORD): Parenthesise INF_OP
17007         (SUBWORD_SYNC_OP): Likewise.
17008         (OP_AND_FETCH_WORD): Likewise.
17010 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17012         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
17013         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
17014         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
17015         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
17016         generic part.
17017         (cortex_a9_sched_adjust_cost): New function.
17018         (xscale_sched_adjust_cost): New function.
17019         * config/arm/arm-protos.h (struct tune_params): New field
17020         sched_adjust_cost.
17021         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
17023 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
17025         PR target/44942
17026         * config/sparc/sparc.c (function_arg_advance): Always take into account
17027         the padding, if any.
17029 2010-08-06  Richard Guenther  <rguenther@suse.de>
17031         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
17032         (dump_lattice_value): Dump it.
17033         (get_default_value): Adjust.
17034         (get_constant_value): Likewise.
17035         (set_value_varying): Likewise.
17036         (set_lattice_value): Make sure to not go up the lattice
17037         with bitwise constant values.
17038         (get_value_for_expr): Handle ADDR_EXPRs.
17039         (value_to_double_int): New function.
17040         (get_value_from_alignment): Likewise.
17041         (do_dbg_cnt): Adjust.
17042         (ccp_lattice_meet): Handle partially constant values.
17043         (bit_value_unop_1): New function.
17044         (bit_value_binop_1): Likewise.
17045         (bit_value_unop): Likewise.
17046         (bit_value_binop): Likewise.
17047         (evaluate_stmt): Track partially constant values if
17048         flag_tree_bit_ccp is set.
17049         (ccp_fold_stmt): Dump if we folded a predicate.
17050         (ccp_visit_stmt): Adjust.
17051         * common.opt (ftree-bit-ccp): New flag.
17052         * doc/invoke.texi (ftree-bit-ccp): Document.
17053         * opts.c (decode_options): Enable bit-CCP at -O1.
17055 2010-08-06  Alan Modra  <amodra@gmail.com>
17057         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
17058         and -mrelocatable-lib description.
17060 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
17062         From Martin Thuresson  <martint@google.com>
17063         * postreload.c (reload_cse_simplify_operands): Use
17064         SET_REGNO_RAW instead of SET_REGNO.
17065         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
17066         SET_REGNO.
17067         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
17068         instead of SET_REGNO.
17069         * rtl.h (SET_REGNO_RAW): New macro.
17071 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
17073         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
17074         computations.  Fix formatting issues.
17075         (num_sign_bit_copies1): Likewise.
17076         (canonicalize_condition): Likewise.
17078 2010-08-05  Richard Henderson  <rth@redhat.com>
17080         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
17081         (floor_log2): Use clz_hwi.
17082         (exact_log2): Use ctz_hwi.
17083         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
17084         * builtins.c (fold_builtin_bitop): Use them.
17085         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
17086         * combine.c (get_pos_from_mask): Use ctz_hwi.
17087         * double-int.c (double_int_ctz): Likewise.
17088         * explow.c (force_reg): Likewise.
17089         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
17091 2010-08-05  Richard Henderson  <rth@redhat.com>
17093         PR target/45189
17094         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
17095         the alignment constant is properly sign-extended.
17097 2010-08-05  Richard Guenther  <rguenther@suse.de>
17099         * expr.c (store_expr): Use emit_block_move only if both
17100         source and target are MEMs.  Use store_bit_field if only
17101         the target is a MEM.
17103 2010-08-05  Richard Henderson  <rth@redhat.com>
17105         PR debug/45188
17106         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
17107         (INCOMING_RETURN_ADDR_RTX): Likewise.
17108         (dwarf2out_do_frame): Remove conditional compilation.
17109         (dwarf2out_frame_init): Likewise.
17111 2010-08-05  Nicolas Setton  <setton@adacore.com>
17113         * gcov.c (flag_display_progress): New static variable.
17114         (main): Display progress info on standard output if requested.
17115         (options): Add -d/--display-progress.
17116         (print_usage): Print them.
17117         (process_args): Handle them.
17118         * doc/gcov.texi: Document them.
17120 2010-08-05  Martin Jambor  <mjambor@suse.cz>
17122         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
17123         (ipcp_insert_stage): Redirect only edges not flagged with
17124         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
17125         discovered constants.
17127 2010-08-05  Martin Jambor  <mjambor@suse.cz>
17129         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
17130         (struct ipa_param_descriptor): New fields types and
17131         cannot_devirtualize.
17132         (ipa_param_cannot_devirtualize_p): New function.
17133         (ipa_param_types_vec_empty): Likewise.
17134         (ipa_make_edge_direct_to_target): Declare.
17135         * ipa-cp.c: Fixed first stage driver name in initial comment,
17136         described devirtualization there too.
17137         (ipcp_analyze_node): Call ipa_analyze_params_uses.
17138         (ipcp_print_all_lattices): Print devirtualization info.
17139         (ipa_set_param_cannot_devirtualize): New function.
17140         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
17141         lattice to BOTTOM.
17142         (ipcp_init_stage): Merged into...
17143         (ipcp_generate_summary): ...its caller.
17144         (ipcp_change_tops_to_bottom): Also process type lists.
17145         (ipcp_add_param_type): New function.
17146         (ipcp_copy_types): Likewise.
17147         (ipcp_propagate_types): Likewise.
17148         (ipcp_propagate_stage): Also propagate types.
17149         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
17150         Also return true if propagated types require it.
17151         (ipcp_update_callgraph): Dump redirection info.
17152         (ipcp_process_devirtualization_opportunities): New function.
17153         (ipcp_const_param_count): Include known type information.
17154         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
17155         on new node.  Fixed formatting.
17156         * ipa-prop.c (make_edge_direct_to_target): Renamed to
17157         ipa_make_edge_direct_to_target and changed all callers.  Made
17158         externally visible.
17159         (ipa_node_duplication_hook): Duplicate types vector.
17160         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
17161         redirect outgoing calls for which we can't get a decl from the
17162         statement.  Check that we can get a decl from the call statement.
17163         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
17164         ipa_analyze_params_uses only when ipa-cp is disabled.
17165         * tree-inline.c (get_indirect_callee_fndecl): Removed.
17166         (expand_call_inline): Do not call get_indirect_callee_fndecl.
17167         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
17168         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
17170 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
17172         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
17173         temporary. Emit move from temporary to accum, so REG_EQUAL note will
17174         be attached to this insn in correct mode.
17176 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
17178         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
17179         using REGNO of base_reg directly.
17181 2010-08-05  Jie Zhang  <jie@codesourcery.com>
17183         PR tree-optimization/45144
17184         * tree-sra.c (type_consists_of_records_p): Return false
17185         if the record contains bit-field.
17187 2010-08-04  Richard Henderson  <rth@redhat.com>
17189         * config/i386/i386.c (struct ix86_frame): Remove padding and
17190         to_allocate members.
17191         (ix86_compute_frame_layout): Don't store them.
17192         (ix86_can_use_return_insn_p): Use a more direct and more obviously
17193         correct condition for the position of the stack pointer.
17194         (ix86_expand_prologue): Compute remaining stack allocation based
17195         on the ultimate stack pointer offset.
17196         (ix86_expand_epilogue): Use more obvious expressions testing for
17197         the stack pointer already pointing to the saved registers.
17199         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
17200         duplication deconstructing the frame pointer.  Simplify
17201         deallocation of the local stack frame.
17203         * reg-notes.def (CFA_EXPRESSION): New.
17204         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
17205         (dwarf2out_frame_debug_cfa_expression): New.
17206         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
17208         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
17209         * config/i386/i386.c (ix86_expand_prologue): Set it.
17210         (ix86_expand_epilogue): Clear it.
17211         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
17212         context, add REG_CFA_EXPRESSION notes.
17214         * config/i386/i386.h (struct machine_frame_state): Rename from
17215         machine_cfa_state.  Add members tracking SP and FP regardless
17216         of the current CFA register.
17217         (ix86_cfa_state): Remove.
17218         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
17219         and sse_reg_save_offset members.
17220         (ix86_compute_frame_layout): Set them.
17221         (gen_push): Increment sp_offset too.
17222         (choose_baseaddr_len, choose_baseaddr): New.
17223         (ix86_emit_save_reg_using_mov): New.
17224         (ix86_emit_save_regs_using_mov): Use it.
17225         (ix86_emit_save_sse_regs_using_mov): Likewise.
17226         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
17227         compare vs the saved red_zone_offset.
17228         (pro_epilogue_adjust_stack): Adjust sp_offset.
17229         (ix86_adjust_stack_and_probe): Likewise.
17230         (ix86_expand_prologue): Set up, use, and validate the new
17231         frame_state_info members.  Use gen_frame_mem.
17232         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
17233         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
17234         new frame_state_info members.
17235         (ix86_emit_leave): Likewise.
17236         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
17237         out-of-range stack pointer offsets here.
17238         (ix86_emit_restore_sse_regs_using_mov): Likewise.
17239         (ix86_expand_epilogue): Use and validate the new frame_state_info
17240         members.  Break up and simplify the logic selecting the
17241         restore_regs_via_mov code path.  Ensure that there will be no
17242         out-of-range stack pointer offsets.
17244         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
17246         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
17247         argument name to reflect the expected tree; fix indentation.
17248         (ix86_asm_output_function_label): Output the entire 32-bit
17249         ms_hook here as bytes ...
17250         (ix86_expand_prologue): ... not here as insns.  Attach the
17251         unwind info for the ms_hook to a blockage insn.
17252         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
17253         (ix86_ms_bitfield_layout_p): Fix indentation.
17254         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
17256         * config/i386/i386.c (ix86_using_red_zone): New.
17257         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
17258         ix86_expand_prologue, ix86_force_to_memory): Use it.
17260         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
17261         saving the int registers.
17263         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
17264         and DWARF2_UNWIND_INFO conditional compilation.
17266 2010-08-04  Richard Henderson  <rth@redhat.com>
17268         PR debug/45171
17269         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
17270         an is_naming_typedef_decl.
17272 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
17274         PR rtl-optimization/45162
17275         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
17276         * dce.c (word_dce_process_block): Likewise.
17278 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
17280         PR target/44583
17281         * config/ia64/constraints.md (Z): New.
17282         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
17283         (xfreg_or_signed_fp01_operand): New.
17284         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
17285         with fr_reg_or_signed_fp01_operand and constraint G with Z.
17286         (subsf3): Ditto.
17287         (*maddsf4): Ditto.
17288         (*msubsf4): Ditto.
17289         (adddf3): Ditto.
17290         (adddf3_trunc): Ditto.
17291         (subdf3): Ditto.
17292         (*subdf3_trunc): Ditto.
17293         (*madddf4): Ditto.
17294         (*madddf4_trunc): Ditto.
17295         (*msubdf4): Ditto.
17296         (*msubdf4_trunc): Ditto.
17297         (addxf3): Replace xfreg_or_fp01_operand with
17298         xfreg_or_signed_fp01_operand and constraint G with Z.
17299         (*addxf3_truncsf): Ditto.
17300         (*addxf3_truncdf): Ditto.
17301         (subxf3): Ditto.
17302         (*subxf3_truncsf): Ditto.
17303         (*subxf3_truncdf): Ditto.
17304         (*maddxf4): Ditto.
17305         (*maddxf4_truncsf): Ditto.
17306         (*maddxf4_truncdf): Ditto.
17307         (*msubxf4): Ditto.
17308         (*msubxf4_truncsf): Ditto.
17309         (*msubxf4_truncdf): Ditto.
17311 2010-08-04  Richard Guenther  <rguenther@suse.de>
17313         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
17314         if either alias-set is zero.
17316 2010-08-04  Richard Guenther  <rguenther@suse.de>
17318         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
17319         * tree-ssa-ccp.c: ... here.
17320         * tree-ssa-copy.c: ... and here.
17321         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
17322         value_range_t): Move ...
17323         * tree-vrp.c: ... here.
17324         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
17325         (substitute_and_fold): Adjust prototype.
17326         * tree-ssa-propagate.c (replace_uses_in): Adjust.
17327         (replace_phi_args_in): Likewise.
17328         (substitute_and_fold): Take callback to query lattice instead
17329         of pointer to lattice.  Replace SSA name defs with lattice
17330         values first.
17331         * tree-ssa-ccp.c (ccp_finalize): Adjust.
17332         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
17333         (get_value): New function.
17334         (fini_copy_prop): Adjust.
17335         * tree-vrp.c (vrp_finalize): Adjust.
17337 2010-08-04  Richard Guenther  <rguenther@suse.de>
17339         PR middle-end/45176
17340         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
17341         points-to set for original MEM_REF.
17343 2010-08-04  Richard Guenther  <rguenther@suse.de>
17345         * tree-ssa-ccp.c (get_constant_value): New function.
17346         (get_rhs_assign_op_for_ccp): Remove.
17347         (valueize_op): New function.
17348         (ccp_fold): Use get_constant_value and valueize_op.
17349         (fold_const_aggregate_ref): Likewise.
17350         (ccp_fold_stmt): Likewise.
17351         (visit_assignment): Simplify.
17353 2010-08-04  Richard Guenther  <rguenther@suse.de>
17355         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
17356         * double-int.h (double_int_ctz): Declare.
17357         * double-int.c (double_int_ctz): New function.
17359 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
17361         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
17362         Define.
17363         picochip_expand_movmemhi : Expand movmem pattern.
17364         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
17365         Declare.
17366         * config/picochip/picochip.md (movmemhi) : New pattern.
17368 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
17370         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
17372 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
17374         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
17375         NEG as operand of a MULT by merging it with the other operand.
17376         * combine.c (make_compound_operation): Use trunc_int_for_mode when
17377         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
17378         MULT.
17379         * config/arm/constraints.md (M): Examine only 32 bits of a
17380         HOST_WIDE_INT.
17381         * config/arm/predicates.md (power_of_two_operand): Likewise.
17383 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17385         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
17386         non-NOTE insns.
17388 2010-08-03  Jan Hubicka  <jh@suse.cz>
17390         * ipa-split.c (struct split_point): Add split_part_set_retval.
17391         (find_retval): Forward declare.
17392         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
17393         (consider_split): Compute current->split_part_set_retval.
17394         (visit_bb): Do not look into return value.
17395         (split_function): Handle !split_part_set_retval
17397 2010-08-03  Martin Jambor  <mjambor@suse.cz>
17399         * tree-sra.c (completely_scalarize_record): New parameter REF, create
17400         its own access->expr intead of using build_ref_for_offset.
17402 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
17404         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
17405         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
17406         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
17407         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
17408         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
17409         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
17410         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
17411         DEFAULT_SWITCH_TAKES_ARG.
17412         * config/rx/rx.opt (-patch=): Remove option.
17413         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
17414         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
17415         * doc/invoke.texi (RX Options): Remove -patch=.
17416         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
17417         (option_map): Remove --profile-blocks, --quiet and --silent.
17419 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
17421         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
17422         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
17423         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
17424         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
17425         Update calls to ix86_expand_compare and ix86_expand_branch.
17426         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
17427         ix86_expand_compare.
17428         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
17429         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
17430         Make static.
17431         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
17432         and ix86_compare_op1.  Update calls to ix86_expand_compare.
17433         (ix86_expand_int_movcc): Ditto.
17434         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
17435         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
17436         (ix86_expand_setcc): Ditto.
17437         (ix86_expand_compare): Remove prototype.
17438         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
17439         ix86_compare_op0 and ix86_compare_op1.  Update calls
17440         to ix86_expand_branch to directly pass operands[1] and operands[2].
17441         (cbranchxf4): Ditto.
17442         (cbranch<MODEF:mode>4): Ditto.
17443         (cbranchcc4): Ditto.
17444         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
17445         Update calls to ix86_expand_setcc to directly pass operands[2] and
17446         operands[3].
17447         (cstorexf4): Ditto.
17448         (cstore<MODEF:mode>4): Ditto.
17449         (cstorecc4): Ditto.
17451 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
17453         PR target/45063
17454         * caller-save.c (save_call_clobbered_regs): Remove regs from
17455         hard_regs_saved when they are set.
17457 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
17459         PR target/41089
17460         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
17461         as volatile.
17463 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
17465         * common.opt (ftree-loop-distribute-patterns): New.
17466         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
17467         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
17468         at -O3.
17469         * tree-data-ref.c (stores_zero_from_loop): New.
17470         * tree-data-ref.h (stores_zero_from_loop): Declared.
17471         * tree-loop-distribution.c (tree_loop_distribution): Call
17472         stores_zero_from_loop.
17473         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
17475 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
17477         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
17478         into account.
17480         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
17481         * config/arm/arm.c (thumb1_code): New variable.
17482         (arm_override_options): Set it.
17483         (thumb1_final_prescan_insn): Keep track of condition code status.
17484         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
17485         jumps that depend on them.
17486         * config/arm/arm.h (thumb1_code): Declare variable.
17487         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
17488         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
17489         thumb1_cc_mode.
17490         (CC_STATUS_INIT): New macro.
17491         * config/arm/constraints.md (Pd): New constraint.
17492         * config/arm/predicates.md (noov_comparison_operator): New predicate.
17493         * config/arm/arm.md (is_thumb1): New define_attr.
17494         (conds): Set default to "clob" when generating Thumb1 code.
17495         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
17496         code are set.  Use two-operand assembly syntax.
17497         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
17498         pattern.
17499         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
17500         codes are set.  Use two-operand assembly syntax.
17501         (zero_extendhisi splitter): Remove constraints.
17502         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
17503         thumb1_movsf_insn): Set conds attribute as appropriate.
17504         (cbranchsi4_insn): Use condition code status from struct
17505         machine_function to determine whether the comparison can be eliminated.
17506         Discourage the alternative using high registers.
17507         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
17508         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
17509         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
17510         subsi3_cbranch): Delete.
17511         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
17512         one subtract and one cbranch insn.
17514         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
17515         thumb2_movdf_soft_insn): Delete patterns.
17516         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
17517         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
17518         (pool_range, neg_pool_range): Use them to define defaults.
17519         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
17520         and allow for TARGET_32BIT.
17522         PR target/40457
17523         * config/arm/arm.h (arm_regs_in_sequence): Declare.
17524         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
17525         load_multiple_sequence, store_multiple_sequence): Delete
17526         declarations.
17527         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
17528         declarations.
17529         * config/arm/ldmstm.md: New file.
17530         * config/arm/arm.c (arm_regs_in_sequence): New array.
17531         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
17532         CHECK_REGS.  All callers changed.
17533         If SAVED_ORDER is nonnull, copy the computed order into it.
17534         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
17535         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
17536         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
17537         If SAVED_ORDER is nonnull, copy the computed order into it.
17538         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
17539         like REGS.  Handle Thumb mode.
17540         (arm_gen_load_multiple_1): New function, broken out of
17541         arm_gen_load_multiple.
17542         (arm_gen_store_multiple_1): New function, broken out of
17543         arm_gen_store_multiple.
17544         (arm_gen_multiple_op): New function, with code from
17545         arm_gen_load_multiple and arm_gen_store_multiple moved here.
17546         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
17547         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
17548         changed.
17549         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
17550         * config/arm/predicates.md (commutative_binary_operator): New.
17551         (load_multiple_operation, store_multiple_operation): Handle more
17552         variants of these patterns with different starting offsets.  Handle
17553         Thumb-1.
17554         * config/arm/arm.md: Include "ldmstm.md".
17555         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
17556         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
17557         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
17558         peepholes): Delete.
17559         * config/arm/ldmstm.md: New file.
17560         * config/arm/arm-ldmstm.ml: New file.
17562         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
17563         if statement which adds extra costs to frame-related expressions.
17565 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17567         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
17569 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
17571         PR target/45142
17572         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
17573         alternative 2.
17574         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
17575         split V4SI operands.
17577 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
17579         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17580         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
17581         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
17582         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17584 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
17586         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
17587         LOCAL_INCLUDE_DIR.
17589 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
17591         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
17592         used in the call to optab_for_tree_code.  Fix the second
17593         is_widening_mult_p call.  Check that both unwidened operands
17594         have the same sign.
17596 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
17598         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
17600 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
17602         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17604 2010-07-30  DJ Delorie  <dj@redhat.com>
17606         * config/rx/predicates.md (rx_constshift_operand): New.
17607         * config/rx/rx.md (zs_cond): New.
17608         (cbranchsi4): Remove mode.
17609         (*cbranchsi4_<code>): Likewise.
17610         (*tstbranchsi4_<code>): New.
17611         (*tstbranchsi4r_<code>): New.
17612         (*tstbranchsi4m_eq): New.
17613         (*tstbranchsi4m_ne): New.
17614         (cbranchsf4): Remove mode.
17615         (*cbranchsf4_<code>): Likewise.
17617 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
17619         * rtlanal.c (simplify_subreg_regno): Don't treat
17620         HARD_FRAME_POINTER_REGNUM specially.
17622 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
17624         * common.opt (-G): Don't define option here.
17625         * config/g.opt: New.
17626         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
17627         rs6000/powerpc and score targets.
17628         * opts.c (common_handle_option): Don't handle -G here.
17629         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
17630         * config/frv/frv.c (frv_handle_option): Handle -G.
17631         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
17632         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
17633         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
17634         * config/mips/mips.c (mips_handle_option): Handle -G.
17635         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
17636         * config/score/score.c (score_handle_option): Handle -G.
17638 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
17640         * config/mmix/mmix.c: Include basic-block.h.
17642 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
17644         PR debug/45055
17645         PR rtl-optimization/45137
17646         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
17647         prototypes.
17648         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
17649         New functions.
17650         * combine.c (next_nonnote_nondebug_insn): Removed.
17651         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
17652         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
17653         * sched-deps.c (sched_analyze_insn): Likewise.
17654         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
17655         * rtlanal.c (canonicalize_condition): Likewise.
17656         * postreload.c (reload_combine_recognize_pattern): Likewise.
17657         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
17659 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
17661         * config/i386/i386.md (int_cond): Remove code iterator.
17662         (fp_cond): Ditto.
17663         (cbranch<mode>4): Use ordered_comparison_operator predicate
17664         for operator0.
17665         (cstore<mode>4): Ditto for operator1.
17666         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
17667         (add<mode>cc): ditto.
17669 2010-07-30  Richard Guenther  <rguenther@suse.de>
17671         PR middle-end/45141
17672         * expr.c (expand_expr_real_1): Check for not handled base address.
17674 2010-07-30  Richard Guenther  <rguenther@suse.de>
17676         * ipa-prop.c (ipa_modify_formal_parameters): Use
17677         build_distinct_type_copy.
17679 2010-07-30  Anthony Green  <green@moxielogic.com>
17681         * config/moxie/rtems.h: New file.
17682         * config.gcc: Add moxie-rtems support.
17684 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
17686         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
17687         df flags as in run_fast_df_dce.
17689 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
17691         Revert:
17692         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17694         * rtl.def (NOTE): Swap operands 4 and 5.
17695         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
17696         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
17697         Adjust accordingly.
17698         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
17700 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
17702         PR debug/45110
17703         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
17704         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
17705         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
17706         formal parameters.
17707         (gen_decl_die): Change return type to dw_die_ref, return what
17708         gen_formal_parameter_die returned.
17710 2010-07-29  Martin Jambor  <mjambor@suse.cz>
17712         * dbgcnt.def (eipa_sra): New counter.
17713         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
17715 2010-07-29  Xinliang David Li  <davidxl@google.com>
17717         PR bootstrap/45119
17718         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
17719         in revision 162652.
17721 2010-07-29  Richard Guenther  <rguenther@suse.de>
17723         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
17724         (TV_TREE_STORE_CCP): Likewise.
17725         (TV_TREE_REDPHI): Likewise.
17727 2010-07-29  Richard Guenther  <rguenther@suse.de>
17729         * double-int.h (double_int_and_not): New function.
17730         * combine.c (try_combine): Use it.
17731         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
17733 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
17735         PR rtl-optimization/42575
17736         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
17737         Argument AU removed.  All callers changed.  Ignore artificial refs.
17738         Use return value of df_word_lr_simulate_defs to decide whether an insn
17739         is necessary.
17740         (fast_dce): Rename arg to WORD_LEVEL.
17741         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
17742         static.
17743         (pass_fast_rtl_byte_dce): Delete.
17744         * dce.h (run_word_dce): Declare.
17745         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
17746         All callers changed.  Simplify code to only deal with two-word regs.
17747         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
17748         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
17749         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
17750         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
17751         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
17752         (df_word_lr_mark_ref): Declare.
17753         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
17754         df_word_lr_simulate_uses): Declare or rename from byte variants.
17755         (df_byte_lr_simulate_artificial_refs_at_top,
17756         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
17757         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
17758         declarations.
17759         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
17760         (enum df_mm): Delete.
17761         * df-byte-scan.c: Delete file.
17762         * df-problems.c (df_word_lr_problem_data): Renamed from
17763         df_byte_lr_problem_data, all members deleted except for
17764         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
17765         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
17766         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
17767         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
17768         df_byte_lr_confluence_0): Delete functions.
17769         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
17770         callers changed.
17771         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
17772         Don't initialize members that were deleted, don't try to discover data
17773         about registers.  Ignore hard regs.
17774         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
17775         (df_word_lr_mark_ref): New function.
17776         (df_word_lr_bb_local_compute): Renamed from
17777         df_byte_bb_lr_local_compute; all callers changed.  Use
17778         df_word_lr_mark_ref.  Assert that artificial refs don't include
17779         pseudos.  Ignore hard registers.
17780         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
17781         Assert that exit block uses don't contain pseudos.
17782         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
17783         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
17784         callers changed.  Ignore hard regs.
17785         (df_word_lr_transfer_function): Renamed from
17786         df_byte_lr_transfer_function; all callers changed.
17787         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
17788         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
17789         changed.
17790         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
17791         callers changed.
17792         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
17793         confluence operator 0 set to NULL.
17794         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
17795         callers changed.
17796         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
17797         Return bool, true if bitmap changed or insn otherwise necessary.
17798         All callers changed.  Simplify using df_word_lr_mark_ref.
17799         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
17800         all callers changed.  Simplify using df_word_lr_mark_ref.
17801         * lower-subreg.c: Include "dce.h"
17802         (decompose_multiword_subregs): Call run_word_dce if df available.
17803         * Makefile.in (lower-subreg.o): Adjust dependencies.
17804         (df-byte-scan.o): Delete.
17805         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
17807 2010-07-29  Richard Guenther  <rguenther@suse.de>
17809         * tree.c (build_vector): Assert that the vector constant
17810         has enough elements.
17811         (build_vector_from_ctor): Pad with trailing zeros.
17813 2010-07-29  Richard Guenther  <rguenther@suse.de>
17815         PR tree-optimization/45120
17816         * tree-ssa-structalias.c (get_constraint_for_component_ref):
17817         Handle offset in DEREFs properly.
17818         (get_constraint_for_1): Handle MEM_REF offset properly.
17820 2010-07-29  Richard Guenther  <rguenther@suse.de>
17822         PR middle-end/45034
17823         * convert.c (convert_to_integer): Always use an unsigned
17824         type for narrowed negate and bitwise not.
17826 2010-07-29  Ira Rosen  <irar@il.ibm.com>
17828         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
17829         to outer loop when creating reduction epilogue for double reduction,
17830         and switch back to the inner loop when updating the phi nodes.
17831         Update uses of outer loop exit phi nodes in double reduction (instead
17832         of uses of reduction).
17834 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
17836         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
17837         popcount on power7 and parity on power6 systems.
17838         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
17839         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
17840         instructions.
17842         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
17843         (UNSPEC_PARITY): Ditto.
17844         (SFDF): New iterator for SF/DF.
17845         (rreg2): New mode attribute for floating register constraint.
17846         (TARGET_FLOAT): New mode attribute for whether single/double float
17847         is supported.
17848         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
17849         pattern.
17850         (parity<mode>2_cmpb): New insn for parity on power6 and newer
17851         machines.
17852         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
17853         pattern.  Add support for fcpsgn instruction added in power6.
17854         (copysignsf3): Delete.
17855         (copysigndf3): Delete.
17856         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
17857         instead of if_then_else in RTL to avoid problems with -0.
17859         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
17860         of if_then_else to mirror scalar code.
17861         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
17862         rs6000.md.
17864         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
17865         instead of if_then_else.
17867 2010-07-28  Xinliang David Li  <davidxl@google.com>
17869         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
17870         (dump_cand): Dump var_before/after.
17871         (htab_inv_expr_eq): New function.
17872         (htab_inv_expr_hash): New function.
17873         (tree_ssa_iv_optimize_init): Support pseudo invariants.
17874         (add_candidate_1): consider base type precision.
17875         (set_use_iv_cost): New parameter.
17876         (adjust_setup_cost): Use profile information.
17877         (get_address_cost): Do not hard code width in computing address
17878         offset limits.
17879         (compare_aff_trees): New function.
17880         (get_loop_invariant_expr_id): New function.
17881         (get_computation_cost_at): New parameter and use profile information.
17882         (get_computation_cost): New parameter.
17883         (determine_use_iv_cost_generic): Pass new parameter.
17884         (determine_use_iv_cost_address): Ditto.
17885         (determine_use_iv_cost_condition): Ditto.
17886         (autoinc_possible_for_pair): Ditto.
17887         (determine_use_iv_costs): More dumps.
17888         (iv_ca_get_num_inv_exprs): New function.
17889         (iv_ca_recount_cost): Consider loop invariants in register pressure
17890         cost.
17891         (iv_ca_add_use): New parameter.
17892         (iv_ca_dump): Better dumping.
17893         (iv_ca_extend): New parameter.
17894         (try_add_cand_for): Attempt to get better partial solution.
17895         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
17896         (create_new-ivs): More dumps.
17897         (rewrite_use_compare): Ditto.
17898         (free_loop_data): More cleanup.
17899         (treee_ssa_iv_optimize_finalize): Ditto.
17901 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
17903         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
17904         * config/i386/i386.c (ix86_profile_before_prologue): New.
17905         (override_options): Add special handling for -mfentry.
17906         (ix86_function_regparm): Likewise.
17907         (ix86_function_sseregparm): Likewise.
17908         (ix86_frame_pointer_required): Likewise.
17909         (ix86_expand_prologue): Check for ms_hook_prologue.
17910         (x86_function_profiler): Adjust mcount output.
17911         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
17912         * config/i386/i386.opt (mfentry): New.
17913         * doc/invoke.texi (mfentry): Add documentation.
17914         * doc/tm.texi: Regenerated..
17915         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
17916         * final.c (final_start_function): Replace macro
17917         PROFILE_BEFORE_PROLOGUE by target hook.
17918         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17919         * target.def (profile_before_prologue): New hook.
17920         * targhooks.c (default_profile_before_prologue): New.
17921         * targhooks.h (default_profile_before_prologue): New.
17923 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
17925         PR debug/45105
17926         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
17928         PR debug/45103
17929         * dwarf2out.c (dwarf2out_var_location): Always consider
17930         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
17932 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17934         PR rtl-optimization/45107
17935         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
17937 2010-07-28  Richard Guenther  <rguenther@suse.de>
17939         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
17940         (set_lattice_value): Do not query an old default value.
17941         (get_value_for_expr): New function.  Properly canonicalize
17942         float values.
17943         (ccp_visit_phi_node): Use it.
17945 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
17947         * config/arm/arm.c (arm_pcs_default): Remove static.
17948         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
17949         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
17950         (arm_pcs_default): Declare.
17952 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
17954         * config/rs6000/rs6000.c (rs6000_override_options):
17955         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
17956         ... to darwin_rs6000_override_options.
17957         (rs6000_return_in_memory): Update preceding comment for darwin
17958         64 bit ABI.  Use TARGET_MACHO inline.
17959         (rs6000_darwin64_struct_check_p): New.
17960         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17961         (function_arg): Likewise.
17962         (rs6000_arg_partial_bytes): Likewise.
17963         (rs6000_function_value): Likewise.
17965 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17967         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17969 2010-07-28  Richard Guenther  <rguenther@suse.de>
17971         PR middle-end/44903
17972         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17973         targets try harder to not generate unaligned accesses.
17975 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17977         PR rtl-optimization/45101
17978         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17979         for gcse-las.
17981 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17983         PR tree-optimization/44885
17984         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17985         with non-aliased component.
17987 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17989         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17990         WORD_SWITCH_TAKES_ARG): Remove.
17991         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17992         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17993         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17994         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17995         definitions from gcc.c.
17996         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17997         defaults.h.
17998         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17999         Move to defaults.h.
18000         * opts-common.c: Include tm.h.
18001         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
18002         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
18003         Handle more than one argument.  Set canonical_option_num_elements.
18004         (decode_cmdline_options_to_array): Set
18005         canonical_option_num_elements and trailing elements of
18006         canonical_option.
18007         * opts.h (struct cl_decoded_option): Allow four elements in
18008         canonical_option.  Add field canonical_option_num_elements.
18009         * Makefile.in (opts-common.o): Update dependencies.
18011 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
18013         PR middle-end/44790
18014         PR middle-end/44993
18015         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
18016         sure the base has address_mode before adding the offset.
18018 2010-07-27  Xinliang David Li  <davidxl@google.com>
18020         * tree-flow.h (create_mem_ref): Add one new parameter.
18021         * tree-ssa-address.c (create_mem_ref): New parameter.
18022         (addr_to_parts): Ditto.
18023         (move_variant_to_index): New function.
18024         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
18026 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18028         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
18029         4 and 5.
18030         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
18031         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
18032         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
18033         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
18034         CODE_LABELs and NOTEs.
18035         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
18036         * combine.c (try_combine): Likewise.
18037         * ira.c (setup_prohibited_mode_move_regs): Likewise.
18038         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
18040 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
18042         * coretypes.h (struct cl_option_handlers): Declare.
18043         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
18044         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
18045         * langhooks-def.h (lhd_handle_option): Declare.
18046         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
18047         * langhooks.c (lhd_handle_option): New.
18048         * langhooks.h (struct lang_hooks): Update prototype and return
18049         value type of handle_option hook.
18050         * optc-gen.awk: Generate target_flags_explicit definition for the
18051         driver.
18052         * opts-common.c: Include diagnostic.h.
18053         (handle_option): Move from opts.c.  Update prototype and return
18054         value type.  Use handlers structure.
18055         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
18056         handlers structure.
18057         (set_option): Move from opts.c.
18058         * opts.c (common_handle_option): Update prototype and return value
18059         type.  Update calls to handle_option and enable_warning_as_error.
18060         (unknown_option_callback, post_handling_callback,
18061         lang_handle_option, target_handle_option): New.
18062         (handle_option, read_cmdline_option): Move to opts-common.c.
18063         (read_cmdline_options): Update prototype.  Update call to
18064         read_cmdline_option.
18065         (decode_options): Initialize and use handlers structure.
18066         (set_option): Move to opts-common.c.
18067         (enable_warning_as_error): Update prototype.  Update call to
18068         handle_option.
18069         * opts.h (struct cl_option_handler_func, struct
18070         cl_option_handlers): New.
18071         (handle_option, enable_warning_as_error): Update prototypes.
18072         (read_cmdline_option): Declare.
18073         * Makefile.in (opts-common.o): Update dependencies.
18075 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18077         * config/arm/arm.c (params.h): Include.
18078         (arm_override_options): Tune gcse-unrestricted-cost.
18079         * config/arm/t-arm (arm.o): Define dependencies.
18081 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18083         PR target/42495
18084         PR middle-end/42574
18085         * basic-block.h (get_dominated_to_depth): Declare.
18086         * dominance.c (get_dominated_to_depth): New function, use
18087         get_all_dominated_blocks as a base.
18088         (get_all_dominated_blocks): Use get_dominated_to_depth.
18090         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
18091         (hoist_exprs): Remove.
18092         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
18093         (compute_code_hoist_vbeinout): Add debug print outs.
18094         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
18096         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
18097         quadratic behavior.
18098         * params.h (MAX_HOIST_DEPTH): New macro.
18099         * doc/invoke.texi (max-hoist-depth): Document.
18101 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18103         PR rtl-optimization/40956
18104         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
18105         constants.
18107 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18109         PR target/42495
18110         PR middle-end/42574
18111         * config/arm/arm.c (legitimize_pic_address): Use
18112         gen_calculate_pic_address pattern to emit calculation of PIC address.
18113         (will_be_in_index_register): New function.
18114         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
18115         (thumb1_legitimate_address_p): Use it provided !strict_p.
18116         * config/arm/arm.md (calculate_pic_address): New expand and split.
18118 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18120         PR target/42495
18121         PR middle-end/42574
18122         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
18123         * config/arm/arm.md (define_split "J", define_split "K"): Make
18124         IRA/reload friendly.
18126 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18128         * gcse.c (insert_insn_end_basic_block): Update signature, remove
18129         unused checks.
18130         (pre_edge_insert, hoist_code): Update.
18132 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18134         PR target/42495
18135         PR middle-end/42574
18136         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
18138 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18140         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
18142 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18144         PR rtl-optimization/40956
18145         PR target/42495
18146         PR middle-end/42574
18147         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
18148         for hoisting.
18149         (hoist_code): Count occurences in current block too.
18151 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18153         * gcse.c (struct expr:max_distance): New field.
18154         (doing_code_hoisting_p): New static variable.
18155         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
18156         simple expressions, don't change behavior for PRE.  Set max_distance.
18157         (insert_expr_in_table): Set new max_distance field.
18158         (hash_scan_set): Update.
18159         (hoist_expr_reaches_here_p): Stop search after max_distance
18160         instructions.
18161         (find_occr_in_bb): New static function.  Use it in ...
18162         (hoist_code): Calculate sizes of basic block before any changes are
18163         done.  Pass max_distance to hoist_expr_reaches_here_p.
18164         (one_code_hoisting_pass): Set doing_code_hoisting_p.
18166         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
18167         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
18168         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
18169         macros.
18170         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
18171         Document.
18173 2010-07-27  Jeff Law  <law@redhat.com>
18174             Maxim Kuvyrkov  <maxim@codesourcery.com>
18176         * gcse.c (compute_transpout, transpout): Remove, move logic
18177         to prune_expressions.
18178         (compute_pre_data): Move pruning of trapping expressions ...
18179         (prune_expressions): ... here.  New static function.
18180         (compute_code_hoist_data): Use it.
18181         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
18183 2010-07-27  Xinliang David Li  <davidxl@google.com>
18185         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
18186         (rewrite_use_address): Adjust iv update position when needed.
18188 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18190         * dbgcnt.def (hoist_insn): New debug counter.
18191         * gcse.c (hoist_code): Use it.
18193 2010-07-27  Xinliang David Li  <davidxl@google.com>
18195         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
18196         (niter_for_single_dom_exit): Passes additional parameter.
18197         (iv_period): Fix comments.
18198         (may_eliminate_iv): Handles multiple exit loops properly.
18199         (free_tree_niter_desc): New function.
18200         (free_loop_data): Frees up loop iteration descriptors.
18202 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
18204         PR target/44542
18205         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
18206         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
18207         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
18208         (expand_one_var): Don't consider DECL_ALIGN for variables for
18209         which expand_one_stack_var_at has been already called.
18211         PR testsuite/44701
18212         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
18213         constraints on IA-64.
18215 2010-07-27  Jie Zhang  <jie@codesourcery.com>
18217         PR target/44290
18218         Revert:
18219         2010-07-23  Jie Zhang  <jie@codesourcery.com>
18221         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
18222         false if ! tree_versionable_function_p.
18224 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
18226         * dwarf2out.c (add_data_member_location_attribute): Use
18227         add_AT_unsigned instead of add_AT_int if offset is non-negative.
18229 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18231         * postreload.c (try_replace_in_use): New static function.
18232         (reload_combine_recognize_const_pattern): Use it here.  Allow
18233         substituting into a final add insn, and substituting into a memory
18234         reference in an insn that sets the reg.
18236 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
18238         * common.opt (o): Add MissingArgError.
18239         * doc/options.texi (MissingArgError): Document.
18240         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
18241         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
18242         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
18243         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
18244         * langhooks.h (struct lang_hooks): Remove missing_argument.
18245         * optc-gen.awk: Handle MissingArgError and output new structure
18246         field initializers.
18247         * opts.c (read_cmdline_option): Use missing_argument_error field
18248         instead of missing_argument langhook.
18249         * opts.h (struct cl_option): Add missing_argument_error field.
18250         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
18252 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
18254         PR target/29090
18255         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
18256         Darwin64 ABI, for zero-sized objects.
18258 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
18260         PR target/35491
18261         PR target/29090
18263         Merge from Apple local 4.2.1.
18264         2005-05-11  Stan Shebs  <shebs@apple.com>
18265         Fix 64-bit varargs for Darwin (Radar 4028089).
18266         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
18267         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
18268         Add argument, add case for 8-byte register half-filled with a float.
18269         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
18270         single-precision floats specially.
18272 2010-07-27  Ira Rosen  <irar@il.ibm.com>
18274         PR tree-optimization/44152
18275         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
18276         complex numbers for further check.
18277         (vect_supported_load_permutation_p): Check nodes with
18278         complex numbers.
18280 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
18282         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
18283         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
18284         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
18285         (LANG_HOOKS_INITIALIZER): Add new hooks.
18286         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
18287         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
18288         and complain_wrong_lang_p.  Update init_options prototype.
18289         * c-objc-common.c (c_initialize_diagnostics): First call
18290         c_common_initialize_diagnostics.
18291         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
18292         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
18293         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
18294         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
18295         (hook_uint_void_0): New.
18296         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
18297         (hook_uint_void_0): New.
18298         * opts-common.c (decode_cmdline_option,
18299         decode_cmdline_options_to_array): Also fill in canonical_option field.
18300         * opts.c (complain_wrong_lang): Use langhook to determine whether
18301         to complain instead of special-casing LTO.
18302         (decode_options): Separate lang_mask determination with
18303         option_lang_mask hook from call of init_options hook.
18304         * opts.h (struct cl_decoded_option): Add canonical_option.
18306 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
18308         PR tree-optimization/45083
18309         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
18311 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18313         * postreload.c (reload_combine_recognize_const_pattern): Move test
18314         for limiting the insn movement to the right scope.
18316         PR rtl-optimization/45051
18317         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
18318         than reg_mentioned_p.
18320 2010-07-26  Richard Henderson  <rth@redhat.com>
18322         PR target/44132
18323         * tree-emutls.c: New file.
18324         * Makefile.in (OBJS-common): Add it.
18325         * tree-pass.h (pass_ipa_lower_emutls): Declare.
18326         * passes.c (init_optimization_passes): Add it.
18328         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
18329         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
18330         * expr.c (emutls_var_address): Delete.
18331         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
18332         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
18333         (emutls_finish): Delete.
18334         * toplev.c (compile_file): Don't call it.
18335         * tree.h (emutls_decl): Delete.
18336         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
18337         (emutls_finish, emutls_finalize_control_var): Delete.
18338         (emutls_object_type): Move to tree-emutls.c.
18339         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
18340         default_emutls_var_fields, get_emutls_object_type,
18341         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
18342         default_emutls_var_init): Likewise.
18343         (get_variable_section): Don't special case emutls.
18344         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
18345         default_elf_select_section, default_unique_section,
18346         default_encode_section_info): Likewise.
18347         * varpool.c (decide_is_variable_needed): Likewise.
18348         * gimple-iterator.c (update_call_edge_frequencies): New
18349         (gsi_insert_on_edge_immediate): Use it.
18350         (gsi_insert_seq_on_edge_immediate): Likewise.
18351         (gsi_commit_one_edge_insert): Likewise.
18353         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
18354         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
18355         (x86_64_elf_unique_section): Likewise.
18357 2010-07-26  Jan Hubicka  <jh@suse.cz>
18359         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
18360         GTY((skip)).
18362 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
18364         * target.def (output_source_filename): New hook.
18365         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
18366         * doc/tm.texi: Regenerate.
18367         * toplev.c (output_file_directive) Remove function.
18368         * toplev.h (output_file_directive) Remove.
18369         * output.h (default_asm_output_source_filename,
18370         output_file_directive): Declare.
18371         * varasm.h (default_asm_output_source_filename,
18372         output_file_directive): New functions.
18374         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18375         * config/mips/mips-protos.h (mips_output_filename): Remove.
18376         * config/mips/mips.c (mips_output_filename): Make Static.
18377         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
18379 2010-07-26  Richard Guenther  <rguenther@suse.de>
18381         PR tree-optimization/43784
18382         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
18383         if the destination is used by the call.
18385 2010-07-26  Richard Guenther  <rguenther@suse.de>
18387         PR middle-end/45073
18388         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
18389         SSA updating on being in SSA form.
18391 2010-07-26  Richard Guenther  <rguenther@suse.de>
18393         PR middle-end/45056
18394         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
18396 2010-07-26  Richard Guenther  <rguenther@suse.de>
18398         PR tree-optimization/45071
18399         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
18400         adjust op->opcode.
18402 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
18404         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
18405         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
18406         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
18407         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
18408         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
18409         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
18410         save_r31, return_r31, save_interrupt, return_interrupt,
18411         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
18412         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
18413         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
18414         new ABI requirements.
18415         (save_r6_r9, L_callt_save_r6_r9): Remove.
18416         * config/v850/predicates.md (even_reg_operand, disp23_operand,
18417         const_float_1_operand const_float_0_operand): New Predicates.
18418         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
18419         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
18420         * config/v850/t-v850: Update multilibs for new target variants.
18421         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
18422         * config/v850/t-v850e: Likewise.
18423         * config/v850/v850.c (v850_issue_rate): New.
18424         (v850_strict_argument_naming): New.
18425         (function_arg): Modify to generate a different ABI.
18426         (print_operand): Update case 'z' to support float modes.
18427         (output_move_single): Modify to generate appropriate and better
18428         assembly.
18429         (v850_float_z_comparison_operator, v850_select_cc_mode,
18430         v850_float_nz_comparison_operator,  v850_gen_float_compare,
18431         v850_gen_compare): New functions to support comparison of float values.
18432         (ep_memory_offset): Add support for V850E2 targets.
18433         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
18434         (INTERRUPT_REGPARM_NUM): Remove.
18435         (compute_register_save_size): Add extra case to save/restore long call.
18436         (use_prolog_function): New function to support prologue.
18437         (expand_prologue): Add support for V850E2 targets and modified
18438         as per the current ABI requirements.
18439         (expand_epilogue): Likewise.
18440         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
18441         (construct_save_jarl): Likewise.
18442         (construct_dispose_instruction): Update as per the current ABI
18443         requirements.
18444         (construct_prepare_instruction): Likewise.
18445         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
18446         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
18447         (CPP_SPEC): Updated to support v850e2 targets.
18448         (STRICT_ALIGNMENT): Modified.
18449         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
18450         (FIXED_REGISTERS): Likewise.
18451         (CALL_USED_REGISTERS): Likewise.
18452         (CONDITIONAL_REGISTER_USAGE): Updated.
18453         (HARD_REGNO_MODE_OK): Updated.
18454         (reg_class): Updated to add even registers.
18455         (REG_CLASS_NAMES): Likewise.
18456         (REG_CLASS_CONTENTS): Likewise.
18457         (REGNO_REG_CLASS): Updated for CC registers.
18458         (REG_CLASS_FROM_LETTER): Added support for even registers.
18459         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
18460         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
18461         ARG_POINTER_REGNUM): Updated.
18462         (FUNCTION_ARG_ADVANCE): Define.
18463         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
18464         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
18465         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
18466         (GO_IF_LEGITIMATE_ADDRESS): Updated.
18467         (SELECT_CC_MODE): Define.
18468         (REGISTER_NAMES): Updated to add psw and fcc registers.
18469         (ADDITIONAL_REGISTER_NAMES): Updated.
18470         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
18471         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
18472         * config/v850/v850.md (define_constants): Define new constants.
18473         (type): Update store,bit1,macc,div,fpu and single attributes.
18474         (cpu): New attribute.
18475         (cc): Add set_z attribute.
18476         (unsign23byte_load, sign23byte_load, unsign23hword_load,
18477         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
18478         23word_store): New instructions for 23-bit displacement load and store.
18479         (movqi_internal, movhi_internal): Update the attributes.
18480         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
18481         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
18482         the attributes.
18483         (v850_tst1): Modified using CC_REGNUM.
18484         (tstsi): Remove.
18485         (cmpsi): Modified as define_expand from define_insn.
18486         (cmpsi_insn, cmpsf, cmpdf): New instructions.
18487         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
18488         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
18489         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
18490         one_cmplsi2): Clobber the CC_REGNUM register.
18491         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
18492         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
18493         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
18494         (setf_insn, set_z_insn, set_nz_insn): New instructions for
18495         v850e2v3 target.
18496         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
18497         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
18498         targets.
18499         (sasf_1, sasf_2): Remove.
18500         (sasf): New instruction.
18501         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
18502         targets. CC_REGNUM register is clobbered and attributes are
18503         updated.
18504         (branch_z_normal, branch_z_invert, branch_nz_normal,
18505         branch_nz_invert): New branch related instructions.
18506         (jump): Updated the attributes.
18507         (switch): Update to support new targets. CC_REGNUM register is
18508         clobbered and attributes are updated.
18509         (call_internal_short, call_internal_long, call_value_internal_short,
18510         call_value_internal_long): Updated the attributes.
18511         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
18512         clobbered and attributes are updated.
18513         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
18514         Update to support new targets. CC_REGNUM register is clobbered.
18515         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
18516         instructions.
18517         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
18518         are updated.
18519         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
18520         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
18521         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
18522         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
18523         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
18524         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
18525         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
18526         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
18527         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
18528         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
18529         point instructions defined for V850e2v3 target.
18530         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
18531         Add support for V850E2 targets and CC_REGNUM register is clobbered.
18532         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
18533         support for new targets.
18534         * config/v850/v850-modes.def: New file.
18535         * config/v850/v850.opt(mstrict-align): Remove.
18536         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
18537         mv850e2v3): New command line options for V850.
18538         * config.gcc: Update the newly added files.
18539         * doc/invoke.texi: Update the newly added command line options for
18540         V850 target.
18542 2010-07-26  Richard Guenther  <rguenther@suse.de>
18544         PR tree-optimization/45052
18545         * ipa-pure-const.c (check_stmt): Check volatileness.
18547 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
18549         PR target/44707
18550         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
18551         * config/sparc/sparc.c: Include reload.h.
18552         (legitimize_tls_address): Rename into...
18553         (sparc_legitimize_tls_address): ...this.
18554         (legitimize_pic_address): Rename into...
18555         (sparc_legitimize_pic_address): ...this.
18556         (sparc_expand_move): Adjust to above renaming.
18557         (sparc_tls_referenced_p): Likewise.
18558         (sparc_legitimize_tls_address): Likewise.
18559         (sparc_legitimize_pic_address): Likewise.
18560         (sparc_legitimize_address): Likewise.
18561         (sparc_output_mi_thunk): Likewise.
18562         (sparc_legitimize_reload_address): New global function.  Recognize
18563         (lo_sum (high ...) ...) patterns generated by earlier passes.
18564         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
18566 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
18568         PR target/44484
18569         * config/sparc/predicates.md (memory_reg_operand): Delete.
18570         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
18571         (*sync_compare_and_swap): Encode the address form in the pattern.
18572         (*sync_compare_and_swapdi_v8plus): Likewise.
18574 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
18576         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
18577         Streamline paragraph on compatibility with the system compiler.
18579 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
18581         PR middle-end/45035
18582         * alias.c (true_dependence_1): Fix thinko in merge of old
18583         true_dependence and canon_true_dependence.
18585 2010-07-23  Jan Hubicka  <jh@suse.cz>
18587         * lto-streamer-out.c (write_symbol): Fix visibilities of external
18588         references.
18590 2010-07-23  Le-Chun Wu  <lcwu@google.com>
18592         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
18593         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
18594         and an unnecessary assignment.
18595         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
18596         self-assign warning.
18597         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
18598         unnecessary self-init.
18600 2010-07-23  Richard Guenther  <rguenther@suse.de>
18602         PR lto/43071
18603         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
18604         for -flto and -fwhopr.
18606 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
18608         PR target/41943
18609         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
18610         (stmp-int-hdrs): Prefix/postfix headers by include_next.
18611         * config.gcc (user_headers_inc_next_pre): New.
18612         (user_headers_inc_next_post): Likewise.
18613         (*-w64-mingw*): Use for float.h post-fixing, and for
18614         stddef.h/stdarg.h pre-fixing by include_next.
18615         * configure.ac (user_headers_inc_next_post): New.
18616         (user_headers_inc_next_pre): New.
18617         * configure: Regenerated.
18619 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18621         * configure.ac: Don't disable TLS on Solaris 8/9 by default
18622         Set tga_func for Solaris 2/x86 resp. SPARC.
18623         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
18624         (LIB_THREAD_LDFLAGS_SPEC): Define.
18625         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
18626         * configure: Regenerate.
18627         * config.in: Regenerate.
18628         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
18629         -pthread, -threads, LIB_TLS_SPEC with -pthread.
18630         * doc/install.texi (Specific, *-*-solaris2*): Document use of
18631         alternate thread libraries on Solaris 8.
18632         Document TLS patch requirements.
18633         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
18634         Document tls.
18636         PR target/18788
18637         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
18638         -shared.
18640 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
18642         * tree.h (struct tree_base): Add nameless_flag bitfield.
18643         (TYPE_NAMELESS, DECL_NAMELESS): Define.
18644         * omp-low.c (create_omp_child_function, scan_omp_parallel,
18645         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
18646         DECL_ARTIFICIAL where needed.
18647         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
18648         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
18649         has DECL_NAMELESS set.
18651 2010-07-23  Martin Jambor  <mjambor@suse.cz>
18653         PR tree-optimization/44915
18654         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
18655         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
18656         (analyze_function): Likewise.
18658 2010-07-23  Martin Jambor  <mjambor@suse.cz>
18660         PR tree-optimization/44914
18661         * tree-sra.c (sra_modify_function_body): Return true if CFG was
18662         changed, add purging dead eh edges.
18663         (ipa_sra_modify_function_body): Return true if CFG was changed,
18664         simplify purging dead eh edges.
18665         (modify_function): Return true if CFG was changed.
18666         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
18667         was changed.
18668         (ipa_early_sra): Likewise.
18670 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18672         PR target/44290
18673         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
18674         if "naked".
18675         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
18676         false if ! tree_versionable_function_p.
18678 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
18680         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
18681         * ipa-pure-const.c (special_builtlin_state): Remove
18682         BUILT_IN_ARGS_INFO case.
18683         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
18684         * builtins.c (expand_builtin): Likewise.
18685         (expand_builtin_args_info): Remove.
18686         * doc/tm.texi (__builtin_args_info): Remove.
18687         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
18688         * doc/tm.text.in: Likewise.
18690 2010-07-23  Richard Guenther  <rguenther@suse.de>
18692         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
18693         (lto_symtab_merge_decls_2): Likewise.
18694         * tree-ssa.c (useless_type_conversion_p): Likewise.
18695         * lto-streamer-in.c (input_gimple_stmt): Likewise.
18696         * gimple.c (gtc_visited2, gtc_ob2): Remove.
18697         (struct type_pair_d): Make same_p an array indexed by mode.
18698         Update comment.
18699         (lookup_type_pair): Update initialization.
18700         (struct sccs): Adjust same_p type.
18701         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
18702         Adjust.
18703         (print_gimple_types_stats): Likewise.
18704         * gimple.h (enum gtc_mode): New.
18705         (gimple_types_compatible_p): Adjust prototype.
18707 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
18709         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
18710         again after processing insn.
18712 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18714         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
18715         proper words when !tree_versionable_function_p.
18717 2010-07-23  Richard Guenther  <rguenther@suse.de>
18719         PR tree-optimization/45037
18720         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
18722 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18724         * doc/extend.texi: Remove IP2K from the description of naked attribute.
18725         Add MCORE instead.
18727 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18729         PR lto/44992
18730         * lto-opts.c (lto_write_options): Add NULL file_data argument to
18731         lto_get_section_name.
18732         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
18733         * lto-streamer-out.c (produce_asm): Likewise.
18734         (copy_function): Likewise.
18735         (produce_symtab): Likewise.
18736         (produce_asm_for_decls): Likewise.
18737         * lto-streamer.c (lto_get_section_name): Add file_data argument.
18738         Rewrite to add random postfix to LTO sections.
18739         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
18740         (lto_get_section_name): Add file_data argument to prototype.
18742 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18744         * lto-section-in.c (lto_section_name): Synchronize names
18745         with lto_get_section_name.
18747 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18749         * lto-opts.c (lto_read_file_options): Check for missing section.
18751 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18753         * ira.c (check_allocation): Correctly handle the case where an allocno
18754         with two objects was allocated to a single reg.
18756 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
18758         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
18759         (is_widening_mult_p): Likewise.
18760         (convert_to_widen): Use them.
18761         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
18762         well as integer ones.
18764 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
18766         * alias.c (true_dependence_1): New function, merged version of
18767         true_dependence and canon_true_dependence.
18768         (true_dependence): Simplify.
18769         (canon_true_dependence): Simplify.
18771 2010-07-22  Richard Henderson  <rth@redhat.com>
18773         PR target/45027
18774         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
18775         of V4SFmode for the SSE saves; increase stack alignment if needed.
18776         (ix86_gimplify_va_arg): Don't increase stack alignment here.
18778 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
18780         PR bootstrap/45028
18781         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
18782         call cprop_find_used_regs again via note_uses.
18784 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
18786         * alias.c (get_alias_set): Fix formatting issues.
18788 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
18790         PR middle-end/44878
18791         * stmt.c (expand_value_return):  Call promote_function_mode with
18792         a for_return argument of 2 when returning by reference.
18794 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
18796         PR debug/45024
18797         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
18798         unit DIE if we can find the scope DIE.
18800 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18802         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
18803         changed.  Initialize OBJECT_SUBWORD.
18804         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
18805         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
18806         all callers changed.
18807         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
18808         (finish_allocno): Likewise.
18809         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
18810         (remove_low_level_allocnos): Likewise.
18811         (update_bad_spill_attribute): Likewise.
18812         (setup_min_max_allocno_live_range_point): Likewise.
18813         (sort_conflict_id_map): Likewise.
18814         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
18815         (ior_hard_reg_conflicts): New function.
18816         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
18817         (compress_conflict_vecs): Iterate over objects, not allocnos.
18818         (ira_add_live_range_to_object): New function.
18819         (object_range_compare_func): Renamed from allocno_range_compare_func.
18820         All callers changed.
18821         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
18822         subobjects, widen the min/max range of the lowest-order object to
18823         potentially include all other such low-order objects.
18824         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
18825         (check_allocation): Likewise.  Use more fine-grained tests for register
18826         conflicts.
18827         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
18828         allocno subobjects.
18829         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
18830         choices about which bits to set in each set.  Don't use
18831         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
18832         using the multiple sets we computed.
18833         (push_allocno_to_stack): Iterate over allocno subobjects.
18834         (all_conflicting_hard_regs_coalesced): New static function.
18835         (setup_allocno_available_regs_num): Use it.
18836         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
18837         subobjects.
18838         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
18839         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18840         by ALLOCNO_NUM_OBJECTS.
18841         (calculate_spill_cost): Likewise.
18842         (color_pass): Express if statement in a more normal way.
18843         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
18844         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
18845         (setup_slot_coalesced_allocno_live_ranges): Likewise.
18846         (allocno_reload_assign): Likewise.
18847         (ira_reassign_pseudos): Likewise.
18848         (fast_allocation): Likewise.
18849         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18850         (print_allocno_conflicts): Likewise.
18851         (ira_build_conflicts): Likewise.
18852         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
18853         callers changed.  Test subword 0 of each allocno for conflicts.
18854         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
18855         callers changed.  Iterate over allocno subobjects.
18856         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
18857         * ira-int.h (struct ira_allocno): New member: num_objects.
18858         Rename object to objects and change it into an array.
18859         (ALLOCNO_OBJECT): Add new argument N.
18860         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
18861         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
18862         (ior_hard_reg_conflicts): Declare.
18863         (ira_add_live_range_to_object): Declare.
18864         (ira_allocno_object_iterator): New.
18865         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
18866         (FOR_EACH_ALLOCNO_OBJECT): New macro.
18867         * ira-lives.c (objects_live): Renamed from allocnos_live; all
18868         uses changed.
18869         (allocnos_processed): New sparseset.
18870         (make_object_born): Renamed from make_allocno_born; take an
18871         ira_object_t argument.  All callers changed.
18872         (make_object_dead): Renamed from make_allocno_dead; take an
18873         ira_object_t argument.  All callers changed.
18874         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
18875         All callers changed.
18876         (mark_pseudo_regno_live): Iterate over allocno subobjects.
18877         (mark_pseudo_regno_dead): Likewise.
18878         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
18879         functions.
18880         (mark_ref_live): Detect subword accesses and call
18881         mark_pseudo_regno_subword_live as appropriate.
18882         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
18883         (process_bb_nodes_live): Deal with object-related updates first; set
18884         and test bits in allocnos_processed to avoid computing allocno
18885         statistics more than once.
18886         (create_start_finish_chains): Iterate over objects, not allocnos.
18887         (print_object_live_ranges): New function.
18888         (print_allocno_live_ranges): Use it.
18889         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
18890         and objects_live.
18892 2010-07-22  Richard Guenther  <rguenther@suse.de>
18894         PR lto/42451
18895         * gimple.c (gtc_next_dfs_num): New global.
18896         (struct sccs): Make value a union, add integer same_p member.
18897         (gtc_visit): New function.
18898         (gimple_types_compatible_p_1): New function, split out from ...
18899         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
18900         (iterative_hash_gimple_type): Adjust for sccs change.
18902 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18904         PR tree-optimization/44891
18905         * tree-sra.c: Include gimple-pretty-print.h.
18906         (replace_uses_with_default_def_ssa_name): Renamed to
18907         get_repl_default_def_ssa_name, return the new SSA name instead of
18908         replacing the old one.
18909         (sra_modify_assign): Dump a message when removing a load, if the LHS
18910         is an SSA_NAME, do not do any propagation, just set the RHS to a
18911         default definition SSA NAME, type convert if necessary.
18912         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
18914 2010-07-22  Richard Guenther  <rguenther@suse.de>
18916         PR tree-optimization/45017
18917         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
18918         TYPE_PRECISION of integral types in addition to size.
18920 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18922         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
18923         when no C library is specified.
18925 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18927         * ipa-prop.h (struct ipa_node_params): Updated comment.
18928         (struct ipa_edge_args): Likewise.
18929         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
18931 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18933         * cgraphunit.c (verify_edge_count_and_frequency): New function.
18934         (verify_cgraph_node): Verify frequencies of indirect edges.
18935         * tree-inline.c (tree_function_versioning): Update frequencies of
18936         indirect edges.
18938 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18940         PR target/43698
18941         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
18942         Set *arm_rev to be predicable.
18944 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18946         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
18947         (LINK_COMMAND_SPEC_A): New.
18948         (DSYMUTIL): New.
18949         (DSYMUTIL_SPEC): New.
18950         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
18951         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
18953 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18955         * calls.c (load_register_parameters): Move check for zero
18956         sized items so that only the call to
18957         mem_overlaps_already_clobbered_arg_p () is protected.
18959 2010-07-22  Jan Hubicka  <jh@suse.cz>
18961         * ipa-pure-const.c (varying_state): Break out from ...
18962         (get_function_state): ... here; always return varying_state
18963         when state would be NULL otherwise.
18964         (remove_node_data): Do not free varying state.
18966 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18968         PR bootstrap/44970
18969         PR middle-end/45009
18970         * postreload.c: Include "target.h".
18971         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18972         into account.
18973         (fixup_debug_insns): Don't copy the rtx.
18974         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18975         Don't copy when replacing.  Call fixup_debug_insns in the case where
18976         we merged one add with another.
18977         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18978         Try harder to determine whether we're picking a valid index register.
18979         Don't set store_ruid for an insn we're going to scan in the
18980         next iteration.
18981         (reload_combine): Remove unused code.
18982         (reload_combine_note_use): When updating use information for
18983         an old insn, ignore a use that occurs after store_ruid.
18984         * Makefile.in (postreload.o): Update dependencies.
18986         * function.c (record_hard_reg_sets): Restrict the previous change
18987         to cases where the incoming nominal mode is the same as the
18988         incoming promoted mode and everything happens in MODE_INT.
18990 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18992         PR debug/45015
18993         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18994         ASM_OPERANDS_OUTPUT_IDX.
18995         (adjust_insn): For inline asm with multiple sets ensure first
18996         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18997         the insn.
18999 2010-07-21  Richard Henderson  <rth@redhat.com>
19001         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
19002         comparison for avoiding xmm register saves.  Emit the xmm register
19003         saves explicitly.
19004         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
19005         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
19006         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
19007         Remove patterns and the associated splitters.
19009 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
19011         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
19012         and imagine parts of a complex, so that they can have the same
19013         base and fall into the same group.
19015 2010-07-21  Richard Guenther  <rguenther@suse.de>
19017         PR lto/45018
19018         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
19019         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
19020         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
19022 2010-07-21  Martin Jambor  <mjambor@suse.cz>
19024         PR tree-optimization/44900
19025         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
19026         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
19028 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
19030         PR middle-end/44738
19031         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
19033 2010-07-21  Richard Guenther  <rguenther@suse.de>
19035         PR middle-end/45013
19036         * tree-ssa.c (useless_type_conversion_p): Dispatch to
19037         gimple_types_compatible_p only when in lto.
19038         * gimple.c (gimple_types_compatible_p): Use canonical types
19039         to speed up comparison.
19041 2010-07-21  Richard Guenther  <rguenther@suse.de>
19043         * tree-flow.h (referenced_var): Move define ...
19044         * tree-flow-inline.h (referenced_var): ... here as an inline
19045         function.  Assert here ...
19046         * tree-dfa.c (referenced_var_lookup): ... instead of here.
19047         * tree-ssa.c (maybe_optimize_var): Check if the variable
19048         is in referenced vars.
19049         (execute_update_addresses_taken): Remove old broken check.
19050         * gimple-pretty-print.c (pp_points_to_solution): Use
19051         referenced_var_lookup.
19052         * tree-into-ssa.c (dump_decl_set): Likewise.
19054 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
19056         PR debug/45003
19057         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
19058         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
19059         ZERO_EXTEND here.
19061 2010-07-20  Richard Henderson  <rth@redhat.com>
19063         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
19065 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
19067         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
19068         computing the sum of the stack pointer and a large constant.
19069         * config/arm/constraints.md (M): Remove superfluous parentheses.
19070         (Pc): New constraint.
19072 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
19074         PR debug/45006
19075         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
19076         operand's type if exp is tcc_unary class tree.
19078 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
19080         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
19081         Reverse sense of if_then_else condition.
19083 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
19085         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
19086         * config/rs6000/rs6000.c (rs6000_override_options): Set
19087         rs6000_block_move_inline_limit appropriately.
19088         (expand_block_move): Use rs6000_block_move_inline_limit.
19089         * doc/invoke.texi (mblock-move-inline-limit): Document.
19091 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
19093         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
19094         FROM and TO.  All callers changed.  Don't look for tracked uses,
19095         just scan the RTL for DEBUG_INSNs and substitute.
19096         (reload_combine_recognize_pattern): Call fixup_debug_insns.
19097         (reload_combine): Ignore DEBUG_INSNs.
19099 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
19101         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
19102         depth to 8 from 5.
19104         PR debug/45003
19105         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
19106         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
19107         instead of the result's type.
19109 2010-07-20  Richard Guenther  <rguenther@suse.de>
19111         PR tree-optimization/44977
19112         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
19113         SSA form.
19115 2010-07-20  Richard Guenther  <rguenther@suse.de>
19117         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
19118         (lto_symtab_merge_decls_2): Likewise.
19119         * gimple.h (gimple_types_compatible_p): Declare.
19120         * gimple.c (gimple_queue_type_fixup): Remove.
19121         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
19122         (gimple_compatible_complete_and_incomplete_type_p): New function.
19123         (gimple_types_compatible_p): Adjust.
19124         (gimple_register_type): Remove type fixup code.
19125         (print_gimple_types_stats): Adjust.
19126         (free_gimple_type_tables): Likewise.
19127         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
19128         * tree-ssa.c (useless_type_conversion_p): Likewise.
19130 2010-07-20  Richard Guenther  <rguenther@suse.de>
19132         PR middle-end/44971
19133         PR middle-end/44988
19134         * tree-ssa.c (maybe_optimize_var): New function split out from ...
19135         (execute_update_addresses_taken): ... here.
19136         (non_rewritable_mem_ref_base): Likewise.
19137         (execute_update_addresses_taken): Do not iterate over all referenced
19138         vars but just all local decls and parms.
19139         Properly check call and asm arguments and rewrite call arguments.
19141 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
19143         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
19144         to top level.
19145         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
19146         definitions ...
19147         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
19148         New macro.
19149         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
19151 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
19153         * gengtype.c (start_root_entry): New function, split out from
19154         write_root.  Check whether V is null and raise an error if so.
19155         (write_field_root): Check for V being null.  Don't raise an error here;
19156         set V to null instead.
19157         (write_root): Update comment above function.  Use start_root_entry.
19159 2010-07-19  Xinliang David Li  <davidxl@google.com>
19161         PR testsuite/44932
19162         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
19163         def edges.
19164         (find_uninit_use): Add dump.
19165         (is_use_properly_guarded): Ditto.
19166         (warn_uninitialized_phi): Ditto.
19167         (execute_late_warn_uninitialized): Ditto.
19169 2010-07-19  Richard Guenther  <rguenther@suse.de>
19171         PR middle-end/44941
19172         * expr.c (emit_block_move_hints): Move zero size check first.
19173         Move asserts to more useful places.
19174         * calls.c (load_register_parameters): Check for zero size.
19176 2010-07-19  Richard Henderson  <rth@redhat.com>
19178         * tree-optimize.c (execute_all_early_local_passes): New.  Change
19179         cgraph_state here ...
19180         (execute_early_local_optimizations): ... not here.  Remove.
19181         (pass_early_local_passes, pass_all_early_optimizations): Update.
19183 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
19185         * postreload.c (reload_combine_closest_single_use): Ignore the
19186         number of uses for DEBUG_INSNs.
19187         (fixup_debug_insns): New static function.
19188         (reload_combine_recognize_const_pattern): Use it.  Don't let the
19189         main loop be affected by DEBUG_INSNs.
19190         Really disallow moving adds past a jump insn.
19191         (reload_combine_recognize_pattern): Don't update use_ruid here.
19192         (reload_combine_note_use): Do it here.
19193         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
19195 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
19197         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
19198         of a loop.
19199         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
19201 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
19203         * config/i386/darwin.h: Define darwin_emit_branch_islands.
19204         (TARGET_MACHO_BRANCH_ISLANDS): New.
19205         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
19206         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
19207         default value.
19208         * config/i386/i386.c (output_pic_addr_const): Do not emit
19209         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
19210         (x86_output_mi_thunk): Adjust symbol creation.
19211         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
19212         Remove out of date comment.
19213         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
19214         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
19215         (DARWIN_GENERATE_ISLANDS): Ditto.
19216         (output_call):  Do not emit branch islands unless
19217         darwin_emit_branch_islands is set.
19218         * config/darwin.c: Declare darwin_emit_branch_islands.
19219         (machopic_indirect_data_reference): Do not emit unless
19220         darwin_emit_branch_islands is set.
19221         (darwin_override_options): Set darwin_emit_branch_islands
19222         where it is needed.
19223         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
19225 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19227         * doc/sourcebuild.texi (Effective-Target Keywords): Document
19228         sse_runtime, sse2_runtime.
19230 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
19232         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
19233         low half of a single-register SCmode return value before ORing
19234         it with the high half.
19235         * config/mips/mips16.S (MERGE_GPRf): Likewise.
19237 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19239         PR target/44805
19240         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
19241         on all targets.
19243 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
19245         PR target/42235
19246         * postreload.c (reload_cse_move2add): Return bool, true if anything.
19247         changed.  All callers changed.
19248         (move2add_use_add2_insn): Likewise.
19249         (move2add_use_add3_insn): Likewise.
19250         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
19251         reload_combine.
19252         (RELOAD_COMBINE_MAX_USES): Bump to 16.
19253         (last_jump_ruid): New static variable.
19254         (struct reg_use): New members CONTAINING_MEM and RUID.
19255         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
19256         (reload_combine_split_one_ruid, reload_combine_split_ruids,
19257         reload_combine_purge_insn_uses, reload_combine_closest_single_use
19258         reload_combine_purge_reg_uses_after_ruid,
19259         reload_combine_recognize_const_pattern): New static functions.
19260         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
19261         is true for our reg and that we have available index regs.
19262         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
19263         callers changed.  Use them to initialize fields in struct reg_use.
19264         (reload_combine): Initialize last_jump_ruid.  Be careful when to
19265         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
19266         Call reload_combine_recognize_const_pattern.
19267         (reload_combine_note_store): Update REAL_STORE_RUID field.
19269 2010-07-16  Jason Merrill  <jason@redhat.com>
19271         * Makefile.in (opts-common.o): Depend on options.h.
19273 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
19275         * tree.c (build_common_builtin_nodes): Use build_function_type_list
19276         instead of build_function_type.
19277         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
19278         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
19280 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
19282         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
19283         do all the work.
19284         (rs6000_emit_int_cmove): Use function pointers for insn generation.
19285         Don't force values into registers unnecessarily.
19286         (output_isel): Assert that we're not given conditions we can't handle.
19287         Delete corresponding code.
19288         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
19289         scc_comparison_operator constraint.  Permit 0 for the consequent
19290         operand.  Permit any GPR for the alternative operand.
19291         (isel_unsigned_<mode>): Likewise.
19293 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
19295         PR target/44942
19296         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
19297         argument to const_tree.
19298         * config/i386/i386.c (function_arg_advance): If padding needs to be
19299         inserted before argument, increment cum->words by number of padding
19300         words as well.
19301         (contains_aligned_value_p): Change argument to const_tree.
19302         (ix86_function_arg_boundary): Change second argument to const_tree.
19304 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
19306         PR target/42235
19307         * function.c (record_hard_reg_sets): New static function.
19308         (assign_parm_setup_reg): If an optab for extending exists and the
19309         generated code clobbbers no hard regs, emit the insn directly and
19310         create a REG_EQUIV note.
19312 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
19314         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
19315         TREE_CHAIN.
19316         * c-typeck.c (push_init_level): Likewise.
19317         (process_init_element): Likewise.
19319 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
19321         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
19322         (integer_three_node): Add.
19323         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
19324         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
19325         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
19326         of call build_int_cst.
19327         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
19328         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
19329         (find_interesting_uses_address): Ditto.
19330         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
19331         * tree-eh.c (lower_eh_constructs_2): Ditto.
19332         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
19333         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
19334         * expmed.c (expand_divmod): Ditto.
19335         * tree-mudflap.c (mx_register_decls): Ditto.
19336         * varasm.c (array_size_for_constructor): Ditto.
19337         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
19338         * c-parser.c (c_parser_postfix_expression): Ditto.
19340 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
19342         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
19343         New static variables.
19344         (reload_combine_recognize_pattern): New static function, broken out
19345         of reload_combine.
19346         (reload_combine): Use it.  Only initialize first_index_reg and
19347         last_index_reg once.
19349 2010-07-15  Richard Henderson  <rth@redhat.com>
19351         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
19352         when done.
19354 2010-07-15  Jan Hubicka  <jh@suse.cz>
19356         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
19357         comdats for broken gold.
19358         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
19360 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
19362         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
19364 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
19366         * tree.h (DECL_CHAIN): Define.
19367         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
19368         * c-decl.c: Likewise.
19369         * c-parser.c: Likewise.
19370         * c-typeck.c: Likewise.
19371         * cfgexpand.c: Likewise.
19372         * cgraph.c: Likewise.
19373         * cgraphunit.c: Likewise.
19374         * combine.c: Likewise.
19375         * config/alpha/alpha.c: Likewise.
19376         * config/arm/arm.c: Likewise.
19377         * config/frv/frv.c: Likewise.
19378         * config/i386/i386.c: Likewise.
19379         * config/i386/winnt-cxx.c: Likewise.
19380         * config/ia64/ia64.c: Likewise.
19381         * config/iq2000/iq2000.c: Likewise.
19382         * config/mep/mep.c: Likewise.
19383         * config/mips/mips.c: Likewise.
19384         * config/pa/som.h: Likewise.
19385         * config/rs6000/rs6000.c: Likewise.
19386         * config/s390/s390.c: Likewise.
19387         * config/sh/sh.c: Likewise.
19388         * config/sh/symbian-cxx.c: Likewise.
19389         * config/sparc/sparc.c: Likewise.
19390         * config/spu/spu.c: Likewise.
19391         * config/stormy16/stormy16.c: Likewise.
19392         * config/vxworks.c: Likewise.
19393         * config/xtensa/xtensa.c: Likewise.
19394         * coverage.c: Likewise.
19395         * dbxout.c: Likewise.
19396         * dwarf2out.c: Likewise.
19397         * emit-rtl.c: Likewise.
19398         * expr.c: Likewise.
19399         * function.c: Likewise.
19400         * gimple-low.c: Likewise.
19401         * gimple-pretty-print.c: Likewise.
19402         * gimplify.c: Likewise.
19403         * integrate.c: Likewise.
19404         * ipa-inline.c: Likewise.
19405         * ipa-prop.c: Likewise.
19406         * ipa-split.c: Likewise.
19407         * ipa-struct-reorg.c: Likewise.
19408         * ipa-type-escape.c: Likewise.
19409         * langhooks.c: Likewise.
19410         * lto-cgraph.c: Likewise.
19411         * omp-low.c: Likewise.
19412         * stor-layout.c: Likewise.
19413         * tree-cfg.c: Likewise.
19414         * tree-complex.c: Likewise.
19415         * tree-dfa.c: Likewise.
19416         * tree-dump.c: Likewise.
19417         * tree-inline.c: Likewise.
19418         * tree-mudflap.c: Likewise.
19419         * tree-nested.c: Likewise.
19420         * tree-object-size.c: Likewise.
19421         * tree-pretty-print.c: Likewise.
19422         * tree-sra.c: Likewise.
19423         * tree-ssa-live.c: Likewise.
19424         * tree-ssa-loop-niter.c: Likewise.
19425         * tree-ssa-math-opts.c: Likewise.
19426         * tree-ssa-reassoc.c: Likewise.
19427         * tree-ssa-sccvn.c: Likewise.
19428         * tree-ssa-structalias.c: Likewise.
19429         * tree-tailcall.c: Likewise.
19430         * tree-vrp.c: Likewise.
19431         * tree.c: Likewise.
19432         * var-tracking.c: Likewise.
19433         * varasm.c: Likewise.
19435 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19437         PR target/44877
19438         * config/spu/spu.c (spu_expand_builtin_1): Allow references
19439         (as well as pointers) as argument to mask_for_load builtins.
19441 2010-07-15  Richard Guenther  <rguenther@suse.de>
19443         PR tree-optimization/44946
19444         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
19445         with accessing only padding properly.
19447 2010-07-15  Jan Hubicka  <jh@suse.cz>
19449         * ipa.c (function_and_variable_visibility): Variables marked as used
19450         should not be localized.
19452 2010-07-15  Jan Hubicka  <jh@suse.cz>
19454         * cgraph.c: Include lto-streamer.h
19455         (change_decl_assembler_name): Work when assembler name hash is at place.
19456         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
19457         be sure to rename it to avoid name clash.
19458         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
19459         Localize hidden symbols only when locally defined.
19461 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
19463         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
19465 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
19466             Kevin F. Quinn  <kevquinn@gentoo.org>
19468         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
19469         * common.opt: Add -Wtrampolines.
19470         * doc/invoke.texi: Add -Wtrampolines.
19472 2010-07-15  Jie Zhang  <jie@codesourcery.com>
19474         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
19475         cortex_a8_issue_ls.
19477 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
19479         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
19480         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
19482 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19484         * config/spu/spu.c (reg_names): Remove prototype.
19485         (call_used_regs): Likewise.
19487 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
19489         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
19490         "unused" with attribute "used".
19491         (__JCR_END__): Likewise.
19492         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
19493         "used" attribute.
19494         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
19496 2010-07-14  Richard Guenther  <rguenther@suse.de>
19498         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
19499         (maybe_fixup_decls): Likewise.
19500         (input_gimple_stmt): Do not fixup anything.
19501         * lto-streamer-out.c (output_gimple_stmt): Make sure all
19502         non-automatic variable uses are wrapped inside a MEM_REF.
19504 2010-07-14  Richard Henderson  <rth@redhat.com>
19506         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
19507         for functions.
19508         * varasm.c (assemble_variable): Remove early exit for functions;
19509         assert that we're given a variable.
19511 2010-07-14  Jie Zhang  <jie@codesourcery.com>
19513         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
19514         cortex_a8_default when neon_type is not none.
19516 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19518         * lower-subreg.c (subreg_context): New static bitmap.
19519         (decompose_multiword_subregs): Allocate and free it.
19520         (find_decomposable_subregs): Set a bit in it for a register that
19521         occurs in a subreg that changes mode but not size.
19522         (can_decompose_p): Test it instead of non_decomposable_context.
19524 2010-07-14  Richard Guenther  <rguenther@suse.de>
19526         PR tree-optimization/44824
19527         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
19528         is_gimple_mem_ref_addr.
19529         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
19530         non-decl_address_invariant_p addresses.
19532 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19534         * reload.c (find_reloads): Revert code to penalize small register
19535         classes that was brought in with the IRA merge.
19537 2010-07-14  Richard Guenther  <rguenther@suse.de>
19539         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
19540         as base of ARRAY_REFs.
19542 2010-07-14  Richard Guenther  <rguenther@suse.de>
19544         PR middle-end/44930
19545         * tree-pretty-print.c (do_niy): Do not print a newline.
19547 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19549         * ira-int.h (struct ira_object): New.
19550         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
19551         (struct ira_allocno): Remove members min, max,
19552         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
19553         conflict_allocnos_num and conflict_vec_p.  Add new member object.
19554         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
19555         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
19556         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
19557         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
19558         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
19559         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
19560         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
19561         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
19562         an ira_object_t rather than ira_allocno_t.  All uses changed.
19563         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
19564         contains a vector of ira_object_t; all uses changed.
19565         (ira_objects_num): Declare variable.
19566         (ira_create_allocno_object): Declare function.
19567         (ira_conflict_vector_profitable_p): Adjust prototype.
19568         (ira_allocate_conflict_vec): Renamed from
19569         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
19570         (ira_allocate_object_conflicts): Renamed from
19571         ira_allocate_allocno_conflicts; first arg now ira_object_t.
19572         (struct ira_object_iterator): New.
19573         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
19574         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
19575         to conflict_vec_p.  All uses changed.
19576         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
19577         Changed to take into account that conflicts are now tracked for
19578         objects.
19579         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
19580         Args changed to accept ira_object_t.  All uses changed.
19581         (allocnos_conflict_p): New static function.
19582         (collected_conflict_objects): Renamed from collected_allocno_objects;
19583         now a vector of ira_object_t.  All uses changed.
19584         (build_conflict_bit_table): Changed to take into account that
19585         conflicts are now tracked for objects.
19586         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
19587         (print_allocno_conflicts, ira_build_conflicts): Likewise.
19588         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
19589         setup_allocno_left_conflicts_size, allocno_reload_assign,
19590         fast_allocation): Likewise.
19591         * ira-lives.c (make_hard_regno_born, make_allocno_born)
19592         process_single_reg_class_operands, process_bb_node_lives): Likewise.
19593         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
19594         Likewise.
19595         * ira-build.c (ira_objects_num): New variable.
19596         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
19597         contains a vector of ira_object_t; all uses changed.
19598         (ira_object_id_map_vec): Corresponding change.
19599         (object_pool): New static variable.
19600         (initiate_allocnos): Initialize it.
19601         (finish_allocnos): Free it.
19602         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
19603         New functions.
19604         (ira_create_allocno): Don't set members that were removed.
19605         (ira_set_allocno_cover_class): Don't change conflict hard regs.
19606         (merge_hard_reg_conflicts): Changed to take into account that
19607         conflicts are now tracked for objects.
19608         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
19609         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
19610         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
19611         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
19612         setup_min_max_conflict_allocno_ids, ):  Likewise.
19613         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
19614         to ira_object_t; all callers changed.
19615         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
19616         to ira_object_t, all callers changed.
19617         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
19618         to ira_object_t, all callers changed.
19619         (conflict_check, curr_conflict_check_tick): Renamed from
19620         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
19621         changed.
19622         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
19623         arg changed to ira_object_t, all callers changed.
19624         (create_cap_allocno): Call ira_create_allocno_object.
19625         (finish_allocno): Free the corresponding object.
19626         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
19627         callers changed.  Adjusted for dealing with objects.
19628         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
19629         dealing with objects.
19630         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
19632         * ira-int.h (struct live_range): Rename allocno member to object
19633         and change type to ira_object_t.
19634         (struct ira_object): New member live_ranges.
19635         (struct ira_allocno): Remove member live_ranges.
19636         (ALLOCNO_LIVE_RANGES): Remove.
19637         (OBJECT_LIVE_RANGES): New macro.
19638         (ira_create_live_range, ira_copy_live_range_list,
19639         ira_merge_live_range_list, ira_live_ranges_intersect_p,
19640         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
19641         * ira-build.c (ira_create_object): Initialize live ranges here.
19642         (ira_create_allocno): Not here.
19643         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
19644         changed to ira_object_t, all callers changed.
19645         (copy_live_range): Rename from copy_allocno_live_range, all callers
19646         changed.
19647         (ira_copy_live_range_list): Rename from
19648         ira_copy_allocno_live_range_list, all callers changed.
19649         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
19650         all callers changed.
19651         (ira_live_ranges_intersect_p): Rename from
19652         ira_allocno_live_ranges_intersect_p, all callers changed.
19653         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
19654         callers changed.
19655         (ira_finish_live_range_list): Rename from
19656         ira_finish_allocno_live_range_list, all callers changed.
19657         (change_object_in_range_list): Rename from change_allocno_in_range_list,
19658         last arg changed to ira_object_t, all callers changed.
19659         (finish_allocno): Changed to expect live ranges in the allocno's object.
19660         (move_allocno_live_ranges, copy_allocno_live_ranges,
19661         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
19662         ira_flattening, ira_build): Likewise.
19663         * ira-color.c (allocnos_have_intersected_live_ranges_p,
19664         slot_coalesced_allocno_live_ranges_intersect,
19665         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
19666         * ira-conflicts.c (build_conflict_bit_table): Likewise.
19667         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
19668         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
19669         make_allocno_dead, create_start_finish_chains,
19670         remove_some_program_points_and_update_live_ranges,
19671         ira_debug_live_range_list): Likewise.
19673         * ira-int.h (ira_object_conflict_iterator): Rename from
19674         ira_allocno_conflict_iterator.
19675         (ira_object_conflict_iter_init): Rename from
19676         ira_allocno_conflict_iter_init, second arg changed to
19677         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
19678         FOR_EACH_ALLOCNO_CONFLICT.
19679         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
19680         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
19681         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
19682         * ira-conflicts.c (print_allocno_conflicts): Likewise.
19684 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
19686         PR other/44874
19687         * tree-dump.c (dump_options): Add enumerate_locals entry.
19688         Add TDF_NOID exclusion to all entry.
19689         * tree-dump.h (dump_enumerated_decls): Declare.
19690         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
19691         Don't display type uid.
19692         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
19693         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
19694         * tree-ssa-live.c: Include gimple.h.
19695         (numbered_tree_d): New struct.
19696         (numbered_tree): New typedef.
19697         (DEF_VEC_O (numbered_tree): New.
19698         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
19699         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
19700         (dump_enumerated_decls): Likewise.
19701         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
19702         debug info and flag_dump_final_insns, call dump_enumerated_decls.
19703         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
19704         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
19706 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
19708         * expmed.h (MAX_BITS_PER_WORD): Move to...
19709         * defaults.h (MAX_BITS_PER_WORD): ...here.
19711 2010-07-13  DJ Delorie  <dj@redhat.com>
19713         * config/h8300/h8300.c (h8300_init_once): Default to
19714         -fstrict_volatile_bitfields.
19716         * config/sh/sh.c (sh_override_options): Default to
19717         -fstrict_volatile_bitfields.
19719         * config/rx/rx.c (rx_option_override): New.
19721         * config/m32c/m32c.c (m32c_override_options): Default to
19722         -fstrict_volatile_bitfields.
19724 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
19726         * tree.h (build_function_call_expr): Delete.
19727         (build_call_expr_loc_array): New function.
19728         (build_call_expr_loc_vec): New function.
19729         * tree-flow.h (struct omp_region): Change type of ws_args field
19730         to a VEC.
19731         * builtins.c (build_function_call_expr): Delete.
19732         (build_call_expr_loc_array): New function.
19733         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
19734         (build_call_expr): Likewise.
19735         (build_call_expr_loc_vec): New function.
19736         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
19737         build_function_call_expr.
19738         * expr.c (emutls_var_address): Likewise.
19739         * varasm.c (emutls_common_1): Likewise.
19740         * omp-low.c (expand_omp_atomic_mutex): Likewise.
19741         (expand_omp_taskreg): Adjust for new type of region->ws_args.
19742         (get_ws_args_for): Return a VEC instead of a tree.
19743         (expand_parallel_call): Call build_call_expr_loc_vec instead of
19744         build_function_call_expr.
19745         * stor-layout.c (self_referential_size): Likewise.
19747 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
19749         PR testsuite/44701
19750         * recog.c (constrain_operands): Allow side-effects in memory
19751         operands if either < or > constraint is used, rather than if
19752         both < and > is used.
19754 2010-07-13  Richard Guenther  <rguenther@suse.de>
19756         PR middle-end/44911
19757         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
19758         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
19759         without name.
19761 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
19763         PR target/44761
19764         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
19765         to variable emited.
19766         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
19767         * config/sh/sh.md (symGOT_load): Likewise.
19768         (symDTPOFF2reg): Likewise.
19769         (symTPOFF2reg): Likewise.
19771 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19773         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
19774         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
19776 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19778         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
19779         explanation.
19780         Find ucontext_t * on Solaris 11.
19781         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
19782         Handle new Solaris 11 __sighndlr patterns.
19784 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
19786         PR debug/44901
19787         * vec.h (VEC_block_remove): Fix comment.
19788         * tree-ssa-live.c (remove_unused_locals): Don't use
19789         VEC_unordered_remove on local_decls, instead replace a single
19790         vector element in each iteration if at least one element had
19791         to be removed and VEC_truncate at the end.
19792         * omp-low.c (expand_omp_taskreg): Likewise.
19794 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19796         * c-decl.c (finish_function): Fix typo in comment.
19798 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
19800         PR bootstrap/44921
19801         * postreload.c (move2add_use_add3_insn): Silence gcc warning
19802         on min_regno.
19804 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
19806         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
19807         (simplify_stmt_using_ranges): Use it.
19809 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19811         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
19812         member.  Do not mark as GTY(()).
19813         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
19814         (spu_builtin_decls): New static variable.
19815         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
19816         (spu_init_builtins): Likewise.
19817         (spu_builtin_mul_widen_even): Likewise.
19818         (spu_builtin_mul_widen_odd): Likewise.
19819         (spu_builtin_mask_for_load): Likewise.
19820         (spu_builtin_vec_perm): Likewise.
19821         * config/spu/spu-c.c: Include "target.h".
19822         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
19823         of using spu_builtins[].fndecl.
19825 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19827         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
19828         imply -minterlink-mips16.
19830 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19832         * config/mips/mips.h (mips16_globals): Declare.
19833         (SWITCHABLE_TARGET): Define.
19834         * config/mips/mips.c: Include target-globals.h.
19835         (mips16_globals): New variable.
19836         (mips_set_mips16_mode): Use save_target_globals and
19837         restore_target_globals instead of target_reinit.
19839 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19841         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
19842         to say that the function can be called more than once.
19843         * target-globals.c (save_target_globals): Call init_reg_sets.
19845 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19847         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
19848         * bb-reorder.h: New file.
19849         * bb-reorder.c (default_target_bb_reorder): New variable.
19850         (this_target_bb_reorder): New conditional variable.
19851         (uncond_jump_length): Redefine as a macro.
19852         * target-globals.h (this_target_bb_reorder): Declare.
19853         (target_globals): Add a bb_reorder field.
19854         (restore_target_globals): Copy the bb_reorder field to
19855         this_target_bb-reorder.
19856         * target-globals.c: Include bb-reorder.h.
19857         (default_target_globals): Initialize the bb_reorder field.
19858         (save_target_globals): Likewise.
19860 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19862         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
19863         * gcse.h: New file.
19864         * gcse.c: Include gcse.h.
19865         (default_target_gcse): New variable.
19866         (this_target_gcse): New conditional variable.
19867         (can_copy): Redefine as a macro.
19868         (can_copy_init_p): New macro.
19869         (can_copy_p): Remove can_copy_init_p.
19870         * target-globals.h (this_target_gcse): Declare.
19871         (target_globals): Add a gcse field.
19872         (restore_target_globals): Copy the gcse field to this_target_gcse.
19873         * target-globals.c: Include gcse.h.
19874         (default_target_globals): Initialize the gcse field.
19875         (save_target_globals): Likewise.
19877 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19879         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
19880         and x_ira_prohibited_mode_move_regs_initialized_p.
19881         (ira_prohibited_mode_move_regs): Redefine as a macro.
19882         * ira.c (ira_prohibited_mode_move_regs): Delete.
19883         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
19885 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19887         * reload.h (target_reload): Add x_cached_reg_save_code and
19888         x_cached_reg_restore_code.
19889         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
19890         Redefine as macros.
19892 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19894         * Makefile.in (target-globals.o): Depend on builtins.h.
19895         * builtins.h: New file.
19896         * builtins.c: Include builtins.h.
19897         (default_target_builtins): New variable.
19898         (this_target_builtins): New conditional variable.
19899         (apply_args_mode, apply_result_mode): Redefine as macros.
19900         * target-globals.h (this_target_builtins): Declare.
19901         (target_globals): Add a builtins field.
19902         (restore_target_globals): Copy the builtins field to
19903         this_target_builtins.
19904         * target-globals.c: Include builtins.h.
19905         (default_target_globals): Initialize the builtins field.
19906         (save_target_globals): Likewise.
19908 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19910         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
19911         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
19912         from expmed.c.
19913         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
19914         (alg_hash, alg_hash_used_p): New macros.
19915         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
19916         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
19917         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
19919 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19921         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
19922         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
19923         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
19924         (this_op_costs, costs_classes): Redefine as macros.
19925         (record_reg_classes): Don't take op_costs as a parameter.
19926         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
19927         (scan_one_insn): Update call to record_operand_costs.
19929 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19931         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
19932         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
19933         (target_ira_int): New structure.
19934         (default_target_ira_int): Declare.
19935         (this_target_ira_int): Declare as a variable or define as a macro.
19936         (ira_reg_mode_hard_regset, ira_register_move_cost)
19937         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
19938         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
19939         (prohibited_class_mode_regs, ira_important_classes_num)
19940         (ira_important_classes, ira_reg_class_intersect)
19941         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
19942         (ira_reg_class_union): Redefine as macros.
19943         * ira.h (target_ira): New structure.
19944         (default_target_ira): Declare.
19945         (this_target_ira): Declare as a variable or define as a macro.
19946         (ira_available_class_regs, ira_hard_regno_cover_class)
19947         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
19948         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
19949         (ira_class_hard_regs_num): Redefine as macros.
19950         * ira.c (default_target_ira, default_target_ira_int): New variables.
19951         (this_target_ira, this_target_ira_int): New conditional variables.
19952         (ira_reg_mode_hard_regset, ira_memory_move_cost)
19953         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
19954         (ira_class_subset_p): Delete.
19955         (no_unit_alloc_regs): Redefine as a macro.
19956         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
19957         (ira_class_hard_regs_num, ira_class_hard_reg_index)
19958         (ira_available_class_regs): Delete.
19959         (alloc_reg_class_subclasses): Redefine as a macro.
19960         (ira_reg_class_cover_size, ira_reg_class_cover)
19961         (ira_important_classes_num, ira_important_classes)
19962         (ira_important_class_nums, ira_class_translate): Delete.
19963         (cover_class_order): Document the variable's lifetime.
19964         (reorder_important_classes): Don't set ira_important_class_nums.
19965         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19966         (ira_reg_class_super_classes, ira_reg_class_union)
19967         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19968         Delete.
19969         (setup_reg_class_nregs): Don't set ira_max_regs.
19970         (prohibited_class_mode_regs): Delete.
19971         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19972         (target_globals): Add ira and ira_int fields.
19973         (restore_target_globals): Copy the ira field to this_target_ira
19974         and the ira_int field to this_target_ira_int.
19975         * target-globals.c: Include ira-int.h.
19976         (default_target_globals): Initialize the ira and ira_int fields.
19977         (save_target_globals): Likewise.
19979 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19981         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19982         * cfgloop.h (target_cfgloop): New structure.
19983         (default_target_cfgloop): Declare.
19984         (this_target_cfgloop): Declare as a variable or define as a macro.
19985         (target_avail_regs, target_clobbered_regs, target_res_regs)
19986         (target_reg_cost, target_spill_cost): Redefine as macros.
19987         * cfgloopanal.c (default_target_cfgloop): New variable.
19988         (this_target_cfgloop): New conditional variable.
19989         (target_avail_regs, target_clobbered_regs, target_res_regs)
19990         (target_reg_cost, target_spill_cost): Delete.
19991         * target-globals.h (this_target_cfgloop): Declare.
19992         (target_globals): Add a cfgloop field.
19993         (restore_target_globals): Copy the cfgloop field to
19994         this_target_cfgloop.
19995         * target-globals.c: Include cfgloop.h.
19996         (default_target_globals): Initialize the cfgloop field.
19997         (save_target_globals): Likewise.
19999 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20001         * regs.h (target_regs): Add x_direct_load, x_direct_store and
20002         x_float_extend_from_mem.
20003         (direct_load, direct_store, float_extend_from_mem): New macros.
20004         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
20006 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20008         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
20009         (target-globals.o): Depend on $(LIBFUNCS_H).
20010         * libfuncs.h: Include hashtab.h.
20011         (libfunc_entry): Moved from optabs.c.
20012         (target_libfuncs): New structure.
20013         (default_target_libfuncs): Declare.
20014         (this_target_libfuncs): Declare as a variable or define as a macro.
20015         (libfunc_table): Redefine as a macro.
20016         * optabs.c (default_target_libfuncs): New variable.
20017         (this_target_libfuncs): New conditional variable.
20018         (libfunc_table): Delete.
20019         (libfunc_entry): Moved to optabs.h.
20020         (libfunc_hash): Redefine as a macro.
20021         (hash_libfunc, eq_libfunc): Fix comments.
20022         (init_optabs): Use libfunc_hash to detect cases where the function
20023         has already been called.  Clear the hash table instead of
20024         recreating it.
20025         * target-globals.h (this_target_libfuncs): Declare.
20026         (target_globals): Add a libfuncs field.
20027         (restore_target_globals): Copy the libfuncs field to
20028         this_target_libfuncs.
20029         * target-globals.c: Include libfuncs.h.
20030         (default_target_globals): Initialize the libfuncs field.
20031         (save_target_globals): Likewise.
20033 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20035         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
20036         in all dependency lists.
20038 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20040         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
20041         * optabs.h (target_optabs): New structure.
20042         (default_target_optabs): Declare.
20043         (this_target_optabs): Declare as a variable or define as a macro.
20044         (optab_table, convert_optab_table, direct_optab_table): Redefine
20045         as macros.
20046         * optabs.c (default_target_optabs): New variable.
20047         (this_target_optabs): New conditional variable.
20048         (optab_table, convert_optab_table, direct_optab_table): Delete.
20049         * target-globals.h (this_target_optabs): Declare.
20050         (target_globals): Add a optabs field.
20051         (restore_target_globals): Copy the optabs field to
20052         this_target_optabs.
20053         * target-globals.c: Include expr.h and optabs.h.
20054         (default_target_globals): Initialize the optabs field.
20055         (save_target_globals): Likewise.
20057 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20059         * flags.h (target_flagstate): Add x_flag_excess_precision.
20060         (flag_excess_precision): Redefine as a macro.
20061         * toplev.c (flag_excess_precision): Delete.
20063 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20065         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
20066         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
20067         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
20068         (no_caller_save_reg_set): Redefine as a macro.
20069         * reload.h (target_reload): Add x_caller_save_initialized_p and
20070         x_regno_save_mode.
20071         (caller_save_initialized_p): Redefine as a macro.
20072         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
20073         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
20074         (regno_save_mode): Redefine as a macro.
20076 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20078         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
20079         * expmed.h: New file.
20080         * expmed.c (default_target_costs): New variable.
20081         (this_target_costs): New conditional variable.
20082         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
20083         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
20084         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
20085         * target-globals.h (this_target_expmed): Declare.
20086         (target_globals): Add a expmed field.
20087         (restore_target_globals): Copy the expmed field to
20088         this_target_expmed.
20089         * target-globals.c: Include expmed.h.
20090         (default_target_globals): Initialize the expmed field.
20091         (save_target_globals): Likewise.
20093 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20095         * Makefile.in (target-globals.o): Depend on reload.h.
20096         * reload.h (target_reload): New structure.
20097         (default_target_reload): Declare.
20098         (this_target_reload): Declare as a variable or define as a macro.
20099         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
20100         * reload1.c (default_target_reload): New variable
20101         (this_target_reload): New conditional variable.
20102         (indirect_symref_ok, double_reg_address_ok): Delete.
20103         (spill_indirect_levels): Redefine as a macro.
20104         * target-globals.h (this_target_reload): Declare.
20105         (target_globals): Add a reload field.
20106         (restore_target_globals): Copy the reload field to
20107         this_target_reload.
20108         * target-globals.c: Include hard-reg-set.h.
20109         (default_target_globals): Initialize the reload field.
20110         (save_target_globals): Likewise.
20112 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20114         * rtl.h (target_rtl): Add x_static_reg_base_value.
20115         * alias.c (static_reg_base_value): Redefine as a macro.
20117 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20119         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
20120         (GTFILES): Remove reginfo.c.
20121         * rtl.h (target_rtl): Add x_top_of_stack.
20122         (top_of_stack): New macro.
20123         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
20124         (top_of_stack): Delete.
20126 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20128         * regs.h (target_regs): Add x_hard_regs_of_mode,
20129         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
20130         x_may_move_out_cost and x_last_mode_for_init_move_cost.
20131         (have_regs_of_mode, contains_reg_of_mode, move_cost)
20132         (may_move_in_cost, may_move_out_cost): Redefine as macros.
20133         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
20134         (may_move_in_cost, may_move_out_cost): Delete.
20135         (last_mode_for_init_move_cost): Redefine as a macro.
20137 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20139         * hard-reg-set.h (target_hard_regs): New structure.
20140         (default_target_hard_regs): Declare.
20141         (this_target_hard_regs): Declare as a variable or define as a macro.
20142         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
20143         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
20144         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
20145         (reg_class_size, reg_class_subclasses, reg_class_subunion)
20146         (reg_class_superunion, reg_names): Redefine as macros.
20147         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
20148         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
20149         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
20150         (reg_class_contents, reg_class_size, reg_class_subclasses)
20151         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
20152         (default_target_hard_regs): New variable
20153         (this_target_hard_regs, initial_call_really_used_regs)
20154         (initial_reg_alloc_order): New conditional variables.
20155         (initial_reg_names): New variable.
20156         (init_reg_sets): Assert that initial_call_really_used_regs,
20157         initial_reg_alloc_order and initial_reg_names
20158         are all the same size as their variable counterparts.  Use them to
20159         initialize those counterparts.
20160         * target-globals.h (this_target_hard_regs): Declare.
20161         (target_globals): Add a hard_regs field.
20162         (restore_target_globals): Copy the hard_regs field to
20163         this_target_hard_regs.
20164         * target-globals.c: Include hard-reg-set.h.
20165         (default_target_globals): Initialize the hard_regs field.
20166         (save_target_globals): Likewise.
20168 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20170         * Makefile.in (target-globals.o): Depend on $(RTL_H).
20171         * rtl.h (target_rtl): New structure.
20172         (default_target_rtl): Declare.
20173         (this_target_rtl): Declare as a variable or define as a macro.
20174         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
20175         Redefine as macros.
20176         * emit-rtl.c (default_target_rtl): New variable.
20177         (this_target_rtl): New conditional variable.
20178         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
20179         (return_address_pointer_rtx): Delete.
20180         (initial_regno_reg_rtx): New macro.
20181         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
20182         (init_emit_regs): Likewise.
20183         * target-globals.h (this_target_rtl): Declare.
20184         (target_globals): Add a rtl field.
20185         (restore_target_globals): Copy the rtl field to this_target_rtl.
20186         * target-globals.c: Include rtl.h.
20187         (default_target_globals): Initialize the rtl field.
20188         (save_target_globals): Likewise.
20190 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20192         * Makefile.in (target-globals.o): Depend on $(REGS_H).
20193         * regs.h (target_reg_modes): New structure.
20194         (default_target_reg_modes): Declare.
20195         (this_target_reg_modes): Declare as a variable or define as a macro.
20196         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
20197         * reginfo.c (default_target_reg_modes): New variable.
20198         (this_target_reg_modes): New conditional variable.
20199         (hard_regno_nregs, reg_raw_mode): Delete.
20200         * target-globals.h (this_target_regs): Declare.
20201         (target_globals): Add a regs field.
20202         (restore_target_globals): Copy the regs field to this_target_regs.
20203         * target-globals.c: Include regs.h.
20204         (default_target_globals): Initialize the regs field.
20205         (save_target_globals): Likewise.
20207 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20209         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
20210         * doc/tm.texi: Regenerate.
20211         * Makefile.in (OBJS-common): Add target-globals.o.
20212         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
20213         and target-globals.h.
20214         (target-globals.o): New rule.
20215         (GTFILES): Include $(srcdir)/target-globals.h.
20216         * defaults.h (SWITCHABLE_TARGET): Define.
20217         * gengtype.c (open_base_files): Add target-globals.h to the
20218         list of includes.
20219         * target-globals.h: New file.
20220         * target-globals.c: Likewise.
20222         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
20223         * flags.h (target_flag_state): New structure.
20224         (default_target_flag_state): Declare.
20225         (this_target_flag_state): Declare as a variable or define as a macro.
20226         (align_loops_log): Redefine as a macro.
20227         (align_loops_max_skip, align_jumps_log): Likewise.
20228         (align_jumps_max_skip, align_labels_log): Likewise.
20229         (align_labels_max_skip, align_functions_log): Likewise.
20230         * toplev.c (default_target_flag_state): New variable.
20231         (this_target_flag_state): New conditional variable.
20232         (align_loops_log): Delete.
20233         (align_loops_max_skip, align_jumps_log): Likewise.
20234         (align_jumps_max_skip, align_labels_log): Likewise.
20235         (align_labels_max_skip, align_functions_log): Likewise.
20236         * target-globals.h (this_target_flag_state): Declare.
20237         (target_globals): Add a flag_state field.
20238         (restore_target_globals): Copy the flag_state field to
20239         this_target_flag_state.
20240         * target-globals.c: Include flags.h.
20241         (default_target_globals): Initialize the flag_state field.
20242         (save_target_globals): Likewise.
20244 2010-07-12  Jie Zhang  <jie@codesourcery.com>
20246         * postreload.c (reg_symbol_ref[]): New.
20247         (move2add_use_add2_insn): New.
20248         (move2add_use_add3_insn): New.
20249         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
20250         (move2add_note_store): Likewise.
20252 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
20254         PR rtl-optimization/44752
20255         * genautomata.c (main): Don't emit an empty file even if there
20256         is no automaton.
20258 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20260         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
20261         ix86_solaris_return_in_memory.
20262         * config/i386-protos.h: Reflect this.
20263         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
20264         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
20265         Move ...
20266         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
20268 2010-07-12  Jie Zhang  <jie@codesourcery.com>
20270         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
20271         align the stack when it's going to be saved.
20273 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20275         PR pch/14940
20276         * config/host-solaris.c (mmap_fixed): New function.
20277         (sol_gt_pch_get_address): Use it.
20278         (sol_gt_pch_use_address): Likewise.
20280 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20282         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
20283         pentiumpro on Solaris 8 and 9/x86.
20284         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
20285         Document SSE/SSE2 support.
20286         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
20288 2010-07-12  Andi Kleen  <ak@linux.intel.com>
20290         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
20291         instead of gcc_assert to print better error message for multiple
20292         prevailing defs.
20294 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
20296         * config/i386/i386.c (ix86_asm_output_function_label): Change format
20297         string placeholder from 0x%x to %#x.
20298         (ix86_code_end): Use putc to output '\n'.
20299         (ix86_print_operand) <case ';'>: Use putc to output ';'.
20301 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
20303         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
20304         in directive -export.
20306 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
20308         * reginfo.h (reg_classes_intersect_p): Change arguments type to
20309         reg_class_t.
20310         * rtl.h (reg_classes_intersect_p): Adjust prototype.
20312         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20313         Remove macros.
20314         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
20315         rs6000_memory_move_cost): Remove
20316         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
20317         TARGET_MEMORY_MOVE_COST): Define.
20318         (rs6000_register_move_cost): Make static. Change arguments type from
20319         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
20320         (rs6000_memory_move_cost): Make static. Change arguments type from
20321         'enum reg_class' to reg_class_t.
20323 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
20325         PR middle-end/42505
20326         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
20327         lookup code into....
20328         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
20329         new functions.
20330         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
20331         * cfgloopanal.c (target_clobbered_regs): Define.
20332         (init_set_costs): Initialize target_clobbered_regs.
20333         (estimate_reg_pressure_cost): Add call_p argument.  When true,
20334         adjust the number of available registers to exclude the
20335         call-clobbered registers.
20336         * cfgloop.h (target_clobbered_regs): Declare.
20337         (estimate_reg_pressure_cost): Adjust declaration.
20338         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
20339         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
20340         (determine_set_costs): Dump target_clobbered_regs.
20341         (loop_body_includes_call): New function.
20342         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
20343         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
20344         call_p flag through.
20345         (best_gain_for_invariant): Likewise.
20346         (find_invariants_to_move): Likewise.
20347         (move_single_loop_invariants): Likewise, using already-computed
20348         has_call field.
20350 2010-07-10  Richard Guenther  <rguenther@suse.de>
20351             Joern Rennecke  <joern.rennecke@embecosm.com>
20353         PR debug/44832
20354         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
20355         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
20356         unless they have DECL_IGNORED_P set.
20358 2010-07-10  Richard Guenther  <rguenther@suse.de>
20360         PR lto/44889
20361         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
20362         helper function.
20363         (gimple_types_compatible_p): Similar to pointed-to
20364         types allow and merge a mix of complete and incomplete aggregate.
20365         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
20366         (iterative_hash_gimple_type): Adjust for that.
20368 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
20370         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
20372 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
20374         PR objc/44140
20375         * config/darwin.c (output_objc_section_asm_op): Save and restore
20376         section when outputting ObjC section list.
20378 2010-07-09  Jan Hubicka  <jh@suse.cz>
20380         * lto-streamer-out.c (produce_symtab): Do not write alias
20381         cgraph/varpool nodes.
20383 2010-07-09  Jan Hubicka  <jh@suse.cz>
20385         * tree-inline.c (declare_return_variable): Fix ICE while
20386         inlining DECL_BY_VALUE function not in SSA form
20388 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
20390         PR tree-optimization/44576
20391         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
20392         New.  Pull out from is_loop_prefetching_profitable to implement
20393         the trip count to ahead ratio heuristic.
20394         (mem_ref_count_reasonable_p): New.  Pull out from
20395         is_loop_prefetching_profitable to implement the instruction to
20396         memory reference ratio heuristic.  Also consider not reasonable if
20397         the memory reference count is above a threshold (to avoid
20398         explosive compilation time.
20399         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
20400         is_loop_prefetching_profitable to implement the instruction to
20401         prefetch ratio heuristic.
20402         (is_loop_prefetching_profitable): Removed.
20403         (loop_prefetch_arrays): Distribute the cost analysis across the
20404         function to allow early exit of the prefetch analysis.
20405         is_loop_prefetching_profitable is splitted into three functions,
20406         with each one called as early as possible.
20407         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
20408         number of memory references in a loop is considered too many.
20410 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
20412         * reload.c (find_reloads): Don't clear badop if we have a winreg
20413         alternative, but not win, and the class only has fixed regs.
20414         * hard-reg-set.h (class_only_fixed_regs): Declare.
20415         * reginfo.c (class_only_fixed_regs): New array.
20416         (init_reg_sets_1): Initialize it.
20417         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
20418         discourage alternatives using the stack pointer.
20420         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
20422         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
20424         * config/arm/arm.md (cbranchqi4): Fix array size.
20425         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
20426         calculating length.
20428 2010-07-09  Richard Guenther  <rguenther@suse.de>
20430         * gimple.c (struct type_fixup_s): New struct and VEC type.
20431         (gimple_register_type_fixups): New static global.
20432         (gimple_queue_type_fixup): New function.
20433         (gimple_types_compatible_p): Queue type fixups instead of
20434         applying them here.
20435         (gimple_register_type): Apply queued fixups for the
20436         canonical type.  Empty the type fixup queue.
20438 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
20440         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
20441         * configure: Regenerate.
20442         * config.in: Ditto.
20444 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
20445             Denys Vlasenko  <dvlasenk@redhat.com>
20446             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
20448         PR tree-optimization/28632
20449         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
20450         (extract_range_from_binary_expr): Further optimize
20451         BIT_AND_EXPR and BIT_IOR_EXPR.
20453 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
20455         * tree-if-conv.c (fold_or_predicates): New.
20456         (add_to_predicate_list): Call it.
20458 2010-07-09  Richard Guenther  <rguenther@suse.de>
20460         PR middle-end/44890
20461         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
20462         if base is a pointer.
20463         * tree-cfg.c (verify_expr): Update MEM_REF checking.
20465 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
20467         PR target/44877
20468         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
20469         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
20470         builtin mask for load/store builtins.
20472 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
20474         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
20475         for "lock addl".
20476         * configure: Regenerate.
20477         * config/i386/i386.c (ix86_print_operand) <case ';'>:
20478         Remove TARGET_MACHO.
20480 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
20482         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
20483         default ISA flags.
20484         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
20486 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
20488         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
20490 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
20492         * config/picochip/picochip.md (commsTestPort): Emit more
20493         efficient sequence for tstport instruction.
20495 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
20497         * config/i386/i386.c (ix86_veclib_handler): Make static.
20499 2010-07-09  Richard Guenther  <rguenther@suse.de>
20501         PR tree-optimization/44852
20502         * tree-ssa-alias.c: Include toplev.h for exact_log2.
20503         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
20504         in MEM_REF.
20505         (indirect_refs_may_alias_p): Likewise.
20506         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
20508 2010-07-09  Richard Guenther  <rguenther@suse.de>
20510         PR tree-optimization/44882
20511         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
20512         sets do conflict.
20513         (vectorizable_load): Likewise.
20515 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
20517         PR target/40657
20518         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
20519         All callers changed.
20520         Handle the case when we're called for the epilogue.
20521         (thumb_unexpanded_epilogue): Use it.
20522         (thumb1_expand_epilogue): Likewise.
20524 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
20526         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
20527         both ranges are range_int_cst_p with non-negative minimum,
20528         try harder to derive smaller range.
20530 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20532         * genrecog.c: Include diagnostic-core.h before toplev.h.
20533         * genoutput.c: Likewise.
20534         * genextract.c: Likewise.
20535         * genautomata.c: Likewise.
20536         * genemit.c: Likewise.
20537         * genpeep.c: Likewise.
20538         * genattrtab.c: Likewise.
20539         * genconditions.c: Likewise.
20540         * genpreds.c: Likewise.
20542 2010-07-08  Andi Kleen  <ak@linux.intel.com>
20544         * lto-section-in.c (lto_section_name): Add missing comma.
20546 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
20548         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
20549         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
20550         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
20551         (ia64_override_options): Rename to...
20552         (ia64_option_override): ... this one. Make static.
20554 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20556         PR middle-end/44843
20557         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
20558         pointed-to type of the offset in a MEM_REF to compute the alignment.
20560 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
20562         * final.c (final_scan_insn): Replace
20563         TARGET_UNWIND_INFO macro check by unwind_emit
20564         hook NULL check.
20565         * targhooks.c (default_unwind_emit): Removed.
20566         * targhooks.h (default_unwind_emit): Likewise.
20567         * target.def (unwind_emit): Set default value to NULL.
20569         * config/i386/i386-protos.h (ix86_asm_output_function_label):
20570         New prototype.
20571         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
20572         for NULL fntype argument and allow 64-bit targets.
20573         (ix86_asm_output_function_label): New function.
20574         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
20575         (ix86_handle_fndecl_attribute): Likewise.
20576         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
20577         * doc/doc/tm.texi: Regenerated.
20578         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
20579         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
20580         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
20581         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
20582         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
20583         * config/elfos.h: Likewise.
20584         * config/i386/cygming.h: Likewise.
20585         * config/netbsd-aout.h: Likewise.
20586         * config/openbsd.h: Likewise.
20587         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
20588         by ix86_asm_output_function_label function call.
20589         * varasm.c (assemble_start_function): Use
20590         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
20592 2010-07-08  Jan Hubicka  <jh@suse.cz>
20594         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
20595         New function.
20596         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
20597         Declare.
20598         * ipa-cp.c (ipcp_estimate_growth): Use it.
20599         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
20600         Likewise.
20602 2010-07-08  Jan Hubicka  <jh@suse.cz>
20604         * tree-inline.c (declare_return_variable): Allocate annotation for new
20605         temporary.
20607 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
20609         PR tree-optimization/44710
20610         * tree-if-conv.c (parse_predicate): New.
20611         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
20612         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
20614 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
20616         * common.opt (ftree-loop-if-convert): New flag.
20617         * doc/invoke.texi (ftree-loop-if-convert): Documented.
20618         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
20619         when flag_tree_loop_if_convert is set.
20621 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
20623         * config/i386/i386.c: Use short syntax for function calls
20624         through function pointers.
20625         * config/i386/i386.md: Ditto.
20627 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20629         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
20631 2010-07-08  Richard Guenther  <rguenther@suse.de>
20633         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
20634         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
20636 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
20638         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
20639         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
20640         (loc_list_from_tree): Likewise.
20641         (output_loc_operands): Handle outputting DW_OP_const[48]u
20642         with loc->dtprel set.
20643         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
20645 2010-07-08  Jan Hubicka  <jh@suse.cz>
20647         * ipa.c: Include pointer-set.h
20648         (cgraph_externally_visible_p): New attribute ALIASED;
20649         when in LTO, hidden symbols are local unless they are aliased.
20650         (function_and_variable_visibility): Compute aliased nodes;
20651         handle LTO and hidden symbol on functions and vars.
20652         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
20653         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
20655 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20657         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20658         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20659         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20660         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20661         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20662         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
20663         (ix86_gen_probe_stack_range): Likewise.
20664         (override_options): Set them.
20665         (ix86_target_stack_probe): New function.
20666         (ix86_compute_frame_layout): Force use of push instructions to
20667         save registers if stack checking with probes is enabled.
20668         (get_scratch_register_on_entry): New function.
20669         (release_scratch_register_on_entry): Likewise.
20670         (ix86_adjust_stack_and_probe): Likewise.
20671         (output_adjust_stack_and_probe): Likewise.
20672         (ix86_emit_probe_stack_range): Likewise.
20673         (output_probe_stack_range): Likewise.
20674         (ix86_expand_prologue): Emit stack checking code if static built-in
20675         stack checking is enabled.
20676         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
20677         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
20678         (output_adjust_stack_and_probe): Likewise.
20679         (output_probe_stack_range): Likewise.
20680         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20681         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
20682         TARGET_STACK_PROBE.
20683         (allocate_stack_worker_64): Likewise.
20684         (allocate_stack): Likewise.
20685         (adjust_stack_and_probe): New insn.
20686         (probe_stack_range): Likewise.
20688 2010-07-08  Richard Guenther  <rguenther@suse.de>
20690         PR tree-optimization/44831
20691         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
20692         a MEM_REF preserving TBAA info of the original dereference.
20693         Dereference the original pointer if the address is not invariant.
20694         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
20695         at least one invariant address that we are going to dereference.
20697 2010-07-08  Richard Guenther  <rguenther@suse.de>
20699         PR tree-optimization/44861
20700         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
20701         information when building MEM_REFs.
20702         (vectorizable_load): Likewise.
20703         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
20705 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20707         * config/sol2-c.c: Do not include diagnostic-core.h.
20709 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20711         PR bootstrap/44768
20712         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
20713         with respect to current_function_decl. Pass decl of the function.
20714         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
20715         * ipa-inline.c (compute_inline_parameters): Pass decl to
20716         estimated_stack_frame_size.
20718 2010-07-08  Richard Guenther  <rguenther@suse.de>
20720         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
20721         New function.
20722         (valueize_refs): Call it.
20724 2010-07-08  Richard Guenther  <rguenther@suse.de>
20726         PR rtl-optimization/44838
20727         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
20728         SSA form do not use pointer equivalence.
20730 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20732         * dwarf2out.c (AT_linkage_name): Delete.
20733         (add_linkage_attr): New function.
20734         (add_linkage_name): Call it to emit the linkage attribute.
20735         (dwarf2out_finish): Likewise.
20736         (move_linkage_attr): Explicitly accept both attribute variants.
20738 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20740         * toplev.h: Do not include diagnostic-core.h.
20741         Include diagnostic-core.h in every file that includes toplev.h.
20742         * c-tree.h: Do not include toplev.h.
20743         * pretty-print.h: Update comment.
20744         * Makefile.in: Update dependencies.
20745         * alias.c: Include diagnostic-core.h in every file that includes
20746         toplev.h.
20747         * attribs.c: Likewise.
20748         * auto-inc-dec.c: Likewise.
20749         * bb-reorder.c: Likewise.
20750         * bt-load.c: Likewise.
20751         * caller-save.c: Likewise.
20752         * calls.c: Likewise.
20753         * cfg.c: Likewise.
20754         * cfganal.c: Likewise.
20755         * cfgbuild.c: Likewise.
20756         * cfgcleanup.c: Likewise.
20757         * cfghooks.c: Likewise.
20758         * cfgloop.c: Likewise.
20759         * combine.c: Likewise.
20760         * config/alpha/alpha.c: Likewise.
20761         * config/arc/arc.c: Likewise.
20762         * config/arm/arm.c: Likewise.
20763         * config/arm/pe.c: Likewise.
20764         * config/avr/avr.c: Likewise.
20765         * config/bfin/bfin.c: Likewise.
20766         * config/cris/cris.c: Likewise.
20767         * config/crx/crx.c: Likewise.
20768         * config/darwin-c.c: Likewise.
20769         * config/darwin.c: Likewise.
20770         * config/fr30/fr30.c: Likewise.
20771         * config/frv/frv.c: Likewise.
20772         * config/h8300/h8300.c: Likewise.
20773         * config/host-darwin.c: Likewise.
20774         * config/i386/i386.c: Likewise.
20775         * config/i386/netware.c: Likewise.
20776         * config/i386/nwld.c: Likewise.
20777         * config/i386/winnt-cxx.c: Likewise.
20778         * config/i386/winnt-stubs.c: Likewise.
20779         * config/i386/winnt.c: Likewise.
20780         * config/ia64/ia64-c.c: Likewise.
20781         * config/ia64/ia64.c: Likewise.
20782         * config/iq2000/iq2000.c: Likewise.
20783         * config/lm32/lm32.c: Likewise.
20784         * config/m32c/m32c-pragma.c: Likewise.
20785         * config/m32c/m32c.c: Likewise.
20786         * config/m32r/m32r.c: Likewise.
20787         * config/m68hc11/m68hc11.c: Likewise.
20788         * config/m68k/m68k.c: Likewise.
20789         * config/mcore/mcore.c: Likewise.
20790         * config/mep/mep-pragma.c: Likewise.
20791         * config/mep/mep.c: Likewise.
20792         * config/mmix/mmix.c: Likewise.
20793         * config/mn10300/mn10300.c: Likewise.
20794         * config/moxie/moxie.c: Likewise.
20795         * config/pa/pa.c: Likewise.
20796         * config/pdp11/pdp11.c: Likewise.
20797         * config/picochip/picochip.c: Likewise.
20798         * config/rs6000/rs6000-c.c: Likewise.
20799         * config/rs6000/rs6000.c: Likewise.
20800         * config/rx/rx.c: Likewise.
20801         * config/s390/s390.c: Likewise.
20802         * config/score/score.c: Likewise.
20803         * config/score/score3.c: Likewise.
20804         * config/score/score7.c: Likewise.
20805         * config/sh/sh.c: Likewise.
20806         * config/sh/symbian-base.c: Likewise.
20807         * config/sh/symbian-c.c: Likewise.
20808         * config/sh/symbian-cxx.c: Likewise.
20809         * config/sol2-c.c: Likewise.
20810         * config/sol2.c: Likewise.
20811         * config/sparc/sparc.c: Likewise.
20812         * config/spu/spu.c: Likewise.
20813         * config/stormy16/stormy16.c: Likewise.
20814         * config/v850/v850-c.c: Likewise.
20815         * config/v850/v850.c: Likewise.
20816         * config/vax/vax.c: Likewise.
20817         * config/vxworks.c: Likewise.
20818         * config/xtensa/xtensa.c: Likewise.
20819         * convert.c: Likewise.
20820         * cse.c: Likewise.
20821         * cselib.c: Likewise.
20822         * dbgcnt.c: Likewise.
20823         * dbxout.c: Likewise.
20824         * ddg.c: Likewise.
20825         * dominance.c: Likewise.
20826         * emit-rtl.c: Likewise.
20827         * explow.c: Likewise.
20828         * expmed.c: Likewise.
20829         * fixed-value.c: Likewise.
20830         * fold-const.c: Likewise.
20831         * fwprop.c: Likewise.
20832         * gcse.c: Likewise.
20833         * ggc-common.c: Likewise.
20834         * ggc-page.c: Likewise.
20835         * ggc-zone.c: Likewise.
20836         * gimple-low.c: Likewise.
20837         * gimplify.c: Likewise.
20838         * graph.c: Likewise.
20839         * haifa-sched.c: Likewise.
20840         * ifcvt.c: Likewise.
20841         * implicit-zee.c: Likewise.
20842         * integrate.c: Likewise.
20843         * ira-build.c: Likewise.
20844         * ira-color.c: Likewise.
20845         * ira-conflicts.c: Likewise.
20846         * ira-costs.c: Likewise.
20847         * ira-lives.c: Likewise.
20848         * ira.c: Likewise.
20849         * lists.c: Likewise.
20850         * loop-doloop.c: Likewise.
20851         * loop-iv.c: Likewise.
20852         * lto-opts.c: Likewise.
20853         * lto-symtab.c: Likewise.
20854         * main.c: Likewise.
20855         * modulo-sched.c: Likewise.
20856         * optabs.c: Likewise.
20857         * params.c: Likewise.
20858         * plugin.c: Likewise.
20859         * postreload-gcse.c: Likewise.
20860         * postreload.c: Likewise.
20861         * predict.c: Likewise.
20862         * profile.c: Likewise.
20863         * real.c: Likewise.
20864         * regcprop.c: Likewise.
20865         * reginfo.c: Likewise.
20866         * regmove.c: Likewise.
20867         * reorg.c: Likewise.
20868         * resource.c: Likewise.
20869         * rtl.c: Likewise.
20870         * rtlanal.c: Likewise.
20871         * sched-deps.c: Likewise.
20872         * sched-ebb.c: Likewise.
20873         * sched-rgn.c: Likewise.
20874         * sdbout.c: Likewise.
20875         * sel-sched-dump.c: Likewise.
20876         * sel-sched-ir.c: Likewise.
20877         * simplify-rtx.c: Likewise.
20878         * stmt.c: Likewise.
20879         * stor-layout.c: Likewise.
20880         * store-motion.c: Likewise.
20881         * targhooks.c: Likewise.
20882         * tree-cfg.c: Likewise.
20883         * tree-cfgcleanup.c: Likewise.
20884         * tree-dump.c: Likewise.
20885         * tree-eh.c: Likewise.
20886         * tree-inline.c: Likewise.
20887         * tree-nomudflap.c: Likewise.
20888         * tree-object-size.c: Likewise.
20889         * tree-optimize.c: Likewise.
20890         * tree-outof-ssa.c: Likewise.
20891         * tree-phinodes.c: Likewise.
20892         * tree-profile.c: Likewise.
20893         * tree-ssa-ccp.c: Likewise.
20894         * tree-ssa-coalesce.c: Likewise.
20895         * tree-ssa-live.c: Likewise.
20896         * tree-ssa-loop-niter.c: Likewise.
20897         * tree-ssa-loop-prefetch.c: Likewise.
20898         * tree-ssa-loop.c: Likewise.
20899         * tree-ssa-structalias.c: Likewise.
20900         * tree-ssa-uninit.c: Likewise.
20901         * tree-ssa.c: Likewise.
20902         * tree-vect-data-refs.c: Likewise.
20903         * tree-vect-loop-manip.c: Likewise.
20904         * tree-vect-loop.c: Likewise.
20905         * tree-vect-patterns.c: Likewise.
20906         * tree-vect-stmts.c: Likewise.
20907         * tree-vrp.c: Likewise.
20908         * varasm.c: Likewise.
20909         * vec.c: Likewise.
20910         * web.c: Likewise.
20911         * xcoffout.c: Likewise.
20913 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
20915         * gengtype.c (write_field_root): New function.
20916         (write_root): Use it.
20918 2010-07-07  Wei Guozhi  <carrot@google.com>
20920         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20921         of lowest bits to lshift/compare): Add a missing line.
20923 2010-07-07  Wei Guozhi  <carrot@google.com>
20925         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20926         of lowest bits to lshift/compare): New.
20928 2010-07-07  Tom Tromey  <tromey@redhat.com>
20930         * doc/tm.texi: Update.
20931         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
20932         Add @hook.
20933         * target.def (want_debug_pub_sections): New hook.
20934         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
20935         * dwarf2out.c (add_pubname_string): Check
20936         targetm.want_debug_pub_sections.
20937         (add_pubname): Likewise.
20938         (add_pubtype): Likewise.
20940 2010-07-07  Jie Zhang  <jie@codesourcery.com>
20942         * genautomata.c (output_automata_list_min_issue_delay_code):
20943         Correctly decompress min_issue_delay.
20945 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20947         PR rtl-optimization/44404
20948         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
20949         possible, use reg_overlap_mentioned_p instead.
20951 2010-07-07  Duncan Sands  <baldrick@free.fr>
20953         PR middle-end/41355
20954         * tree.c (build_function_type_skip_args): Copy the original type using
20955         build_distinct_type_copy rather than copy_node.
20957 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20959         PR target/44850
20960         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20961         revision 161876.
20962         (ix86_expand_prologue): Likewise.
20963         (ix86_handle_fndecl_attribute): Likewise.
20964         (ix86_asm_declare_function_name): Likewise.
20965         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20966         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20967         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20968         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20969         * doc/extend.texi: Likewise.
20971 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20973         PR target/44844
20974         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20975         retry if the carry flag isn't valid.
20976         (rdrand<mode>_1): New.
20978 2010-07-07  Richard Guenther  <rguenther@suse.de>
20980         PR middle-end/44790
20981         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20982         for expanding the constant offset for MEM_REFs.
20984 2010-07-07  Richard Guenther  <rguenther@suse.de>
20986         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20987         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20988         * gimple.h (is_gimple_operand): Remove.
20989         * gimple.c (is_gimple_operand): Likewise.
20990         (walk_gimple_op): Fix wi->val_only setting for calls.
20991         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20992         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20993         invalid gimple calls.
20995 2010-07-06  Jan Hubicka  <jh@suse.cz>
20997         * lto-cgraph.c (output_cgraph): Add missing declaration.
20999 2010-07-06  Jan Hubicka  <jh@suse.cz>
21001         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
21002         partition.
21004 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
21006         * doc/gimple.texi (GIMPLE_DEBUG): Document.
21007         * doc/rtl.texi (Debug Information): New node.
21008         (NOTE_INSN_VAR_LOCATION): Document.
21009         (debug_insn): Likewise.
21010         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
21012 2010-07-07  Jan Hubicka  <jh@suse.cz>
21014         With parts by Richard Guenther.
21016         PR middle-end/44813
21017         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
21018         for functions passed by reference.
21019         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
21020         in memory when passed by reference.
21021         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
21022         beggining.
21023         * ipa-split.c (split_function): Cleanup way return value is passed;
21024         handle SSA DECL_BY_REFERENCE retvals.
21025         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
21026         DECL_BY_REFERENCE is set.
21027         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
21028         find_what_p_points_to): Handle RESULT_DECL.
21029         * tree-inline.c (declare_return_variable): Get new entry_block argument;
21030         when passing by reference ensure that RESULT_DECL is gimple_val.
21031         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
21032         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
21034 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
21036         PR rtl-optimization/44787
21037         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
21038         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
21040 2010-07-06  Jan Hubicka  <jh@suse.cz>
21042         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
21043         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
21044         with body can prevail.
21045         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
21046         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
21047         * cgraph.c (cgraph_get_node_or_alias): New function.
21048         * cgraph.h (cgraph_get_node_or_alias): Declare.
21050 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
21052         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
21053         support.
21054         (ix86_expand_prologue): Likewise.
21055         (ix86_handle_fndecl_attribute): Likewise.
21056         (ix86_asm_declare_function_name): New function for
21057         ASM_DECLARE_FUNCTION_NAME.
21058         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
21059         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
21060         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
21061         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
21062         * doc/extend.texi: Adjust documentation about ms_hook_prologue
21063         attribute.
21065 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
21067         * config/i386/i386.md (immediate_operand): New mode attribute.
21069         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
21070         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
21071         using P mode iterator.
21072         (pro_epilogue_adjust_stack_di_2): Rename from
21073         pro_epilogue_adjust_stack_rex64_2.
21075         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
21077 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
21079         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
21080         through gen_mov_insv_1 function pointer.
21081         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
21082         gen_truncxf<mode>2 through gen_truncxf function pointer.
21083         (remainder<mode>3): Ditto.
21084         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
21085         (allocate_stack): Call gen_allocate_stack_worker_64 or
21086         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
21087         function pointer.
21088         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
21089         function pointer.
21091 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
21093         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
21094         operand constraint instead of <r><i>m.
21096 2010-07-06  Richard Guenther  <rguenther@suse.de>
21098         PR middle-end/44828
21099         * convert.c (convert_to_integer): Watch out for overflowing
21100         MULT_EXPR as well.
21102 2010-07-05  Jan Hubicka  <jh@suse.cz>
21104         * lto-streamer.c (write_symbol_vec): Rename to ...
21105         (write_symbol) ... this one; write only symbol given and when
21106         present in cache. Sanity check that what is defined is present
21107         in cgraph/varpool with body/finalized decl.
21108         (write_symbols_of_kind): Remove.
21109         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
21110         pairs to produce symtab.
21111         (produce_asm_for_decls): Update call of produce_symtab; don't do so
21112         when doing WPA streaming.
21114 2010-07-05  Jan Hubicka  <jh@suse.cz>
21116         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
21117         function is still available to fold into.
21119 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
21121         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
21122         * function.h (struct_function): Change type of local_decls field
21123         to a VEC.
21124         (add_local_decl): New function.
21125         (FOR_EACH_LOCAL_DECL): New macro.
21126         * cfgexpand.c (init_vars_expansion): Adjust for new type of
21127         cfun->local_decls.
21128         (estimated_stack_frame_size): Likewise.
21129         (expand_used_vars): Likewise.
21130         * cgraphbuild.c (build_cgraph_edges): Likewise.
21131         * function.c (instantiate_decls_1): Likewise.
21132         * ipa-struct-reorg.c (build_data_structure): Likewise.
21133         * ipa-type-escape.c (analyze_function): Likewise.
21134         * lto-streamer-in.c (input_function): Likewise.
21135         * lto-streamer-out.c (output_function): Likewise.
21136         * tree-ssa-live.c (remove_unused_locals): Likewise.
21137         * tree.c (free_lang_data_in_decl): Likewise.
21138         (find_decls_types_in_node): Likewise.
21139         * omp-low.c (remove_exit_barrier): Likewise.
21140         (expand_omp_taskreg): Likewise.
21141         (list2chain): Rename to...
21142         (vec2chain): ...this.  Adjust.
21143         * cgraphunit.c (assemble_thunk): Call add_local_decl.
21144         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
21145         * gimple-low.c (record_vars_into): Likewise.
21146         * tree-inline.c (remap_decls): Likewise.
21147         (declare_return_variable): Likewise.
21148         (declare_inline_vars): Likewise.
21149         (copy_forbidden): Adjust for new type of cfun->local_decls.
21150         (add_local_variables): New function.
21151         (expand_call_inline): Call it.
21152         (tree_function_versioning): Likewise.
21154 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
21156         AVX Programming Reference (June, 2010)
21157         * config/i386/cpuid.h (bit_F16C): New.
21158         (bit_RDRND): Likewise.
21159         (bit_FSGSBASE): Likewise.
21161         * config/i386/i386-builtin-types.def: Add
21162         "DEF_FUNCTION_TYPE (UINT16)", function types for
21163         float16 <-> float conversions and
21164         "DEF_FUNCTION_TYPE (VOID, UINT64)".
21166         * config/i386/i386-c.c (ix86_target_macros_internal): Support
21167         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
21168         OPTION_MASK_ISA_F16C.
21170         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
21171         (OPTION_MASK_ISA_RDRND_SET): Likewise.
21172         (OPTION_MASK_ISA_F16C_SET): Likewise.
21173         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
21174         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
21175         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
21176         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
21177         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
21178         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
21179         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
21180         (override_options): Handle them.
21181         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
21182         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
21183         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
21184         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
21185         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
21186         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
21187         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
21188         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
21189         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
21190         (bdesc_args): Likewise.
21191         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
21192         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
21193         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
21194         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
21195         Handle non-memory store.
21197         * config/i386/i386.h (TARGET_FSGSBASE): New.
21198         (TARGET_RDRND): Likewise.
21199         (TARGET_F12C): Likewise.
21201         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
21202         (UNSPEC_VCVTPS2PH): Likewise.
21203         (UNSPECV_RDFSBASE): Likewise.
21204         (UNSPECV_RDGSBASE): Likewise.
21205         (UNSPECV_WRFSBASE): Likewise.
21206         (UNSPECV_WRGSBASE): Likewise.
21207         (UNSPECV_RDRAND): Likewise.
21208         (rdfsbase<mode>): Likewise.
21209         (rdgsbase<mode>): Likewise.
21210         (wrfsbase<mode>): Likewise.
21211         (wrgsbase<mode>): Likewise.
21212         (rdrand<mode>): Likewise.
21214         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
21216         * config/i386/immintrin.h (_rdrand_u16): New.
21217         (_rdrand_u32): Likewise.
21218         (_readfsbase_u32): Likewise.
21219         (_readfsbase_u64): Likewise.
21220         (_readgsbase_u32): Likewise.
21221         (_readgsbase_u64): Likewise.
21222         (_writefsbase_u32): Likewise.
21223         (_writefsbase_u64): Likewise.
21224         (_writegsbase_u32): Likewise.
21225         (_writegsbase_u64): Likewise.
21226         (_rdrand_u64): Likewise.
21227         (_cvtsh_ss): Likewise.
21228         (_mm_cvtph_ps): Likewise.
21229         (_mm256_cvtph_ps): Likewise.
21230         (_cvtss_sh): Likewise.
21231         (_mm_cvtps_ph): Likewise.
21232         (_mm256_cvtps_ph): Likewise.
21234         * config/i386/sse.md (vcvtph2ps): New.
21235         (*vcvtph2ps_load): Likewise.
21236         (vcvtph2ps256): Likewise.
21237         (vcvtps2ph): Likewise.
21238         (*vcvtps2ph): Likewise.
21239         (*vcvtps2ph_store): Likewise.
21240         (vcvtps2ph256): Likewise.
21242         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
21244         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
21246 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
21248         PR bootstrap/44512
21249         * genenums.c (main): Output include of insn-constants.h
21250         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
21252 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
21254         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
21255         (override_options): Initialize it.
21256         (ix86_expand_prologue): Use it.
21258 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
21260         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
21262 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
21264         * double-int.h (fit_double_type): Remove declaration.
21265         * double-int.c (fit_double_type): Remove function.
21266         * tree.h (int_fits_type_p): Adjust prototype.
21267         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
21268         instead of fit_double_type.
21269         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
21270         instead of fit_double_type and build_int_cst_wide.
21271         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
21272         instead of fit_double_type and build_int_cst_wide.
21273         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
21274         of fit_double_type.
21276 2010-07-05  Jan Hubicka  <jh@suse.cz>
21278         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
21279         in_other_partition.
21280         * lto-cgraph.c (referenced_from_other_partition_p,
21281         reachable_from_other_partition_p): Use in_other_partition flags.
21282         (output_node, output_varpool_node): COMDAT nodes always have private
21283         copies and thus are never used from other partition.
21285 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
21287         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
21288         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
21289         * config/ia64/ia64.c Include reload.h.
21290         (ia64_memory_move_cost): New function.
21291         (TARGET_MEMORY_MOVE_COST): Define.
21292         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
21293         memory_move_cost.
21295 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
21297         PR middle-end/42505
21298         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
21299         comments about cost model.
21300         (try_add_cand_for):  Add second strategy for choosing initial set
21301         based on original IVs, controlled by ORIGINALP argument.
21302         (get_initial_solution): Add ORIGINALP argument.
21303         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
21304         (find_optimal_iv_set): Try two different strategies for choosing
21305         the IV set, and return the one with lower cost.
21307 2010-07-05  Richard Guenther  <rguenther@suse.de>
21309         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
21311 2010-07-05  Richard Guenther  <rguenther@suse.de>
21313         * tree.c (reference_alias_ptr_type): New function.
21314         * tree.h (reference_alias_ptr_type): Declare.
21315         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
21316         allow non-TARGET_MEM_REF new refs.
21317         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
21318         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
21319         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
21320         (create_mem_ref): Get alias pointer type.  Adjust calls to
21321         create_mem_ref_raw.
21322         (maybe_fold_tmr): Likewise.
21323         * tree-flow.h (create_mem_ref): Adjust prototype.
21325 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
21327         PR c++/44808
21328         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
21329         *from_p is VAR_DECL.
21331 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
21333         * tree.h (build_call_list): Remove.
21334         * tree.c (build_call_list): Remove.
21336 2010-07-05  Richard Guenther  <rguenther@suse.de>
21338         * double-int.h (double_int_sub): Declare.
21339         * double-int.c (double_int_sub): New function.
21340         * dwarf2out.c (field_byte_offset): Use it.
21341         * fixed-value.c (do_fixed_add): Likewise.
21342         (do_fixed_multiply): Likewise.
21343         (do_fixed_divide): Likewise.
21344         * tree-predcom.c (add_ref_to_chain): Likewise.
21345         (determine_roots_comp): Likewise.
21346         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
21348 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
21350         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
21351         implementations.
21353 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
21355         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
21356         * arm-modes.def (CC_NOTB): Don't define.
21357         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
21358         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
21359         (LTUGEU): New code_iterator.
21360         (cnb, optab): New corresponding code_attrs.
21361         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
21362         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
21363         using LTUGEU.
21364         (addsi3_carryin_shift_<optab>): Likewise.
21365         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
21366         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
21367         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
21368         (subsi3_compare): Renamed from subsi3_compare0_c.
21369         Change CC_NOTB to CC.
21370         (arm_subsi3_insn): Allow constants for operand 0.
21371         (compare_scc peephole for eq case): New.
21372         (compare_scc splitters): Change CC_NOTB to CC.
21374 2010-07-05  Richard Guenther  <rguenther@suse.de>
21376         * tree-ssa-loop-im.c (for_each_index): Do not handle
21377         ALIGN_INDIRECT_REF.
21378         (gen_lsm_tmp_name): Likewise.
21379         * tree-dump.c (dequeue_and_dump): Likewise.
21380         * tree-pretty-print.c (dump_generic_node): Likewise.
21381         (op_code_prio): Likewise.
21382         (op_symbol_code): Likewise.
21383         * tree.c (staticp): Likewise.
21384         (build1_stat): Likewise.
21385         * tree.h (INDIRECT_REF_P): Likewise.
21386         * fold-const.c (maybe_lvalue_p): Likewise.
21387         (operand_equal_p): Likewise.
21388         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
21389         (ao_ref_init_from_vn_reference): Likewise.
21390         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
21391         (find_interesting_uses_address): Likewise.
21392         * dwarf2out.c (loc_list_from_tree): Likewise.
21393         * gimplify.c (gimplify_expr): Likewise.
21394         * tree-eh.c (tree_could_trap_p): Likewise.
21395         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
21396         * cfgexpand.c (expand_debug_expr): Likewise.
21397         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
21398         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
21399         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
21400         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
21401         * tree-ssa-operands.c (get_expr_operands): Likewise.
21402         * expr.c (safe_from_p): Likewise.
21403         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
21404         * tree-vect-data-refs.c (vect_setup_realignment): Build
21405         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
21406         * tree-vect-stmts.c (vectorizable_load): Likewise.
21407         * tree.def (ALIGN_INDIRECT_REF): Remove.
21409 2010-07-05  Richard Guenther  <rguenther@suse.de>
21411         PR tree-optimization/44784
21412         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
21413         for inserted stmts.
21414         (find_or_generate_expression): Fix SCCVN insertion check.
21416 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
21418         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
21419         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
21420         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
21421         directives.
21423 2010-07-05  Ira Rosen  <irar@il.ibm.com>
21425         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
21426         statements that are not vectorized.
21427         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
21428         in INSIDE_COST.
21430 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
21432         PR bootstrap/44820
21433         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
21435 2010-07-05  Richard Guenther  <rguenther@suse.de>
21437         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
21438         RESULT_DECLs properly.
21440 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
21442         PR rtl-optimization/44695
21443         * config/i386/i386.md (extract_code): Removed.
21444         (<u>divmodqi4): Likewise.
21445         (divmodqi4): New.
21446         (udivmodqi4): Likewise.
21447         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
21448         (udivmodhiqi3): Likewise.
21450 2010-07-04  Jan Hubicka  <jh@suse.cz>
21452         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
21454 2010-07-04  Jan Hubicka  <jh@suse.cz>
21456         * cgraphunit.c (init_cgraph): Only initialize dump file if it
21457         is not already initialized.
21459 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21461         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
21462         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
21463         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
21464         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
21465         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
21466         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
21467         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
21468         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
21469         (sync_new_nand_optab): Redefine as macros.
21470         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
21471         Delete.
21472         (direct_optab_index): New enum.
21473         (direct_optab_d): New structure.
21474         (direct_optab): New typedef.
21475         (direct_optab_table): Declare.
21476         (direct_optab_handler, set_direct_optab_handler): New functions.
21477         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
21478         (sync_lock_release_optab): New macros.
21479         * optabs.c (direct_optab_table): New variable.
21480         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
21481         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
21482         cmpstr_optab and cmpstrn_optab.
21483         (emit_conditional_move): Likewise for movcc_optab.
21484         (can_conditionally_move_p): Likewise for movcc_gen_code.
21485         (init_insn_codes): Clear direct_optab_table.
21486         (init_optabs): Don't initialize the new "direct optabs" here.
21487         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
21488         vcond_gen_code.
21489         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
21490         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
21491         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
21492         (expand_sync_operation): Likewise other sync_*_optabs.
21493         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
21494         to sync_compare_and_swap_optab.
21495         (expand_sync_lock_test_and_set): Use direct_optab_handler for
21496         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
21497         to the names of both.
21498         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
21499         cmpstr_optab and cmpstrn_optab.
21500         (expand_builtin_lock_release): Likewise sync_lock_release.
21501         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
21502         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
21503         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
21504         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
21505         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
21506         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
21507         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
21508         (sync_lock_test_and_set, sync_lock_release): Delete.
21509         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
21510         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
21511         * genopinit.c (optabs): Use set_direct_optab_handler for the new
21512         macro optabs.
21513         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
21514         the "optab" local variable.  Use direct_optab_handler for optab and
21515         sync_compare_and_swap_optab.
21516         * reload1.c (reload_in_optab, reload_out_optab): Delete.
21517         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
21518         reload_in_optab and reload_out_optab.
21519         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21520         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
21521         * config/pa/pa.c (pa_secondary_reload): Likewise.
21522         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
21523         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
21524         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
21525         (VMSupportsCS8_builtin): Likewise.
21527 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21529         * optabs.h (optab_handlers): Change type of insn_code to int.
21530         (optab_handler, set_optab_handler, convert_optab_handler)
21531         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
21532         CODE_FOR_nothing".
21533         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
21534         (init_insn_codes): Zero both the above arrays.
21535         (init_optabs): Never call init_insn_codes first time around.
21537 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21539         * optabs.h (optab_handler, convert_optab_handler): Turn into
21540         inline functions that return an insn code.
21541         (set_optab_handler, set_convert_optab_handler): New functions.
21542         * builtins.c: Replace optab_handler(X)->insn_code with
21543         optab_handler or set_optab_handler thoughout.  Likewise
21544         convert_optab_handler(X)->insn_code with convert_optab_handler
21545         and set_convert_optab_handler.
21546         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
21547         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
21548         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
21549         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
21550         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
21551         config/spu/spu.c: Likewise.
21553 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
21555         PR target/44531
21556         * config.gcc (sh*-*-*): Use regular expressions instead of
21557         the 'i' modifier for sed substitutions.
21559 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
21561         * gimple.c (gimple_body): Comments added.
21563 2010-07-04  Richard Guenther  <rguenther@suse.de>
21565         PR middle-end/44809
21566         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
21567         of an INDIRECT_REF.
21569 2010-07-04  Richard Guenther  <rguenther@suse.de>
21571         PR tree-optimization/44479
21572         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
21573         extra SSA name copy statements which preserves points-to
21574         information.
21575         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
21576         Copy points-to information for all pointers.  Properly handle
21577         MEM_REFs.
21578         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
21579         copy statements.
21580         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
21581         dependency.
21583 2010-07-04  Richard Guenther  <rguenther@suse.de>
21585         PR middle-end/44785
21586         * tree-inline.c (initialize_inlined_parameters): Do not
21587         re-use pointer-map slot over remap_type call.
21589 2010-07-04  Richard Guenther  <rguenther@suse.de>
21591         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
21593 2010-07-04  Richard Guenther  <rguenther@suse.de>
21595         PR tree-optimization/44656
21596         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
21597         again after value-replacing in the defintions lhs.
21599 2010-07-04  Ira Rosen  <irar@il.ibm.com>
21600             Revital Eres  <eres@il.ibm.com>
21602         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
21603         Document new arguments.
21604         * doc/tm.texi: Regenerate.
21605         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
21606         Handle unaligned store.
21607         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
21608         * target.def (builtin_vectorization_cost): Add new arguments.
21609         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
21610         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
21611         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
21612         (vect_vfa_segment_size): Fix indentation.
21613         * tree-vectorizer.h (struct _vect_peel_info): New.
21614         (struct _vect_peel_extended_info): New.
21615         (struct _loop_vec_info): Add new field for peeling hash table and a
21616         macro for its access.
21617         (VECT_MAX_COST): Define.
21618         (vect_get_load_cost): Declare.
21619         (vect_get_store_cost, vect_get_known_peeling_cost,
21620         vect_get_single_scalar_iteraion_cost): Likewise.
21621         (vect_supportable_dr_alignment): Add new argument.
21622         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
21623         field.
21624         (destroy_loop_vec_info): Free peeling hash table.
21625         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
21626         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
21627         vect_analyze_slp. Fix indentation.
21628         (vect_get_single_scalar_iteraion_cost): New function.
21629         (vect_get_known_peeling_cost): Likewise.
21630         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
21631         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
21632         statement. Move outside cost calculation inside unknown peeling case.
21633         Call vect_get_known_peeling_cost for known amount of peeling.
21634         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
21635         reference to the print message of forced alignment.
21636         (vect_verify_datarefs_alignment): Update call to
21637         vect_supportable_dr_alignment.
21638         (vect_get_data_access_cost): New function.
21639         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
21640         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
21641         vect_peeling_hash_choose_best_peeling): Likewise.
21642         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
21643         to store all the accesses in the loop and find best possible access to
21644         align using peeling for known alignment case. For unknown alignment
21645         check if stores are preferred or if peeling is worthy.
21646         (vect_find_same_alignment_drs): Analyze pairs of loads too.
21647         (vect_supportable_dr_alignment): Add new argument and check aligned
21648         accesses according to it.
21649         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
21650         (cost_for_stmt): Call vect_get_stmt_cost.
21651         (vect_model_simple_cost): Likewise.
21652         (vect_model_store_cost): Call vect_get_stmt_cost. Call
21653         vect_get_store_cost to calculate the cost of the statement.
21654         (vect_get_store_cost): New function.
21655         (vect_model_load_cost): Call vect_get_stmt_cost. Call
21656         vect_get_load_cost to calculate the cost of the statement.
21657         (vect_get_load_cost): New function.
21658         (vectorizable_store): Update call to vect_supportable_dr_alignment.
21659         (vectorizable_load): Likewise.
21660         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
21661         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
21662         arguments. Handle unaligned store.
21663         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
21664         (rs6000_builtin_support_vector_misalignment): Return true for word and
21665         double word alignments for VSX.
21666         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
21667         vect_supportable_dr_alignment and builtin_vectorization_cost.
21669 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21671         PR target/44597
21672         * config/pa/predicates.md (prefetch_cc_operand): Remove.
21673         (prefetch_nocc_operand): Likewise.
21674         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
21675         (prefetch_20): New insn.
21676         (prefetch_cc): Remove.
21677         (prefetch_nocc): Likewise.
21679 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21681         * expr.c (vector_mode_valid_p): Move to c-common.c.
21682         * expr.h (vector_mode_valid_p): Do not declare here.
21683         * system.h: Poison GCC_EXPR_H in front-ends.
21684         * Makefile.in: Update dependencies.
21686 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21688         PR target/44705
21689         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
21691 2010-07-03  Jan Hubicka  <jh@suse.cz>
21693         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
21694         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
21695         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
21696         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
21697         Likewise.
21699         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
21700         Update timevars.V
21701         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
21702         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
21703         TV_IPA_LTO_DECL_OUT): New.
21704         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
21706 2010-07-03  Jan Hubicka  <jh@suse.cz>
21708         * ipa-inline.c (update_edge_key): Break out from ...
21709         update_callers_keys): ... here;
21710         (update_callee_keys): Update only the edges from caller to callee.
21711         (update_all_calle_keys): Do what update_calle_keys did.
21712         (decide_inlining_of_small_functions): Avoid recomputing of all
21713         callees when badness increase.
21715 2010-07-03  Jie Zhang  <jie@codesourcery.com>
21717         * config/arm/arm.c (arm_attr_length_move_neon): New.
21718         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
21719         * config/arm/neon.md (define_mode_attr V_slen): Remove.
21720         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
21721         to compute length attribute.
21723 2010-07-03  Jie Zhang  <jie@codesourcery.com>
21725         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
21726         as predicate for operand 1 and remove its constraint.
21727         * config/arm/predicates.md (vfp_register_operand): New.
21728         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
21729         (*push_fp_multi): Likewise.
21731 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
21733         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
21735 2010-07-03  Jan Hubicka  <jh@suse.cz>
21737         * config/i386/i386.c (override_options): Revert accidental commit.
21739 2010-07-02  Le-Chun Wu  <lcwu@google.com>
21741         PR c++/44128
21742         * doc/invoke.texi: Update documentation of -Wshadow.
21744 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
21745             Julian Brown  <julian@codesourcery.com>
21746             Sandra Loosemore  <sandra@codesourcery.com>
21748         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
21749         comparisons.  Adjust to take both operands.
21750         (arm_select_cc_mode): Handle DImode comparisons.
21751         (arm_gen_compare_reg): Generate a scratch register for DImode
21752         comparisons which require one.  Use xor for Thumb equality checks.
21753         (arm_const_double_by_immediates): New.
21754         (arm_print_operand): Allow 'Q' and 'R' for constants.
21755         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
21756         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
21757         arm_canonicalize_comparison.
21758         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
21759         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
21760         prototype.
21761         (arm_const_double_by_immediates): Declare.
21762         * config/arm/constraints.md (Di): New constraint.
21763         * config/arm/predicates.md (arm_immediate_di_operand)
21764         (arm_di_operand, cmpdi_operand): New.
21765         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
21766         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
21767         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
21768         (cstoredi4): Handle non-Cirrus also.
21770 2010-07-02  Julian Brown  <julian@codesourcery.com>
21771             Sandra Loosemore  <sandra@codesourcery.com>
21773         PR target/43703
21774         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
21775         (smax<mode>3): Disable for NEON float modes when
21776         flag_unsafe_math_optimizations is false.
21777         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
21778         (*mul<mode>3_neon)
21779         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
21780         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
21781         for NEON float modes when flag_unsafe_math_optimizations is false.
21782         (quad_halves_<code>v4sf): Only enable if
21783         flag_unsafe_math_optimizations is true.
21784         * doc/invoke.texi (ARM Options): Add note about floating point
21785         vectorization requiring -funsafe-math-optimizations.
21787 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21788             Julian Brown  <julian@codesourcery.com>
21790         * config/arm/neon.md (UNSPEC_VABA): Delete.
21791         (UNSPEC_VABAL): Delete.
21792         (UNSPEC_VABS): Delete.
21793         (UNSPEC_VMUL_N): Delete.
21794         (adddi3_neon): New.
21795         (subdi3_neon): New.
21796         (mul<mode>3add<mode>_neon): Make the pattern named.
21797         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
21798         (neon_vadd<mode>): Replace with define_expand, and move the remaining
21799         unspec parts...
21800         (neon_vadd<mode>_unspec): ...to this.
21801         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
21802         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
21803         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
21804         (neon_vaba<mode>): Rewrite in terms of vabd.
21805         (neon_vabal<mode>): Rewrite in terms of vabdl.
21806         (neon_vabs<mode>): Rewrite without unspec.
21807         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
21808         (*arm_subdi3): Likewise.
21809         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
21810         No_op attribute to disable assembly output checks.
21811         * config/arm/arm_neon.h: Regenerated.
21812         * doc/arm-neon-intrinsics.texi: Regenerated.
21814 2010-07-02  Jan Hubicka  <jh@suse.cz>
21816         * ipa-split.c (split_function): For aggregate values, set the return
21817         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
21818         *<retval> = fncall.part ().
21819         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
21821 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21823         * config/arm/neon.md (UNSPEC_VAND): Delete.
21824         (UNSPEC_VBIC): Delete.
21825         (UNSPEC_VCLZ): Delete.
21826         (UNSPEC_VCNT): Delete.
21827         (UNSPEC_VEOR): Delete.
21828         (UNSPEC_VORN): Delete.
21829         (UNSPEC_VORR): Delete.
21830         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
21831         core registers too.
21832         (anddi3_neon): Likewise.
21833         (orndi3_neon): Likewise.
21834         (bicdi3_neon): Likewise.
21835         (xordi3_neon): Likewise.
21836         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
21837         rid of unspec and handle unused operand.
21838         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
21839         * config/arm/predicates.md (imm_for_neon_logic_operand):
21840         Require TARGET_NEON.
21841         (imm_for_neon_inv_logic_operand): Likewise.
21842         * config/arm/arm.md (define_split for logical_binary_operator):
21843         Disable for NEON registers.
21844         (anddi3): Add new define_expand, and rename the insn.  Disable
21845         this insn for NEON, where anddi3_neon now applies.
21846         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
21847         (iordi3): As for anddi3.
21848         (xordi3): Likewise.
21849         * config/arm/neon.ml (Vand): Split DImode variants and mark them
21850         as No_op to disable testing for exact instruction match.
21851         (Vorr): Likewise.
21852         (Veor): Likewise.
21853         (Vbic): Likewise.
21854         (Vorn): Likewise.
21855         * config/arm/arm_neon.h: Regenerated.
21856         * doc/arm-neon-intrinsics.texi: Regenerated.
21858 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21860         * expr.h (emit_stack_probe): Declare.
21861         * explow.c (emit_stack_probe): Make global.
21862         (anti_adjust_stack_and_probe): Fix comments.
21863         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21864         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21865         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21866         * config/sparc/sparc.c: Include except.h.
21867         (sparc_emit_probe_stack_range): New function.
21868         (output_probe_stack_range): Likewise.
21869         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
21870         built-in stack checking is enabled.
21871         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
21872         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21873         (probe_stack_range): New insn.
21875 2010-07-02  Richard Guenther  <rguenther@suse.de>
21877         PR target/43958
21878         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
21879         for argument alignment.
21881 2010-07-02  Jan Hubicka  <jh@suse.cz>
21883         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
21884         walk backwards from entry_bb to check only those basic block of header
21885         that might lead to execution of split part.
21886         (consider_split) ... here.
21887         (find_return_bb): Allow assignment in return BB.
21888         (find_retval): New.
21889         (split_function): Fix name of cloned function; take care of updating
21890         return value in return_bb containing move.
21892 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
21894         PR target/44771
21895         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
21896         used variable insn.
21898 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21900         * implicit-zee.c (combine_reaching_defs): Fix long lines.
21901         (is_set_with_extension_DI): Delete.
21902         (struct zero_extend_info): New structure.
21903         (add_removable_zero_extend): New function.
21904         (find_removable_zero_extends): Use note_stores to find SETs.
21905         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
21907 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21909         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
21910         is_miss_rate_acceptable. Pull total_positions computation
21911         out of the loops.  Early return if miss_positions exceeds
21912         the acceptable threshold.
21913         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
21914         is_miss_rate_acceptable after renaming of compute_miss_rate.
21916 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21918         PR middle-end/44576
21919         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
21920         of 1000) for miss rate if the address diference is greater than or
21921         equal to the cache line size (the two reference will never hit the
21922         same cache line).
21924 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
21926         PR target/42835
21927         * config/arm/arm-modes.def (CC_NOTB): New mode.
21928         * config/arm/arm.c (get_arm_condition_code): Handle it.
21929         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
21930         * config/arm/arm.md (subsi3_compare0_c): New pattern.
21931         (compare_scc): Now a define_and_split.  Add a number of extra
21932         splitters before it.
21934         PR target/42172
21935         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
21936         and ZERO_EXTEND.
21937         (arm_rtx_costs_1): Likewise.
21938         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
21939         * config/arm/arm.md (is_arch6): New attribute.
21940         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
21941         extendqisi2): Tighten the code somewhat, avoiding invalid
21942         RTL to occur in the expander patterns.
21943         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
21944         (thumb1_zero_extendhisi2_v6): Delete.
21945         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
21946         (thumb1_extendhisi2_v6): Delete.
21947         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
21948         (thumb1_extendqisi2_v6): Delete.
21949         (zero_extendhisi2 for register input splitter): New.
21950         (zero_extendqisi2 for register input splitter): New.
21951         (thumb1_extendhisi2 for register input splitter): New.
21952         (extendhisi2 for register input splitter): New.
21953         (extendqisi2 for register input splitter): New.
21954         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
21955         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
21956         and add support for a register alternative requiring a split.
21957         (thumb1_zero_extendqisi2): Likewise.
21958         (arm_zero_extendqisi2): Likewise.
21959         (arm_extendhisi2): Likewise.
21960         (arm_extendqisi2): Likewise.
21962 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21964         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21965         instead of an unspec.
21966         (neon_expand_vector_init): Likewise.
21967         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21968         (UNSPEC_VDUP_LANE): Delete.
21969         (UNSPEC VDUP_N): Delete.
21970         (UNSPEC_VGET_HIGH): Delete.
21971         (UNSPEC_VGET_LANE): Delete.
21972         (UNSPEC_VGET_LOW): Delete.
21973         (UNSPEC_VMVN): Delete.
21974         (UNSPEC_VSET_LANE): Delete.
21975         (V_double_vector_mode): New.
21976         (vec_set<mode>_internal): Make code emitted match that for the
21977         corresponding intrinsics.
21978         (vec_setv2di_internal): Likewise.
21979         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21980         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21981         (neon_vset_lane<mode>): Combine double and quad patterns and
21982         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21983         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21984         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21985         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21986         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21987         with neon_vdup_lanev2di, adjusting the pattern from the latter
21988         to be predicable for consistency.
21989         (neon_vdup_lane<mode>_internal): New.
21990         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21991         to avoid using an unspec.
21992         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21993         (neon_vdup_lanev2di): Turn into a define_expand.
21994         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21995         (neon_vget_high<mode>): Replace with....
21996         (neon_vget_highv16qi): New pattern using canonical RTL.
21997         (neon_vget_highv8hi): Likewise.
21998         (neon_vget_highv4si): Likewise.
21999         (neon_vget_highv4sf): Likewise.
22000         (neon_vget_highv2di): Likewise.
22001         (neon_vget_low<mode>): Replace with....
22002         (neon_vget_lowv16qi): New pattern using canonical RTL.
22003         (neon_vget_lowv8hi): Likewise.
22004         (neon_vget_lowv4si): Likewise.
22005         (neon_vget_lowv4sf): Likewise.
22006         (neon_vget_lowv2di): Likewise.
22008         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
22009         test for this emitting vmov.
22010         (Vset_lane): Likewise.
22011         (Vdup_n): Likewise.
22012         (Vmov_n): Likewise.
22014         * doc/arm-neon-intrinsics.texi: Regenerated.
22016 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22018         * config/arm/neon.md (vec_extractv2di): Correct error in register
22019         numbering to reconcile with neon_vget_lanev2di.
22021 2010-07-02  Richard Guenther  <rguenther@suse.de>
22023         * tree-ssa-structalias.c (pt_solution_set_var): New function.
22024         * tree-ssa-alias.h (pt_solution_set_var): Declare.
22025         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
22026         points-to information.
22028 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
22030         * config/s390/s390.c (override_options): Adopt prefetching
22031         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
22033 2010-07-02  Jan Hubicka  <jh@suse.cz>
22035         * df-problems.c (df_kill_notes): Do not collect dead  notes.
22036         (df_set_note): Just call add_reg_note.
22037         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
22038         df_create_unused_note): Do not deal with lists of old notes.
22039         (df_note_bb_compute): Likewise.
22041 2010-07-02  Richard Guenther  <rguenther@suse.de>
22043         * tree-ssa-structalias.c (find_func_aliases): Handle
22044         pointer alignment via BIT_AND_EXPR.
22045         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
22047 2010-07-02  Richard Guenther  <rguenther@suse.de>
22049         * tree-data-ref.c (initialize_data_dependence_relation): Handle
22050         mismatching number of dimensions properly.
22052 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22054         PR target/44707
22055         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
22056         (lo_sum (high ...) ...) patterns generated by earlier passes.
22058 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22060         * doc/install.texi (Prerequisites): Document Perl requirement on
22061         Solaris 2.
22062         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
22064 2010-07-02  Richard Guenther  <rguenther@suse.de>
22066         PR middle-end/44777
22067         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
22069 2010-07-02  Jan Hubicka  <jh@suse.cz>
22071         PR middle-end/44706
22072         * predict.c (predict_paths_for_bb): Handle case when control dependence
22073         BB has only abnormal edges.
22075 2010-07-02  Richard Guenther  <rguenther@suse.de>
22077         PR tree-optimization/44748
22078         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
22079         the embedded conversion in MEM_REFs.
22081 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
22083         * reload.c: Include toplev.h.
22084         * recog.c:  Likewise.
22085         * Makefile.in: Adjust dependencies.
22087 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
22089         PR debug/44694
22090         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
22091         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
22093 2010-07-01  Richard Guenther  <rguenther@suse.de>
22095         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
22096         types for offsets.
22098 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
22100         PR target/44732
22101         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
22102         Fix argument types.
22104 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
22106         PR target/44727
22107         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22108         Make sure operand 0 dies.
22110 2010-07-01  Richard Guenther  <rguenther@suse.de>
22112         PR middle-end/42834
22113         PR middle-end/44468
22114         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
22115         * doc/generic.texi (References to storage): Document MEM_REF.
22116         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
22117         (print_call_name): Likewise.
22118         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
22119         (build_simple_mem_ref_loc): New function.
22120         (mem_ref_offset): Likewise.
22121         * tree.h (build_simple_mem_ref_loc): Declare.
22122         (build_simple_mem_ref): Define.
22123         (mem_ref_offset): Declare.
22124         * fold-const.c: Include tree-flow.h.
22125         (operand_equal_p): Handle MEM_REF.
22126         (build_fold_addr_expr_with_type_loc): Likewise.
22127         (fold_comparison): Likewise.
22128         (fold_unary_loc): Fold
22129         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
22130         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
22131         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
22132         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
22133         (ptr_deref_may_alias_ref_p_1): Likewise.
22134         (ao_ref_base_alias_set): Properly differentiate base object for
22135         offset and TBAA.
22136         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
22137         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
22138         (indirect_refs_may_alias_p): Likewise.
22139         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
22140         chasing code.
22141         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
22142         (call_may_clobber_ref_p_1): Likewise.
22143         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
22144         * expr.c (expand_assignment): Handle MEM_REF.
22145         (store_expr): Handle MEM_REFs from STRING_CSTs.
22146         (store_field): If expanding a MEM_REF of a non-addressable
22147         decl use bitfield operations.
22148         (get_inner_reference): Handle MEM_REF.
22149         (expand_expr_addr_expr_1): Likewise.
22150         (expand_expr_real_1): Likewise.
22151         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
22152         * alias.c (ao_ref_from_mem): Handle MEM_REF.
22153         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
22154         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
22155         (dr_analyze_indices): Likewise.
22156         (dr_analyze_alias): Likewise.
22157         (object_address_invariant_in_loop_p): Likewise.
22158         * gimplify.c (mark_addressable): Handle MEM_REF.
22159         (gimplify_cond_expr): Build MEM_REFs.
22160         (gimplify_modify_expr_to_memcpy): Likewise.
22161         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
22162         (gimple_fold_indirect_ref): Adjust.
22163         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
22164         * tree.def (MEM_REF): New tree code.
22165         * tree-dfa.c: Include toplev.h.
22166         (get_ref_base_and_extent): Handle MEM_REF.
22167         (get_addr_base_and_unit_offset): New function.
22168         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
22169         * gimple-fold.c (may_propagate_address_into_dereference): Handle
22170         MEM_REF.
22171         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
22172         accesses if the array has just one dimension.  Remove always true
22173         parameter.  Do not require type compatibility here.
22174         (maybe_fold_offset_to_component_ref): Remove.
22175         (maybe_fold_stmt_indirect): Remove.
22176         (maybe_fold_reference): Remove INDIRECT_REF handling.
22177         Fold back to non-MEM_REF.
22178         (maybe_fold_offset_to_address): Simplify.  Deal with type
22179         mismatches here.
22180         (maybe_fold_reference): Likewise.
22181         (maybe_fold_stmt_addition): Likewise.  Also handle
22182         &ARRAY + I in addition to &ARRAY[0] + I.
22183         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
22184         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
22185         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
22186         * tree-ssa.c (useless_type_conversion_p): Make most pointer
22187         conversions useless.
22188         (warn_uninitialized_var): Handle MEM_REF.
22189         (maybe_rewrite_mem_ref_base): New function.
22190         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
22191         to SSA form.
22192         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
22193         INDIRECT_REF handling.
22194         (copy_tree_body_r): Handle MEM_REF.
22195         * gimple.c (is_gimple_addressable): Adjust.
22196         (is_gimple_address): Likewise.
22197         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
22198         invariant base are invariant.
22199         (is_gimple_min_lval): Adjust.
22200         (is_gimple_mem_ref_addr): New function.
22201         (get_base_address): Handle MEM_REF.
22202         (count_ptr_derefs): Likewise.
22203         (get_base_loadstore): Likewise.
22204         * gimple.h (is_gimple_mem_ref_addr): Declare.
22205         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
22206         * tree-cfg.c (verify_address): New function, split out from ...
22207         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
22208         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
22209         INDIRECT_REFs.
22210         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
22211         INDIRECT_REF.  Allow conversions.
22212         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
22213         a register does not change its size.
22214         (verify_types_in_gimple_reference): Verify MEM_REF.
22215         (verify_gimple_assign_single): Disallow INDIRECT_REF.
22216         Handle MEM_REF.
22217         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
22218         New.
22219         (mark_address_taken): Handle MEM_REF.
22220         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
22221         (get_asm_expr_operands): Pass opf_not_non_addressable.
22222         (get_expr_operands): Handle opf_[not_]non_addressable.
22223         Handle MEM_REF.  Remove INDIRECT_REF handling.
22224         * tree-vrp.c (check_array_ref): Handle MEM_REF.
22225         (search_for_addr_array): Likewise.
22226         (check_array_bounds): Likewise.
22227         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
22228         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
22229         (ref_always_accessed_p): Likewise.
22230         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
22231         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
22232         Handle MEM_REF.
22233         * cgraphbuild.c (mark_load): Properly check for NULL result
22234         from get_base_address.
22235         (mark_store): Likewise.
22236         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
22237         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
22238         handling for MEM_REF.
22239         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
22240         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
22241         * builtins.c (stabilize_va_list_loc): Use the function ABI
22242         valist type if we couldn't canonicalize the argument type.
22243         Always dereference with the canonical va-list type.
22244         (maybe_emit_free_warning): Handle MEM_REF.
22245         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
22246         memmove to memcpy.
22247         * builtins.c (fold_builtin_memory_op): Use ref-all types
22248         for all memcpy foldings.
22249         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
22250         (build_outer_var_ref): Likewise.
22251         (scan_omp_1_op): Likewise.
22252         (lower_rec_input_clauses): Likewise.
22253         (lower_lastprivate_clauses): Likewise.
22254         (lower_reduction_clauses): Likewise.
22255         (lower_copyprivate_clauses): Likewise.
22256         (expand_omp_atomic_pipeline): Likewise.
22257         (expand_omp_atomic_mutex): Likewise.
22258         (create_task_copyfn): Likewise.
22259         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
22260         Remove old union trick.  Initialize constant offsets.
22261         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
22262         INDIRECT_REF.  Init base_alias_set properly.
22263         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
22264         (vn_reference_fold_indirect): Adjust for MEM_REFs.
22265         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
22266         for ARRAY_REFs.
22267         (may_insert): Remove.
22268         (visit_reference_op_load): Do not test may_insert.
22269         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
22270         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
22271         a field to store the constant offset this op applies.
22272         (run_scc_vn): Adjust prototype.
22273         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
22274         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
22275         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
22276         bother about volatile qualifiers on pointers.
22277         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
22278         * tree-ssa-loop-ivopts.c
22279         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
22280         (strip_offset_1): Likewise.
22281         (find_interesting_uses_address): Replace INDIRECT_REF handling with
22282         MEM_REF handling.
22283         (get_computation_cost_at): Likewise.
22284         * ipa-pure-const.c (check_op): Handle MEM_REF.
22285         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
22286         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
22287         and constants.
22288         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
22289         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
22290         (eliminate_local_variables_1): Likewise.
22291         (create_call_for_reduction_1): Likewise.
22292         (create_loads_for_reductions): Likewise.
22293         (create_loads_and_stores_for_name): Likewise.
22294         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
22295         (ssa_accessed_in_tree): Handle MEM_REF.
22296         (ssa_accessed_in_assign_rhs): Likewise.
22297         (update_type_size): Likewise.
22298         (analyze_accesses_for_call_stmt): Likewise.
22299         (analyze_accesses_for_assign_stmt): Likewise.
22300         (transform_access_sites): Likewise.
22301         (transform_allocation_sites): Likewise.
22302         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
22303         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
22304         not handle INDIRECT_REF.
22305         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
22306         (cond_store_replacement): Likewise.
22307         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
22308         MEM_REF, no not handle INDIRECT_REFs.
22309         (insert_into_preds_of_block): Properly initialize avail.
22310         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
22311         for ARRAY_REFs.  Properly handle reference lookups that
22312         require a bit re-interpretation.
22313         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
22314         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
22315         (build_ref_for_offset_1): Remove.
22316         (build_ref_for_offset): Build MEM_REFs.
22317         (gate_intra_sra): Disable for now.
22318         (sra_ipa_modify_expr): Handle MEM_REF.
22319         (ipa_early_sra_gate): Disable for now.
22320         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
22321         MEM_REF handling.
22322         (disqualify_base_of_expr): Likewise.
22323         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
22324         MEM_REF handling.
22325         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
22326         Use mem_ref_offset.  Remove bogus folding.
22327         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
22328         (make_fancy_name_1): Add support for MEM_REF.
22329         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
22330         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
22331         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
22332         (compute_complex_ancestor_jump_func): Likewise.
22333         (ipa_analyze_virtual_call_uses): Likewise.
22334         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
22335         INDIRECT_REF folding with more generalized MEM_REF folding.
22336         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
22337         (forward_propagate_addr_into_variable_array_index): Also handle
22338         &ARRAY + I in addition to &ARRAY[0] + I.
22339         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
22340         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
22341         creates assignments with overlap.
22342         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
22343         (get_frame_field): Likewise.
22344         (get_nonlocal_debug_decl): Likewise.
22345         (convert_nonlocal_reference_op): Likewise.
22346         (struct nesting_info): Add mem_refs pointer-set.
22347         (create_nesting_tree): Allocate it.
22348         (convert_local_reference_op): Insert to be folded mem-refs.
22349         (fold_mem_refs): New function.
22350         (finalize_nesting_tree_1): Perform defered folding of mem-refs
22351         (free_nesting_tree): Free the pointer-set.
22352         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
22353         (vectorizable_load): Likewise.
22354         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
22355         (propagate_with_phi): Likewise.
22356         * tree-object-size.c (addr_object_size): Handle MEM_REFs
22357         instead of INDIRECT_REFs.
22358         (compute_object_offset): Handle MEM_REF.
22359         (plus_stmt_object_size): Handle MEM_REF.
22360         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
22361         for &MEM_REF.
22362         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
22363         (symbol_marked_for_renaming): Likewise.
22364         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
22365         (fold-const.o): Add $(TREE_FLOW_H).
22366         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
22367         (find_func_clobbers): Likewise.
22368         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
22369         (decompose_access): Likewise.
22370         (replace_field_acc): Likewise.
22371         (replace_field_access_stmt): Likewise.
22372         (insert_new_var_in_stmt): Likewise.
22373         (get_stmt_accesses): Likewise.
22374         (reorg_structs_drive): Disable.
22375         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
22376         (ix86_canonical_va_list_type): Likewise.
22378 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
22380         PR other/44566
22381         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
22382         * target.def (struct gcc_target): Replace enum reg_class with
22383         reg_class_t in hook argument / return types.
22384         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
22385         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
22386         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
22387         * targhooks.h (default_branch_target_register_class): Likewise.
22388         (default_ira_cover_classes, default_secondary_reload): Likewise.
22389         (default_memory_move_cost, default_register_move_cost): Likewise.
22390         * targhooks.c (default_branch_target_register_class): Likewise.
22391         (default_ira_cover_classes, default_secondary_reload): Likewise.
22392         (default_memory_move_cost, default_register_move_cost): Likewise.
22393         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
22394         * bt-load.c (branch_target_load_optimize): Likewise.
22395         * ira.c (setup_cover_and_important_classes): Likewise.
22396         * ira-costs.c (copy_cost): Likewise.
22397         * reload1.c (emit_input_reload_insns): Likewise.
22398         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
22399         * config/frv/frv.c (frv_secondary_reload): Likewise.
22400         * config/s390/s390.c (s390_secondary_reload): Likewise.
22401         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
22402         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
22403         (ix86_register_move_cost): Likewise.
22404         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
22405         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
22406         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
22407         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
22408         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
22409         (rs6000_ira_cover_classes): Likewise.
22410         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
22411         * config/picochip/picochip-protos.h (picochip_secondary_reload):
22412         Likewise.
22413         * config/pa/pa.c (pa_secondary_reload): Likewise.
22414         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
22415         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
22416         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
22417         * doc/tm.texi: Regenerate.
22419 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
22421         PR bootstrrap/44726
22422         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
22423         use.
22424         (build_alias_set_optimal_p): Likewise.
22425         (build_base_obj_set_for_drs): Likewise.
22427 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
22429         * target.def: Remove comment about licensing problems of function
22430         declarations.
22432         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
22433         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
22434         * doc/tm.texi: Regenerate.
22436         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
22437         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
22439         * target.def (enum_va_list_p): Use DEFHOOK.
22440         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
22441         Rename ptype to ptree.
22442         * doc/tm.texi: Regenerate.
22444         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
22445         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
22446         * doc/tm.texi: Regenerate.
22448         * target.def (memory_move_cost): Use DEFHOOK.
22449         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
22450         Rename regclass AKA class to rclass.
22451         * doc/tm.texi: Regenerate.
22453         * target.def (pragma_parse): Use DEFHOOK.
22454         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
22455         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
22456         * doc/tm.texi: Regenerate.
22458         * target.def (pass_by_reference): Use DEFHOOK.
22459         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
22460         * doc/tm.texi: Regenerate.
22462         * target.def (resolve_overloaded_builtin): Rename params to arglist.
22463         Use DEFHOOK.
22464         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
22465         * doc/tm.texi: Regenerate.
22467         * target.def (return_pops_args): Use DEFHOOK.
22468         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
22469         Rename stack-size to size.
22470         * doc/tm.texi: Regenerate.
22472         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
22473         last-sched_cycle to last_clock, cur_cycle to clock.
22474         * doc/tm.texi.in: Use @hook.
22475         * doc/tm.texi: Regenerate.
22477         * target.def (print_operand, print_operand_address): Update comment.
22478         (print_operand_punct_valid_p): Likewise.
22480 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22482         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
22483         to rtl.h.
22484         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
22485         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
22486         * rtl-error.h: New.
22487         * regrename.c: Do not include toplev.h. Include rtl-error.h.
22488         * rtl-error.c: Likewise.
22489         * reload.c: Likewise.
22490         * recog.c:  Likewise.
22491         * sel-sched.c: Likewise.
22492         * function.c: Likewise.
22493         * reg-stack.c: Likewise.
22494         * cfgrtl.c: Likewise.
22495         * reload1.c: Likewise.
22496         * final.c: Include rtl-error.
22497         * Makefile.in: Adjust dependencies.
22499 2010-06-30  Jan Hubicka  <jh@suse.cz>
22501         PR middle-end/PR44706
22502         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
22503         to return the value.
22505 2010-06-30  Michael Matz  <matz@suse.de>
22507         PR bootstrap/44699
22508         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
22509         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
22510         a gimple reg, attach the original VDEF to the last store in the
22511         sequence.
22513 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
22515         PR other/44034
22516         * config/darwin.c (darwin_override_options): Use renamed
22517         targetm.asm_out.emit_unwind_label.
22519 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
22521         PR tree-optimization/39799
22522         * tree-inline.c (remap_ssa_name): Initialize variable only if
22523         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
22525 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
22527         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
22529 2010-06-30  Richard Guenther  <rguenther@suse.de>
22531         PR target/44722
22532         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
22533         against oscillation with reverse peephole2.
22535 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22537         PR target/44721
22538         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22539         Fix last commit.
22541 2010-06-30  Nick Clifton  <nickc@redhat.com>
22543         * config/rx/rx-modes.def: New file.
22544         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
22545         (CC_REGNUM): Define.
22546         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
22547         register.
22548         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
22549         (SELECT_CC_MODE): Define.
22550         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
22551         (reg:CC CC_REG) instead of (cc0).
22552         (attr "cc"): Delete.
22553         (cbranchsi4): Do not split compare and branch here. Instead move
22554         it to...
22555         (cbranchsi4_<code>): ... here.  New patterns.
22556         (cmpsi): Call rx-compare_redundant to find out if it is necessary
22557         to emit the compare instruction.
22558         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
22559         cc_status flags.
22560         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
22561         FIRST_PSEUDO_REGNUM.
22562         (rx_expand_prologue, rx_expand_epilogue): Likewise.
22563         (rx_notice_update_cc): Delete.
22564         (rx_cc_modes_compatible): New function.
22565         (flags_needed_for_conditional): New function.
22566         (flags_from_mode): New function.
22567         (rx_compare_redundant): New function - scans backwards through
22568         insn list to find out if condition flags are already set correctly.
22569         (TARGET_CC_MODES_COMPATIBLE): Define.
22570         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
22572         * config/rx/rx.h (BRANCH_COST): Define.
22573         (REGISTER_MOVE_COST): Define.
22574         * config/rx/predicates (rx_source_operand): Allow all constant types.
22575         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
22576         (tstsi4): New pattern.
22577         * config/rx/rx.c (rx_memory_move_cost): Define.
22578         (TARGET_MEMORY_MOVE_COST): Define.
22580 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22582         * tree.h (block_may_fallthru): Declare here.
22583         * tree-flow.h (block_may_fallthru): Do not declare here.
22584         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
22585         bitmap.h
22586         * Makefile.in (c-typeck.o): Update dependencies.
22588 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
22590         PR debug/44694
22591         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
22592         * cselib.c (cfa_base_preserved_regno): New static variable.
22593         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
22594         of REGNO (cfa_base_preserved_val->locs->loc).
22595         (cselib_preserve_cfa_base_value): Add regno argument, set
22596         cfa_base_preserved_regno to it.
22597         (cselib_invalidate_regno): Allow removal of registers other than
22598         cfa_base_preserved_regno from cfa_base_preserved_val.
22599         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
22600         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
22601         of MEM addresses, if not on LHS.
22602         (reverse_op): Don't add reverse ops for cfa_base_rtx.
22603         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
22605 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
22607         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
22608         static variables.
22609         (peep2_buf_position): New static function.
22610         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
22611         peephole2_optimize): Use it.
22612         (peep2_attempt, peep2_update_life): New static functions, broken out
22613         of peephole2_optimize.
22614         (peep2_fill_buffer): New static function.
22615         (peephole2_optimize): Change the main loop to try to fill the buffer
22616         with the maximum number of insns before matching them against
22617         peepholes.  Use a forward scan.  Remove special case for targets with
22618         conditional execution.
22619         * genrecog.c (change_state): Delete dead code.
22620         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22621         Rewrite so as not to expect the second insn to have had a peephole
22622         applied yet.
22624 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22626         * genhooks.c (emit_findices): Cast field precision to int.
22627         (emit_documentation): Likewise.
22629 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
22631         PR tree-optimization/43801
22632         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
22633         if old_decl was DECL_ONE_ONLY.
22635         PR debug/44668
22636         * dwarf2out.c (add_accessibility_attribute): New function.
22637         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
22638         instead of adding DW_AT_accessibility manually.
22639         (gen_enumeration_type_die, gen_struct_or_union_type_die,
22640         gen_typedef_die): Use it.
22642 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22644         * vmsdbgout.c (full_name): Just output the file name if not native.
22646 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22648         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
22649         (funcnam_table): New static table.
22650         (funcnum_table): New static table.
22651         (write_rtnbeg): Write value saved in funcnum_table.
22652         (write_rtnend): Write value saved in funcnum_table.
22653         (vmsdbgout_begin_function): Save current function info in
22654         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
22655         (vmsdbgout_finish): Iterate over funcnum_table.
22657 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22659         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
22660         (vmsdbgout_type_decl): Declare
22661         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
22662         (FUNC_EPILOGUE_LABEL): New macro
22663         (vmsdbgout_begin_epilogue): New function.
22664         (vmsdbgout_type_decl): New function.
22666 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22668         * vmsdbg.h: Update copyright.
22670 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22672         * vmsdbg.h (DST_K_TBG): New DST constant.
22673         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
22674         (write_modbeg): Cast module_language to avoid warning.
22675         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
22677 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
22679         PR other/44034
22680         * target.def, doc/tm.texi.in, genhooks.c: New files.
22681         * target.h: Instead of defining individual hook members,
22682         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
22683         include target.def.
22684         * target-def.h: Instead of defining individual hook initializers,
22685         include target-hooks-def.h.
22686         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
22687         targetm.live_on_entry -> targetm.extra_live_on_entry
22688         targetm.sched.md_finish ->targetm.sched.finish
22689         targetm.sched.md_init -> targetm.sched.init
22690         targetm.sched.md_init_global -> targetm.sched.init_global
22691         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
22692         targetm.asm_out.except_table_label ->
22693           targetm.asm_out.emit_except_table_label
22694         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
22695         targetm.target_help -> targetm.help
22696         targetm.vectorize.builtin_support_vector_misalignment ->
22697           targetm.vectorize.support_vector_misalignment
22698         targetm.file_start_app_off -> targetm.asm_file_start_app_off
22699         targetm.file_start_file_directive ->
22700          targetm.asm_file_start_file_directive
22701         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
22702         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
22703         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
22704         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
22705           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
22706         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
22707           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
22708         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
22709         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
22710         * Makefile.in (TARGET_H): Depend on target.def.
22711         (TARGET_DEF_H): Depend on target-hooks-def.h.
22712         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
22713         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
22714         * doc/tm.texi: Regenerate.
22716         * Makefile.in (s-tm-texi): Remove stray tab / rule.
22718         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
22719         (targetm.sched.init): Likewise.
22721 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22723         PR bootstrap/44713
22724         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
22725         (function_arg_advance_32): Const-ify TYPE parameter.
22726         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
22727         (ix86_function_arg_advance): Change type of NAMED to bool.
22728         (function_arg_32): Const-ify CUM and TYPE parameters.
22729         (function_arg_64): Likewise.  Change type of NAMED to bool.
22730         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
22731         to bool.
22732         (ix86_function_arg): Change type of NAMED to bool.
22733         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
22734         last argument as a bool.
22736 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
22738         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
22739         (OVERRIDE_OPTIONS): Add note of obsolescence.
22740         Replace references with references to TARGET_OPTION_OVERRIDE.
22741         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
22742          the macro).
22743         * targhooks.c (default_target_option_override): New function.
22744         * targhooks.h (default_target_option_override): Declare.
22745         * target.h (struct gcc_target): Add override member to
22746         target_option member.
22747         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
22748         targetm.target_option.override call.
22749         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
22750         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
22752 2010-06-29  Jan Hubicka  <jh@suse.cz>
22754         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
22756 2010-06-29  Jan Hubicka  <jh@suse.cz>
22758         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
22759         unreachable.
22760         (rebuild_frequencies): New function.
22761         * predict.h (rebuild_frequencies): Declare.
22762         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
22763         entry block and edge reaching new_entry.
22764         (tree_function_versioning): When doing partial cloning, rebuild
22765         frequencies when done.
22766         * passes.c (execute_function_todo): Use rebild_frequencies.
22768 2010-06-29  Richard Guenther  <rguenther@suse.de>
22770         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
22771         * tree-flow.h (enum noalias_state): Remove.
22772         (struct var_ann_d): Remove noalias_state member.
22774 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
22776         PR target/43902
22777         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
22778         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
22779         (maddhidi4): Likewise.
22781         Revert parts of the change for PR25130.
22782         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
22783         MEM_ALIAS_SET.
22785 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22787         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
22788         targetm.calls.function_incoming_arg, and
22789         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
22790         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
22791         * target.h (struct gcc_target): Add function_arg_advance,
22792         function_arg, and function_incoming_arg fields.
22793         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
22794         (TARGET_FUNCTION_INCOMING_ARG): Define.
22795         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
22796         and TARGET_FUNCTION_INCOMING_ARG.
22797         * targhooks.h (default_function_arg_advance): Declare.
22798         (default_function_arg, default_function_incoming_arg): Declare.
22799         * targhooks.c (default_function_arg_advance): New function.
22800         (default_function_arg, default_function_incoming_arg): New function.
22801         * config/i386/i386.c (function_arg_advance): Rename to...
22802         (ix86_function_arg_advance): ...this.  Make static.
22803         (function_arg): Rename to...
22804         (ix86_function_arg): ...this.  Make static.
22805         (TARGET_FUNCTION_ARG_ADVANCE): Define.
22806         (TARGET_FUNCTION_ARG): Define.
22807         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
22808         (FUNCTION_ARG): Delete.
22809         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
22810         (function_arg): Delete prototype.
22812 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22814         * reginfo.c (init_reg_sets_1): Adjust comments.
22815         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
22816         * calls.c (prepare_call_address): Likewise.
22817         (emit_call_1): Use targetm.calls.return_pops_args.
22818         (expand_call): Likewise.
22819         * function.c (assign_parms): Likewise.
22820         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
22821         * target.h (struct gcc_target) [struct calls]: Add
22822         return_pops_args field.
22823         * targhooks.h (default_return_pops_args): Declare.
22824         * targhooks.c (default_return_pops_args): Define.
22825         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
22826         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
22827         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
22828         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
22829         documentation.
22830         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
22831         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
22832         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
22833         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
22834         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
22835         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
22836         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
22837         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
22838         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
22839         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
22840         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
22841         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
22842         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
22843         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
22844         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
22845         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
22846         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
22847         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
22848         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
22849         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
22850         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
22851         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
22852         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
22853         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
22854         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
22855         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
22856         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
22857         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
22858         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
22859         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
22860         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
22861         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
22862         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
22863         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
22864         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
22865         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
22866         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
22867         * config/i386/i386.c (ix86_return_pops_args): Make static.
22868         Constify arguments.
22869         (TARGET_RETURN_POPS_ARGS): Define.
22870         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
22871         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
22872         (TARGET_RETURN_POPS_ARGS): Define.
22873         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
22874         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
22875         (TARGET_RETURN_POPS_ARGS): Define.
22877 2010-06-29  Richard Guenther  <rguenther@suse.de>
22879         PR middle-end/44667
22880         * tree-inline.c (initialize_inlined_parameters): Make sure
22881         to remap the inlined parameter variable substitutions types.
22883 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
22885         PR rtl-optimization/44659
22886         * combine.c (make_compound_operation) <SUBREG>: Do not return the
22887         result of force_to_mode if it partially re-expanded the compound.
22889 2010-06-28  Jan Hubicka  <jh@suse.cz>
22891         PR middle-end/44671
22892         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
22893         RESULT_DECL.
22895 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
22897         * double-int.h (force_fit_type_double): Remove declaration.
22898         * double-int.c (force_fit_type_double): Move to tree.c.
22899         * tree.h (force_fit_type_double): Declare.
22900         * tree.h (force_fit_type_double): Moved from double-int.c. Use
22901         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
22902         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
22903         * convert.c (convert_to_pointer): Adjust call to
22904         force_fit_type_double.
22905         * tree-vrp.c (extract_range_from_assert,
22906         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
22907         * fold-const.c: Update comment.
22908         (int_const_binop, fold_convert_const_int_from_int,
22909         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
22910         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
22911         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
22912         round_up_loc): Adjust call to force_fit_type_double.
22914 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22916         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
22918 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22920         * tree-sra.c (convert_callers): New parameter, change fndecls of
22921         recursive calls.
22922         (modify_function): Pass the old decl to convert_callers.
22924 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22926         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
22927         ipa_check_create_node_params and ipa_initialize_node_params with
22928         checking asserts they are not necessary.
22930 2010-06-28  Jan Hubicka  <jh@suse.cz>
22932         PR tree-optimization/44687
22933         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
22935 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22937         PR c++/44535
22938         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
22939         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
22940         instead of BINFO_BASE_BINFO.
22942 2010-06-28  Michael Matz  <matz@suse.de>
22944         PR middle-end/44592
22945         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
22946         proper VDEF chain for intermediate stores in the sequence.
22948 2010-06-28  Jan Hubicka  <jh@suse.cz>
22950         PR tree-optimization/44357
22951         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
22952         uninlinable functions.
22954 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22956         * config.gcc (powerpc*-*-*): Handle titan.
22957         * config/rs6000/rs6000.c (titan_cost): New costs.
22958         (rs6000_override_options): Add "titan" to processor_target_table.
22959         Add Titan to branch alignment logic.
22960         Correctly set rs6000_cost for titan.
22961         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22962         * config/rs6000/titan.md: New file.
22963         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22965 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22967         * tree-browser.c (TB_history_stack): Convert to a VEC.
22968         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22969         (TB_history_prev): Likewise.
22971 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22973         * vec.h (vec_heap_free): Add parentheses around free.
22975 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22977         * system.h: Poison GCC_EXCEPT_H for front-end files.
22979         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22980         langhook.
22981         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22982         Define to NULL by default.
22983         * except.h: Define GCC_EXCEPT_H.
22984         (doing_eh): Remove prototype.
22985         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22986         (lang_protect_cleanup_actions): Remove.
22987         * except.c (lang_protect_cleanup_actions): Remove.
22988         (doing_eh): Remove.
22989         (gen_eh_region): Don't check doing_eh here.
22990         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22991         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22992         instead of lang_protect_cleanup_actions.
22993         * omp-low.c (maybe_catch_exception): Likewise.
22994         * Makefile.in: Update dependencies.
22996 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22998         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22999         (struct cgraph_local_info): new used_from_object_file flag.
23000         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
23001         (cgraph_clone_node): initialize used_from_object_file.
23002         (cgraph_create_virtual_clone): initialize used_from_object_file.
23003         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
23004         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
23005         when compiling with -fwhole-program.
23006         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
23007         internal resolver.
23008         * ipa.c (function_and_variable_visibility): Set externally_visible
23009         flag of varpool_node if used_from_object_file flag is set.
23010         (cgraph_externally_visible_p): check used_from_object_file flag.
23011         * doc/invoke.texi (-fwhole-program option): Change description of
23012         externally_visible attribute accordingly.
23013         * doc/extend.texi (externally_visible): Ditto.
23015 2010-06-27  Jan Hubicka  <jh@suse.cz>
23017         * params.def (max-inline-insns-auto): Default to 40.
23018         * doc/invoke.texi (max-inline-insns-auto): Document the change.
23020 2010-06-27  Jan Hubicka  <jh@suse.cz>
23022         PR middle-end/44671
23023         PR middle-end/44686
23024         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
23025         signature change.
23026         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
23027         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
23029 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
23031         * target.h (struct gcc_target): Add register_move_cost field.
23032         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
23033         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
23034         * targhooks.c (default_register_move_cost): New function.
23035         * targhooks.h (default_register_move_cost): Declare function.
23036         * defaults.h (REGISTER_MOVE_COST): Delete.
23037         * ira-int.h (ira_register_move_cost): Update comment.
23038         * ira.c (ira_register_move_cost): Update comment.
23039         * reload.h (register_move_cost): Declare.
23040         * reginfo.c (register_move_cost): New function.
23041         (move_cost): Update comment.
23042         (init_move_cost, memory_move_secondary_cost): Replace
23043         REGISTER_MOVE_COST with register_move_cost.
23044         * postreload.c (reload_cse_simplify_set): (Ditto.).
23045         * reload.c (find_valid_class, find_reloads): (Ditto.).
23046         * reload1.c (choose_reload_regs): (Ditto.).
23047         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
23048         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
23049         * doc/md.texi (can_create_pseudo_p): Update documentation.
23051         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
23052         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
23053         * config/i386/i386.h (ix86_memory_move_cost): Make static.
23054         (TARGET_MEMORY_MOVE_COST): Define.
23056         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
23057         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
23058         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
23059         (TARGET_MEMORY_MOVE_COST): Define.
23061 2010-06-27  Richard Guenther  <rguenther@suse.de>
23063         PR tree-optimization/44683
23064         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
23065         false edge from the inverted condition.
23067 2010-06-27  Richard Guenther  <rguenther@suse.de>
23069         PR middle-end/44684
23070         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
23071         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
23072         for register LHS.  Or non-store assignments.
23074 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
23076         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
23077         (sparc_emit_set_const64): Likewise.  Remove disabled code.
23078         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
23079         (sparc_emit_set_const64): Likewise.
23081 2010-06-26  Catherine Moore  <clm@codesourcery.com>
23083         * config/mips/mips.md (alu_type): New attribute.
23084         (type): Infer type from alu_type.
23085         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
23086         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
23087         *subsi3_extended, negsi2, negdi2, *low<mode>,
23088         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
23089         xor<mode>3, *nor<mode>3,
23090         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
23091         *zero_extendhi_truncqi):  Set alu_type instead of type.
23093 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
23095         * config/alpha/alpha.c (alpha_need_linkage): Adjust
23096         splay_tree_new_ggc call.
23097         (alpha_use_linkage): Likewise.
23099 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
23101         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
23102         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
23103         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
23104         (static_specs): Remove switches_need_spaces.
23105         (process_command, do_self_spec): Hardcode handling "-o" instead of
23106         checking switches_need_spaces.
23107         * system.h (SWITCHES_NEED_SPACES): Poison.
23109 2010-06-26  Richard Guenther  <rguenther@suse.de>
23111         PR tree-optimization/44393
23112         * tree-loop-distribution.c (generate_loops_for_partition): Fix
23113         stmt removal and VOP renaming.
23114         (generate_memset_zero): Remove redundant stmt updating.
23115         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
23116         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
23118 2010-06-26  Jan Hubicka  <jh@suse.cz>
23120         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
23121         edges comming from header are equivalent.
23122         (visit_bb): Handle PHIs correctly.
23123         * tree-inline.c (copy_phis_for_bb): Be able to copy
23124         PHI from entry edge.
23125         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
23127 2010-06-26  Richard Guenther  <rguenther@suse.de>
23129         PR middle-end/44674
23130         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
23131         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
23133 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
23135         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
23136         add_infile, alloc_switch): New.
23137         (process_command): Remove variable lang_n_infiles.  Process
23138         options in a single pass.  Use new functions for allocating
23139         infiles and switches arrays.  Properly skip operands of
23140         -Xpreprocessor and -Xassembler.
23142 2010-06-26  Jan Hubicka  <jh@suse.cz>
23144         PR middle-end/44671
23145         * cgraphunit.c (cgraph_function_versioning): Remove wrong
23146         cgraph_make_decl_local call; fix typo copying RTL data.
23148 2010-06-25  DJ Delorie  <dj@redhat.com>
23150         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
23151         (m32c_output_aligned_common): Likewise.
23152         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
23153         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
23154         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
23155         (m32c_register_pragmas): Register it.
23156         * config/m32c/m32c.c (m32c_get_pragma_address): New.
23157         (m32c_insert_attributes): Set #pragma address decls volatile.
23158         (pragma_entry_eq): New.
23159         (pragma_entry_hash): New.
23160         (m32c_note_pragma_address): New.
23161         (m32c_get_pragma_address): New.
23162         (m32c_output_aligned_common): New.
23163         * doc/extend.texi: Document the new pragma.
23165         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
23166         also.
23167         * config/m32c/predicates.md (m32c_any_operand): Check the code
23168         instead of memory_operand so as to allow matching volatile MEMs.
23169         (m32c_nonimmediate_operand): Likewise.
23170         (mra_operand): Allow volatiles.
23172 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
23174         PR debug/44610
23175         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
23176         address if the offset is unknown.
23178 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
23180         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
23181         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
23182         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
23183         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
23184         to ia64_start_function. Invoke it.
23185         * config/ia64/ia64.c (ia64_start_function): Call new function
23186         dwarf2out_vms_debug_main_pointer.
23188 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23190         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
23191         statements computing the true predicate.
23193 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23195         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
23196         to boolean_true_node.
23197         (reset_bb_predicate): New.
23198         (predicate_bbs): Call reset_bb_predicate.
23200 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23202         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
23203         (tree_if_conversion): Returns true when something has been changed.
23204         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
23205         changed something.
23207 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23209         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
23210         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
23211         * tree-if-conv.c: Include dbgcnt.h.
23212         (tree_if_conversion): Use if_conversion_tree to count the number of
23213         if-convertible loops.
23215 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
23217         * common.opt (fprefetch-loop-arrays): Re-define
23218         -fprefetch-loop-arrays as a tri-state option with the initial
23219         value of -1.
23220         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
23221         pass only when flag_prefetch_loop_arrays > 0.
23222         * toplev.c (process_options): Note that, with tri-states,
23223         flag_prefetch_loop_arrays>0 means prefetching is enabled.
23224         * config/i386/i386.c (override_options): Enable prefetching at -O3
23225         for a set of CPUs that sw prefetching is helpful.
23226         (software_prefetching_beneficial_p): New.  Return TRUE if software
23227         prefetching is beneficial for the given CPU.
23229 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
23231         PR rtl-optimization/44326
23232         * implicit-zee.c (find_removable_zero_extends): Replace
23233         INSN_P with NONDEBUG_INSN_P.
23235 2010-06-25  Martin Jambor  <mjambor@suse.cz>
23237         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
23238         (struct ipa_node_params): Removed the modification_analysis_done flag.
23239         (ipa_is_param_modified): Removed.
23240         (ipa_analyze_node): Declare.
23241         (ipa_compute_jump_functions): Remove declaration.
23242         (ipa_count_arguments): Likewise.
23243         (ipa_detect_param_modifications): Likewise.
23244         (ipa_analyze_params_uses): Likewise.
23245         * ipa-prop.c (struct param_analysis_info): New type.
23246         (visit_store_addr_for_mod_analysis): Removed.
23247         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
23248         moved down in the file.
23249         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
23250         (ipa_count_arguments): Made static.
23251         (mark_modified): New function.
23252         (is_parm_modified_before_call): New function.
23253         (compute_pass_through_member_ptrs): New parameter parms_info, call
23254         is_parm_modified_before_call instead of ipa_is_param_modified.
23255         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
23256         it to compute_pass_through_member_ptrs.
23257         (ipa_compute_jump_functions): New parameter parms_info, pass it to
23258         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
23259         on the callee if it is analyzed.  Made static.
23260         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
23261         is_parm_modified_before_call instead of ipa_is_param_modified.
23262         (ipa_analyze_call_uses): New parameter parms_info, pass it to
23263         ipa_analyze_indirect_call_uses.
23264         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
23265         ipa_analyze_call_uses.
23266         (ipa_analyze_params_uses): New parameter parms_info, pass it to
23267         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
23268         (ipa_analyze_node): New function.
23269         (ipa_print_node_params): Do not dump the modified flag.
23270         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
23271         it.  Do not stream the modified parameter flag.
23272         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
23273         it.  Do not stream the modified parameter flag.
23274         * ipa-cp.c (ipcp_analyze_node): Removed.
23275         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
23276         with only a call to ipa_analyze_node.
23277         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
23278         node with only a call to ipa_analyze_node.
23280 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23282         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
23284 2010-06-25  Jan Hubicka  <jh@suse.cz>
23286         * tree-pass.h (pass_split_functions): Declare.
23287         * opts.c (decode_options): Enable function splitting at -O2
23288         * timevar.def (TV_IPA_FNSPLIT): New macro.
23289         * ipa-split.c: New file.
23290         * common.opt (-fpartial-inlining): New flag.
23291         * Makefile.in (ipa-split.o): New object file.
23292         * passes.c (init_optimization_passes): Add ipa-split.
23293         * params.def (partial-inlining-entry-probability): New parameters.
23294         * doc/invoke.texi (-fpartial-inlining): New.
23296 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23298         PR 44665
23299         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
23300         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
23301         (gimplify_expr): Likewise.
23303 2010-06-25  Martin Jambor  <mjambor@suse.cz>
23305         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
23306         statements instead of bailing out on them.
23307         (ipa_analyze_indirect_call_uses): Do not require that loads from the
23308         parameter are in the same BB as the condition.  Update comments.
23310 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
23312         PR middle-end/43866
23313         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
23314         true or always false, return NULL_TREE.
23315         (tree_unswitch_single_loop): Optimize conditions even when reaching
23316         max-unswitch-level parameter.  If num > 0, optimize first all conditions
23317         using entry checks, then do still reachable block discovery and consider
23318         only conditions in still reachable basic blocks in the loop.
23320         PR tree-optimization/44539
23321         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
23322         the call doesn't have LHS, but has VDEF.
23324 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
23326         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
23327         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
23328         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
23329         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
23330         * system.h (MODIFY_TARGET_NAME): Poison.
23332 2010-06-25  Alan Modra  <amodra@gmail.com>
23334         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
23335         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
23336         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
23337         CMODEL_LARGE as default.
23338         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
23339         (offsettable_ok_by_alignment): Delete.
23340         (rs6000_emit_move): Remove mcmodel=medium optimization.
23342 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
23344         With large parts from Jim Wilson:
23345         PR target/43902
23346         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
23347         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
23348         * optabs.c (optab_for_tree_code): Likewise.
23349         (expand_widen_pattern_expr): Likewise.
23350         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
23351         out of execute_optimize_widening_mul.
23352         (convert_plusminus_to_widen): New function.
23353         (execute_optimize_widening_mul): Use the two new functions.
23354         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
23355         Remove code to generate widening multiply-accumulate.  Add support
23356         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
23357         * gimple-pretty-print.c (dump_ternary_rhs): New function.
23358         (dump_gimple_assign): Call it when appropriate.
23359         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
23360         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
23361         (expand_gimple_stmt_1): Likewise.
23362         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
23363         WIDEN_MULT_MINUS_EXPR.
23364         * tree-ssa-operands.c (get_expr_operands): Likewise.
23365         * tree-inline.c (estimate_operator_cost): Likewise.
23366         * gimple.c (extract_ops_from_tree_1): Renamed from
23367         extract_ops_from_tree.  Add new arg for a third operand; fill it.
23368         (gimple_build_assign_stat): Support operations with three operands.
23369         (gimple_build_assign_with_ops_stat): Likewise.
23370         (gimple_assign_set_rhs_from_tree): Likewise.
23371         (gimple_assign_set_rhs_with_ops_1): Renamed from
23372         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
23373         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
23374         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
23375         WIDEN_MULT_MINUS_EXPR.
23376         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
23377         (extract_ops_from_tree_1): Adjust declaration.
23378         (gimple_assign_set_rhs_with_ops_1): Likewise.
23379         (gimple_build_assign_with_ops): Pass NULL for last operand.
23380         (gimple_build_assign_with_ops3): New macro.
23381         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
23382         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
23383         functions.
23384         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
23385         (verify_gimple_assign): Call it.
23386         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
23387         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
23388         functions for dealing with three-operand statements.
23389         * tree.c (commutative_ternary_tree_code): New function.
23390         * tree.h (commutative_ternary_tree_code): Declare it.
23391         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
23392         ternary statements.
23393         (gimple_assign_nonzero_warnv_p): Likewise.
23394         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
23395         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
23396         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
23397         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
23398         (struct hashtable_expr): New member ternary in the union.
23399         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
23400         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
23401         (iterative_hash_hashable_expr): Likewise.
23402         (print_expr_hash_elt): Handle EXPR_TERNARY.
23403         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
23404         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
23405         statements.  Handle GIMPLE_TERNARY_RHS.
23407 2010-06-25  Jan Hubicka  <jh@suse.cz>
23409         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
23411 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
23413         PR c/44517
23414         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
23415         parameters are not good.
23416         (c_parser_parameter_declaration): Error unknown type name if the type
23417         name can't start declaration specifiers.
23419 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
23421         * gcc.c (translate_options): Don't mention +e in comment.
23422         (process_command): Don't handle +e specially.
23424 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
23426         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
23428         * ira-build.c (merge_hard_reg_conflicts): New function.
23429         (create_cap_allocno, copy_info_to_removed_store_destinations,
23430         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
23431         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
23432         (remove_unnecessary_allocnos, remove_low_level_allocnos)
23433         copy_nifo_to_removed_store_destination): Use them.
23434         * ira-lives.c (make_hard_regno_born): New function, split out of
23435         make_regno_born.
23436         (make_allocno_born): Likewise.
23437         (make_hard_regno_dead): New function, split out of make_regno_dead.
23438         (make_allocno_dead): Likewise.
23439         (inc_register_pressure): New function, split out of set_allocno_live.
23440         (dec_register_pressure): New function, split out of clear_allocno_live.
23441         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
23442         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
23443         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
23444         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
23445         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
23446         mark_pseudo_regno_live.
23447         (process_bb_node_lives): Use mark_pseudo_regno_live,
23448         make_hard_regno_born and make_allocno_dead.
23449         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
23450         set_allocno_live, clear_allocno_live): Delete functions.
23452         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
23453         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
23454         functions.
23455         (ira_flattening): Use ira_parent_allocno.
23456         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
23457         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
23459         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
23460         statement.
23462         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
23463         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
23464         minmax_set_iter_cond, minmax_set_iter_next,
23465         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
23466         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
23467         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
23468         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
23469         uses changed.
23471         * ira-int.h (struct live_range, live_range_t): Renamed from struct
23472         ira_allocno_live_range and allocno_live_range_t; all uses changed.
23473         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
23474         All uses changed.
23476 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
23478         * thumb2.md (thumb2_tlobits_cbranch): Delete.
23479         (peephole2 to convert zero_extract/compare of single bit to
23480          lshift/compare): New.
23482 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
23484         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
23485         recursive call and call to 'int_const_binop'.
23486         (build_range_check, fold_cond_expr_with_comparison, unextend,
23487         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
23488         multiple_of_p): Adjust call to const_binop.
23490 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
23492         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
23493         determine size of XFmode operand.
23494         (XFmode extended DFmode push splitter): Ditto.
23495         (XFmode extended SFmode push splitter): Ditto.
23497 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
23499         PR target/44588
23500         * config/i386/i386.md (extract_code): New.
23501         (<u>divmodqi4): Likewise.
23502         (divmodhiqi3): Likewise.
23503         (udivmodhiqi3): Likewise.
23504         (<u>divqi3): Remvoved.
23506 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
23508         PR middle-end/44492
23509         * recog.h (struct recog_data): Add is_asm field.
23510         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
23511         present in constraints of inline-asm operand and memory operand
23512         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
23513         (extract_insn): Initialize recog_data.is_asm.
23514         * doc/md.texi (Constraints): Document operand side-effect rules.
23516 2010-06-24  Andi Kleen  <ak@linux.intel.com>
23518         * c-parser.c (c_parser_conditional_expression): Call
23519         warn_for_omitted_condop.
23520         * doc/invoke.texi: Document omitted condop warning.
23522 2010-06-24  Nick Clifton<nickc@redhat.com>
23524         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
23525         insn in the sequence is a jump insn before setting its label.
23527 2010-06-24  Alan Modra  <amodra@gmail.com>
23529         * collect2.c (main): Match exactly --version and --help.
23531 2010-06-24  DJ Delorie  <dj@redhat.com>
23533         * config/m32c/m32c-pragma.c: Don't include rtl.h.
23535 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
23537         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
23538         using X87MODEF mode iterator.
23539         (pushsf splitter): Macroize splitter using P mode iterator.
23540         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
23541         mode iterator.
23543         (*movxf_internal): Rename from *movxf_integer.
23544         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
23545         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
23546         (*movdf_internal): Rename from *movdf_integer.
23547         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
23548         (*movsf_internal): Rename from *movdf_1.
23550 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
23552         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
23553         (const_gimple_seq_node): Removed typedefs.
23555         * gimple.h (gimple_seq_node_d, gimple_seq_node)
23556         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
23558 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
23560         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
23561         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
23562         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
23563         and CODE_FOR_vec_extract_lo_v4df.
23565         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
23566         Changed to define_insn_and_split.
23567         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
23568         (vec_extract_lo_v16hi): Likewise.
23569         (vec_extract_lo_v32qi): Likewise.
23570         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
23571         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
23573 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
23575         PR target/44640
23576         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
23577         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
23578         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
23579         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
23580         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
23582         PR target/44640
23583         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
23585         PR other/44644
23586         * df-core.c (struct df): Rename to df_d.
23587         * df.h (struct df): Likewise.
23588         * dse.h (struct df): Remove forward declaration.
23589         * recog.h (struct insn_data): Rename to:
23590         (struct_insn_data_d).  Adjusted all users.
23592 2010-06-23  Arnaud Charlet  <charlet@adacore.com
23594         PR ada/22220
23595         * doc/install.texi: Update requirements to build GNAT.
23597 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
23599         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
23600         enum type.
23601         (m68k_sched_attr_opx_type): Remove unreachable return.
23602         (m68k_sched_attr_opy_type): Likewise.
23603         (m68k_sched_attr_size): Likewise.
23604         (sched_get_opxy_mem_type): Likewise.
23605         (m68k_sched_attr_op_mem): Likewise.
23607 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
23609         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
23610         new statement and adjust VDEF only if necessary.  Remove superfluous
23611         call to maybe_clean_or_replace_eh_stmt.
23612         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
23613         copy the flags.
23614         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
23615         * tree-inline.c (copy_bb): ...and not there.
23617 2010-06-22  Cary Coutant  <ccoutant@google.com>
23619         * dwarf2out.c (is_nested_in_subprogram): New function.
23620         (should_move_die_to_comdat): Use it.
23621         (copy_ancestor_tree): Don't mark DIEs here.
23622         (copy_decls_walk): Start walk from root of newly-added tree;
23623         mark DIEs here instead.
23625 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
23627         * config/i386/i386.md (unit): Also check sseishft1.
23629 2010-06-22  Jan Hubicka  <jh@suse.cz>
23631         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
23632         enabled.
23634 2010-06-22  Jan Hubicka  <jh@suse.cz>
23636         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
23637         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
23638         Return true if something changed.
23639         * df.h (df_confluence_function_n): Return bool.
23640         * df-core.c (df_worklist_propagate_forward,
23641         df_worklist_propagate_backward): Track changes and ages.
23642         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
23643         track ages.
23644         * dse.c (dse_confluence_n): Return always true.
23646 2010-06-22  Jan Hubicka  <jh@suse.cz>
23648         * bitmap.c (bitmap_clear_bit): Micro optimize.
23650 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
23652         * config/i386/i386.md (SWI1248x): New mode iterator.
23653         (SWI48x): Ditto.
23654         (SWI12): Ditto.
23655         (SWI24): Ditto.
23657         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
23658         SWI1248x mode iterator.
23659         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
23660         using SWI124 mode iterator.
23661         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
23662         mode iterator.
23663         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
23664         *pushdi2_prologue_rex64 using P mode iterator.
23665         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
23666         using SWI48 mode iterator.
23667         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
23668         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
23669         using SWI1248x mode iterator.
23670         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
23671         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
23672         SWI48 mode iterator.
23673         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
23674         iterator.
23675         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
23676         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
23677         SWI12 mode iterator.
23678         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
23679         SWI12 mode iterator.
23680         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
23681         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
23682         SWI24 mode iterator.
23683         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
23684         SWI48 mode iterator.
23685         (mov<mode>_insn_1): New expander.
23686         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
23687         using SWI48x mode iterator.
23689         (*movoi_internal_avx): Rename from *movoi_internal.
23690         (*movti_internal_rex64): Rename from *movti_rex64.
23691         (*movti_internal_sse): Rename from *movti_sse.
23692         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
23693         (*movdi_internal): Rename from *movdi_2.
23694         (*movsi_internal): Rename from *movsi_1.
23695         (*movhi_internal): Rename from *movhi_1.
23696         (*movqi_internal): Rename from *movqi_1.
23698         (insv): Update the call to gen_movsi_insv_1 for rename.
23699         * config/i386/i386.c (promote_duplicated_reg): Ditto.
23701 2010-06-22  Jan Hubicka  <jh@suse.cz>
23703         * passes.c (execute_function_todo): Move call of statistics_fini_pass
23704         to ...
23705         (execute_todo) ... this one.
23707 2010-06-22  Alan Modra  <amodra@gmail.com>
23709         PR target/44364
23710         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
23711         * caller-save.c (insert_restore, insert_save): Use non-validate
23712         form of adjust_address.
23714 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23716         PR target/39690
23717         * config/pa/pa.c (override_options): Disable
23718         -freorder-blocks-and-partition.
23720 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
23722         PR target/44615
23723         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
23725         * config/i386/i386.md (type): Add sseishft1
23727         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
23728         (ppro_insn_load): Likewise.
23729         (ppro_insn_store): Likewise.
23730         (ppro_insn_both): Likewise.
23732         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
23733         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
23734         for type.
23735         (*vec_extractv2di_1_avx): Likewise.
23736         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
23737         type.  Remove atom_unit.
23738         (*vec_extractv2di_1_sse2): Likewise.
23740 2010-06-21  DJ Delorie  <dj@redhat.com>
23742         * diagnostic.h (diagnostic_classification_change_t): New.
23743         (diagnostic_context): Add history and push/pop list.
23744         (diagnostic_push_diagnostics): Declare.
23745         (diagnostic_pop_diagnostics): Declare.
23746         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
23747         from pragmas in a history chain instead of the global table.
23748         (diagnostic_push_diagnostics): New.
23749         (diagnostic_pop_diagnostics): New.
23750         (diagnostic_report_diagnostic): Scan history chain to find state
23751         of diagnostics as of the diagnostic location.
23752         * opts.c (set_option): Pass UNKNOWN_LOCATION to
23753         diagnostic_classify_diagnostic.
23754         (enable_warning_as_error): Likewise.
23755         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
23756         use in the history chain.
23757         * doc/extend.texi: Document pragma GCC diagnostic changes.
23759 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
23761         * dwarf2out.c (add_linkage_name): New function.  Don't add
23762         anything to DW_TAG_member DIEs.
23763         (add_name_and_src_coords_attributes): Use it.
23764         (gen_variable_die): Call it for C++ static data members if
23765         specification is DW_TAG_member.
23767         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
23768         C++ char16_t and char32_t.
23770         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
23771         * genattrtab.c: Include vecprim.h.
23772         (cached_attrs, cached_attr_count, attrs_seen_once,
23773         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
23774         attrs_cached_after): New variables.
23775         (find_attrs_to_cache): New function.
23776         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
23777         (write_test_expr): Add attrs_cached argument, return it too,
23778         attempt to cache non-const attributes used more than once in
23779         a single case handling.
23780         (write_attr_get): Use find_attrs_to_cache, for caching candidates
23781         emit cached_* variables.  Adjust write_attr_set callers.
23782         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
23783         to find attributes that should be cached in this block.  Adjust
23784         write_test_expr callers.
23785         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
23786         callers.
23787         (make_automaton_attrs): Adjust write_test_expr caller.
23789         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
23790         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
23791         (make_automaton_attrs): If find_tune_attr returns non-NULL,
23792         write separate internal_dfa_insn_code_* and insn_default_latency_*
23793         functions for each attribute's value and emit init_sched_attrs
23794         function and function pointers.
23795         * genattr.c (const_attrs, reservations): New variables.
23796         (gen_attr): Add const attributes to const_attrs vector.
23797         (check_tune_attr, find_tune_attr): New functions.
23798         (main): Add reservations to reservations vector.  If find_tune_attr
23799         returns true, add prototype for init_sched_attrs and make
23800         internal_dfa_insn_code and insn_default_latency function pointers,
23801         otherwise define init_sched_attrs as dummy macro.
23802         * cfgexpand.c: Include insn-attr.h.
23803         (gimple_expand_cfg): Call init_sched_attrs.
23805         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
23807         PR target/44575
23808         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
23809         va_arg from a set of register save slots into a temporary,
23810         if the container is bigger than type size, do the copying
23811         using smaller mode or using memcpy.
23813         PR bootstrap/44426
23814         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
23815         prototype.
23816         (sel_print_to_dot): Remove macro.
23817         (sel_print): Likewise.  New prototype.
23818         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
23819         (sel_print): New function.
23821 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23823         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
23824         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
23826 2010-06-21  Nick Clifton  <nickc@redhat.com>
23828         * config/rx/rx.h (PTRDIFF_TYPE): Define.
23829         (SMALL_REGISTER_CLASS): Define (to zero).
23830         (PRINT_OPERAND): Delete.
23831         (PRINT_OPERAND_ADDRESS): Delete.
23832         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
23833         (rx_print_operand_address): Delete prototype.
23834         * config/rx/rx.c (rx_print_operand): Make static.
23835         Allow %H and %L to handle CONST_DOUBLEs.
23836         (rx_print_operand_address): Make static.
23837         (rx_gen_move_template): Rename local variable 'template' to
23838         out_template.
23839         (rx_function_arg): Do not pass unknown sized objects in registers.
23840         (TARGET_PRINT_OPERAND): Define.
23841         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23843 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
23845         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
23847 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
23849         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
23850         stack-alignment for simple leaf-functions.
23852 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23854         * doc/install.texi: Document bootstrap-lto.
23856 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23858         PR debug/44248
23859         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
23860         (input_function): Drop them here, if VTA is disabled.
23862 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
23864         PR target/44546
23865         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
23866         New predicate.
23867         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
23868         ix86_swapped_fp_comparsion_operator instead of
23869         ix86_fp_comparison_operator.
23871         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
23872         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
23873         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
23874         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
23875         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
23876         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
23878 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
23880         PR other/32998
23881         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
23882         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
23883         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
23884         (decode_cmdline_option): Update for this return value.  Set
23885         orig_option_with_args_text field.  Set arg field for unknown
23886         options.  Make static.
23887         (decode_cmdline_options_to_array): New.
23888         (prune_options): Update handling of find_opt return value.
23889         * opts.c (read_cmdline_option): Take decoded option.  Return void.
23890         (read_cmdline_options): Take decoded options.
23891         (decode_options): Add parameters for decoded options.  Use
23892         decode_cmdline_options_to_array.  Use decoded options for -O
23893         scan.  Use integral_argument for -O parameters.  Update call to
23894         read_cmdline_options.
23895         (enable_warning_as_error): Update handling of find_opt return value.
23896         * opts.h: Update comment on unknown options.
23897         (struct cl_decoded_option): Update comments on opt_index and arg.
23898         Add orig_option_with_args_text.
23899         (decode_cmdline_option): Remove.
23900         (decode_cmdline_options_to_array): Declare.
23901         (decode_options): Update prototype.
23902         * toplev.c (save_argv): Remove.
23903         (save_decoded_options, save_decoded_options_count): New.
23904         (read_integral_parameter): Remove.
23905         (print_switch_values): Use decoded options.
23906         (toplev_main): Don't set save_argv.  Update call to decode_options.
23907         * toplev.h (read_integral_parameter): Remove.
23908         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
23910 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
23912         PR target/44072
23913         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
23914         immediate.
23915         * constraints.md (Pw, Px): New constraints.
23916         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
23918 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
23920         * config/i386/sse.md (fma4modesuffixf4): Removed.
23921         (ssemodesuffixf2s): Likewise.
23922         (ssemodesuffixf4): Likewise.
23923         (ssemodesuffixf2c): Likewise.
23924         (ssescalarmodesuffix2s): Likewise.
23925         (avxmodesuffixf2c): Likewise.
23926         (ssemodesuffix): New.
23927         (ssescalarmodesuffix): Likewise.
23928         Update patterns with ssemodesuffix and ssescalarmodesuffix.
23930 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
23932         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
23934 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
23936         * stor-layout.c (debug_rli): Remove unused local variables.
23938 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
23940         PR rtl-optimization/40900
23941         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
23942         original expression for later reuse.
23943         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
23944         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
23946 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
23948         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
23949         double_int_fits_in_uhwi_p): Implement as static inline.
23950         (double_int_xor): New inline function.
23951         (double_int_lrotate, double_int_rrotate, double_int_max,
23952         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23953         double_int_smin): Declare.
23954         (lrotate_double, rrotate_double): Remove declaration.
23955         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
23956         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
23957         (double_int_lrotate, double_int_rrotate, double_int_max,
23958         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23959         double_int_smin): New function.
23960         * fold-const.c (int_const_binop): Clean up, use double_int_*
23961         functions.
23962         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23963         double_int_* and immed_double_int_const functions.
23965 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23967         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23968         * function.c (types_used_by_cur_var_decl): Likewise.
23969         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23971 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23973         * tree.h (record_layout_info): Change type of pending_statics field
23974         to a VEC.
23975         * stor-layout.c (start_record_layout): Store NULL into
23976         pending_statics.
23977         (debug_rli): Call debug_vec_tree instead of debug_tree.
23978         (place_field): Likewise.
23979         (finish_record_layout): Likewise.
23981 2010-06-18  Alan Modra  <amodra@gmail.com>
23983         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23985 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23987         PR target/43740
23988         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23989         for SET source operand from SET destination operand.
23991 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23993         PR rtl-optimization/39871
23994         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23995         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23996         (function_invariant_p): Rule out a plus of frame or arg pointer with
23997         a SYMBOL_REF.
23998         * ira.c (find_reg_equiv_invariant_const): Likewise.
24000 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
24002         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
24003         print_operand_address and puts to output the operand for CONST.
24005 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
24007         PR debug/44572
24008         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
24009         hook.
24011 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24013         * v850-protos.h (print_operand): Delete.
24014         (print_operand_address): Delete.
24015         * v850.h (PRINT_OPERAND): Delete.
24016         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24017         (PRINT_OPERAND_ADDRESS): Delete.
24018         * v850.c (print_operand_address): Rename to...
24019         (v850_print_operand_address): ...this.  Make static. Call
24020         v850_print_operand.
24021         (print_operand): Rename to...
24022         (v850_print_operand): ...this.  Make static.  Call
24023         v850_print_operand_address.
24024         (v850_print_operand_punct_valid_p): New function.
24025         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24026         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24028 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24030         * config/sh/sh-protos.h (print_operand): Delete.
24031         (print_operand_address): Delete.
24032         * config/sh/sh.h (PRINT_OPERAND): Delete.
24033         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24034         (PRINT_OPERAND_ADDRESS): Delete.
24035         * config/sh/sh.c (sh_print_operand_address): Make static.
24036         (sh_print_operand): Make static.  Call sh_print_operand_address
24037         and sh_print_operand.
24038         (sh_print_operand_punct_valid_p): New function.
24039         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24040         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24042 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24044         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
24045         (mcore_print_operand_address): Delete.
24046         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
24047         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24048         (PRINT_OPERAND_ADDRESS): Delete.
24049         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
24050         (mcore_print_operand): Make static.
24051         (mcore_print_operand_punct_valid_p): New function.
24052         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
24053         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24055 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24057         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
24058         (print_operand_address): Delete.
24059         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
24060         (PRINT_OPERAND_ADDRESS): Delete.
24061         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
24062         static.
24063         (m68hc11_print_operand): Make static.
24064         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24066 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24068         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
24069         (m32r_print_operand_address): Delete.
24070         * config/m32r/m32r.h (m32r_punct_chars): Delete.
24071         (PRINT_OPERAND): Delete.
24072         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24073         (PRINT_OPERAND_ADDRESS): Delete.
24074         * config/m32r/m32r.c (m32r_punct_chars): Make static.
24075         (m32r_print_operand_address): Make static.
24076         (m32r_print_operand): Make static.
24077         (m32r_print_operand_punct_valid_p): New function.
24078         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24079         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24081 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24083         * config/iq2000/iq2000-protos.h (print_operand): Delete.
24084         (print_operand_address): Delete.
24085         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
24086         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24087         (PRINT_OPERAND_ADDRESS): Delete.
24088         (iq2000_print_operand_punct): Delete.
24089         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
24090         (iq2000_print_operand_address): Make static.
24091         (iq2000_print_operand): Make static.
24092         (iq2000_print_operand_punct_valid_p): New function.
24093         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24094         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24096 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24098         * config/frv/frv-protos.h (frv_print_operand): Delete.
24099         (frv_print_operand_address): Delete.
24100         * config/frv/frv.h (PRINT_OPERAND): Delete.
24101         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24102         (PRINT_OPERAND_ADDRESS): Delete.
24103         * config/frv/frv.c (frv_print_operand_address): Make static.
24104         (frv_print_operand): Make static.
24105         (frv_print_operand_punct_valid_p): New function.
24106         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24107         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24109 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24111         * tree.h (vec_member): Declare.
24112         * tree.c (vec_member): Define.
24114 2010-06-17  Richard Guenther  <rguenther@suse.de>
24116         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
24117         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
24119 2010-06-17  Richard Guenther  <rguenther@suse.de>
24121         * tree-inline.c (declare_return_variable): Remove bogus code.
24123 2010-06-17  Richard Guenther  <rguenther@suse.de>
24125         * gimplify.c (gimplify_bind_expr): Always promote complex
24126         and vector variables to registers if possible.
24128 2010-06-17  Richard Guenther  <rguenther@suse.de>
24130         * expr.c (get_inner_reference): Use double_int for bit_offset
24131         calculation.
24133 2010-06-16  DJ Delorie  <dj@redhat.com>
24135         * common.opt (-fstrict-volatile-bitfields): new.
24136         * doc/invoke.texi: Document it.
24137         * fold-const.c (optimize_bit_field_compare): For volatile
24138         bitfields, use the field's type to determine the mode, not the
24139         field's size.
24140         * expr.c (expand_assignment): Likewise.
24141         (get_inner_reference): Likewise.
24142         (expand_expr_real_1): Likewise.
24143         * expmed.c (store_fixed_bit_field): Likewise.
24144         (extract_bit_field_1): Likewise.
24145         (extract_fixed_bit_field): Likewise.
24147 2010-06-16  Richard Guenther  <rguenther@suse.de>
24149         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
24151 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
24153         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
24154         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
24155         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
24156         * debug.c: Likewise.
24157         * sdbout.c: Likewise.
24158         * vmsdbgout.c: Likewise.
24159         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
24160         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
24161         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
24162         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
24163         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
24164         * dwarf2out.c (dw_fde_struct): New fields
24165         dw_fde_vms_{end,begin}_prologue.
24166         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
24167         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
24168         (dwarf2out_vms_end_prologue): New function.
24169         (dwarf2out_vms_begin_epilogue): New function.
24170         (dw_val_struct): New value dw_val_class_vms_delta.
24171         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
24172         begin_epilogue for VMS.
24173         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
24174         new static functions.
24175         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
24176         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
24177         static functions.
24178         (print_die): New case dw_val_class_vms_delta.
24179         (attr_checksum): Likewise.
24180         (same_dw_val_p: Likewise.
24181         (size_of_die): Likewise.
24182         (value_format): Likewise.
24183         (output_die): Likewise.
24184         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
24185         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
24186         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
24187         dwarf2out_cfi_begin_epilogue
24188         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
24190 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
24192         * config/cris/cris-protos.h (cris_print_operand): Delete.
24193         (cris_print_operand_address): Delete.
24194         * config/cris/cris.h (PRINT_OPERAND): Delete.
24195         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24196         (PRINT_OPERAND_ADDRESS): Delete.
24197         * config/cris/cris.c (cris_print_operand_address): Make static.
24198         (cris_print_operand): Make static.
24199         (cris_print_operand_punct_valid_p): New function.
24200         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24201         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24203 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
24205         * config/arm/arm-protos.h (arm_print_operand): Delete.
24206         (arm_print_operand_address): Delete.
24207         * config/arm/arm.h (PRINT_OPERAND): Delete.
24208         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24209         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
24210         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
24211         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
24212         (arm_print_operand): Make static.
24213         (arm_print_operand_punct_valid_p): New function.
24214         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24215         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24217 2010-06-16  Nick Clifton  <nickc@redhat.com>
24219         * config/rx/constraints.md (NEGint4): New constraint.
24220         * config/rx/rx.md (attr cc): Add set_zsc.
24221         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
24222         initialised.
24223         (cmpsf): Likewise.
24224         (call_internal): Clobber the cc0 register.
24225         (call_value_internal): Likewise.
24226         (cstoresi4): Likewise.
24227         (movsieq): Likewise.
24228         (movsine): Likewise.
24229         (addsi3): Add alternative to handle small negative constants.
24230         (sunsi3): Likewise.
24231         (addsi3): Do not set the O bit in the cc0 register.
24232         (adddi3): Likewise.
24233         (subsi3): Likewise.
24234         (subdi3): Likewise.
24235         (andsi3): Reorder alternatives to prefer shorter forms.
24236         (mulsi3): Likewise.
24237         (iorsi3): Likewise.
24238         (negsi2): Note that the cc0 flags are set.
24239         (rotlsi3): Note that only the Z and S bits are set in cc0.
24240         (lshrsi3): Likewise.
24241         (ashlsi3): Likewise.
24242         (subsf3): Use %Q for the MEM operand.
24243         (fix_truncsfsi2): Likewise.
24244         (floatsisf2): Likewise.
24245         (bitset): Remove early clobber from destination.
24246         (bitset_in_memory): Likewise.
24247         (lrintsf2): Clobber the cc0 register.
24248         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
24249         (rx_print_operand): Handle %N.
24251 2010-06-16  Jan Hubicka  <jh@suse.cz>
24253         * df-core.c (df_compact_blocks): Free problem_temps vector.
24255 2010-06-16  Martin Jambor  <mjambor@suse.cz>
24257         PR tree-optimization/43905
24258         * tree-sra.c: Include tree-inline.h.
24259         (create_abstract_origin): Removed.
24260         (modify_function): Version the call graph node instead of creating
24261         abstract origins and dealing with same_body aliases.
24262         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
24263         function is versionable.
24264         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
24266 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
24268         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
24269         (CHOOSE_DYNAMIC_LINKER): Update.
24271 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
24273         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
24274         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
24275         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
24276         *prefetch_3dnow_rex.
24278 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
24280         * target.h (struct asm_out):Add declare_constant_name field.
24281         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
24282         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
24283         * output.h (default_asm_declare_constant_name): Declare.
24284         (assemble_label): Update prototype.
24285         * varasm.c (assemble_constant_contents): Use
24286         targetm.asm_out.declare_constant_name target hook.
24287         (assemble_label): Add 'file' argument.
24288         (default_asm_declare_constant_name): New function.
24289         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
24290         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
24291         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
24293         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
24294         * config/darwin.c (darwin_asm_declare_constant_name): New function.
24295         (machopic_output_indirection): Update assemble_label argument list.
24296         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
24297         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
24299 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
24301         PR middle-end/44391
24302         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
24303         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
24305 2010-06-15  Richard Guenther  <rguenther@suse.de>
24307         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
24309 2010-06-15  Paul Brook  <paul@codesourcery.com>
24311         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
24312         hard-float ABI.
24314 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
24316         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
24317         don't get a vector type for output.
24319 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
24321         PR fortran/44536
24322         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
24323         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
24324         (LANG_HOOKS_DECLS): Add it.
24325         * gimplify.c (omp_notice_variable): Call
24326         lang_hooks.decls.omp_report_decl.
24328 2010-06-15  Martin Jambor  <mjambor@suse.cz>
24330         PR lto/44464
24331         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
24332         on the newly dead SSA name.
24334 2010-06-15  Alan Modra  <amodra@gmail.com>
24336         * doc/invoke.texi: Add mcmodel to powerpc options.
24337         * configure.ac: Add HAVE_LD_LARGE_TOC test.
24338         * configure: Regenerate.
24339         * config.in: Regenerate.
24340         * config/rs6000/linux64.opt (mcmodel): New.
24341         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
24342         (TARGET_CMODEL, SET_CMODEL): Define.
24343         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
24344         select CMODEL_MEDIUM default.
24345         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
24346         (TARGET_CMODEL): Define default.
24347         * config/rs6000/rs6000.c (cmodel): New variable.
24348         (rs6000_explicit_options): Add cmodel field.
24349         (rs6000_handle_option): Handle -mcmodel.
24350         (create_TOC_reference): Add largetoc_reg param.  Generate high,
24351         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
24352         (rs6000_delegitimize_address): Recognise new toc reference rtl
24353         and minimal-toc rtl.
24354         (rs6000_legitimize_reload_address): Handle new toc references.
24355         (print_operand_address): Handle legitimate_constant_pool_address_p
24356         match before lo_sum.
24357         (rs6000_eliminate_indexed_memrefs): Tidy.
24358         (rs6000_emit_move): Tweak threshold for inlining constants.
24359         Keep rs6000_emit_allocate_stack large stack frame offsets
24360         loaded into r0 inline.
24361         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
24362         (tocrel_base, tocrel_offset): New variables.
24363         (toc_relative_expr_p): Set them here.
24364         (print_operand_address): Skip over any offset on constant pool address.
24365         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
24366         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
24367         (offsettable_ok_by_alignment): New function.
24368         (rs6000_emit_move): Address suitably aligned local symbol_refs
24369         relative to the toc pointer for -mcmodel=medium.
24370         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
24371         strict param.  Allow lo_sum version of addressing.  Verify reg
24372         used for -mminimal-toc and -mcmodel != small.  Update all callers.
24373         * config/rs6000/constraints.md: Update for above change.
24374         * config/rs6000/predicates.md: Likewise.
24375         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
24376         code.
24377         (tls_gd): Split for -mcmodel=medium/large.
24378         (tls_gd_high, tls_gd_low): New.
24379         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
24380         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
24381         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
24382         (largetoc_high, largetoc_low): New.
24383         (cmptf_internal2): Add clobber.
24384         * config/rs6000/rs6000-protos.h: Update.
24386 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
24388         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
24389         true if no prefetch is going to be generated for a given group.
24390         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
24391         estimate the prefetch_count.
24392         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
24393         prefetch count by considering the unroll_factor and prefetch_mod
24394         for is_loop_prefetching_profitable.
24396 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
24398         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
24399         anything if the argument is not a MEM.
24401 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
24403         PR debug/43650
24404         PR debug/44181
24405         PR debug/44247
24406         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
24407         debug stmts.
24408         (canonicalize_loop_ivs): Likewise.
24410 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
24412         PR debug/43656
24413         * haifa-sched.c (setup_insn_reg_pressure_info,
24414         update_register_pressure): Reject debug insns.
24415         (ready_sort): Don't setup reg pressure for debug insns.
24416         (schedule_insn): Don't update reg pressure for debug insns.
24418 2010-06-14  Richard Guenther  <rguenther@suse.de>
24420         * lto-streamer.c (cached_bp): Remove.
24421         (bitpack_delete): Likewise.
24422         (bitpack_create): Likewise.
24423         (bp_get_next_word): Likewise.
24424         (bp_pack_value, bp_unpack_value): Move ...
24425         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
24426         Re-implement.
24427         (struct bitpack_d): Likewise.
24428         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
24429         New inline functions.
24430         * lto-streamer-out.c (lto_output_bitpack): Remove.
24431         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
24432         (pack_value_fields): Adjust.
24433         (lto_write_tree): Likewise.
24434         (output_gimple_stmt): Likewise.
24435         (output_function): Likewise.
24436         * lto-streamer-in.c (input_gimple_stmt): Adjust.
24437         (input_function): Likewise.
24438         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
24439         (lto_input_bitpack): Remove.
24440         (lto_materialize_tree): Adjust.
24441         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
24442         * lto-cgraph.c (lto_output_edge): Adjust.
24443         (lto_output_node): Likewise.
24444         (lto_output_varpool_node): Likewise.
24445         (lto_output_ref): Likewise.
24446         (input_node): Likewise.
24447         (input_varpool_node): Likewise.
24448         (input_ref): Likewise.
24449         (input_edge): Likewise.
24450         (output_node_opt_summary): Likewise.
24451         (input_node_opt_summary): Likewise.
24452         * ipa-pure-const.c (pure_const_write_summary): Likewise.
24453         (pure_const_read_summary): Likewise.
24454         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
24455         (ipa_read_indirect_edge_info): Likewise.
24456         (ipa_write_node_info): Likewise.
24457         (ipa_read_node_info): Likewise.
24459 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
24461         PR target/44534
24462         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
24463         (vec_extract_lo_v16hi): Likewise.
24464         (vec_extract_lo_v32qi): Likewise.
24466 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
24468         PR bootstrap/44426
24469         * tree.h (build_call_expr): Don't define as vararg macro, instead
24470         add a prototype.
24471         * builtins.c (build_call_nofold): Remove.
24472         (expand_builtin_int_roundingfn, expand_builtin_pow,
24473         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
24474         expand_builtin_memset_args, expand_builtin_strcmp,
24475         expand_builtin_strncmp, expand_builtin_memory_chk): Use
24476         build_call_nofold_loc instead of build_call_nofold.
24477         (build_call_expr): New function.
24479         PR tree-optimization/44508
24480         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
24481         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
24482         don't eliminate trivially dead stmts.
24483         * tree-vrp.c (vrp_finalize): Pass false as last argument
24484         to substitute_and_fold.
24485         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
24486         to substitute_and_fold.
24487         * tree-ssa-ccp.c (ccp_finalize): Likewise.
24489         PR bootstrap/44509
24490         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
24492 2010-06-14  Ira Rosen  <irar@il.ibm.com>
24494         PR tree-optimization/44507
24495         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
24496         to build initial vector for BIT_AND_EXPR.
24497         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
24499 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
24501         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
24502         adjust z10prop set_attr.
24504 2010-06-13  Jan Hubicka  <jh@suse.cz>
24506         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
24507         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
24508         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
24509         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
24510         datastructure checks into checking asserts.
24511         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
24512         * tree-ssa-sccvn.c (VN_INFO): Likewise.
24513         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
24514         df_ref_create_structure): Likewise.
24515         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
24516         pool_free): Use gcc_checking_assert.
24517         * alias.c (get_alias_set): Likewise.
24518         * var-tracking.c (variable_htab_free, shared_hash_copy,
24519         canonicalize_values_mark, variable_merge_over_cur): Likewise.
24520         * lto-streamer.c (bp_unpack_value): Likewise.
24522 2010-06-13  Richard Guenther  <rguenther@suse.de>
24524         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
24525         Do not stream but initialize TYPE_CANONICAL to NULL.
24526         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
24527         * gimple.c (gimple_types_compatible_p): Disregard
24528         TYPE_STRUCTURAL_EQUALITY_P.
24529         (gimple_register_type): Use TYPE_CANONICAL as cache.
24530         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
24531         before registering common types.
24532         * config/i386/i386.c (ix86_function_arg_boundary): Do not
24533         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
24534         * tree.h (TYPE_CANONICAL): Clarify documentation.
24536 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
24538         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
24539         LIBCALL_VALUE): Remove macros.
24540         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
24541         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24542         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24543         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
24544         (ia64_function_value): Make static. Handle receiving the function
24545         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
24547 2010-06-12  Jan Hubicka  <jh@suse.cz>
24549         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
24550         at correct place.
24552 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
24554         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
24556 2010-06-12  Jan Hubicka  <jh@suse.cz>
24558         * df-core.c (df_clear_bb_info): New function.
24559         (df_set_blocks): bb_info is always allocated.
24560         (df_get_bb_info): Use block_info_elt_size.
24561         (df_set_bb_info): Likewise.
24562         (df_compact_blocks): Update for new block_info.
24563         (grow_bb_info): New function.
24564         * df-problems.c (df_grow_bb_info): Move to df-core.c
24565         (df_rd_set_bb_info): Remove.
24566         (df_rd_free_bb_info): Do not free block pool.
24567         (df_rd_alloc): Do not create pool, use check for
24568         obstack presence instead of NULL pointer for new blocks.
24569         (df_rd_free): DO not free alloc pool; clear block_info.
24570         (problem_RD): Add size of block info structure.
24571         (df_lr_set_bb_info): Remove.
24572         (df_lr_free_bb_info): Do not free block pool.
24573         (df_lr_alloc): Do not create pool, use check for
24574         obstack presence instead of NULL pointer for new blocks.
24575         (df_lr_free): DO not free alloc pool; clear block_info.
24576         (problem_LR): Add size of block info structure.
24577         (df_live_set_bb_info): Remove.
24578         (df_live_free_bb_info): Do not free block pool.
24579         (df_live_alloc): Do not create pool, use check for
24580         obstack presence instead of NULL pointer for new blocks.
24581         (df_live_free): DO not free alloc pool; clear block_info.
24582         (problem_LIVE): Add size of block info structure.
24583         (problem_CHAIN): Add size of block info structure.
24584         (df_byte_lr_set_bb_info): Remove.
24585         (df_byte_lr_free_bb_info): Do not free block pool.
24586         (df_byte_lr_alloc): Do not create pool, use check for
24587         obstack presence instead of NULL pointer for new blocks.
24588         (df_byte_lr_free): DO not free alloc pool; clear block_info.
24589         (problem_BYTE_LR): Add size of block info structure.
24590         (problem_NOTE): Add size of block info structure.
24591         (df_byte_MD_set_bb_info): Remove.
24592         (df_byte_MD_free_bb_info): Do not free block pool.
24593         (df_byte_MD_alloc): Do not create pool, use check for
24594         obstack presence instead of NULL pointer for new blocks.
24595         (df_byte_MD_free): DO not free alloc pool; clear block_info.
24596         (problem_BD): Add size of block info structure.
24597         * df-scan.c (df_scan_free_internal): Free block pool.
24598         (df_scan_set_bb_info): Remove.
24599         (df_scan_free_bb_info): Check for artificial_defs instead
24600         of bb_info being non-NULL.
24601         (df_scan_alloc): DO not create df_scan_block pool.
24602         (problem_SCAN): Set size of block info.
24603         (df_bb_refs_record): Do not allocate bb_info.
24604         * df.h (df_problem): Add block_info_elt_size.
24605         (struct dataflow): Change block_info to void *.
24606         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
24607         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
24608         in-line structures.
24610 2010-06-12  Jan Hubicka  <jh@suse.cz>
24612         PR tree-optimize/44485
24613         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
24614         containing use of return value of noreturn function.
24616 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
24618         * targhooks.c (default_function_value): Don't use
24619         FUNCTION_OUTGOING_VALUE.
24620         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
24621         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
24623 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
24625         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
24626         Add crtfastmath.o to extra_parts.
24627         * config/mips/crtfastmath.c: New.
24628         * config/mips/linux.h (ENDFILE_SPEC): New.
24630 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
24632         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
24633         old_type in parameter.
24634         (gcc_type_for_value): Update call to gcc_type_for_interval.
24635         (compute_type_for_level_1): Renamed compute_type_for_level.
24636         Update call to gcc_type_for_interval.
24638 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
24640         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
24641         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
24643 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
24645         * opts-common.c: Include options.h.
24646         (integral_argument): Move from opts.c.
24647         (decode_cmdline_option): New.  Based on read_cmdline_option.
24648         * opts.c (integral_argument): Move to opts-common.c.
24649         (read_cmdline_option): Move most contents to
24650         decode_cmdline_option.  Use %qs in diagnostics.
24651         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
24652         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
24653         decode_cmdline_option): New.
24655 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24657         PR target/44481
24658         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
24659         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
24660         (partiysi2_cmp): Ditto.
24661         (*partiyhi2_cmp): Ditto.
24662         (*parityqi2_cmp): Remove.
24664 2010-06-11  Jan Hubicka  <jh@suse.cz>
24666         * bitmap.h (bmp_iter_next_bit): New.
24667         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
24669 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
24670             Eric Botcazou  <ebotcazou@adacore.com>
24672         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
24673         computed cost.
24675 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24677         * config/i386/i386.md (unspec): New define_c_enum.
24678         (unspecv): Ditto.
24680 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
24682         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
24684 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
24686         PR middle-end/44483
24687         * tree-if-conv.c (bb_predicate_s): New struct.
24688         (bb_predicate_p): New.
24689         (bb_has_predicate): New.
24690         (bb_predicate): New.
24691         (set_bb_predicate): New.
24692         (bb_predicate_gimplified_stmts): New.
24693         (set_bb_predicate_gimplified_stmts): New.
24694         (add_bb_predicate_gimplified_stmts): New.
24695         (init_bb_predicate): New.
24696         (free_bb_predicate): New.
24697         (is_predicated): Use bb_predicate.
24698         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
24699         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
24700         before processing their successors.
24701         (clean_predicate_lists): Removed.
24702         (find_phi_replacement_condition): Use bb_predicate.
24703         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
24704         computations.
24705         (insert_gimplified_predicates): New.
24706         (combine_blocks): Call insert_gimplified_predicates.
24707         (tree_if_conversion): Call free_bb_predicate instead of
24708         clean_predicate_lists.
24710 2010-10-11  Paul Brook  <paul@codesourcery.com>
24712         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
24713         * config/arm/arm.c (all_architectures): Change v7e-m default to
24714         cortexm4.
24715         * config/arm/arm-cores.def: Add cortex-m4.
24716         * config/arm/arm-tune.md: Regenerate.
24718 2010-06-11  Jan Hubicka  <jh@suse.cz>
24720         * ipa-pure-const.c (special_builtlin_state): New function.
24721         (check_call): Use it instead of special casign BUILT_IN_RETURN.
24722         (propagate_pure_const): Use it.
24724 2010-06-11  Jan Hubicka  <jh@suse.cz>
24726         * df-problems.c (df_live_scratch): Convert to bitmap_head.
24727         (df_live_alloc): Initialize df_live_scratch when initializing
24728         problem_data.
24729         (df_live_transfer_function): Update uses of df_live_scratch.
24730         (df_live_free): Free problem_data; clear df_live_scratch before
24731         releasing the obstack.
24732         (df_md_free): Free problem data.
24734 2010-06-11  Jan Hubicka  <jh@suse.cz>
24736         * doc/invoke.texi (Wsuggest-attribute): Document.
24737         (Wmissing-noreturn): Remove.
24738         * ipa-pure-const.c (warn_function_noreturn): New function.
24739         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
24740         warn_missing_noreturn.
24741         * common.opt (Wsuggest-attribute=noreturn): New.
24742         * tree-flow.h (warn_function_noreturn): Declare.
24743         * tree-cfg.c (execute_warn_function_noreturn): Use
24744         warn_function_noreturn.
24745         (gate_warn_function_noreturn): New.
24746         (pass_warn_function_noreturn): Update.
24748 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24750         * c-typeck.c (handle_warn_cast_qual): Add loc
24751         parameter. Improve warning message.
24752         (build_c_cast): Pass location to handle_warn_cast_qual.
24754 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24756         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
24757         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
24758         insn mnemonic.
24759         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
24761 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
24763         Fix bootstap on mips
24764         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
24765         be naming typedefs.
24767 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
24769         * system.h (helper_const_non_const_cast): New inline for
24770         gcc version <= 4.0.
24771         (CONST_CAST2): For gcc version <= 4.0 use
24772         new helper to do const/non-const casting.
24774 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24776         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
24777         * Makefile.in (OBJS-common): Include insn-enums.o.
24778         (insn-enums.o): New rule.
24779         (simple_generated_c): Add insn-enums.c.
24780         (build/genenums.o): New rule.
24781         (genprogmd): Add "enums".
24782         * genconstants.c (print_enum_type): Declare a C string array
24783         for each enum.
24784         * genenums.c: New file.
24785         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
24786         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
24787         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
24789 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24791         * doc/md.texi (define_enum_attr): Document.
24792         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
24793         * read-md.h (lookup_enum_type): Declare.
24794         * read-md.c (lookup_enum_type): New function.
24795         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
24796         * genattrtab.c (attr_desc): Add an enum_name field.
24797         (evaluate_eq_attr): Take the associated attribute as argument.
24798         Get the enum prefix from the enum_name field, if defined.
24799         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
24800         (simplify_test_exp): Pass attr to evaluate_eq_attr.
24801         (add_attr_value): New function, split out from...
24802         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
24803         (write_test_expr): Pass attr to evaluate_eq_attr.
24804         (write_attr_get): Use the enum_name as the enum tag, if defined.
24805         (write_attr_valueq): Use the enum_name as a prefix, if defined.
24806         (find_attr): Initialize enum_name.
24807         (main): Handle DEFINE_ENUM_ATTR.
24808         * gensupport.c (process_rtx): Likewise.
24809         * config/mips/mips.h (mips_tune_attr): Delete.
24810         * config/mips/mips.md (cpu): Use define_attr_enum.
24812 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24814         * doc/md.texi (define_c_enum, define_enum): Document.
24815         * read-md.h (md_constant): Add a parent_enum field.
24816         (enum_value, enum_type): New structures.
24817         (upcase_string, traverse_enum_types): Declare.
24818         * read-md.c (enum_types): New variable.
24819         (upcase_string, add_constant): New functions.
24820         (handle_constants): Don't create the hash table here.
24821         Use add_constant.
24822         (traverse_md_constants): Don't check for a null md_constants.
24823         (decimal_string, handle_enum, traverse_enum_types): New functions.
24824         (read_md_files): Initialize md_constants and md_enums.
24825         * genconstants.c (print_md_constant): Ignore info argument.
24826         Only print constants that belong to no enum.
24827         (print_enum_type): New function.
24828         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
24829         for each defined enum type.
24830         * config/mips/mips.md (processor): New define_enum.
24831         (unspec): New define_c_enum.
24832         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
24833         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
24834         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
24835         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
24836         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
24837         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
24838         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
24839         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
24840         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
24841         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
24842         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
24843         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
24844         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
24845         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
24846         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
24847         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
24848         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
24849         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
24850         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
24851         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
24852         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
24853         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
24854         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24855         (UNSPEC_RDDSP): Move to mips-dsp.md.
24856         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
24857         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
24858         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
24859         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
24860         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
24861         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
24862         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
24863         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
24864         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
24865         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
24866         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
24867         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
24868         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
24869         Moved to mips-dspr2.md.
24870         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
24871         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
24872         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
24873         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
24874         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
24875         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
24876         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24877         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24878         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24879         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24880         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24881         UNSPEC_LOONGSON_PSADBH)
24882         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24883         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24884         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
24885         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24886         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24887         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24888         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
24889         (cpu): Update comment.
24890         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
24891         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
24892         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
24893         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
24894         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
24895         UNSPEC_LOONGSON_PCMPEQ)
24896         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
24897         UNSPEC_LOONGSON_PINSR_0)
24898         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24899         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24900         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24901         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24902         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24903         UNSPEC_LOONGSON_PSADBH)
24904         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24905         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24906         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
24907         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24908         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24909         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24910         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
24911         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
24912         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
24913         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
24914         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
24915         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
24916         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
24917         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
24918         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
24919         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
24920         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
24921         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
24922         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
24923         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
24924         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
24925         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
24926         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
24927         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
24928         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
24929         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
24930         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24931         (UNSPEC_RDDSP): Moved from mips.md.
24932         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
24933         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
24934         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
24935         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
24936         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
24937         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
24938         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
24939         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
24940         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
24941         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
24942         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
24943         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
24944         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
24945         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
24946         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
24947         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
24948         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
24949         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
24950         (UNSPEC_SCC): Moved from mips.md.
24951         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
24952         "processor_type" to "processor".
24953         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
24954         * config/mips/mips.h (processor_type): Delete.
24955         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
24956         "processor_type" to "processor".
24958 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24960         * configure.ac (tm_include_list): Add insn-constants.h.
24961         * configure: Regenerate.
24962         * Makefile.in (GTM_H): Move insn-constants.h here from...
24963         (TM_H): ...here.
24964         * mkconfig.sh: Remove special handling for insn-constants.h.
24966 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24968         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24969         (BUILD_MD): ...this new variable.
24970         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24971         that include the old contents of simple_generated_h and
24972         simple_generated_c.
24973         (simple_generated_h, simple_generated_c): Include them.  Add
24974         insn-constants.h.
24975         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24976         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24977         Remove these dependencies from the main rule and include
24978         insn-conditions.md in the command line only if it appears
24979         in the dependency list.
24980         (insn-constants.h, s-constants): Delete.
24981         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24982         or gensupport.h.
24983         (build/genmddeps.o): Likewise.
24984         (genprogrtl): New variable that contains everything from genprogmd
24985         except mddeps and constants.
24986         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24987         depend on $(BUILD_MD)
24988         (genprog): New variable.  Make these programs depend on
24989         $(BUILD_ERRORS).
24990         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24991         (main): Use read_md_files instead of init_rtx_reader_args.
24992         * genconstants.c: As for genmddeps.c.
24993         * read-md.h (read_skip_construct): Declare.
24994         * read-md.c (read_skip_construct): New function.
24995         (handle_file): Allow a null handle_directive, skipping the
24996         construct if so.
24997         (parse_include): Update the comment accordingly.
24999 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25001         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
25002         * genmddeps.c: Include read-md.h.
25003         (main): Call init_rtx_reader_args instead of init_md_reader_args.
25004         * genattr.c (main): Likewise.
25005         * genattrtab.c (main): Likewise.
25006         * genautomata.c (main): Likewise.
25007         * gencodes.c (main): Likewise.
25008         * genconditions.c (main): Likewise.
25009         * genconfig.c (main): Likewise.
25010         * genconstants.c (main): Likewise.
25011         * genemit.c (main): Likewise.
25012         * genextract.c (main): Likewise.
25013         * genflags.c (main): Likewise.
25014         * genopinit.c (main): Likewise.
25015         * genoutput.c (main): Likewise.
25016         * genpeep.c (main): Likewise.
25017         * genrecog.c (main): Likewise.
25018         * genpreds.c (main): Likewise.
25019         * gensupport.h (in_fname): Move to read-md.h.
25020         (init_md_reader_args_cb): Rename to...
25021         (init_rtx_reader_args_cb): ...this and return a bool.
25022         (init_md_reader_args): Rename to...
25023         (init_rtx_reader_args): ...this and return a bool.
25024         (include_callback): Move to read-md.h.
25025         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
25026         (file_name_list, first_dir_md_include): Move to read-md.c
25027         (first_bracket_include): Delete unused variable.
25028         (last_dir_md_include): Move to read-md.c.
25029         (process_include): Delete, moving code to read-md.c:handle_include.
25030         (process_rtx): Don't handle INCLUDE.
25031         (save_string): Delete.
25032         (rtx_handle_directive): New function.
25033         (init_md_reader_args_cb): Rename to...
25034         (init_rtx_reader_args_cb): ...this and return a boolean success value.
25035         Use read_md_args.
25036         (init_md_reader_args): Rename to...
25037         (init_rtx_reader_args): ...this and return a boolean success value.
25038         * rtl.def (INCLUDE): Delete.
25039         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
25040         argument.
25041         * read-rtl.c (read_conditions): Don't gobble ')' here.
25042         (read_mapping): Likewise.
25043         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
25044         Handle top-level non-rtx constructs here rather than in read_rtx_1.
25045         Store the whole queue in *X.  Remove call to init_md_reader.
25046         (read_rtx_1): Rename to...
25047         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
25048         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
25049         here.
25050         (read_nested_rtx): New function.  Handle (nil) here rather than
25051         in read_rtx_code.
25052         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
25053         gobble ')' here.
25054         * read-md.h (directive_handler_t): New type.
25055         (in_fname, include_callback): Moved from read-md.h.
25056         (read_constants, init_md_reader): Delete.
25057         (read_md_files): Declare.
25058         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
25059         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
25060         from gensupport.c.
25061         (read_constants): Rename to...
25062         (handle_constants): ...this.  Don't gobble ')' here.
25063         (handle_include, handle_file, handle_toplevel_file)
25064         (parse_include): New functions, mostly taken from gensupport.c.
25065         (init_md_reader): Subsume into...
25066         (read_md_files): ...this new function.
25068 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25070         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
25071         (unread_char): Decrement read_md_lineno after putting back '\n'.
25072         * read-md.c (fatal_with_file_and_line): Push back any characters
25073         that we decide not to add to the context.
25074         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
25075         fatal_expected_char in cases where '/' ends a line (for example).
25076         (read_name): Don't increment read_md_lineno here.
25077         (read_escape): Likewise.
25078         (read_quoted_string): Likewise.
25079         (read_braced_string): Likewise.
25081 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25083         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
25084         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
25085         * genconstants.c: Include read-md.h.
25086         * read-rtl.c (md_constants): Move to read-md.c.
25087         (md_name): Move to read-md.h.
25088         (initialize_iterators): Use leading_string_hash instead of def_hash
25089         and leading_string_eq_p instead of def_name_eq_p.
25090         (read_name): Move to read-md.c.
25091         (def_hash, def_name_eq_p): Delete.
25092         (read_constants, traverse_md_constants): Move to read-md.c.
25093         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
25094         * read-md.h: Include hashtab.h.
25095         (md_name): Moved from read-rtl.c.
25096         (md_constant): Moved from read-md.h.
25097         (leading_string_hash, leading_string_eq_p, read_name)
25098         (read_constants, traverse_md_constants): Declare.
25099         * read-md.c (md_constants): Moved from read-rtl.c.
25100         (leading_string_hash, leading_string_eq_p): New functions.
25101         (read_name, read_constants, traverse_md_constants): Moved from
25102         read-rtl.c.
25104 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25106         * read-rtl.c (md_name): New structure.
25107         (read_name): Take an md_name instead of a buffer pointer.
25108         Use the "string" field instead of strcpy when expanding constants.
25109         (read_constants): Remove the tmp_char argument.  Update the calls
25110         to read_name, using two local name buffers instead of the tmp_char
25111         argument.  Merge the constant-creation code.
25112         (read_conditions): Remove the tmp_char argument.  Update the calls
25113         to read_name, using a local name buffer instead of the tmp_char
25114         argument.
25115         (read_mapping): Replace tmp_char variable with a local name buffer.
25116         Update the calls to read_name.
25117         (read_rtx_1): Likewise.  Update the calls to read_constants and
25118         read_conditions.
25120 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25122         * Makefile.in (build/read-md.o): Depend on errors.h.
25123         * read-md.h (error_with_line): Declare.
25124         * read-md.c: Include errors.h.
25125         (message_with_line_1): New function, extracted from...
25126         (message_with_line): ...here.
25127         (error_with_line): New function.
25128         * genattrtab.c: If a call to message_with_line is followed by
25129         "have_error = 1;", replace both statements with a call to
25130         error_with_line.
25131         * genoutput.c: Likewise.
25132         * genpreds.c: Likewise.
25133         * genrecog.c: If a call to message_with_line is followed by
25134         "error_count++;", replace both statements with a call to
25135         error_with_line.
25136         (errorcount): Delete.
25137         (main): Don't check it.
25138         * gensupport.c: If a call to message_with_line is followed by
25139         "errors = 1;", replace both statements with a call to error_with_line.
25140         (errors): Delete.
25141         (process_define_cond_exec): Check have_error instead of errors.
25142         (init_md_reader_args_cb): Likewise.  Don't set errors.
25144 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25146         * read-md.h (read_md_file): Declare.
25147         (read_char, unread_char): New functions.
25148         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
25149         (read_quoted_string, read_string): Remove FILE * argument.
25150         * read-md.c (read_md_file): New variable.
25151         (read_md_filename, read_md_lineno): Update comments and remove
25152         unnecessary initialization.
25153         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
25154         (read_escape, read_quoted_string, read_braced_string, read_string):
25155         Remove FILE * argument.  Update calls accordingly, using read_char
25156         and unread_char instead of getc and ungetc.
25157         * rtl.h (read_rtx): Remove FILE * argument.
25158         * read-rtl.c (iterator_group): Remove FILE * argument from
25159         "find_builtin".
25160         (iterator_traverse_data): Remove "infile" field.
25161         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
25162         (add_mapping, read_name, read_constants, read_conditions)
25163         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
25164         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
25165         Remove file arguments from all calls, using read_char and unread_char
25166         instead of getc and ungetc.
25167         * gensupport.c (process_include): Preserve read_md_file around
25168         the include.  Set read_md_file to the handle of the included file.
25169         Update call to read_rtx.
25170         (init_md_reader_args_cb): Set read_md_file to the handle of the file
25171         and remove local FILE *.  Update calls to read_rtx.
25173 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25175         * read-md.h (read_rtx_lineno): Rename to...
25176         (read_md_lineno): ...this.
25177         (read_rtx_filename): Rename to...
25178         (read_md_filename): ...this.
25179         (copy_rtx_ptr_loc): Rename to...
25180         (copy_md_ptr_loc): ...this.
25181         (print_rtx_ptr_loc): Rename to...
25182         (print_md_ptr_loc): ...this.
25183         * read-md.c: Likewise.  Update references after renaming.
25184         (string_obstack): Replace RTL with MD in comment.
25185         (set_rtx_ptr_loc): Rename to...
25186         (set_md_ptr_loc): ...this.
25187         (get_rtx_ptr_loc): Rename to...
25188         (get_md_ptr_loc): ...this.
25189         * genconditions.c: Update references after renaming.
25190         * genemit.c: Likewise.
25191         * genoutput.c: Likewise.
25192         * genpreds.c: Likewise.
25193         * gensupport.c: Likewise.
25194         * read-rtl.c: Likewise.
25196 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25198         * Makefile.in (READ_MD_H): New variable.
25199         (BUILD_RTL): Add build/read-md.o.
25200         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
25201         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
25202         (build/genattrtab.o, build/genconditions.o build/genemit.o)
25203         (build/genextract.o, build/genflags.o, build/genoutput.o)
25204         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
25205         (build/read-md.o): New rule.
25206         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
25207         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
25208         * coretypes.h: ...here.
25209         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
25210         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
25211         * genattr.c: Include read-md.h.
25212         * genattrtab.c: Likewise.
25213         * genconditions.c: Likewise.
25214         * genemit.c: Likewise.
25215         * genextract.c: Likewise.
25216         * genflags.c: Likewise.
25217         * genoutput.c: Likewise.
25218         * genpreds.c: Likewise.
25219         * genrecog.c: Likewise.
25220         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
25221         (join_c_conditions, print_c_condition, read_rtx_filename)
25222         (read_rtx_lineno): Move to read-md.h.
25223         * read-rtl.c: Include read-md.h.
25224         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
25225         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
25226         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
25227         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
25228         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
25229         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
25230         (read_braced_string, read_string): Move to read-md.c.
25231         (read_rtx): Move some initialization to init_md_reader and call
25232         init_md_reader here.
25233         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
25234         Move to read-md.h.
25235         * gensupport.c: Include read-md.h.
25236         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
25237         * read-md.h, read-md.c: New files.
25239 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
25241         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25242         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25243         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
25244         * config/moxie/moxie.c (moxie_function_value): Make static.
25245         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
25246         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
25248 2010-06-10  Martin Jambor  <mjambor@suse.cz>
25250         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
25251         * dbgcnt.def (tree_sra): New counter.
25252         * tree-sra.c: Include dbgcnt.h.
25253         (gate_intra_sra): Check tree_sra debug counter.
25255 2010-06-10  Martin Jambor  <mjambor@suse.cz>
25257         PR tree-optimization/44258
25258         * tree-sra.c (build_access_subtree): Return false iff there is a
25259         partial overlap.
25260         (build_access_trees): Likewise.
25261         (analyze_all_variable_accesses): Disqualify candidates if
25262         build_access_trees returns true for them.
25264 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
25266         PR debug/41371
25267         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
25268         tail-recurse into canonical node.  Fast-forward over
25269         non-canonical VALUEs.
25271 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
25273         PR boostrap/44470
25274         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
25275         (*addsi_1_zext) <TYPE_LEA>: Likewise.
25276         (add lea splitter): Likewise.
25277         (add_zext lea splitter): Likewise.
25279 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
25281         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
25283 2010-06-10  Jan Hubicka  <jh@suse.cz>
25285         * df-problems.c (df_live_problem_data): Add live_bitmaps.
25286         (df_live_alloc): Initialize problem data and live_osbtacks.
25287         (df_live_finalize): Remove obstack, problem data; do not
25288         clear all bitmaps.
25289         (df_live_top_dump, df_live_bottom_dump): Do not dump old
25290         data when not allocated.
25291         (df_live_verify_solution_start): Do not allocate problem data.
25292         (df_live_verify_solution_end): Check if out is allocated.
25293         (struct df_md_problem_data): New structure.
25294         (df_md_alloc): Allocate problem data.
25295         (df_md_free): Free problem data; do not clear bitmaps.
25297 2010-06-10  Jan Beulich  <jbeulich@novell.com>
25299         PR bootstrap/37304
25300         * configure.ac: Replace $() with ${} when intending to expand
25301         variables rather than invoking commands.
25302         * configure: Re-generate.
25304 2010-06-10  Jan Hubicka  <jh@suse.cz>
25306         PR rtl-optimization/44460
25307         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
25308         TYPE_NEEDS_CONSTRUCTING sanity check.
25310 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
25312         * doc/include/fdl.texi: Move to GFDL version 1.3.
25314         * doc/cpp.texi: Move to GFDL version 1.3.
25315         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
25316         * doc/gccint.texi: Move to GFDL version 1.3.
25317         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
25318         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
25319         * doc/invoke.texi: Move to GFDL version 1.3.
25321 2010-06-09  Jan Hubicka  <jh@suse.cz>
25323         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
25324         Break out from ...
25325         (propagate) ... here; swap the order.
25327 2010-06-09  Jan Hubicka  <jh@suse.cz>
25329         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
25330         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
25331         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
25332         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
25334 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
25336         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
25337         Do not the gather memory reference in the outer loop if the step
25338         is not a constant.
25340 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
25342         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
25343         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
25344         8 to 4.  Minor change of the related comments.
25346 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
25348         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
25349         the scev analysis when the variable is not used outside the loop
25350         in a close phi node: call compute_overall_effect_of_inner_loop.
25352 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
25354         * graphite-sese-to-poly.c (single_pred_cond): Renamed
25355         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
25356         (build_sese_conditions_before): Renamed call to single_pred_cond.
25357         (build_sese_conditions_after): Same.
25359 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
25361         * graphite-poly.h: Fix comments and indentation.
25362         * graphite-sese-to-poly.c: Same.
25363         (build_sese_conditions_before): Compute stmt and gbb only when needed.
25364         * tree-chrec.c: Fix comments and indentation.
25365         (tree-ssa-loop-niter.c): Same.
25367 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
25369         PR rtl-optimization/42461
25370         * dce.c (deletable_insn_p): Return true for const or pure calls again.
25371         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
25373 2010-06-09  Jan Hubicka  <jh@suse.cz>
25375         * bitmap.c (bitmap_and): Walk array forward.
25376         (bitmap_and_compl_into): Likewise.
25377         (bitmap_xor): Likewise.
25378         (bitmap_xor_into):  Likewise.
25379         (bitmap_equal_p): Likewise.
25380         (bitmap_intersect_p): Likewise.
25381         (bitmap_intersect_compl_p): Likewise.
25382         (bitmap_ior_and_into): Likewise.
25383         (bitmap_elt_copy): Likewise.
25384         (bitmap_and_compl): Likewise.
25385         (bitmap_elt_ior): Likewise.
25387 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
25389         * opts-common.c (prune_options): Ensure replacement argv array
25390         is correctly terminated by a NULL entry.
25392 2010-06-09  Jan Hubicka  <jh@suse.cz>
25394         * cgraph.h (varpool_first_static_initializer,
25395         varpool_next_static_initializer): Make checking only when
25396         checking enabled.
25397         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
25398         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
25399         gcc_assert to gcc_checking_assert.
25400         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
25401         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
25402         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
25403         op_iter_init_phiuse, op_iter_init_phidef,
25404         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
25405         gcc_checking_assert.
25406         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
25407         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
25408         partition_is_global, live_on_entry, live_on_exit,
25409         live_merge_and_clear): Likewise.
25410         * system.h (gcc_checking_assert): New macro.
25411         * gimple.h (set_bb_seq): Use gcc_checking_assert.
25413 2010-06-09  Jason Merrill  <jason@redhat.com>
25415         * Makefile.in (TAGS): Collect tags info from c-family.
25417 2010-06-09  Jan Hubicka  <jh@suse.cz>
25419         * gimple.h (gcc_gimple_checking_assert): New macro.
25420         (gimple_set_def_ops, gimple_set_use_ops,
25421         gimple_set_vuse, gimple_set_vdef,
25422         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
25423         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
25424         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
25425         gimple_asm_output_op, gimple_asm_output_op_ptr,
25426         gimple_asm_set_output_op, gimple_asm_clobber_op,
25427         gimple_asm_set_clobber_op, gimple_asm_label_op,
25428         gimple_asm_set_label_op, gimple_try_set_kind,
25429         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
25430         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
25431         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
25432         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
25433         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
25434         gimple_omp_for_set_initial, gimple_omp_for_final,
25435         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
25436         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
25437         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
25438         conditional with ENABLE_GIMPLE_CHECKING.
25439         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
25441 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
25443         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
25444         (get_computation_cost_at): Use it.
25445         (determine_use_iv_cost_condition): Likewise.
25446         (determine_iv_cost): Likewise.
25448 2010-06-09  Richard Guenther  <rguenther@suse.de>
25450         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
25451         replace constants.
25453 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
25455         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
25457 2010-06-09  Martin Jambor  <mjambor@suse.cz>
25459         PR tree-optimization/44423
25460         * tree-sra.c (dump_access): Dump also grp_assignment_read.
25461         (analyze_access_subtree): Pass negative allow_replacements to children
25462         if the current type is scalar.
25464 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
25466         PR testsuite/42843
25467         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
25468         * doc/plugins.texi (Plugin license check): Update information
25469         on type of plugin_is_GPL_compatible.
25470         * Makefile.in (PLUGINCC): Define as $(COMPILER).
25471         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
25473 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
25475         * config/arm/arm.c (thumb2_reorg): New function.
25476         (arm_reorg): Call it.
25477         * config/arm/thumb2.md (define_peephole2 for flag clobbering
25478         arithmetic operations): Delete.
25480 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
25482         PR target/44067
25483         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
25484         e500v2 target.
25486 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
25488         PR plugins/44459
25489         * gcc-plugin.h: Encapsulate all declarations in extern "C".
25491 2010-06-08  Jan Hubicka  <jh@suse.cz>
25493         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
25494         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
25496 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
25498         PR tree-optimization/39874
25499         PR middle-end/28685
25500         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
25501         Declare.
25502         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
25503         same_bool_result_p): New.
25504         (and_var_with_comparison, and_var_with_comparison_1,
25505         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
25506         (or_var_with_comparison, or_var_with_comparison_1,
25507         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
25508         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
25509         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
25510         of combine_comparisons.
25511         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
25513 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
25515         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25516         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25517         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
25518         pdp11_function_value_regno_p): New functions.
25519         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25520         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25522 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
25524         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
25525         Thumb-2 in the MINUS case.
25527 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25529         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
25531         * doc/gty.texi (GTY Options): Document typed GC allocation and
25532         variable_size GTY option.
25534         * ggc-internal.h: New.
25536         * ggc.h: Update copyright year.
25537         (digit_string): Move to stringpool.c.
25538         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
25539         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
25540         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
25541         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
25542         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
25543         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
25544         (ggc_force_collect, ggc_get_size, ggc_statistics)
25545         (ggc_print_common_statistics): Move to ggc-internal.h.
25546         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
25547         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
25548         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
25549         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
25550         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
25551         (ggc_alloc_zone_pass_stat): Remove.
25552         (ggc_internal_alloc_stat, ggc_internal_alloc)
25553         (ggc_internal_cleared_alloc_stat): New.
25554         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
25555         (ggc_internal_vec_alloc_stat)
25556         (ggc_internal_cleared_vec_alloc_stat)
25557         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
25558         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
25559         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
25560         (ggc_cleared_alloc_ptr_array_two_args): New.
25561         (htab_create_ggc, splay_tree_new_ggc): Redefine.
25562         (ggc_splay_alloc): Change the type of the first argument to
25563         enum gt_types_enum.
25564         (ggc_alloc_string): Make macro.
25565         (ggc_alloc_string_stat): New.
25566         (ggc_strdup): Redefine.
25567         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
25568         (ggc_alloc_rtvec_sized): New.
25569         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
25570         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
25571         (ggc_internal_cleared_alloc_zone_stat)
25572         (ggc_internal_zone_alloc_stat)
25573         (ggc_internal_zone_cleared_alloc_stat)
25574         (ggc_internal_zone_vec_alloc_stat)
25575         (ggc_alloc_zone_rtx_def_stat)
25576         (ggc_alloc_zone_tree_node_stat)
25577         (ggc_alloc_zone_cleared_tree_node_stat)
25578         (ggc_alloc_cleared_gimple_statement_d_stat): New.
25580         * ggc-common.c: Include ggc-internal.h.
25581         (ggc_internal_cleared_alloc_stat): Rename from
25582         ggc_alloc_cleared_stat.
25583         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
25584         (ggc_calloc): Remove.
25585         (ggc_cleared_alloc_htab_ignore_args): New.
25586         (ggc_cleared_alloc_ptr_array_two_args): New.
25587         (ggc_splay_alloc): Add obj_type parameter.
25588         (init_ggc_heuristics): Formatting fixes.
25590         * ggc-none.c: Update copyright year.
25591         (ggc_alloc_stat): Rename to ggc_alloc_stat.
25592         (ggc_alloc_cleared_stat): Rename to
25593         ggc_internal_cleared_alloc_stat.
25594         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
25596         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
25597         Remove references to ggc_alloc in comments.
25598         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
25599         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
25600         (new_ggc_zone, destroy_ggc_zone): Remove.
25601         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
25603         * ggc-zone.c: Include ggc-internal.h.  Remove references to
25604         ggc_alloc in comments.
25605         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
25606         (ggc_internal_alloc_zone_pass_stat): New.
25607         (ggc_internal_cleared_alloc_zone_stat): New.
25608         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
25609         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
25610         (new_ggc_zone, destroy_ggc_zone): Remove.
25612         * stringpool.c: Update copyright year.  Include ggc-internal.h
25613         (digit_vector): Make static.
25614         (digit_string): Moved from ggc.h.
25615         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
25616         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
25618         * Makefile.in (GGC_INTERNAL_H): New.
25619         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
25620         $(GGC_INTERNAL_H) to dependencies.
25622         * gengtype.c: Update copyright year.
25623         (walk_type): Accept variable_size GTY option.
25624         (USED_BY_TYPED_GC_P): New macro.
25625         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
25626         whitespace at the end of strings.
25627         (get_type_specifier, variable_size_p): New functions.
25628         (alloc_quantity, alloc_zone): New enums.
25629         (write_typed_alloc_def): New function.
25630         (write_typed_struct_alloc_def): Likewise.
25631         (write_typed_typed_typedef_alloc_def): Likewise.
25632         (write_typed_alloc_defns): Likewise.
25633         (output_typename, write_splay_tree_allocator_def): Likewise.
25634         (write_splay_tree_allocators): Likewise.
25635         (main): Call write_typed_alloc_defns and
25636         write_splay_tree_allocators.
25638         * lto-streamer.h (lto_file_decl_data_ptr): New.
25640         * passes.c (order): Define using cgraph_node_ptr.
25642         * strinpool.c (struct string_pool_data): Declare nested_ptr using
25643         ht_identifier_ptr.
25645         * gimple.h (union gimple_statement_d): Likewise.
25647         * rtl.h (struct rtx_def): Likewise.
25648         (struct rtvec_def): Likewise.
25650         * tree.h (union tree_node): Likewise.
25652         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
25654         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
25656         * tree-scalar-evolution.c (scev_initialize): Likewise.
25658         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
25660         * dwarf2asm.c (dw2_force_const_mem): Likewise.
25662         * omp-low.c (lower_omp_critical): Likewise.
25664         * bitmap.h (struct bitmap_head_def): Update comment to not
25665         reference ggc_alloc.
25667         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
25669         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
25671         * ipa-prop.c (duplicate_ggc_array): Rename to
25672         duplicate_ipa_jump_func_array.  Use typed GC allocation.
25673         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
25675         * gimple.c (gimple_alloc_stat): Use
25676         ggc_alloc_cleared_gimple_statement_d_stat.
25678         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
25680         * tree.c (make_node_stat): Use
25681         ggc_alloc_zone_cleared_tree_node_stat.
25682         (make_tree_vec_stat): Likewise.
25683         (build_vl_exp_stat): Likewise.
25684         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
25685         (make_tree_binfo_stat): Likewise.
25686         (tree_cons_stat): Likewise.
25688         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
25689         (shallow_copy_rtx_stat): Likewise.
25690         (make_node_stat): Likewise.
25692         * lto-symtab.c: Fix comment.
25694         * tree-cfg.c (create_bb): Update comment to not reference
25695         ggc_alloc_cleared.
25696         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
25698         * varpool.c (varpool_node): Use typed GC allocation.
25699         (varpool_extra_name_alias): Likewise.
25701         * varasm.c (emutls_decl): Likewise.
25702         (get_unnamed_section): Likewise.
25703         (get_noswitch_section): Likewise.
25704         (get_section): Likewise.
25705         (get_block_for_section): Likewise.
25706         (build_constant_desc): Likewise.
25707         (create_constant_pool): Likewise.
25708         (force_const_mem): Likewise.
25710         * tree.c (build_vl_exp_stat): Likewise.
25711         (build_real): Likewise.
25712         (build_string): Likewise.
25713         (decl_debug_expr_insert): Likewise.
25714         (decl_value_expr_insert): Likewise.
25715         (type_hash_add): Likewise.
25716         (build_omp_clause): Likewise.
25718         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
25720         * tree-ssa.c (init_tree_ssa): Likewise.
25722         * tree-ssa-structalias.c (heapvar_insert): Likewise.
25724         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
25726         * tree-ssa-loop-niter.c (record_estimate): Likewise.
25728         * tree-ssa-alias.c (get_ptr_info): Likewise.
25730         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
25732         * tree-phinodes.c (allocate_phi_node): Likewise.
25734         * tree-iterator.c (tsi_link_before): Likewise.
25735         (tsi_link_after): Likewise.
25737         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
25739         * tree-dfa.c (create_var_ann): Likewise.
25741         * tree-cfg.c (create_bb): Likewise.
25743         * toplev.c (alloc_for_identifier_to_locale): Likewise.
25744         (general_init): Likewise.
25746         * stringpool.c (stringpool_ggc_alloc): Likewise.
25747         (gt_pch_save_stringpool): Likewise.
25749         * sese.c (if_region_set_false_region): Likewise.
25751         * passes.c (do_per_function_toporder): Likewise.
25753         * optabs.c (set_optab_libfunc): Likewise.
25754         (set_conv_libfunc): Likewise.
25756         * lto-symtab.c (lto_symtab_register_decl): Likewise.
25758         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
25759         (input_eh_region): Likewise.
25760         (input_eh_lp): Likewise.
25761         (make_new_block): Likewise.
25762         (unpack_ts_real_cst_value_fields): Likewise.
25764         * lto-section-in.c (lto_new_in_decl_state): Likewise.
25766         * lto-cgraph.c (input_node_opt_summary): Likewise.
25768         * loop-init.c (loop_optimizer_init): Likewise.
25770         * lambda.h (lambda_vector_new): Likewise.
25772         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
25774         * ira.c (update_equiv_regs): Likewise.
25776         * ipa.c (cgraph_node_set_new): Likewise.
25777         (cgraph_node_set_add): Likewise.
25778         (varpool_node_set_new): Likewise.
25779         (varpool_node_set_add): Likewise.
25781         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
25782         (duplicate_ipa_jump_func_array): Likewise.
25783         (ipa_read_node_info): Likewise.
25785         * ipa-cp.c (ipcp_create_replace_map): Likewise.
25787         * integrate.c (get_hard_reg_initial_val): Likewise.
25789         * gimple.c (gimple_alloc_stat): Likewise.
25790         (gimple_build_omp_for): Likewise.
25791         (gimple_seq_alloc): Likewise.
25792         (gimple_copy): Likewise.
25794         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
25795         (gsi_insert_after_without_update): Likewise.
25797         * function.c (add_frame_space): Likewise.
25798         (insert_temp_slot_address): Likewise.
25799         (assign_stack_temp_for_type): Likewise.
25800         (allocate_struct_function): Likewise.
25801         (types_used_by_var_decl_insert): Likewise.
25803         * except.c (init_eh_for_function): Likewise.
25804         (gen_eh_region): Likewise.
25805         (gen_eh_region_catch): Likewise.
25806         (gen_eh_landing_pad): Likewise.
25807         (add_call_site): Likewise.
25809         * emit-rtl.c (get_mem_attrs): Likewise.
25810         (get_reg_attrs): Likewise.
25811         (start_sequence): Likewise.
25812         (init_emit): Likewise.
25814         * dwarf2out.c (new_cfi): Likewise.
25815         (queue_reg_save): Likewise.
25816         (dwarf2out_frame_init): Likewise.
25817         (new_loc_descr): Likewise.
25818         (find_AT_string): Likewise.
25819         (new_die): Likewise.
25820         (add_var_loc_to_decl): Likewise.
25821         (clone_die): Likewise.
25822         (clone_as_declaration): Likewise.
25823         (break_out_comdat_types): Likewise.
25824         (new_loc_list): Likewise.
25825         (loc_descriptor): Likewise.
25826         (add_loc_descr_to_each): Likewise.
25827         (add_const_value_attribute): Likewise.
25828         (tree_add_const_value_attribute): Likewise.
25829         (add_comp_dir_attribute): Likewise.
25830         (add_name_and_src_coords_attributes): Likewise.
25831         (lookup_filename): Likewise.
25832         (store_vcall_insn): Likewise.
25833         (dwarf2out_init): Likewise.
25835         * dbxout.c (dbxout_init): Likewise.
25837         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25839         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25841         * config/score/score7.c (score7_output_external): Likewise.
25843         * config/score/score3.c (score3_output_external): Likewise.
25845         * config/s390/s390.c (s390_init_machine_status): Likewise.
25847         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25848         (rs6000_init_machine_status): Likewise.
25849         (output_toc): Likewise.
25851         * config/pa/pa.c (pa_init_machine_status): Likewise.
25852         (get_deferred_plabel): Likewise.
25854         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25856         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25858         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25860         * config/mep/mep.c (mep_init_machine_status): Likewise.
25861         (mep_note_pragma_flag): Likewise.
25863         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25865         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25867         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25869         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25870         (i386_pe_maybe_record_exported_symbol): Likewise.
25872         * config/i386/i386.c (get_dllimport_decl): Likewise.
25873         (ix86_init_machine_status): Likewise.
25874         (assign_386_stack_local): Likewise.
25876         * config/frv/frv.c (frv_init_machine_status): Likewise.
25878         * config/darwin.c (machopic_indirection_name): Likewise.
25880         * config/cris/cris.c (cris_init_machine_status): Likewise.
25882         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25884         * config/avr/avr.c (avr_init_machine_status): Likewise.
25886         * config/arm/arm.c (arm_init_machine_status): Likewise.
25888         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25889         (alpha_need_linkage): Likewise.
25890         (alpha_use_linkage): Likewise.
25892         * cgraph.c (cgraph_allocate_node): Likewise.
25893         (cgraph_create_edge_1): Likewise.
25894         (cgraph_create_indirect_edge): Likewise.
25895         (cgraph_add_asm_node): Likewise.
25897         * cfgrtl.c (init_rtl_bb_info): Likewise.
25899         * cfgloop.c (alloc_loop): Likewise.
25900         (rescan_loop_exit): Likewise.
25902         * cfg.c (init_flow): Likewise.
25903         (alloc_block): Likewise.
25904         (unchecked_make_edge): Likewise.
25906         * c-parser.c (c_parse_init): Likewise.
25907         (c_parse_file): Likewise.
25909         * c-decl.c (bind): Likewise.
25910         (record_inline_static): Likewise.
25911         (push_scope): Likewise.
25912         (make_label): Likewise.
25913         (lookup_label_for_goto): Likewise.
25914         (finish_struct): Likewise.
25915         (finish_enum): Likewise.
25916         (c_push_function_context): Likewise.
25918         * bitmap.c (bitmap_element_allocate): Likewise.
25919         (bitmap_gc_alloc_stat): Likewise.
25921         * alias.c (record_alias_subset): Likewise.
25922         (init_alias_analysis): Likewise.
25924 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
25926         * fold-const.c (fold_comparison): Remove redundant parenthesis.
25927         * tree-inline.c (expand_call_inline): Pass translated return value of
25928         cgraph_inline_failed_string to diagnostic function.
25930 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
25931             Shujing Zhao  <pearly.zhao@oracle.com>
25933         PR c/37724
25934         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
25935         implicit bad conversions is initialization.
25936         (error_init): Use gmsgid instead of msgid for argument name and change
25937         the call for error.
25938         (pedwarn_init): Use gmsgid instead of msgid for argument name and
25939         change the call for pedwarn.
25940         (warning_init): Use gmsgid instead of msgid for argument name and
25941         change the call for warning.
25943 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
25945         * config/mips/mips-protos.h (mips_print_operand): Delete.
25946         (mips_print_operand_address): Delete.
25947         * config/mips/mips.h (mips_print_operand_punct): Delete.
25948         (PRINT_OPERAND): Delete.
25949         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25950         (PRINT_OPERAND_ADDRESS): Delete.
25951         * config/mips/mips.c (mips_print_operand_punct): Make static.
25952         (mips_print_operand_address): Make static.
25953         (mips_print_operand): Make static.  Call
25954         mips_print_operand_punct_valid_p.
25955         (mips_print_operand_punct_valid_p): New function.
25956         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25957         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25959 2010-06-07  Jan Hubicka  <jh@suse.cz>
25961         PR middle-end/44454
25962         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25963         are allocated.
25965 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25967         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25968         name of RECORD.
25970 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25972         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25973         attributes): Document gas.
25975 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25977         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25978         <TYPE_LEA>: Split instruction.
25979         <default>: Remove alternative 2 handling.
25980         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25981         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25982         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25984         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25985         (ashift_zext lea splitter): Use DImode for multiplication.
25987         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25988         to generate addition.
25990 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25992         * common.opt (fira-verbose): Use Var.
25993         (fpcc-struct-return): Use Init instead of VarExists.
25994         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25995         toplev.c.
25996         * flags.h (flag_signed_char, flag_short_enums,
25997         flag_pcc_struct_return, flag_ira_verbose,
25998         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25999         * toplev.c (flag_detailed_statistics, flag_signed_char,
26000         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
26001         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
26002         * toplev.h (flag_crossjumping, flag_if_conversion,
26003         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
26004         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
26005         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
26006         flag_cprop_registers, time_report, flag_ira_loop_pressure,
26007         flag_ira_coalesce, flag_ira_move_spills,
26008         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
26010 2010-06-07  Jan Hubicka  <jh@suse.cz>
26012         * df-core.c (df_analyze_problem): Do verification after allocation.
26014         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
26015         (df_lr_alloc): Initialize problem data; move bitmaps to
26016         lr_bitmaps obstack.
26017         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
26018         (df_lr_verify_solution_start): Do not initialize problem data;
26019         allocate bitmaps in lr_bitmaps.
26020         (df_lr_verify_solution_end): Do not free problem data.
26022 2010-06-07  Jan Hubicka  <jh@suse.cz>
26024         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
26025         if caller is noreturn.
26026         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
26027         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
26028         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
26029         * ipa-pure-const.c (check_decl): Add IPA parameter.
26030         (state_from_flags): New function.
26031         (better_state, worse_state): New functions.
26032         (check_call): When in IPA mode, do not care about callees.
26033         (check_load, check_store): Update.
26034         (check_ipa_load, check_ipa_store): New.
26035         (check_stmt): When in IPA mode, use IPA checkers.
26036         (analyze_function): Use state_from_flags.
26037         (propagate): Check indirect edges and references.
26039 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
26041         PR rtl-optimization/44404
26042         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
26043         of count_occurrences to see if it's safe to modify mem_insn.
26045 2010-06-07  Richard Guenther  <rguenther@suse.de>
26047         * gimplify.c (gimplify_cleanup_point_expr): For empty body
26048         and EH-only cleanup drop the cleanup instead of inserting it
26049         unconditionally.
26051 2010-06-07  Ira Rosen  <irar@il.ibm.com>
26053         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
26054         documentation.
26055         * targhooks.c (default_builtin_vectorization_cost): New function.
26056         * targhooks.h (default_builtin_vectorization_cost): Declare.
26057         * target.h (enum vect_cost_for_stmt): Define.
26058         (builtin_vectorization_cost): Change argument and comment.
26059         * tree-vectorizer.h: Remove cost model macros.
26060         * tree-vect-loop.c: Include target.h.
26061         (vect_get_cost): New function.
26062         (vect_estimate_min_profitable_iters): Replace cost model macros with
26063         calls to vect_get_cost.
26064         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
26065         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
26066         default implementation.
26067         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
26068         calls to target hook builtin_vectorization_cost.
26069         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
26070         Likewise.
26071         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
26072         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
26073         implementation to return costs.
26074         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
26075         * config/spu/spu.h: Remove vectorizer cost model macros.
26076         * config/i386/i386.h: Likewise.
26077         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
26078         a call to target hook builtin_vectorization_cost.
26080 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
26082         PR target/44319
26083         * config/i386/i386.c (override_options): Turn zee pass on for level 2
26084         and above and defer till target is known.
26085         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
26086         turn off otherwise.
26088 2010-05-25  Jan Hubicka  <jh@suse.cz>
26090         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
26091         (df_compact_blocks): Likewise.
26092         * df.h (struct df): Turn hardware_regs_used,
26093         regular_block_artificial_uses, eh_block_artificial_uses,
26094         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
26095         bitmap_head.
26096         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
26097         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
26098         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
26099         df_scan_blocks, df_insn_delete, df_insn_rescan,
26100         df_insn_rescan_debug_internal, df_insn_rescan_all,
26101         df_process_deferred_rescans, df_process_deferred_rescans,
26102         df_notes_rescan, df_get_call_refs, df_get_call_refs,
26103         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
26104         df_record_entry_block_defs, df_record_exit_block_uses,
26105         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
26106         df_scan_verify): Update.
26108 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
26110         PR c++/44188
26111         * c-common.c (is_typedef_decl): Move this definition ...
26112         * tree.c (is_typedef_decl): ... here.
26113         (typdef_variant_p): Move definition here from cp/tree.c.
26114         * c-common.h (is_typedef_decl): Move this declaration ...
26115         * tree.h (is_typedef_decl): ... here.
26116         (typedef_variant_p): Move declaration here from cp/cp-tree.h
26117         * dwarf2out.c (is_naming_typedef_decl): New function.
26118         (gen_tagged_type_die): Split out of ...
26119         (gen_type_die_with_usage): ... this function. When an anonymous
26120         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
26121         is emitted for the typedef.
26122         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
26123         anonymous tagged types.
26125 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26127         PR c/20000
26128         * c-decl.c (grokdeclarator): Delete warning.
26130 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
26132         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
26133         newly built CALL_EXPR.
26134         * tree-profile.c (tree_profiling): Don't profile functions produced
26135         for built-in stuff.
26137 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
26139         PR bootstrap/44427
26140         PR bootstrap/44428
26141         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
26142         endianness-independent.
26144 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
26146         * c-common.c: Move to c-family/.
26147         * c-common.def: Likewise.
26148         * c-common.h: Likewise.
26149         * c-cppbuiltin.c: Likewise.
26150         * c-dump.c: Likewise.
26151         * c-format.c: Likewise.
26152         * c-format.h : Likewise.
26153         * c-gimplify.c: Likewise.
26154         * c-lex.c: Likewise.
26155         * c-omp.c: Likewise.
26156         * c.opt: Likewise.
26157         * c-opts.c: Likewise.
26158         * c-pch.c: Likewise.
26159         * c-ppoutput.c: Likewise.
26160         * c-pragma.c: Likewise.
26161         * c-pragma.h: Likewise.
26162         * c-pretty-print.c: Likewise.
26163         * c-pretty-print.h: Likewise.
26164         * c-semantics.c: Likewise.
26165         * stub-objc.c: Likewise.
26167         * gengtype.c (get_file_langdir): Special-case files in c-family/.
26168         (get_output_file_with_visibility): Fix name for c-common.h.
26169         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
26171         * c-tree.h: Update include path for moved files.
26172         * c-lang.c: Likewise.
26173         * c-lang.h: Likewise.
26174         * c-parser.c: Likewise.
26175         * c-convert.c: Likewise.
26176         * c-decl.c: Likewise.
26177         * c-objc-common.c: Likewise.
26178         * configure.ac: Make sure c-family/ exists in the build directory.
26179         * configure: Regenerate.
26180         * Makefile.in: Update paths for moved files.  Regroup files per
26181         location and update dependencies.  Move generated_files down after
26182         ALL_GTFILES_H.
26184         * config/spu/spu-c.c: Update paths for moved files.
26185         * config/mep/mep-pragma.c: Likewise.
26186         * config/darwin-c.c: Likewise.
26187         * config/i386/msformat-c.c: Likewise.
26188         * config/i386/i386-c.c: Likewise.
26189         * config/avr/avr-c.c: Likewise.
26190         * config/sol2-c.c: Likewise.
26191         * config/ia64/ia64-c.c: Likewise.
26192         * config/rs6000/rs6000-c.c: Likewise.
26193         * config/arm/arm.c: Likewise.
26194         * config/arm/arm-c.c: Likewise.
26195         * config/h8300/h8300.c: Likewise.
26196         * config/v850/v850-c.c: Likewise.
26198         * config/t-darwin: Fix dependencies for moved files.
26199         * config/t-sol2: Fix dependencies for moved files.
26200         * config/mep/t-mep: Fix dependencies for moved files.
26201         * config/ia64/t-ia64: Fix dependencies for moved files.
26202         * config/rs6000/t-rs6000: Fix dependencies for moved files.
26203         * config/v850/t-v850: Fix dependencies for moved files.
26204         * config/v850/t-v850e: Fix dependencies for moved files.
26206         * config/m32c/m32c-pragma.c
26208         * po/exgettext: Look in c-family/ also.
26210 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
26212         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
26213         (mark_control_dependent_edges_necessary): Call it instead of marking
26214         the last statement manually.
26215         (propagate_necessity): Likewise.
26217 2010-06-05  Jan Hubicka  <jh@suse.cz>
26219         * basic-block.h (compute_dominance_frontiers): Updated.
26220         (compute_idf): Likewise.
26222         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
26223         for dominance frontiers.
26224         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
26225         (insert_updated_phi_nodes_for): Likewise.
26226         (update_ssa): Likewise.
26227         * cfganal.c (compute_dominance_frontiers_1): Likewise.
26228         (compute_dominance_frontiers): Likewise.
26229         (compute_idf): Likewise.
26230         * df-problems.c (df_md_local_compute): Likewise.
26232 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
26234         * target.h (struct gcc_target): Add memory_move_cost field.
26235         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
26236         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
26237         * targhooks.c (default_memory_move_cost): New function.
26238         * targhooks.h (default_memory_move_cost): Declare function.
26239         * reload.h (memory_move_cost): Declare.
26240         (memory_move_secondary_cost): Change type of 'in' argument to bool.
26241         * reginfo.c (memory_move_cost): New function.
26242         (memory_move_secondary_cost): Change type of 'in' argument to bool.
26243         * ira.h (ira_memory_move_cost): Update comment.
26244         * ira.c (ira_memory_move_cost): Update comment.
26245         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
26246         with memory_move_cost.
26247         * postreload.c (reload_cse_simplify_set): (Ditto.).
26248         * reload1.c (choose_reload_regs): (Ditto.).
26249         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
26250         (MEMORY_MOVE_COST):  Revise documentation.
26252         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
26253         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
26254         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
26255         type of 'in' argument to bool.
26256         (TARGET_MEMORY_MOVE_COST): Define.
26258 2010-06-05  Jan Hubicka  <jh@suse.cz>
26260         * ipa-pure-const.c (propagate): Fix typo in handling of functions
26261         that cannot return.  Be more careful when merging the results with
26262         previously known ones.
26264 2010-06-05  Matthias Klose  <doko@ubuntu.com>
26266         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
26267         function to add the -iplugindir option.
26268         (find_plugindir_spec_function): Add new declaration and function.
26269         (static_spec_func): Use it for "find-plugindir".
26271 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
26273         PR c++/44361
26274         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
26275         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
26276         statement expression.
26278 2010-06-05  Jan Hubicka  <jh@suse.cz>
26280         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
26281         (df_rd_problem_data): Convert sparse_invalidated_by_call,
26282         dense_invalidated_by_call to bitmap head.
26283         (df_rd_alloc, df_rd_bb_local_compute_process_def,
26284         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
26285         df_rd_start_dump, df_lr_verify_transfer_functions,
26286         df_live_verify_transfer_functions, df_chain_create_bb,
26287         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
26288         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
26289         df_simulate_one_insn_forwards, df_md_alloc,
26290         df_md_bb_local_compute_process_def,
26291         df_md_bb_local_compute_process_def, df_md_local_compute,
26292         df_md_transfer_function df_md_free): Update.
26294 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
26296         PR c/44322
26297         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
26298         target type for ADDR_EXPR; require no changes to qualifiers except
26299         for function types.
26300         * c-tree.h (c_build_type_variant): Remove.
26302 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
26304         * genautomata.c (get_excl_set): Do work per element, not per char.
26305         (check_presence_pattern_sets): Similar.
26306         (check_absence_pattern_sets): Similar.
26308 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
26310         * genautomata.c (curr_state_pass_num): Delete.
26311         (min_issue_delay_pass_states): Delete.
26312         (min_issue_delay): Delete.
26313         (initiate_min_issue_delay_pass_states): Delete.
26314         (output_min_issue_delay_table): Compute min_issue_delay_vect
26315         using a breadth-first search variant.
26316         (output_tables): Don't call initiate_min_issue_delay_pass_states.
26318 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
26320         PR boostrap/44421
26321         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
26322         (df_byte_lr_bb_local_compute): Likewise.
26324 2010-06-03  Jason Merrill  <jason@redhat.com>
26326         Implement noexcept operator (5.3.7)
26327         * c-common.c (c_common_reswords): Add noexcept.
26328         * c-common.h (enum rid): Add RID_NOEXCEPT.
26330 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
26332         * config/darwin-driver.c (darwin_default_min_version): Use
26333         GCC-specific formats in diagnostics.
26334         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
26335         diagnostics.
26336         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
26337         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
26338         eval_spec_function, handle_braces, process_brace_body, main,
26339         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
26340         getenv_spec_function, compare_version_strings,
26341         version_compare_spec_function): Use GCC-specific formats in
26342         diagnostics.
26344 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
26346         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
26347         that operand 0 and operand 1 are equal.
26348         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
26349         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
26350         and operand 1 are equal.
26351         <default>: Ditto.  Remove ??? comment.
26352         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
26353         and operand 1 are equal.
26354         <default>: Ditto.  Remove ??? comment.
26355         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
26356         are equal.
26357         (*add<mode>_4) <default>: Ditto.
26358         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
26360 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
26362         * config/i386/i386-protos.h (ix86_print_operand): Declare.
26363         * config/i386/i386.c (ix86_print_operand): Make non-static.
26364         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
26365         * output.h (output_operand): Declare.
26366         * final.c (output_operand): Make non-static.
26368 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
26370         PR rtl-optimization/44013
26371         * sched-deps.c (add_dependence_list_and_free): Don't free lists
26372         when processing debug insns.
26374         PR debug/41371
26375         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
26376         recursing.  Check that recursion is bounded.  Rename inner var
26377         to avoid hiding incoming argument.
26379 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
26381         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
26382         operands[2] == 255.
26383         (*addqi_3): Ditto.
26384         (*addqi_4): Ditto.
26385         (*addqi_5): Ditto.
26386         (*addqi_ext_1_rex64): Ditto.
26387         (*addqi_ext_1): Ditto.
26389         (*addqi_4): Check for incdec_operand in QImode.
26391         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
26392         using SWI mode iterator.
26393         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
26394         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
26395         mode iterator.
26396         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
26397         using SWI mode iterator.
26399 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26401         PR c/25880
26402         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
26403         * c-format.c (gcc_diag_flag_specs): Add hash.
26404         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
26405         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
26406         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
26407         pp_c_cv_qualifiers. Handle qualifiers spelling here.
26408         (pp_c_type_qualifier_list): Call the function above.
26409         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
26410         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
26411         (WARN_FOR_QUALIFIERS): New macro.
26412         (convert_for_assignment): Use it.
26414 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
26416         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
26418 2010-06-04  Jan Hubicka  <jh@suse.cz>
26420         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
26421         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
26422         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
26423         DF_BYTE_LR_OUT): Update for embedded bitmaps.
26424         * fwprop.c (single_def_use_enter_block): Likewise.
26425         * ddg.c (create_ddg_dep_from_intra_loop_link,
26426         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
26427         * loop-iv.c (latch_dominating_def): Likewise.
26428         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
26429         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
26430         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
26431         df_rd_transfer_function, df_rd_top_dump,
26432         df_rd_bottom_dump): Update.
26433         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
26434         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
26435         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
26436         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
26437         df_lr_verify_solution_start, df_lr_verify_solution_end,
26438         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
26439         df_live_free_bb_info, df_live_alloc, df_live_reset,
26440         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
26441         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
26442         df_live_verify_solution_start, df_live_verify_solution_end,
26443         df_live_verify_transfer_functions, df_chain_create_bb,
26444         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
26445         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
26446         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
26447         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
26448         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
26449         df_byte_lr_transfer_function, df_byte_lr_top_dump,
26450         df_byte_lr_bottom_dump, df_create_unused_note,
26451         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
26452         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
26453         df_md_transfer_function, df_md_init, df_md_confluence_0,
26454         df_md_confluence_n,
26455         df_md_top_dump, df_md_bottom_dump): Update.
26456         (struct df_lr_problem_data): Embedd bitmap headers.
26458 2010-06-04  Jan Hubicka  <jh@suse.cz>
26460         * dce.c (dce_process_block): Do not re-scan already marked
26461         instructions.
26463 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
26465         PR rtl-optimization/39871
26466         PR rtl-optimization/40615
26467         PR rtl-optimization/42500
26468         PR rtl-optimization/42502
26469         * ira.c (init_reg_equiv_memory_loc: New function.
26470         (ira): Call it twice.
26471         * reload.h (calculate_elim_costs_all_insns): Declare.
26472         * ira-costs.c: Include "reload.h".
26473         (regno_equiv_gains): New static variable.
26474         (init_costs): Allocate it.
26475         (finish_costs): Free it.
26476         (ira_costs): Call calculate_elim_costs_all_insns.
26477         (find_costs_and_classes): Take estimated elimination costs
26478         into account.
26479         (ira_adjust_equiv_reg_cost): New function.
26480         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
26481         * reload1.c (init_eliminable_invariants, free_reg_equiv,
26482         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
26483         (elim_bb): New static variable.
26484         (reload): Move code out of here into init_eliminable_invariants and
26485         free_reg_equiv.  Call them.
26486         (calculate_elim_costs_all_insns): New function.
26487         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
26488         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
26489         but call note_reg_elim_costly if we turned a valid memory address
26490         into an invalid one.
26491         * Makefile.in (ira-costs.o): Depend on reload.h.
26493 2010-06-04  Julian Brown  <julian@codesourcery.com>
26495         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
26496         for pool ranges.
26498 2010-06-04  Richard Guenther  <rguenther@suse.de>
26500         PR lto/41584
26501         * cgraph.h (struct varpool_node): Add lto_file_data field.
26502         * lto-cgraph.c (input_varpool_node): Initialize it.
26504 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
26506         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
26507         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
26508         predicate in "type" attribute calculation.
26509         (*addsi_1_zext): Ditto.
26510         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
26511         (*addsi_2_zext): Ditto.
26512         (*add<mode>_3): Ditto.
26513         (*addsi_3_zext): Ditto.
26514         (*add<mode>_5): Ditto.
26516 2010-06-03  Jan Hubicka  <jh@suse.cz>
26518         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
26519         of bitmap_bit_p.
26520         * cfganal.c (compute_dominance_frontiers_1): Likewise.
26522 2010-06-03  Jan Hubicka  <jh@suse.cz>
26524         * df-problems.c (df_create_unused_note, df_note_bb_compute):
26525         micro-optimize the checks when to add new note.
26527 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
26529         * final.c (output_asm_insn): Call
26530         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
26531         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
26532         (output_address): Call targetm.asm_out.print_operand_address.
26533         Update comments.
26534         * target.h (struct gcc_target): Add print_operand,
26535         print_operand_address, and print_operand_punct_valid_p fields.
26536         * targhooks.h (default_print_operand): Declare.
26537         (default_print_operand_address): Declare.
26538         (default_print_operand_punct_valid_p): Declare.
26539         * targhooks.c (default_print_operand): Define.
26540         (default_print_operand_address): Define.
26541         (default_print_operand_punct_valid_p): Define.
26542         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
26543         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
26544         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
26545         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
26546         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
26547         * vmsdbgout.c (addr_const_to_string): Update comment.
26548         * config/i386/i386.c (print_operand): Rename to...
26549         (ix86_print_operand): ...this.  Make static.
26550         (print_operand_address): Rename to...
26551         (ix86_print_operand_address): ...this.  Make static.  Call
26552         ix86_print_operand instead of PRINT_OPERAND.
26553         (ix86_print_operand_punct_valid_p): New function.
26554         (TARGET_PRINT_OPERAND): Define.
26555         (TARGET_PRINT_OPERAND_ADDRESS): Define.
26556         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
26557         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
26558         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
26559         (PRINT_OPERAND): Delete.
26560         (PRINT_OPERAND_ADDRESS): Delete.
26561         * config/i386/i386-protos.h (print_operand): Delete prototype.
26562         (print_operand_address): Delete prototype.
26564 2010-06-03  Richard Guenther  <rguenther@suse.de>
26566         PR tree-optimization/44403
26567         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
26568         Preserve pointer qualifiers.
26569         (vect_create_data_ref_ptr): Likewise.
26571 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
26573         PR c++/44294
26574         * defaults.h (MAX_FIXED_MODE_SIZE): New.
26576         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
26578 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
26580         PR debug/44375
26581         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
26582         return false if merging the bbs would lead to goto_locus
26583         location being lost from the IL.
26585 2010-06-03  Jan Hubicka  <jh@suse.cz>
26586             Jakub Jelinek  <jakub@redhat.com>
26588         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
26589         set->regs[i] is NULL or has just one entry.
26591 2010-06-03  Jan Hubicka  <jh@suse.cz>
26593         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
26594         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
26596 2010-06-03  Paul Brook  <paul@codesourcery.com>
26598         * config/arm/arm.c (FL_TUNE): Define.
26599         (arm_default_cpu, arm_cpu_select): Remove.
26600         (all_cores): Populate core field.
26601         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
26602         (arm_find_cpu): New function.
26603         (arm_handle_option): Lookup cpu/architecture names.
26604         (arm_override_options): Cleanup mcpu/march/mtune handling.
26605         (arm_file_start): Ditto.
26607 2010-06-03  Alan Modra  <amodra@gmail.com>
26609         PR target/44169
26610         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
26611         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
26612         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
26613         (rs6000_emit_load_toc_table): Likewise.
26615 2010-06-02  Jan Hubicka  <jh@suse.cz>
26617         * passes.c (init_optimization_passes): Put ipa reference
26618         after ipa pure-const.
26620 2010-06-02  Jan Hubicka  <jh@suse.cz>
26622         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
26623         calls_read_all and calls_write_all.
26624         (get_reference_optimization_summary): Fix formatting.
26625         (is_proper_for_analysis): Check that decl is not readonly.
26626         (propagate_bits): Check CONST/PURE/noreturn flags.
26627         (ipa_init): Move all_module_statics to optimization_summary_obstack.
26628         (analyze_function): Ignore indirect edges.
26629         (copy_global_bitmap): For all module statics, do nothing.
26630         (generate_summary): Do not print calls_read_all/calls_write_all.
26631         (read_write_all_from_decl): Take node as argument; check
26632         cgraph_node_cannot_return.
26633         (propagate): Reorganize read_all/write_all computation;
26634         check indirect edges; check ecf flags; use all_module_statics
26635         in the results; do not free all_module_statics.
26636         (stream_out_bitmap): Handle all_module_statics.
26637         (ipa_reference_write_optimization_summary): Likewise; use
26638         varpool/cgraph encoders to get boundaries.
26639         (ipa_reference_read_optimization_summary): Read in all_module_statics;
26640         use it when possible.
26642 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
26644         PR target/44218
26645         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
26646         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
26648         * doc/extend.texi (powerpc builtins): Document vec_recip,
26649         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
26651         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
26652         (rs6000_emit_swrsqrt): Ditto.
26653         (rs6000_emit_swdivsf): Delete.
26654         (rs6000_emit_swdivdf): Ditto.
26655         (rs6000_emit_swrsqrtsf): Ditto.
26657         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
26658         describe the reciprocal estimate support for each type.
26659         (recip_options): Map -mrecip=<opt> into option bits.
26660         (gen_2arg_fn_t): New typedef for binary rtx gen function.
26661         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
26662         reciprocal estimate instructions.
26663         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
26664         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
26665         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
26666         cost information if -mdebug=cost or -mdebug=reg.
26667         (rs6000_override_options): Set -mrecip-precision for power6, and
26668         power7 machines.  If -mvsx or -mdfp, enable various options that
26669         came in previous instruction set ISAs, unless the option was
26670         explicitly disabled by the command line option.  Parse
26671         -mrecip=<opt> options.
26672         (rs6000_builtin_vectorized_function): Add support for vectorizing
26673         the reciprocal estimate builtins and expansions.
26674         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
26675         (bdesc_2arg): Add reciprocal estimate builtins.
26676         (bdesc_1arg): Add reciprocal square root estimate builtins.
26677         (rs6000_expand_builtin): Rewrite to use a switch statement,
26678         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
26679         (rs6000_init_builtins): Create declarations for reciprocal
26680         estimate builtins.
26681         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
26682         sized, prefer traditional floating point registers, if integer
26683         vector types, prefer altivec registers.  Don't actually look at
26684         the memory address any more.
26685         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
26686         builtins.
26687         (rs6000_load_constant_and_splat): New helper function to load up
26688         the constant for reciprocal estimate instructions.
26689         (rs6000_emit_madd): New helper function for generating
26690         multiply/add type instructions, based on the current switches.
26691         (rs6000_emit_msub): Ditto.
26692         (rs6000_emit_mnsub): Ditto.
26693         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
26694         replace a divide with a reciprocal estimate and fixup, adding
26695         support for machines with high precision and vectors.
26696         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
26697         low precision machines.
26698         (rs6000_emit_swdiv): New common function to be called to replace a
26699         division with reciprocal estimate and fixup.
26700         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
26701         for double and vector types.  Add support for high precision machines.
26703         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
26704         the reciprocal estimate instructions can be generated.
26705         (TARGET_FRE): Ditto.
26706         (TARGET_FRSQRTES): Ditto.
26707         (TARGET_FRSQRTE): Ditto.
26708         (RS6000_RECIP_*): New macros for reciprocal estimate support.
26710         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
26711         square root estimate on vectors.
26712         (re<mode>2): New insn for reciprocal division estimate on vectors.
26714         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
26715         New builtin.
26716         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
26717         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
26718         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
26719         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
26720         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
26721         (RS6000_BUILTIN_RSQRT): Ditto.
26722         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
26723         floating point builtin.
26725         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
26726         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
26727         __RECIP_PRECISION__ based on the command line switches.
26728         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
26730         * config/rs6000/rs6000.opt (-mrecip): Document add support for
26731         replacing division instructions with reciprocal estimate and fixup.
26732         (-mrecip=<opt>): New option.
26733         (-mrecip-precision): Ditto.
26735         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
26736         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
26737         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
26738         precision scalar.
26740         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
26741         (UNSPEC_VREFP): Ditto.
26742         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
26743         conterparts with regard to support of -mno-fused-madd and -ffast-math.
26744         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
26745         reciprocal estimate instructions to be generated.
26746         (altivec_vrefp): Ditto.
26748         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
26749         estimate support.
26750         (rreg): New mode attribute for reciprocal estimate support.
26751         (recip<mode>3): New insn for division using reciprocal estimate
26752         and fixup builtins.
26753         (divide define_split): New define_split to convert floating point
26754         division to use reciprocal estimate if the user used the
26755         appropriate options and the split is run when we can add new
26756         pseudo registers for the fixup.
26757         (rsqrt<mode>2): New insn for reciprocal square root support.
26758         (recipsf3): Move into recip<mode>3.
26759         (recipdf3): Ditto.
26760         (fres): Use TARGET_FRES.
26761         (rsqrtsf2): Move into rsqrt<mode>2.
26762         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
26763         (copysignsf3): Add support for VSX.
26764         (fred): Use TARGET_FRE.
26765         (fred_fpr): Ditto.
26766         (rsqrtdf_internal1): New function for frsqrte instruciton.
26768         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
26769         (vec_rsqrt): Ditto.
26771 2010-06-03  Richard Guenther  <rguenther@suse.de>
26773         PR middle-end/44291
26774         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
26775         (set_user_assembler_libfunc): Likewise.
26777 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26779         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
26780         defaults.h.
26781         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
26782         to defaults.h
26783         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
26784         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
26785         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
26786         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
26787         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
26788         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
26789         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
26790         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
26791         * defaults.h: Updated for above mentioned changes.
26793 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
26795         * c-common.c: Remove header include of tm_p.h.
26796         * Makefile.in (c-common.o): Remove TM_P_H dependency.
26798 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
26800         * tree.h (struct tree_decl_map): New type.
26801         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
26802         (tree_decl_map_hash): New prototype.
26803         (debug_expr_for_decl, value_expr_for_decl): Change into
26804         tree_decl_map hashtab from tree_map.
26805         (init_ttree): Adjust initialization.
26806         (tree_decl_map_hash): New function.
26807         (decl_debug_expr_lookup, decl_debug_expr_insert,
26808         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
26810 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26812         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
26813         linker emulations.
26814         * configure: Regenerate.
26815         * config.in: Regenerate.
26817         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
26818         (X86_64_EMULATION): Define.
26819         (TARGET_LD_EMULATION): Use them.
26821         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
26822         (SPARC64_EMULATION): Define.
26823         (LINK_ARCH_SPEC): Use them.
26825 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26827         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
26828         smallest_mode_for_size for computing the precision types of new
26829         graphite IVs.  Do not call lang_hooks.types.type_for_size.
26831 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26833         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
26834         information.
26835         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
26837 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26839         PR middle-end/44363
26840         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
26841         return false instead.
26843 2010-06-02  Jan Hubicka  <jh@suse.cz>
26845         PR middle-end/44295
26846         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
26847         create new cgraph node to check callee.
26849 2010-06-02  Richard Guenther  <rguenther@suse.de>
26851         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
26853 2010-06-02  Richard Guenther  <rguenther@suse.de>
26855         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
26856         (lto_wrapper_cleanup): ... this.  Do not exit.
26857         (fatal): Adjust.  Exit here.
26858         (fatal_perror): Likewise.
26859         (fatal_signal): New function.
26860         (main): Set up signal handlers to cleanup temporary files.
26861         * Makefile.in (lto-wrapper.o): Adjust dependencies.
26863 2010-06-02  Richard Guenther  <rguenther@suse.de>
26865         PR tree-optimization/44377
26866         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
26868 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26870         * config/s390/2097.md (z10_fhex): Remove insn reservation.
26871         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
26872         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
26873         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
26874         instruction.
26875         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
26877 2010-06-02  Jan Hubicka  <jh@suse.cz>
26879         * bitmap.c (bitmap_descriptor): Add search_iter.
26880         (bitmap_find_bit): Increment it.
26881         (print_statistics): Print it.
26883 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
26885         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
26886         instead of gimple_build_call_vec.  Delete unnecessary local variable.
26888 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26890         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
26891         change from yesterday.
26893 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26895         * c-ada-spec.c: Clean up redundant includes.
26897 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
26899         * gimplify.c: Do not include except.h and optabs.h.
26900         (gimplify_body): Do not initialize RTL profiling.
26901         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
26902         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
26903         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
26904         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
26905         langhooks.h.
26907         * tree-pretty-print.h: Include pretty-print.h.
26908         * gimple-pretty-print.h: Include pretty-print.h.
26910         * tree-pretty-print.c: Do not include diagnostic.h.
26911         * tree-vrp.c: Likewise.
26912         * tree-tailcall.c: Likewise
26913         * tree-scalar-evolution.c: Likewise
26914         * tree-ssa-dse.c: Likewise
26915         * tree-chrec.c: Likewise
26916         * tree-ssa-sccvn.c: Likewise
26917         * tree-ssa-copyrename.c: Likewise
26918         * tree-nomudflap.c: Likewise
26919         * tree-call-cdce.c: Likewise
26920         * tree-stdarg.c: Likewise
26921         * tree-ssa-math-opts.c: Likewise
26922         * tree-nrv.c: Likewise
26923         * tree-ssa-sink.c: Likewise
26924         * tree-browser.c: Likewise
26925         * tree-ssa-loop-ivcanon.c: Likewise
26926         * tree-ssa-loop.c: Likewise
26927         * tree-parloops.c: Likewise
26928         * tree-ssa-address.c: Likewise
26929         * tree-ssa-ifcombine.c: Likewise
26930         * tree-if-conv.c: Likewise
26931         * tree-data-ref.c: Likewise
26932         * tree-affine.c: Likewise
26933         * tree-ssa-phiopt.c: Likewise
26934         * tree-ssa-coalesce.c: Likewise
26935         * tree-ssa-pre.c: Likewise
26936         * tree-ssa-live.c: Likewise
26937         * tree-predcom.c: Likewise
26938         * tree-ssa-forwprop.c: Likewise
26939         * tree-ssa-dce.c: Likewise
26940         * tree-ssa-ter.c: Likewise
26941         * tree-ssa-loop-prefetch.c: Likewise
26942         * tree-optimize.c: Likewise
26943         * tree-ssa-phiprop.c: Likewise
26944         * tree-object-size.c: Likewise
26945         * tree-outof-ssa.c: Likewise
26946         * tree-ssa-structalias.c: Likewise
26947         * tree-switch-conversion.c: Likewise
26948         * tree-ssa-reassoc.c: Likewise
26949         * tree-ssa-operands.c: Likewise
26950         * tree-vectorizer.c: Likewise
26951         * tree-vect-data-refs.c: Likewise
26952         * tree-vect-generic.c: Likewise
26953         * tree-vect-stmts.c: Likewise
26954         * tree-vect-patterns.c: Likewise
26955         * tree-vect-slp.c: Likewise
26956         * tree-vect-loop.c: Likewise
26957         * tree-ssa-loop-ivopts.c: Likewise
26958         * tree-ssa-loop-im.c: Likewise
26959         * tree-ssa-loop-niter.c: Likewise
26960         * tree-ssa-loop-unswitch.c: Likewise
26961         * tree-ssa-loop-manip.c: Likewise
26962         * tree-ssa-loop-ch.c: Likewise
26963         * tree-dump.c: Likewise
26964         * tree-complex.c: Likewise
26966         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26967         * tree-ssa-uninit.c: Likewise
26968         * tree-ssa-threadupdate.c: Likewise
26969         * tree-ssa-uncprop.c: Likewise
26970         * tree-ssa-ccp.c: Likewise
26971         * tree-ssa-dom.c: Likewise
26972         * tree-ssa-propagate.c: Likewise
26973         * tree-ssa-alias.c: Likewise
26974         * tree-dfa.c: Likewise
26975         * tree-cfgcleanup.c: Likewise
26976         * tree-sra.c: Likewise
26977         * tree-ssa-copy.c: Likewise
26978         * tree-ssa.c: Likewise
26979         * tree-profile.c: Likewise
26980         * tree-cfg.c: Likewise
26981         * tree-ssa-threadedge.c: Likewise
26982         * tree-vect-loop-manip.c: Likewise
26984         * tree-inline.c: Do not include diagnostic.h and expr.h.
26985         Include rtl.h.
26986         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26988         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26989         * tree-loop-distribution.c: Likewise.
26991 2010-06-01  Jan Hubicka  <jh@suse.cz>
26993         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26995 2010-06-01  Jan Hubicka  <jh@suse.cz>
26997         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26998         remove return value.
26999         (split_bbs_on_noreturn_calls) .... here.
27000         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
27001         * tree-flow.h (fixup_noreturn_call): New.
27003 2010-06-01  Jan Hubicka  <jh@suse.cz>
27005         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
27007 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
27009         * tree.h (build_nt_call_list): Delete.
27010         * tree.c (build_nt_call_list): Delete.
27012 2010-06-01  Jan Hubicka  <jh@suse.cz>
27014         * fwprop.c: Make emit-rtl.h include last.
27015         * rtlanal.c: Include emit-rtl.h.
27016         * genautomata.c: Output emit-rtl include into insn-automata.c
27017         * df-scan.c: Include emit-rtl.h.
27018         * haifa-sched.c: Indlude emit-rtl.h.
27019         * mode-switching.c: Indlude emit-rtl.h.
27020         * graph.c: Indlude emit-rtl.h.
27021         * sel-sched.c: Include emit-rtl.h.
27022         * sel-sched-ir.c: Include emit-rtl.h.
27023         * ira-build.c: Include emit-rtl.h.
27024         * emit-rtl.c (first_insn, last_insn): Remove defines.
27025         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
27026         Move to emit-rtl.h.
27027         (set_new_first_and_last_insn, get_last_insn_anywhere,
27028         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
27029         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
27030         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
27031         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
27032         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
27033         Use accessor functions.
27034         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
27035          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
27036         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
27037         mem_expr_equal_p): Move here from rtl.h.
27038         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
27039         Move here from emit-rtl.c; make inline.
27040         * cfglayout.h: Include emit-rtl.h.
27041         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
27042          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
27043         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
27044         mem_expr_equal_p, get_insns, set_first-insn,
27045         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
27046         * reg-stack.c: Include emit-rtl.h.
27047         * dce.c: Likewise.
27049 2010-06-01  Jan Hubicka  <jh@suse.cz>
27051         * cgraph.h (tree_function_versioning): Update prototype.
27052         (cgraph_function_versioning): Update prototype.
27053         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
27054         bitmap.
27055         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
27056         (cgraph_materialize_clone, save_inline_function_body): Update use of
27057         tree_function_versioning.
27058         * tree-inline.c (copy_bb): Look for previous copied block to link
27059         after; fix debug output.
27060         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
27061         (copy_body): Likewise.
27062         (expand_call_inline): Update use of copy_body.
27063         (tree_function_versioning): Update use of copy body; accept
27064         blocks_to_copy and new_entry.
27066 2010-06-01  Jan Hubicka  <jh@suse.cz>
27068         * gegenrtl.c: Remove unnecesary prototypes.
27069         (gendecl): Remove.
27070         (gendef): Produce static inline.
27071         (gencode): Remove.
27072         (main): Do not decode parameters; generate header only.
27073         * Makefile.in (genrtl.c): Remove.
27075 2010-06-01  Jan Hubicka  <jh@suse.cz>
27077         * tree-switch-conversion.c (build_one_array): Make it readonly.
27079 2010-06-01  Richard Guenther  <rguenther@suse.de>
27081         * optabs.c (init_optabs): Guard all accesses to reinit.
27082         * ipa-pure-const.c (propagate): Fix another typo.
27083         * opts.c (common_handle_option): Split assignment to bool.
27084         * c-opts.c (c_common_handle_option): Likewise.
27086 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
27087             Matthew Gingell  <gingell@adacore.com>
27089         * doc/invoke.texi: Mention -fdump-ada-spec.
27090         * tree-dump.c (dump_files): Add ada-spec.
27091         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
27092         * tree-pass.h (tree_dump_index): Add TDI_ada.
27093         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
27094         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
27095         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
27096         * c-decl.c: Include c-ada-spec.h.
27097         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
27098         functions.
27099         (c_write_global_declarations): Add handling of -fdump-ada-spec.
27100         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
27101         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
27102         * c-ada-spec.h, c-ada-spec.c: New files.
27104 2010-06-01  Richard Guenther  <rguenther@suse.de>
27106         PR lto/43853
27107         * ipa-pure-const.c (get_function_state): Hand back varying state
27108         if we do not have one.
27109         (has_function_state): New function.
27110         (duplicate_node_data): Adjust.
27111         (remove_node_data): Likewise.
27112         (pure_const_write_summary): Likewise.
27113         (propagate): Likewise.  Fix typo.
27115 2010-06-01  Jan Hubicka  <jh@suse.cz>
27117         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
27118         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
27119         (execute_all_ipa_transforms): Do not play with the states.
27121 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
27123         * config/arm/t-linux-androideabi: New.
27124         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
27126 2010-06-01  Jan Hubicka  <jh@suse.cz>
27128         * tree-inline.c (estimate_num_insns): For stdarg functions look
27129         into call statement to count cost of argument passing.
27131 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
27133         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
27134         argument for fprintf.
27135         (ix86_output_addr_diff_elt): Likewise.
27136         (x86_function_profiler): Likewise.
27137         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
27138         (LPREFIX): Likewise.
27139         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
27141 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
27143         PR target/44338
27144         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
27145         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
27146         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
27147         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
27148         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
27149         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
27150         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
27151         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
27152         TARGET_FUSED_MADD.
27154 2010-05-31  Jan Hubicka  <jh@suse.cz>
27156         * tree.h (tree_range_check_failed): Declare noreturn.
27158 2010-05-31  Jan Hubicka  <jh@suse.cz>
27160         * gimple.c (gimple_call_builtin_p): New function.
27161         * gimple.h (gimple_call_builtin_p): Declare.
27162         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
27163         to exit.
27164         (execute_warn_function_return): BUILT_IN_RETURN is return.
27165         (split_critical_edges): Return edges are not critical.
27166         (is_ctrl_altering_stmt): Builtin_in_return is altering.
27167         (gimple_verify_flow_info): Handle built_in_return.
27168         (execute_warn_function_return): Handle built_in_return.
27169         * ipa-pure-const.c (check_call): Ignore builtin_return.
27171 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
27173         PR middle-end/44337
27174         * expr.c (expand_assignment): Don't store anything for out-of-bounds
27175         array accesses with non-MEM.
27177         PR tree-optimization/44182
27178         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
27179         newly needs to end a bb is followed by debug stmts, instead return
27180         true from the function at the end.
27181         (maybe_move_debug_stmts_to_successors): New function.
27182         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
27184 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
27186         PR target/44161
27187         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
27189 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
27191         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
27192         for nested functions in non-optimized compilation.
27194 2010-05-31  Richard Guenther  <rguenther@suse.de>
27196         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
27198 2010-05-30  Jan Hubicka  <jh@suse.cz>
27200         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
27202 2010-05-30  Richard Guenther  <rguenther@suse.de>
27204         PR lto/42975
27205         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
27206         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
27207         no longer needed.
27209 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
27211         * config/darwin.c (output_objc_section_asm_op): Add comment.
27212         (name_needs_quotes): Add '_' to list of valid comment chars.
27213         (machopic_output_function_base_name): Remove unneeded quotes.
27214         (darwin_encode_section_info): Adjust asm whitespace.
27215         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
27216         (ASM_OUTPUT_LOCAL): Ditto.
27217         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
27218         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
27219         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
27221 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
27223         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
27224         RS6000_OUTPUT_BASENAME unconditionally.
27225         (rs6000_output_function_epilogue): Likewise.
27227 2010-05-30  Jan Hubicka  <jh@suse.cz>
27229         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
27230         nodes.
27232 2010-05-30  Richard Guenther  <rguenther@suse.de>
27234         * tree-cfg.c (verify_gimple_assign_single): Implement
27235         verification for COND_EXPR rhs.
27237 2010-05-30  Jan Hubicka  <jh@suse.cz>
27239         * cgraph.h (cgraph_dump_file): Declare.
27240         * cgraphunit.c (cgraph_dump_file): Export.
27241         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
27243 2010-05-30  Jan Hubicka  <jh@suse.cz>
27245         * dwarf2out.c (reference_to_unused,
27246         premark_types_used_by_global_vars_helper): Avoid creation of new
27247         varpool nodes.
27249 2010-05-30  Jan Hubicka  <jh@suse.cz>
27251         * cgraph.h (cgraph_node_cannot_return,
27252         cgraph_edge_cannot_lead_to_return): New functions.
27253         * cgraph.c (cgraph_node_cannot_return,
27254         cgraph_edge_cannot_lead_to_return): Use them.
27255         * ipa-pure-const.c (pure_const_names): New static var.
27256         (check_call): Handle calls not leading to return.
27257         (pure_const_read_summary): Dump info read.
27258         (propagate): Dump info about propagation process; ignore side effects
27259         of functions not leading to exit; fix handling of pure functions.
27261 2010-05-30  Jan Hubicka  <jh@suse.cz>
27263         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
27264         for tail call epilogues.
27266 2010-05-30  Jan Hubicka  <jh@suse.cz>
27268         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
27269         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
27270         dump files.
27272 2010-05-29  Jan Hubicka  <jh@suse.cz>
27274         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
27275         node; remove references in node we no longer keep in cgrpah but need
27276         body of.
27278 2010-05-29  Jan Hubicka  <jh@suse.cz>
27280         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
27282 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27284         PR target/44165
27285         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
27287 2010-05-29  Jan Hubicka  <jh@suse.cz>
27289         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
27290         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
27291         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
27292         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
27293         debug_names_replaced_by, debug_update_ssa): Likewise.
27294         * sbitmap.c (debug_sbitmap): Likewise.
27295         * genrecog.c (debug_decision, debug_decision_list): Likewise.
27296         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
27297         debug_tree_chain): Likewise.
27298         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
27299         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
27300         * optabs.c (debug_optab_libfuncs): Likewise.
27301         (verify_loop_closed_ssa): Likewise.
27302         * value-prof.c (verify_histograms): Likewise.
27303         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
27304         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
27305         * cfghooks.c (verify_flow_info): Likewise.
27306         * fold-const.c (debug_fold_checksum): Likewise.
27307         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
27308         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
27309         Likewise.
27310         * omega.c (debug_omega_problem): Likewise.
27311         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
27312         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
27313         * dominance.c (verify_dominators, debug_dominance_info,
27314         debug_dominance_tree): Likewise.
27315         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
27316         * df_regno_debug, df_ref_debug,
27317         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
27318         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
27319         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
27320         * sel-sched.c (debug_state): Likewise.
27321         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
27322         Likewise.
27323         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
27324         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
27325         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
27326         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
27327         Likewise.
27328         * c-pretty-print.c (debug_c_tree): Likewise.
27329         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
27330         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
27331         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
27332         * ebitmap.c (debug_ebitmap): Likewise.
27333         * function.c (debug_find_var_in_block_tree): Likewise.
27334         * print-rtl.c (debug_rtx): Likewise.
27335         (debug_rtx_count): Likewise.
27336         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
27337         * stor-layout.c (debug_rli): Likewise.
27338         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
27339         * tree-data-ref.c (debug_data_references,
27340         debug_data_dependence_relations, debug_data_reference,
27341         debug_data_dependence_relation, debug_rdg_vertex,
27342         debug_rdg_component, debug_rdg): Likewise.
27343         * tree-affine.c (debug_aff): Likewise.
27344         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
27345         Likewise.
27346         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
27347         * emit-rtl.c (verify_rtl_sharing): Likewise.
27348         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
27349         debug_value_expressions): Likewise.
27350         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
27351         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
27352         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
27353         * cfglayout.c (verify_insn_chain): Likewise.
27354         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
27355         debug_clast_stmt, debug_generated_program): Likewise.
27356         * ggc-page.c (debug_print_page_list): Likewise.
27357         * tree-ssa-ter.c (debug_ter): Likewise.
27358         * graphite-dependences.c (debug_pddr): Likewise.
27359         * sched-deps.c (debug_ds): Likewise.
27360         * tree-ssa.c (verify_ssa): Likewise.
27361         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
27362         debug_scattering_functions, debug_iteration_domains, debug_pdr,
27363         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
27364         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
27365         * tree-inline.c (debug_find_tree): Likewise.
27366         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
27367         debug_ppl_powerset_matrix): Likewise.
27368         * var-tracking.c (debug_dv): Likewise.
27369         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
27370         * cfgloop.c (verify_loop_structure): Likewise.
27371         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
27372         * c-common.c (verify_sequence_points): Likewise.
27373         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
27374         debug_candidates, debug_rgn_dependencies): Likewise.
27375         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
27376         * debug_constraint_graph, debug_solution_for_var,
27377         debug_sa_points_to_info): Likewise.
27378         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
27379         Likewie.
27380         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
27381         debug_loops, debug_loop, debug_loop_num): Likewise.
27382         * passes.c (debug_pass): Likewise.
27383         (dump_properties): Likewise; add cfglayout property.
27384         (debug_properties): Likewise.
27385         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
27386         * varpool.c (debug_varpool): Likewise.
27387         * regcprop.c (debug_value_data): Likewise.
27388         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
27389         debug_immediate_uses_for): Likewise.
27391 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
27393         PR bootstrap/44315
27394         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
27395         Filter out insn-flags.h.
27397 2010-05-29  Jan Hubicka  <jh@suse.cz>
27399         * cgraph.h (struct varpool_node_set_def,
27400         struct cgraph_node_set_def): Remove unused AUX pointer.
27401         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
27402         VEC_empty macro.
27404 2010-05-29  Jan Hubicka  <jh@suse.cz>
27406         PR middle-end/44324
27407         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
27409 2010-05-29  Richard Guenther  <rguenther@suse.de>
27411         * lto-streamer.c (cached_bp): New global variable.
27412         (bitpack_create): Return the cached bitpack, if available.
27413         (bitpack_delete): Clear and cache the bitpack, if appropriate.
27414         (bp_pack_value): Remove redundant asserts.
27416 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
27418         PR middle-end/44306
27419         * tree-if-conv.c (is_true_predicate): New.
27420         (is_predicated): Use is_true_predicate.
27421         (add_to_predicate_list): Same.  Do not use unshare_expr.
27422         (add_to_dst_predicate_list): Same.
27424 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
27426         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
27427         field on edges.
27428         (predicate_bbs): Same.
27429         (clean_predicate_lists): Same.
27430         (find_phi_replacement_condition): Do not AND the predicate from
27431         edge->aux.
27433 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
27435         PR bootstrap/44315
27436         * Makefile.in (build/gencondmd.o): Add a missing `\'.
27438 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27440         PR target/44261
27441         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
27442         (negdf2): Adjust expander pattern and use negdf2_slow.
27443         (negsf2): Likewise.
27445 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
27447         * basic-block.h (struct control_flow_graph): Move last_label_uid field
27448         up.
27449         * df.h (struct df_base_ref): Move regno field up.
27450         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
27451         * expr.h (struct separate_ops): Move location field up.
27452         * optabs.h (struct optab_d): Move libcall_basename field down.
27453         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
27454         * config/i386/i386.h (struct machine_function): Convert call_abi field
27455         into a bitfield.  Move cfa field to the end of the structure.
27457 2010-05-29  Jan Hubicka  <jh@suse.cz>
27459         * varpool.c (varpool_get_node): Fix lookup.
27461 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27463         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
27464         RTL specific prototypes with #ifdef RTX_CODE.
27465         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
27466         * config/spu/t-spu-elf: Fix dependencies.
27468         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
27470 2010-05-29  Mike Stump  <mikestump@comcast.net>
27472         PR bootstrap/44315
27473         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
27474         TM_H when building to avoid dependency loops.
27476 2010-05-29  Jan Hubicka  <jh@suse.cz>
27478         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
27479         refs and body; not the whole node for masters of materialized clones.
27481 2010-05-29  Mike Stump  <mikestump@comcast.net>
27483         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
27485 2010-05-29  Jan Hubicka  <jh@suse.cz>
27487         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
27488         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
27489         use of clone_function_name.
27490         * cgraph.h (cgraph_create_virtual_clone,
27491         cgraph_function_versioning): update prototypes.
27492         (clone_function_name): Declare.
27493         * ipa-cp.c (ipcp_insert_stage): Update call of
27494         cgraph_create_virtual_clone.
27495         * omp-low.c (create_omp_child_function_name): Use
27496         cgraph_create_virtual_clone.
27497         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
27498         (cgraph_function_versioning): Take SUFFIX argument; produce new name
27499         and make decl local.
27501 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27503         * vec.h: Include statistics.h
27504         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
27505         with VEC_H.
27507 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27509         * c-lex.c: Do not include c-tree.h.
27510         * c-pretty-print.c: Likewise.
27511         * c-opts.c: Likewise.
27512         * c-gimplify.c: Likewise.
27513         * c-common.c: Likewise.
27514         * c-dump.c: Likewise.  Include c-common.h.
27516 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27518         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
27519         before including diagnostic-core.h.
27520         (c_cpp_error): New prototype moved from c-tree.h.
27521         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
27522         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
27523         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
27524         (c_cpp_error): Prototype moved to c-common.h.
27525         * Makefile.in: Update dependency for C_COMMON_H.
27527 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27529         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
27530         * c-common.c (c_register_addr_space): Remove here.
27531         * c-decl.c (c_register_addr_space): Re-add here.
27533 2010-05-28  Mike Stump  <mikestump@comcast.net>
27535         * config/darwin-c.c: Remove c-tree.h include.
27537 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27539         * gcc.c: Include diagnostic.h.
27540         (error_count): Remove.  All users changed to use errorcount.
27541         (programname): Remove.  All users changed to use progname.
27542         (fancy_abort, internal_error, fatal_error, error, warning, inform,
27543         fnotice): Remove.
27544         (execute): Don't include "Internal error" and bug reporting
27545         information in argument of internal_error call.
27546         (process_command): Don't increment error_count after calling
27547         perror_with_name.
27548         (input_filename): Rename to gcc_input_filename.  All users
27549         changed.
27550         (main): Call diagnostic_initialize.  Register delete_temp_files
27551         with atexit.  Use seen_error to test for errors.
27552         * gcc.h: Include diagnostic-core.h.
27553         (fatal_error, error, warning): Remove.
27554         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
27555         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
27556         (gcc.o): Update dependencies.
27558 2010-05-28  Jeff Law  <law@redhat.com>
27560         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
27561         functions.
27562         * ira.h (ira_bad_reload_regno): Declare
27563         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
27565         * ira-color.c (update_curr_costs): Free updated hard reg costs.
27566         (ira_reassign_conflict_allocnos): Remove bogus asserts.
27567         (allocno_reload_assign): Likewise.
27569 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
27571         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
27572         build1_stat.
27574 2010-05-28  Richard Guenther  <rguenther@suse.de>
27576         PR lto/44312
27577         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
27578         Stream fixed-point constants mode.
27579         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
27580         and TYPE_PRECISION.
27581         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
27582         Stream fixed-point constants mode.
27583         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
27584         and TYPE_PRECISION.
27586 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27588         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
27589         only place it was called from.
27590         (number_of_latch_executions): Do not return chrec_dont_know when the
27591         may_be_zero is a runtime condition: instead, return a COND_EXPR
27592         including the may_be_zero condition.
27593         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
27594         of nb_iterations.
27595         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
27596         COND_EXPRs.
27598 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27600         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
27601         generate COND_EXPRs for degenerate_phi_result.
27603 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27605         PR middle-end/44293
27606         * tree-if-conv.c (if_convertible_loop_p): Check the
27607         if-convertibility of phi nodes in non predicated BBs.
27609 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27611         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
27613 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27615         PR driver/15303
27616         * gcc.c (inform, warning, inform): New functions.
27617         (fatal_ice): Rename to internal_error; change cmsgid parameter to
27618         gmsgid.  All callers changed.
27619         (notice): Rename to fnotice; add parameter fp.  All callers changed.
27620         (fatal_error): Rename to fatal_signal.  All users changed.
27621         (fatal): Rename to fatal_error; change cmsgid parameter to
27622         gmsgid.  All callers changed.
27623         (process_command): Use warning instead of error for warnings.
27624         (end_going_arg): Don't use _() around argument of error.
27625         (do_spec_1): Use inform for message from %n specs.  Use warning
27626         instead of error for warnings.
27627         (main): Use inform for comparison messages.  Use warning for
27628         message about unused linker input.
27629         (error): Increment error_count.  Print "error: ".
27630         * gcc.h (fatal): Change to fatal_error.
27631         (warning): Declare.
27632         * config/darwin-driver.c (darwin_default_min_version): Use warning
27633         instead of fprintf for warnings.
27634         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
27636 2010-05-28  Julian Brown  <julian@codesourcery.com>
27638         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
27639         (*thumb2_addsi3_compare0_scratch): New.
27640         * config/arm/constraints.md (Pv): New.
27641         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
27642         for ARM mode only.
27643         (*addsi3_compare0_scratch): Likewise.
27645 2010-05-28  Jan Hubicka  <jh@suse.cz>
27647         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
27648         check.
27649         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
27650         only on local statics.
27652 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
27654         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
27656 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
27658         PR bootstrap/44314
27659         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
27660         (OPTION_GLIBC): Define.
27662 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
27664         PR debug/41048
27665         * dwarf2out.c (double_int_type_size_in_bits): New function.
27666         (round_up_to_align): Change first argument and return value to
27667         double_int.
27668         (field_byte_offset): Work internally on double_ints.
27670         PR target/43636
27671         * builtins.c (expand_movstr): Use a temporary pseudo instead
27672         of target even when target is not NULL and not const0_rtx, but
27673         fails movstr predicate.
27674         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
27676 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27678         * final.c (rest_of_clean_state): Use %m in errors instead of
27679         strerror (errno).
27680         * gengtype.c (read_input_list, close_output_files): Use xstrerror
27681         instead of strerror.
27682         * toplev.c (process_options): Use %m in errors instead of strerror
27683         (errno).
27684         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
27685         (errno).
27687 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
27689         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
27690         (ix86_canonical_va_list_type): Make static.  Add declaration.
27691         (ix86_enum_va_list): Make static.  Reindent.
27692         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
27693         (ix86_canonical_va_list_type): Ditto.
27694         (ix86_enum_va_list): Ditto.
27696 2010-05-28  Richard Guenther  <rguenther@suse.de>
27698         * lto-wrapper.c (run_gcc): With -save-temps generate a
27699         user-visible ltrans filename.  Fixup ltrans unit numbering.
27701 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
27703         * c-common.c (c_common_nodes_and_builtins): Replace use
27704         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
27705         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
27706         to ix86_enum_va_list.
27707         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
27708         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
27709         (TARGET_ENUM_VA_LIST_P): Add hook description.
27710         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
27711         * target.h (gcc_target): Add enum_va_list hook.
27713         PR bootstrap/44299
27714         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
27715         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
27716         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
27718 2010-05-28  Alan Modra  <amodra@gmail.com>
27720         PR target/44266
27721         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
27722         emit_library_call machinery to set up __tls_get_addr calls.
27724 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27726         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
27728 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
27730         Revert fix for PR c++/44188
27731         * c-common.c (is_typedef_decl): Revert the moving of  this
27732         definition ...
27733         * tree.c (is_typedef_decl): ... here.
27734         (typdef_variant_p): Revert the moving of this  definition
27735         here from cp/tree.c.
27736         * c-common.h (is_typedef_decl): Revert the moving of this
27737         declaration ...
27738         * tree.h (is_typedef_decl): ... here.
27739         (typedef_variant_p): Revert the moving of this  declaration here
27740         from cp/cp-tree.h
27741         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
27742         (gen_tagged_type_die): Revert the splitting out of ...
27743         (gen_type_die_with_usage): ... this function. Revert the anonymous
27744         tagged type handling.
27745         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
27746         typedefs naming anonymous tagged types.
27748 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
27750         * config/rs6000/rs6000-modes.def (PSImode): Delete.
27752 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
27754         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
27755         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
27756         throughout.
27757         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
27758         "xer" to "ca".
27759         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
27760         XER_REGS to CA_REGS throughout.
27761         * config/rs6000/rs6000.h: Same.
27762         (ADDITIONAL_REGISTER_NAMES): Add "xer".
27763         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
27764         that mode_iterator "P" is the size for arithmetic carries as well.
27765         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
27767 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
27769         PR bootstrap/44255
27770         * combine.c (struct rtx_subst_pair): Define unconditionally.
27771         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
27772         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
27773         Call make_compound_operation on pair->to.
27774         (propagate_for_debug): Don't call make_compound_operation here.
27775         Always use simplify_replace_fn_rtx.
27777 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
27779         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
27780         * config/xtensa/xtensa.c (override_options): Check
27781           TARGET_FORCE_NO_PIC and set flag_pic.
27782         * config/xtensa/xtensa.opt: Document -mforce-no-pic
27784 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27786         PR bootstrap/44299
27787         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
27788         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
27790 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27792         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
27793         toplev.h.
27794         * diagnostic.c: Don't include toplev.h.
27795         (progname): Define.  Moved from toplev.c.
27796         (seen_error): New function.
27797         * diagnostic.h: Include diagnostic-core.h.
27798         (diagnostic_t, emit_diagnostic): Don't declare here.
27799         * toplev.c (progname): Move to toplev.c.
27800         (emit_debug_global_declarations, compile_file, finalize,
27801         do_compile, toplev_main): Use seen_error.
27802         * toplev.h: Include diagnostic-core.h.
27803         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
27804         internal_error, warning, warning_at, error, error_n, error_at,
27805         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
27806         verbatim, fnotice, progname): Move to diagnostic-core.h.
27807         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
27808         (expand_builtin_expect): Use seen_error.
27809         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
27810         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
27811         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
27812         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
27813         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
27814         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
27815         errorcount for errors.
27816         * c-opts.c (c_common_finish): Use seen_error.
27817         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27818         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
27819         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
27820         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
27821         (get_coverage_counts): Use seen_error.
27822         * dwarf2out.c (dwarf2out_finish): Use seen_error.
27823         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
27824         gimplify_body): Use seen_error.
27825         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
27826         * ipa-pure-const.c (gate_pure_const): Use seen_error.
27827         * ipa-reference.c (gate_reference): Use seen_error.
27828         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
27829         * lambda-code.c: Include diagnostic-core.h instead of
27830         diagnostic.h.
27831         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27832         * lto-compress.c: Include diagnostic-core.h instead of
27833         diagnostic.h.
27834         * lto-section-in.c: Include diagnostic-core.h instead of
27835         diagnostic.h.
27836         * lto-streamer-out.c: Include diagnostic-core.h instead of
27837         diagnostic.h.
27838         * lto-streamer.c: Include diagnostic-core.h instead of
27839         diagnostic.h.
27840         (gate_lto_out): Use seen_error.
27841         * matrix-reorg.c: Include diagnostic-core.h instead of
27842         diagnostic.h.
27843         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
27844         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
27845         (gate_expand_omp, lower_omp_1): Use seen_error.
27846         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
27847         (rest_of_decl_compilation, rest_of_type_compilation,
27848         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
27849         * tree-cfg.c (label_to_block_fn): Use seen_error.
27850         * tree-inline.c (optimize_inline_calls): Use seen_error.
27851         * tree-mudflap.c (mudflap_finish_file): Use
27852         seen_error.
27853         * tree-optimize.c (gate_all_optimizations,
27854         gate_all_early_local_passes, gate_all_early_optimizations): Use
27855         seen_error.
27856         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
27857         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
27858         (varpool_remove_unreferenced_decls,
27859         varpool_assemble_pending_decls): Use seen_error.
27860         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
27861         (TOPLEV_H, DIAGNOSTIC_H): Update.
27862         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
27863         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
27864         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
27865         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
27866         coverage.o, lambda-code.o): Update dependencies.
27868 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27870         PR c++/44188
27871         * c-common.c (is_typedef_decl): Move this definition ...
27872         * tree.c (is_typedef_decl): ... here.
27873         (typdef_variant_p): Move definition here from cp/tree.c.
27874         * c-common.h (is_typedef_decl): Move this declaration ...
27875         * tree.h (is_typedef_decl): ... here.
27876         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27877         * dwarf2out.c (is_naming_typedef_decl): New function.
27878         (gen_tagged_type_die): Split out of ...
27879         (gen_type_die_with_usage): ... this function. When an anonymous
27880         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27881         is emitted for the typedef.
27882         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27883         anonymous tagged types.
27885 2010-05-27  Jason Merrill  <jason@redhat.com>
27887         * print-tree.c (debug_vec_tree): New fn.
27888         (print_vec_tree): New fn.
27889         * tree.h: Declare them.
27890         * gdbinit.in (pvt): New command.
27892         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
27894         * gdbinit.in (pdd): New command.
27896 2010-05-27  Jan Hubicka  <jh@suse.cz>
27898         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
27899         (update_caller_keys): Return early if there are no callers;
27900         only update fibheap when decresing the key.
27901         (update_callee_keys): Avoid recursion.
27902         (decide_inlining_of_small_functions): When badness does not match;
27903         re-insert into fibheap.
27905 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
27907         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
27908         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
27909         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
27910         (ALL_HOST_OBJS): Now a union of the above two.
27911         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
27912         all files in ALL_HOST_FRONTEND_OBJS.
27913         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
27915         * c-common.c: Pretend to be a backend file by undefining
27916         IN_GCC_FRONTEND (still need rtl.h here).
27918 2010-05-27  Jan Hubicka  <jh@suse.cz>
27920         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
27921         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
27923 2010-05-27  Jan Hubicka  <jh@suse.cz>
27925         * sched-ebb.c: Rename struct deps to struct deps_desc.
27926         * ddg.c: Likewise.
27927         * sel-sched-ir.c: Likewise.
27928         * sched-deps.c: Likewise.
27929         * sched-int.h: Likewise.
27930         * sched-rgn.c: Likewise.
27932 2010-05-27  Jon Beniston  <jon@beniston.com>
27934         PR 43726
27935         * config/lm32/lm32.h: Remove definition of
27936         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
27938 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27940         PR lto/44230
27941         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
27943 2010-05-27  Richard Guenther  <rguenther@suse.de>
27945         PR tree-optimization/44284
27946         * tree-vect-stmts.c (vectorizable_assignment): Handle
27947         sign-changing conversions as simple copy.
27949 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27951         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
27952         Bionic C library.
27953         (__gthread_active_p): Check for pthread_create if compiling against
27954         Bionic C library.
27956 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27958         Support compilation for Android platform.  Reimplement -mandroid.
27960         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27961         (*android*): Set ANDROID_DEFAULT.
27962         (arm*-*-linux*): Include linux-android.h.
27963         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27964         * config/arm/eabi.h: Remove, move Android-specific parts ...
27965         * config/linux-android.h: ... here.  New file.
27966         * config/arm/eabi.opt: Rename to ...
27967         * config/linux-android.opt: ... this.
27968         (mandroid): Allow -mno-android option.  Initialize based on
27969         ANDROID_DEFAULT.
27970         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27971         Move logic to corresponding LINUX_TARGET_* macros.
27972         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27973         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27974         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27975         Android definitions.
27976         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27977         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27978         Document.
27980 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27982         Add support for Bionic C library
27984         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27985         macro.
27986         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27987         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27989         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27990         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27991         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27992         to support multiple C libraries.  Handle Bionic.
27993         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27994         (BIONIC_DYNAMIC_LINKER64): Define.
27995         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27996         Update.
27997         (TARGET_HAS_SINCOS): Enable for Bionic.
27999         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
28000         the last option specified on command line take effect.
28001         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
28002         (mbionic): New.
28003         (mglibc, muclibc): Update.
28005         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
28006         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
28007         DEFAULT_LIBC.
28009         * doc/invoke.texi (-mglibc, -muclibc): Update.
28010         (-mbionic): Document.
28012 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28014         * c-common.h (c_register_addr_space): Add prototype.
28015         (ADDR_SPACE_KEYWORD): Remove.
28016         * c-common.c (c_register_addr_space): New function.
28017         (c_addr_space_name): Reimplement.
28018         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
28020         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
28021         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
28023         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
28024         Remove TARGET_ADDR_SPACE_KEYWORDS.
28026 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
28028         * input.c: New file.
28029         * input.h (main_input_filename): Move declaration to toplev.h.
28030         * toplev.c (input_location, line_table): Move to input.c
28031         * toplev.h (main_input_filename): Move declaration from input.h.
28032         * tree.c (expand_location): Move to input.c.
28033         * Makefile.in (OBJS-common): Add input.o.
28034         (input.o): Add dependencies.
28036 2010-05-27  Richard Guenther  <rguenther@suse.de>
28038         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
28039         for non-existant files.
28040         (fork_execute): Mark args_name file as deleted.
28042 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
28044         PR bootstrp/44287
28045         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
28046         (narrow_signed_type): Likewise.
28048 2010-05-26  Jan Hubicka  <jh@suse.cz>
28050         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
28051         edge only when checking is enabled; check using former_clone_of;
28052         check inline clones too.
28053         (cgraph_materialize_clone): Record former_clone_of pointer.
28054         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
28055         combining redirections; dump args_to_skip bitmap
28056         (cgraph_materialize_all_clones): Do no redirection here.
28057         * ipa-inline.c (inline_transform): Do redirection here.
28058         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
28059         cheking only).
28061 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28063         * config/avr/avr-c.c: Do not include regs.h.
28064         Include cpplib.h for cpp_define and tree.h for c-common.h.
28065         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
28066         * config/avr/t-avr: Fix dependencies for avr-c.o.
28068 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28070         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
28071         string instead of SYMBOL_REF rtx.
28072         * rtl.h (set_stack_check_libfunc): Move prototype from here...
28073         * libfuncs.h: ...to here.  Adjust for explow.c change.
28075 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
28077         * pretty-print.c: Don't include ggc.h.
28078         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
28079         (identifier_to_locale): Use them for allocation.
28080         * pretty-print.h (identifier_to_locale_alloc,
28081         identifier_to_locale_free): Declare.
28082         * toplev.c (alloc_for_identifier_to_locale): New.
28083         (general_init): Set identifier_to_locale_alloc and
28084         identifier_to_locale_free.
28085         * Makefile.in (pretty-print.o): Update dependencies.
28087 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
28089         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
28090         pointer types if they have different alignment or mode.
28092 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
28094         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28095         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28096         * config/sparc/sparc-protos.h (function_value): Remove declaration.
28097         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
28098         sparc_function_value_regno_p): New functions.
28099         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28100         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28101         (function_value): Rename to...
28102         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
28103         argument to 'outgoing'.
28104         (function_arg_record_value, function_arg_union_value,
28105         function_arg_vector_value): Update comment.
28107 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
28109         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
28110         (fde_needed_for_eh_p): New predicate.
28111         (output_call_frame_info): Use it throughout to decide whether FDEs
28112         are needed for EH purpose.
28113         (dwarf2out_begin_prologue): Reorder assignments.
28115 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28117         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
28118         special case loop->header.
28119         (is_predicated): New.
28120         (if_convertible_loop_p): Call it.
28122 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28124         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
28125         iterator in parameter.  Do not generate code during the analysis.
28126         (tree_if_convert_cond_stmt): Removed.
28127         (tree_if_convert_stmt): Removed.
28128         (predicate_bbs): New.
28129         (if_convertible_loop_p): Call predicate_bbs.
28130         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
28131         now contains all the analysis part.
28133 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28135         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
28136         statements in the analysis part.
28137         (tree_if_convert_stmt): Update comment.
28138         (remove_conditions_and_labels): New.
28139         (combine_blocks): Call remove_conditions_and_labels.
28140         (tree_if_conversion): Update comment.
28142 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28144         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
28145         than 2 predecessors or more than 2 successors.
28147 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28149         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
28150         of loops in which the data dependence analysis fails.
28152 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28154         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
28155         CDI_POST_DOMINATORS.
28156         (tree_if_conversion): Same.
28158 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28160         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
28162 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28164         * tree-if-conv.c: Update copyright years.  Fix comments.
28165         Fix indentation.
28167 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
28169         * builtin-types.def (BT_INT128): New primitive type.
28170         (BT_UINT128): Likewise.
28171         * c-common.c (c_common_r): Add __int128 keyword.
28172         (c_common_type_for_size): Handle __int128.
28173         (c_common_type_for_mode): Likewise.
28174         (c_common_signed_or_unsigned_type): Likewise.
28175         (c_common_nodes_and_builtins): Add builtin type
28176         if target supports 128-bit integer scalar.
28177         * c-common.h (enum rid): Add RID_INT128.
28178         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
28179         if target supports 128-bit integer scalar.
28180         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
28181         (finish_declspecs): Likewise.
28182         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
28183         (c_token_starts_declspecs): Likewise.
28184         (c_parser_declspecs): Likewise.
28185         (c_parser_attributes): Likewise.
28186         (c_parser_objc_selector): Likewise.
28187         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
28188         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
28189         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
28190         * tree.c (make_or_reuse_type): Likewise.
28191         (make_unsigned_type): Likewise.
28192         (build_common_tree_nodes_2): Likewise.
28193         * tree.h (enum integer_type_kind): Add itk_int128 and
28194         itk_unsigned_int128.
28195         (int128_integer_type_node): New define.
28196         (int128_unsigned_type_node): New define.
28197         * doc/extend.texi: Add documentation about __int128 type.
28199 2010-05-26  Richard Guenther  <rguenther@suse.de>
28201         * tree-ssa-sccvn.c (copy_nary): Adjust.
28202         (copy_phis): Rename to ...
28203         (copy_phi): ... this.  Adjust.
28204         (copy_references): Rename to ...
28205         (copy_reference): ... this.  Adjust.
28206         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
28207         result into the valid table.
28209 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28211         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
28212         insn-config.h, insn-codes.h, recog.h, and optabs.h.
28214 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28216         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
28218 2010-05-26  Richard Guenther  <rguenther@suse.de>
28220         * opts.c (common_handle_option): Handle OPT_Ofast.
28222 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
28224         * diagnostic.c: Don't include opts.h.
28225         (permissive_error_option): Define.
28226         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
28227         for classify_diagnostic.  Don't use memset for
28228         classify_diagnostic.  Initialize new and recently added fields.
28229         (diagnostic_classify_diagnostic): Use context->n_opts instead of
28230         N_OPTS.
28231         (diagnostic_report_diagnostic): Pass context parameter to
28232         diagnostic_report_warnings_p.  Use option_enabled and option_name
28233         hooks from context.
28234         (emit_diagnostic): Use permissive_error_option.
28235         (permerror): Likewise.
28236         * diagnostic.h: Don't include options.h.
28237         (struct diagnostic_context): Add n_opts, opt_permissive,
28238         inhibit_warnings, warn_system_headers, option_enabled and
28239         option_name fields.  Change classify_diagnostic to a pointer.
28240         * opts-diagnostic.h: New file.
28241         * opts.c: Include opts-diagnostic.h.
28242         (common_handle_option): Set global_dc fields for -Wfatal-errors,
28243         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
28244         (option_name): New function.
28245         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
28246         (c_common_handle_option): Set global_dc->permissive for
28247         -fpermissive.
28248         * c-common.c (c_cpp_error): Save and restore
28249         global_dc->warn_system_headers, not variable warn_system_headers.
28250         * toplev.c: Include opts-diagnostic.h.
28251         (general_init): Update call to diagnostic_initialize.  Set
28252         global_dc->show_column, global_dc->option_enabled and
28253         global_dc->option_name.
28254         (process_options): Don't set global_dc fields here.
28255         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
28256         (diagnostic.o, opts.o, toplev.o): Update dependencies.
28258 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
28260         * config/picochip/picochip.md (movsi): Split a movsi from a
28261         const after reload.
28263 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28265         * ggc-zone.c: Update copyright year.
28266         (poison_region): Mark memory for Valgrind as undefined before
28267         memset () call and inaccessible afterwards.
28268         (ggc_pch_total_size): Change type of i to int.
28270 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28272         * ggc-common.c (ggc_free_overhead): Allow empty slot.
28274 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28276         * ggc-common.c: Update copyright year.
28277         (ggc_rlimit_bound): Remove prototype.  Compile only if
28278         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
28279         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
28280         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
28281         (ggc_min_heapsize_heuristic): Likewise.
28283 2010-05-26  Richard Guenther  <rguenther@suse.de>
28285         PR rtl-optimization/44164
28286         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
28287         no-common access-path disambiguation.
28288         (indirect_ref_may_alias_decl_p): Adjust.
28289         (indirect_refs_may_alias_p): Likewise.
28290         (refs_may_alias_p_1): Likewise.
28292 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28294         * c-typeck.c: Do not include expr.h.
28296 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28298         * rtl.h (decl_default_tls_model): Move prototype from here...
28299         * output.h: ...to here.
28300         * c-decl.c: Do not include rtl.h.
28301         * c-pragma.c: Likewise.
28302         * c-parser.c: Likewise.
28303         * c-gimplify.c: Likewise.  And also not hard-reg-set.
28304         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
28305         FIXME note for it.  Add a FIXME note for expr.h.
28306         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
28307         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
28308         defined.
28310 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
28312         PR target/44199
28313         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
28314         or total_size is larger than red zone size for non-V4 ABI, emit a
28315         stack_tie resp. frame_tie insn before stack pointer restore.
28316         * config/rs6000/rs6000.md (frame_tie): New insn.
28318 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
28320         * function.h (struct function): Add can_throw_non_call_exceptions bit.
28321         * lto-streamer-in.c (input_function): Stream it in.
28322         * lto-streamer-out.c (output_function): Stream it out.
28323         * function.c (allocate_struct_function): Set it.
28324         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
28325         for flag_non_call_exceptions.
28326         * cfgbuild.c (control_flow_insn_p): Likewise.
28327         (make_edges): Likewise.
28328         * cfgexpand.c (expand_stack_alignment): Likewise.
28329         * combine.c (distribute_notes): Likewise.
28330         * cse.c (cse_extended_basic_block): Likewise.
28331         * except.c (insn_could_throw_p): Likewise.
28332         * gcse.c (simple_mem): Likewise.
28333         * ipa-pure-const.c (check_call): Likewise.
28334         (check_stmt ): Likewise.
28335         * lower-subreg.c (lower-subreg.c): Likewise.
28336         * optabs.c (emit_libcall_block): Likewise.
28337         (prepare_cmp_insn): Likewise.
28338         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
28339         * postreload.c (rest_of_handle_postreload): Likewise.
28340         * reload1.c (reload_as_needed): Likewise.
28341         (emit_input_reload_insns): Likewise.
28342         (emit_output_reload_insns): Likewise.
28343         (fixup_abnormal_edges): Likewise.
28344         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
28345         * store-motion.c (find_moveable_store): Likewise.
28346         * tree-eh.c (stmt_could_throw_p): Likewise.
28347         (tree_could_throw_p): Likewise.
28348         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
28349         * config/arm/arm.c (arm_expand_prologue): Likewise.
28350         (thumb1_expand_prologue): Likewise.
28351         * config/rx/rx.md (cbranchsf4): Likewise.
28352         (cmpsf): Likewise.
28353         * config/s390/s390.c (s390_emit_prologue): Likewise.
28354         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
28355         (inline_forbidden_into_p): New predicate.
28356         (expand_call_inline): Use it to forbid inlining.
28357         (tree_can_inline_p): Likewise.
28359 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
28361         * config/i386/i386-c.c: Do not include rtl.h.
28362         * config/i386/t-i386: Update dependencies.
28364 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
28366         * attribs.c: Do not include rtl.h.
28367         * Makefile.in: Update dependencies.
28369 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
28371         * double-int.h (double_int_and): New.
28372         * combine.c (try_combine): Clean up, use double_int_* and
28373         immed_double_int_const functions.
28375 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28377         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
28378         stderr to /dev/null instead of grep -q.
28379         * configure: Regenerate.
28381 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
28383         * Makefile.in (EXCEPT_H): Fix typo.
28385 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
28387         * ira-build.c (update_conflict_hard_reg_costs): New.
28388         (ira_build): Call update_conflict_hard_reg_costs.
28390 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
28392         PR debug/41371
28393         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
28394         ENABLE_CHECKING.
28395         (intersect_loc_chains): Walk the s2var's loc_chain together
28396         with s1node chain as long as the locations are equal, don't
28397         call find_loc_in_1pdv in that case.
28399         PR debug/42801
28400         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
28401         (copy_bind_expr): ... instead of here.
28402         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
28403         if the block hasn't been remapped.
28404         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
28405         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
28407 2010-05-25  Richard Guenther  <rguenther@suse.de>
28409         PR middle-end/44069
28410         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
28411         out-of-bounds array accesses.
28413 2010-05-25  Richard Guenther  <rguenther@suse.de>
28415         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
28416         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
28417         (run_gcc): Re-organize to make cleanup easier.
28419 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28421         * config/s390/s390.c (optimization_options): Fix and move the
28422         flag_prefetch_loop_arrays override ...
28423         (override_options): ... here.
28425 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
28427         * diagnostic.c: Don't include plugin.h.
28428         (diagnostic_report_diagnostic): Don't handle plugins specially
28429         here.  Pass context to internal_error callback.
28430         * diagnostic.h (struct diagnostic_context): Add context parameter
28431         to internal_error callback.
28432         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
28433         * plugin.h (struct diagnostic_context): Declare.
28434         (warn_if_plugins, plugins_internal_error_function): Declare.
28435         * toplev.c (general_init): Set global_dc->internal_error.
28436         * Makefile.in (diagnostic.o): Update dependencies.
28438 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
28440         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
28441         * config/rs6000/t-darwin64: New.
28442         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
28443         build crt2.
28445 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
28447         PR 44203
28448         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
28449         match the original (and intended) behaviour before r159557.  This
28450         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
28451         in two ways.
28453 2010-05-25  Richard Guenther  <rguenther@suse.de>
28455         * doc/invoke.texi: Document -Ofast.
28456         * target.h (struct gcc_target): Add handle_ofast.
28457         * target-def.h (TARGET_HANDLE_OFAST): Add.
28458         (TARGET_INITIALIZER): Adjust.
28459         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
28460         * common.opt (Ofast): Add.
28462 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
28464         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
28465         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
28467 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
28469         PR target/43610
28470         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
28471         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
28472         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
28473         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
28475 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
28477         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
28478         DW_OP_minus with negated offset instead of DW_OP_plus.
28479         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
28481 2010-05-25  Wei Guozhi  <carrot@google.com>
28483         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
28484         tst instruction and a new alternative.
28485         * config/arm/constraints.md (Pu): New constraint.
28487 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
28489         * function.c (assign_stack_local_1): Initialize variable
28490         to avoid warning when bootstrapping at -O3.
28492 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
28494         * configure.ac (all_lang_makefiles): Remove everything related to it.
28495         * configure: Regenerate.
28496         * Makefile.in: Fix reference to ada Make-lang.in.
28497         Remove support for LANG_MAKEFILES.
28499 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
28500             Sandra Loosemore  <sandra@codesourcery.com>
28502         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
28503         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
28504         description.  Add arm_neon_fp16_ok.
28505         (Add Options): Add arm_neon and arm_neon_fp16.
28507 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
28509         * diagnostic.c: Don't include flags.h.
28510         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
28511         context parameters.  Check flags in the context passed as a parameter.
28512         (diagnostic_build_prefix): Add context parameter.  Check
28513         show_column flag in context.
28514         (diagnostic_action_after_output): Check fatal_errors flag in context.
28515         (diagnostic_report_current_module): Check show_column flag in context.
28516         (default_diagnostic_starter): Update call to
28517         diagnostic_build_prefix.
28518         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
28519         (emit_diagnostic): Pass context to permissive_error_kind.
28520         (permerror): Pass context to permissive_error_kind.
28521         * diagnostic.h (struct diagnostic_context): Add show_column,
28522         pedantic_errors, permissive and fatal_errors fields.
28523         (diagnostic_build_prefix): Update prototype.
28524         * langhooks.c
28525         * toplev.c (process_options): Set flags in global_dc from
28526         flag_show_column, flag_pedantic_errors, flag_permissive,
28527         flag_fatal_errors.
28528         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
28529         to diagnostic_build_prefix.
28530         * Makefile.in (diagnostic.o): Update dependencies.
28532 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
28534         * config/i386/ia32intrin.h (__crc32q): Define only if
28535         __SSE4_2__ is defined.
28537 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
28539         PR target/44132
28540         PR middle-end/43602
28541         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
28542         DECL_VISIBILITY_SPECIFIED.
28543         (emutls_decl): Set DECL_PRESERVE_P and copy
28544         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
28545         (emutls_finalize_control_var): New callback.
28546         (emutls_finish): Finalize emutls control variables.
28547         * toplev.c (compile_file): Move the call to emutls_finish ()
28548         before varpool_assemble_pending_decls ().
28550 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
28552         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
28553         added to the preprocessor condition.
28555 2010-05-24  Paul Brook  <paul@codesourcery.com>
28557         * gengtype-lex.l: Add HARD_REG_SET.
28558         * expr.c (expand_expr_real_1): Record writes to hard registers.
28559         * function.c (rtl_data): Add asm_clobbers.
28560         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
28561         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
28562         Use crtl->asm_clobbers.
28564 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28566         * doc/makefile.texi (Makefile): Mention stages 'profile'
28567         and 'feedback' for profiledbootstrap.
28569 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
28571         PR target/44245
28572         * config/i386/i386.c (def_builtin): Properly check
28573         OPTION_MASK_ISA_64BIT.
28575 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
28577         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
28578         typedefs with different but compatible types.  Allow duplicate
28579         typedefs with the same type except for pedantic non-C1X, but give
28580         warning for variably modified types.
28581         * c-typeck.c (tagged_types_tu_compatible_p,
28582         function_types_compatible_p, type_lists_compatible_p,
28583         comptypes_internal): Add parameter different_types_p; set
28584         *different_types_p for different but compatible types.  All
28585         callers changed.
28586         (comptypes_check_different_types): New.
28587         * c-tree.h (comptypes_check_different_types): Declare.
28589 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
28591         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
28592         * jump.c: Include basic-block.h.
28593         * profile.c: Likewise.
28594         * tree-profile.c: Likewise.
28595         * coverage.c: Likewise.
28596         * basic-block.h (optimize_function_for_size_p): Move to function.h.
28597         (optimize_function_for_speed_p): Likewise.
28598         * function.h (optimize_function_for_size_p,
28599         optimize_function_for_speed_p): Moved here from basic-block.h.
28600         * Makefile.in: Update dependencies.
28602 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28604         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
28605         before calling make; allow override through $MAKE.
28606         * doc/invoke.texi (Optimize Options): Document override.
28608 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
28610         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
28611         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28612         (rs6000_mode_dependent_address_ptr): Make static.
28613         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28614         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
28615         Remove.
28617 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
28619         PR target/43869
28620         * config/i386/i386.c: Make sure that the correct regparm is passed.
28622 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
28624         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
28625         * sbitmap.c: ...to here to internalize sbitmap element access.
28626         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
28627         Explain why basic-block.h is included.
28628         * function.h: Include tm.h for CUMULATIVE_ARGS.
28629         * Makefile.in: Update dependencies.
28631 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
28633         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
28634         New core types.
28635         * sbitmap.h (struct sbitmap_def): Do not typedef here.
28636         * sbitmap.c: Include sbitmap.h.
28637         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
28638         hard-reg-set.h.  Split everything related to regsets out from here...
28639         * regset.h: ...to here.  New file.
28640         * df.h: Include regset.h and sbitmap.h.
28641         * tree-flow.h: Likewise.
28642         * cfgloop.h: Likewise.
28643         * except.h: Do not include sbitmap.h.  Include hashtab.h.
28644         * cgraph.h: Include vec.h and function.h.
28645         * reload.h (struct insn_chain): Change types of live_throughout
28646         and dead_or_set from regset_head to bitmap_head.
28647         (compute_use_by_pseudos): Be defined also if regset.h is not included.
28648         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
28649         spilled_regs from regset_head to bitmap_head to avoid dependency
28650         in regset.h.
28651         * sel-sched-ir.h: Include regset.h.
28652         * reload.c: Include df.h before reload.h.
28653         * caller-save.c: Likewise.
28654         * reload1.c: Likewise.
28655         * ira.c: Likewise.
28656         (mark_elimination): Update type of r to bitmap, consistent with
28657         DF_LR_IN.
28658         * dominance.c: Include bitmap.h.
28659         * modulo-sched.c: Include df.h.
28660         * cfganal.c: Include bitmap.h and sbitmap.h.
28661         * cfgbuild.c: Include sbitmap.h.
28662         * lcm.c: Include sbitmap.h.
28663         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
28664         * domwalk.c: Include sbitmap.h, exclude ggc.h.
28665         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
28666         * cselib.c: Include bitmap.h.
28667         * tree-optimize.c: Include regset.h.
28668         * stmt.c: Include bitmap.h.
28669         * Makefile.in: Update dependencies.
28671 2010-05-22  Jan Hubicka  <jh@suse.cz>
28673         * cgraph.h (struct varpool_node): Add same_comdat_group.
28674         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
28675         pointer.
28676         (output_varpool): Update call of lto_output_varpool_node.
28677         (input_varpool): Read same_comdat_group pointer.
28678         (input_varpool_1): Fixup same_comdat_group pointer.
28679         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
28680         group is needed, all are.
28681         * varpool.c (varpool_remove_node): Remove node from same comdat group
28682         linklist too.
28683         (varpool_analyze_pending_decls): Walk same comdat groups.
28685 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
28687         * rtl.h (union rtunion_def): Remove rt_bit member.
28688         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
28689         * print-rtl (print_rtx): Do not print the member.
28690         * gengtype.c (adjust_field_rtx_def): Do not handle it.
28691         * gengenrtl.c (type_from_format): Likewise.
28692         (accessor_from_format): Likewise.
28694 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
28696         * dbgcnt.c: Include toplev.h instead of errors.h.
28697         * ira-emit.c: Don't include errors.h.
28698         * ira.c: Include toplev.h instead of errors.h.
28699         * lto-compress.c: Include toplev.h instead of errors.h.
28700         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
28701         ira.o, dbgcnt.o): Update dependencies.
28703 2010-05-22  Richard Guenther  <rguenther@suse.de>
28705         * gimple.c (gimple_types_compatible_p): Check type qualifications
28706         before merging pointer to complete and pointer to incomplete type.
28707         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
28708         we use our own resolution algorithm.  The gold linker plugin
28709         doesn't do the job we want it to do here.
28711 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
28713         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28714         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28715         (sparc_mode_dependent_address_p): New function.
28717 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28719         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
28721         * timevar.c: Do not include any core headers.
28722         (timevar_print): De-i18n-ize.
28723         (print_time): Likewise.
28724         * timevar.h (timevar_push, timevar_pop): Make inline functions.
28726 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
28728         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
28729         langhooks-def.h.
28730         (diagnostic_initialize): Initialize x_data not last_function.
28731         (diagnostic_report_current_function): Move to tree-diagnostic.c.
28732         (default_diagnostic_starter): Call
28733         diagnostic_report_current_module not
28734         diagnostic_report_current_function.
28735         (diagnostic_report_diagnostic): Initialize x_data not
28736         abstract_origin.
28737         (verbatim): Likewise.
28738         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
28739         x_data.
28740         (struct diagnostic_context): Change last_function to x_data.
28741         (diagnostic_auxiliary_data): Replace with
28742         diagnostic_context_auxiliary_data and
28743         diagnostic_info_auxiliary_data.
28744         (diagnostic_last_function_changed, diagnostic_set_last_function,
28745         diagnostic_report_current_function): Move to tree-diagnostic.h.
28746         (print_declaration, dump_generic_node, print_generic_stmt,
28747         print_generic_stmt_indented, print_generic_expr,
28748         print_generic_decl, debug_c_tree, dump_omp_clauses,
28749         print_call_name, debug_generic_expr, debug_generic_stmt,
28750         debug_tree_chain, default_tree_printer): Move to
28751         tree-pretty-print.h.
28752         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
28753         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
28754         gimple-pretty-print.h.
28755         * pretty-print.c: Don't include tree.h
28756         (pp_base_format): Don't handle %K here.
28757         (pp_base_tree_identifier): Move to tree-pretty-print.c.
28758         * pretty-print.h (text_info): Change abstract_origin to x_data.
28759         (pp_tree_identifier, pp_unsupported_tree,
28760         pp_base_tree_identifier): Move to tree-pretty-print.h.
28761         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
28762         tree-pretty-print.h: New files.
28763         * tree-pretty-print.c: Include tree-pretty-print.h.
28764         (percent_K_format): New.  Moved from pretty-print.c.
28765         (pp_base_tree_identifier): Move from pretty-print.c.
28766         * c-objc-common.c: Include tree-pretty-print.h.
28767         (c_tree_printer): Handle %K here.
28768         * langhooks.c: Include tree-diagnostic.h.
28769         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
28770         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
28771         (default_tree_printer): Handle %K using percent_K_format.
28772         (general_init): Use default_tree_diagnostic_starter.
28773         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
28774         (free_lang_data): Use default_tree_diagnostic_starter.
28775         * c-pretty-print.c: Include tree-pretty-print.h.
28776         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28777         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28778         * dwarf2out.c: Include tree-pretty-print.h.
28779         * except.c: Include tree-pretty-print.h.
28780         * gimple-pretty-print.c: Include tree-pretty-print.h and
28781         gimple-pretty-print.h.
28782         * gimplify.c: Include tree-pretty-print.h.
28783         * graphite-poly.c: Include tree-pretty-print.h and
28784         gimple-pretty-print.h.
28785         * ipa-cp.c: Include tree-pretty-print.h.
28786         * ipa-inline.c: Include gimple-pretty-print.h.
28787         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28788         * ipa-pure-const.c: Include gimple-pretty-print.h.
28789         * ipa-struct-reorg.c: Include tree-pretty-print.h and
28790         gimple-pretty-print.h.
28791         * ipa-type-escape.c: Include tree-pretty-print.h.
28792         * print-rtl.c: Include tree-pretty-print.h.
28793         * print-tree.c: Include gimple-pretty-print.h.
28794         * sese.c: Include tree-pretty-print.h.
28795         * tree-affine.c: Include tree-pretty-print.h.
28796         * tree-browser.c: Include tree-pretty-print.h.
28797         * tree-call-cdce.c: Include gimple-pretty-print.h.
28798         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28799         * tree-chrec.c: Include tree-pretty-print.h.
28800         * tree-data-ref.c: Include tree-pretty-print.h and
28801         gimple-pretty-print.h.
28802         * tree-dfa.c: Include tree-pretty-print.h.
28803         * tree-if-conv.c: Include tree-pretty-print.h and
28804         gimple-pretty-print.h.
28805         * tree-inline.c: Include tree-pretty-print.h.
28806         * tree-into-ssa.c: Include tree-pretty-print.h and
28807         gimple-pretty-print.h.
28808         * tree-nrv.c: Include tree-pretty-print.h.
28809         * tree-object-size.c: Include tree-pretty-print.h and
28810         gimple-pretty-print.h.
28811         * tree-outof-ssa.c: Include tree-pretty-print.h and
28812         gimple-pretty-print.h.
28813         * tree-parloops.c: Include tree-pretty-print.h and
28814         gimple-pretty-print.h.
28815         * tree-predcom.c: Include tree-pretty-print.h and
28816         gimple-pretty-print.h.
28817         * tree-scalar-evolution.c: Include tree-pretty-print.h and
28818         gimple-pretty-print.h.
28819         * tree-sra.c: Include tree-pretty-print.h.
28820         * tree-ssa-address.c: Include tree-pretty-print.h.
28821         * tree-ssa-alias.c: Include tree-pretty-print.h.
28822         * tree-ssa-ccp.c: Include tree-pretty-print.h and
28823         gimple-pretty-print.h.
28824         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
28825         * tree-ssa-copy.c: Include tree-pretty-print.h and
28826         gimple-pretty-print.h.
28827         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
28828         * tree-ssa-dce.c: Include tree-pretty-print.h and
28829         gimple-pretty-print.h.
28830         * tree-ssa-dom.c: Include tree-pretty-print.h and
28831         gimple-pretty-print.h.
28832         * tree-ssa-dse.c: Include gimple-pretty-print.h.
28833         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
28834         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
28835         * tree-ssa-live.c: Include tree-pretty-print.h and
28836         gimple-pretty-print.h.
28837         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
28838         gimple-pretty-print.h.
28839         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
28840         gimple-pretty-print.h.
28841         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
28842         gimple-pretty-print.h.
28843         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
28844         gimple-pretty-print.h.
28845         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
28846         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
28847         * tree-ssa-operands.c: Include tree-pretty-print.h and
28848         gimple-pretty-print.h.
28849         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
28850         gimple-pretty-print.h.
28851         * tree-ssa-pre.c: Include tree-pretty-print.h and
28852         gimple-pretty-print.h.
28853         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
28854         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
28855         gimple-pretty-print.h.
28856         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
28857         gimple-pretty-print.h.
28858         * tree-ssa-sink.c: Include gimple-pretty-print.h.
28859         * tree-ssa-ter.c: Include tree-pretty-print.h and
28860         gimple-pretty-print.h.
28861         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
28862         * tree-ssa.c: Include tree-pretty-print.h and
28863         gimple-pretty-print.h.
28864         * tree-stdarg.c: Include gimple-pretty-print.h.
28865         * tree-switch-conversion.c: Include gimple-pretty-print.h.
28866         * tree-tailcall.c: Include tree-pretty-print.h and
28867         gimple-pretty-print.h.
28868         * tree-vect-data-refs.c: Include tree-pretty-print.h and
28869         gimple-pretty-print.h.
28870         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
28871         gimple-pretty-print.h.
28872         * tree-vect-loop.c: Include tree-pretty-print.h and
28873         gimple-pretty-print.h.
28874         * tree-vect-patterns.c: Include gimple-pretty-print.h.
28875         * tree-vect-slp.c: Include tree-pretty-print.h and
28876         gimple-pretty-print.h.
28877         * tree-vect-stmts.c: Include tree-pretty-print.h and
28878         gimple-pretty-print.h.
28879         * tree-vectorizer.c: Include tree-pretty-print.h.
28880         * tree-vrp.c: Include tree-pretty-print.h and
28881         gimple-pretty-print.h.
28882         * value-prof.c: Include tree-pretty-print.h and
28883         gimple-pretty-print.h.
28884         * var-tracking.c: Include tree-pretty-print.h.
28885         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
28886         (tree-diagnostic.o): New dependencies.
28887         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
28888         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
28889         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
28890         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
28891         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
28892         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
28893         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
28894         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
28895         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
28896         tree-ssa-address.o, tree-ssa-loop-niter.o,
28897         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
28898         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
28899         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
28900         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
28901         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
28902         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
28903         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
28904         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
28905         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
28906         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
28907         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
28908         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
28909         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
28910         tree-switch-conversion.o, var-tracking.o, value-prof.o,
28911         cfgexpand.o, pretty-print.o): Update dependencies.
28913 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
28915         * tree-ssa-structalias.c: Remove tm_p.h from include.
28917 2010-05-21  Jeff Law  <law@redhat.com>
28919         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
28921 2010-05-21  Jason Merrill  <jason@redhat.com>
28923         * tree-eh.c (cleanup_is_dead_in): New.
28924         (lower_try_finally): Don't generate a dead cleanup region.
28925         (lower_cleanup): Likewise.
28927 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28929         PR debug/44223
28930         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
28931         unchain each use from the cyclic next_regno_use chain first.
28933 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28935         * real: Do not include gmp.h, mpfr.h, and mpc.h.
28936         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
28937         (real_value_negate, real_value_abs): New prototypes.
28938         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
28939         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
28940         new include file for interface between MPFR and REAL_VALUE_TYPE.
28941         * real.c: Include realmpfr.h.
28942         (real_arithmetic2): Remove legacy function.
28943         (real_value_negate): New.
28944         (real_value_abs): New.
28945         (mfpr_from_real, real_from_mpfr): Move from here...
28946         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
28947         * builtins.c: Include realmpfr.h.
28948         * fold-const.c: Include realmpfr.h.
28949         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
28950         (fold_negate_const): Likewise.
28951         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
28952         * toplev.c: Include realmpfr.h.
28953         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
28954         and real_value_negate.
28955         * fixed-value.c (check_real_for_fixed_mode): Likewise.
28956         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
28957         (vfp3_const_double_index): Likewise.
28958         (arm_print_operand): Likewise.
28959         * Makefile.in: Update dependencies.
28961 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28963         * config/s390/s390.c (override_options): Increase the default
28964         of max-completely-peel-times.
28966 2010-05-21  Julian Brown  <julian@codesourcery.com>
28967             Mark Mitchell  <mark@codesourcery.com>
28969         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28970         sibling calls for Thumb-1.
28971         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28972         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28973         Thumb-2.
28974         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28975         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28976         for Thumb-2.
28977         (return): New expander.
28978         (*arm_return): New name for ARM return insn.
28979         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28981 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28983         * config.gcc (sparc64-*-rtems*): New target.
28985 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28987         * tree.c (build_function_decl_skip_args): Fix grammar.
28988         (build_function_type_list_1): Fix typos, adjust formatting.
28990 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28992         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28993         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28994         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28995         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28996         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28997         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28998         tree-pretty-print.c, tree-loop-distribution.c,
28999         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
29000         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
29001         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
29002         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
29003         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
29004         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
29005         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
29006         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
29007         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
29008         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
29009         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
29010         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
29011         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
29012         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
29013         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
29014         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
29015         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
29016         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
29017         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
29018         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
29019         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
29020         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
29021         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
29022         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
29023         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
29024         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
29025         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
29026         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
29027         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
29028         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
29029         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
29030         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
29031         config/score/score7.c, config/score/score.c, config/arm/arm.c,
29032         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
29033         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
29034         config/bfin/bfin.c: Clean up redundant includes.
29035         * Makefile.in: Update accordingly.
29037 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
29039         PR middle-end/44204
29040         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
29041         statement has no arguments.
29043 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
29045         PR/44139
29046         * varasm.c (emutls_decl): Merge attributes to new decl.
29048 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
29050         PR middle-end/44101
29051         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
29052         around the uniquized constructor if its type requires a conversion.
29054 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
29056         PR debug/44205
29057         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
29058         at -O0 goto_locus of any of the incoming edges differs from
29059         goto_locus of outgoing edge, or gimple_location of any of the
29060         labels differs.
29062 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
29064         * ira.c (ira_non_ordered_class_hard_regs): Define.
29065         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
29066         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
29067         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
29068         cost of unaligned hard regs when allocating multi-reg pseudos.
29070 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
29072         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
29073         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
29074         for TARGET_NO_FLOAT.
29075         * config/mips/mips.c (mips_file_start): Expand conditional expression
29076         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
29077         (mips_override_options): Move -mno-float override -msoft-float and
29078         -mhard-float.
29079         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
29080         Condition(TARGET_SUPPORTS_NO_FLOAT).
29081         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
29082         __mips_no_float here.
29083         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
29084         (TARGET_SUPPORTS_NO_FLOAT): Define.
29085         * config/mips/sdemtk.opt: Delete.
29087 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
29089         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
29091 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
29093         PR target/43733
29094         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
29095         * configure: Regenerate.
29096         * config.in: Regenerate.
29097         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
29098         instead of sahf only for 64bit targets.
29100 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
29102         PR debug/44178
29103         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
29104         setup_ref_regs for DEBUG_INSNs.
29106 2010-05-20  Jan Hubicka  <jh@suse.cz>
29108         PR middle-end/44197
29109         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
29111 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
29113         PR bootstrap/43870
29114         * df-scan.c (df_ref_compare): Stabilize sort.
29116 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
29118         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
29119         argument.  Don't use DW_OP_piece if offset is non-zero,
29120         put offset into second DW_OP_bit_piece argument.
29121         (dw_sra_loc_expr): Adjust callers.  For memory expressions
29122         compute offset.
29124 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
29126         PR target/44202
29127         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
29128         settings for 16-bit-constant "addo" alternative.
29130 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
29132         * config/mips/mips-dsp.md (add<DSPV:mode>3,
29133         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
29135         PR target/43764
29136         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
29137         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
29138         Use it.
29140 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
29142         * diagnostic.c (FLOAT, FFS): Don't undefine.
29143         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
29144         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
29145         include ordering.
29147 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
29149         * combine.c (propagate_for_debug): Call make_compound_operation
29150         on the source value.
29151         (try_combine): When implementing a split chosen by find_split_point,
29152         either copy i2src or set it to null.  Assert that i2src is not null
29153         before substituting into CALL_INSN_FUNCTION_USAGE.
29155 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
29157         * double-int.h (double_int_ior): New function.
29158         * tree.h (build_int_cst_wide_type): Remove.
29159         * tree.c (build_int_cst_wide_type): Remove.
29160         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
29161         of build_int_cst_wide_type.
29162         * stor-layout.c (set_sizetype): (Ditto.).
29163         * dojump.c (do_jump): Use build_int_cstu instead of
29164         build_int_cst_wide_type.
29166 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
29168         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
29169         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
29170         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
29171         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
29172         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
29173         propagate the 'data' argument to copy_tree_r.
29174         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
29175         Propagate 'data' argument to walk_tree.
29176         (copy_if_shared): New function.
29177         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
29178         (unmark_visited): New function.
29179         (unshare_body): Call copy_if_shared instead of doing it manually.
29180         (unvisit_body): Call unmark_visited instead of doing it manually.
29182 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
29184         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
29185         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
29186         * hooks.c: Likewise.
29187         * target-def.h (TARGET_FOLD_BUILTIN): Define to
29188         hook_tree_tree_int_treep_bool_null.
29189         * target.h (struct gcc_target): Update signature of fold_builtin
29190         field.
29191         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
29192         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
29193         instead of the call expression.
29194         (fold_builtin_call_array): Pass n and argarray directly.
29195         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
29196         consing a list.
29197         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
29198         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
29199         `i' and use it in place of `arity'.
29200         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
29201         Dereference `args' directly.
29202         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
29204 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29206         * doc/sourcebuild.texi (Effective-Target Keywords): Document
29207         3dnow, sse3, sse2.
29208         (Directives): Document optional dg-require-effective-target
29209         selector.
29211 2010-05-19  Richard Guenther  <rguenther@suse.de>
29213         PR lto/44196
29214         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
29216 2010-05-19  Richard Guenther  <rguenther@suse.de>
29218         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
29219         * common.opt (fwhopr=): New.
29220         * opts.c (common_handle_option): Handle OPT_fwhopr.
29221         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
29222         * collect2.c (main): Match -fwhopr*.
29223         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
29224         Execute ltrans stage in parallel when jobs is bigger than 1.
29226 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29228         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
29229         pentiumpro on Solaris 8/x86 with Sun as.
29230         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
29231         hidden alias bug.
29232         (gcc_cv_as_ix86_quad): Check for .quad directive.
29233         * configure: Regenerate.
29234         * config.in: Regenerate.
29235         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
29237 2010-05-19  Martin Jambor  <mjambor@suse.cz>
29239         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
29240         also for indirect edges.  Actual printing moved...
29241         (ipa_print_node_jump_functions_for_edge): ...here.
29242         (ipa_compute_jump_functions): Renamed to
29243         ipa_compute_jump_functions_for_edge and made static.
29244         (ipa_compute_jump_functions): New function.
29245         (make_edge_direct_to_target): Check if the number of arguments on
29246         the newly direct edge is the same as the number of parametrs of
29247         the callee.
29248         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
29249         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
29250         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
29251         analysis functions unconditionally, call the new
29252         ipa_analyze_params_uses on the node instead of every edge.
29254 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
29256         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
29257         to tree.
29258         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
29259         also checks for a constant int vs.  non-constant but
29260         loop-invariant steps.
29261         (find_or_create_group): Change the sort algorithm to only consider
29262         steps that are constant ints.
29263         (idx_analyze_ref): Adopt code to handle a tree instead of a
29264         HOST_WIDE_INT for step.
29265         (gather_memory_references_ref): Handle tree instead of int and be
29266         prepared to see a NULL_TREE.
29267         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
29268         prefetches if the step cannot be calculated at compile time.
29269         (issue_prefetch_ref): Issue prefetches for non-constant but
29270         loop-invariant steps.
29272 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
29274         Revert:
29275         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
29277         * tree.h (build_call_list): Remove.
29278         * tree.c (build_call_list): Remove.
29280 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
29282         * tree.h (build_call_list): Remove.
29283         * tree.c (build_call_list): Remove.
29285 2010-05-18  Jan Hubicka  <jh@suse.cz>
29287         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
29289 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
29291         PR rtl-optimization/43332
29292         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
29294 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
29296         * tree.h (build_int_cstu): Implement as static inline.
29297         * tree.c (build_int_cstu): Remove function.
29298         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
29299         sign extended.
29301 2010-05-18  Richard Guenther  <rguenther@suse.de>
29303         PR lto/44143
29304         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
29305         (debug): Initialize from -save-temps.
29306         (collect_execute): Print command-line when verbose.
29307         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
29308         for ltrans invocation.  Produce -dumpbase flag again.
29309         (process_args): Remove.
29310         (main): Simplify.
29311         * collect2.c (maybe_run_lto_and_relink): Only pass object
29312         files to lto-wrapper.
29313         * gcc.c (LINK_COMMAND_SPEC): Likewise.
29315 2010-05-18  Jan Hubicka  <jh@suse.cz>
29317         * opts.c (decode_options): Do not disable whopr at ipa_cp.
29318         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
29320 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
29322         PR lto/44184
29323         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
29324         in a GIMPLE_ASM.
29325         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
29326         in a GIMPLE_ASM.
29328 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
29330         PR debug/41371
29331         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
29332         rtx_equal_p inline.
29334 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
29336         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
29337         lto-macho as lto_binary_reader.
29339         * darwin.c (darwin_asm_named_section): Do not add assembler comment
29340         after .section directive; just print it before the directive instead.
29342 2010-05-17  Jan Hubicka  <jh@suse.cz>
29344         * cgraph.c (cgraph_create_virtual_clone): Only check
29345         versionable_function_p when not in wpa and checking is enabled.
29346         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
29347         there are no more functions to materialize.
29349 2010-05-17  Jan Hubicka  <jh@suse.cz>
29351         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
29352         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
29353         New functions.
29354         (output_cgraph): Call output_cgraph_opt_summary.
29355         (input_cgrpah): Call input_cgraph_opt_summary.
29356         (output_cgraph_opt_summary_p, output_node_opt_summary,
29357         input_node_opt_summary, input_cgraph_opt_section): New functions.
29358         * lto-section-in.c (lto_section_name): Add cgraphopt.
29359         * tree-inline.c (tree_function_versioning): Handle parm_num.
29360         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
29361         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
29363 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
29365         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
29366         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
29367         the insn to prefetch ratio heuristic to loops with known trip count.
29369 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
29371         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
29372         (schedule_prefetches): Do not generate a prefetch if the unroll factor
29373         is far from what is required by the prefetch.
29375 2010-05-17  Jan Hubicka  <jh@suse.cz>
29377         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
29378         (ipcp_estimate_growth): Likewise.
29379         (ipcp_const_param_count): Likewise.
29380         (ipcp_insert_stage): Likewise.
29381         * ipa-prop.c (visit_load_for_mod_analysis): New function.
29382         (visit_store_addr_for_mod_analysis): Set used flag.
29383         (ipa_detect_param_modifications): Set used flag for SSE params;
29384         update use of walk_stmt_load_store_addr_ops.
29385         (ipa_print_node_params): Print used flag.
29386         (ipa_write_node_info): Stream used flag.
29387         (ipa_read_node_info): Likewise.
29388         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
29389         (ipa_is_param_used): New function.
29390         (lto_ipa_fixup_call_notes): Remove unused declaration.
29392 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29394         PR target/44074
29395         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
29396         * configure: Regenerate.
29397         * config.in: Regenerate.
29398         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
29399         !HAVE_AS_IX86_REP_LOCK_PREFIX.
29400         Don't emit whitespace.
29401         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
29402         (*rep_movsi): Likewise.
29403         (*rep_movsi_rex64): Likewise.
29404         (*rep_movqi): Likewise.
29405         (*rep_movqi_rex64): Likewise.
29406         (*rep_stosdi_rex64): Likewise.
29407         (*rep_stossi): Likewise.
29408         (*rep_stossi_rex64): Likewise.
29409         (*rep_stosqi): Likewise.
29410         (*rep_stosqi_rex64): Likewise.
29411         (*cmpstrnqi_nz_1): Use {%;} after repz.
29412         (*cmpstrnqi_nz_rex_1): Likewise.
29413         (*cmpstrnqi_1): Likewise.
29414         (*cmpstrnqi_rex_1): Likewise.
29415         (*strlenqi_1): Use {%;} after repnz.
29416         (*strlenqi_rex_1): Likewise.
29417         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
29418         (*sync_compare_and_swap<mode>): Likewise.
29419         (sync_double_compare_and_swap<mode>): Likewise.
29420         (*sync_double_compare_and_swapdi_pic): Likewise.
29421         (sync_old_add<mode>): Likewise.
29422         (sync_add<mode>): Likewise.
29423         (sync_sub<mode>): Likewise.
29424         (sync_<code><mode>): Likewise.
29426 2010-05-17  Martin Jambor  <mjambor@suse.cz>
29428         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
29429         otr_token and polymorphic.
29430         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
29431         (cgraph_clone_edge): Copy the above fields.
29432         * tree.c (get_binfo_at_offset): New function.
29433         * tree.h (get_binfo_at_offset): Declare.
29434         * ipa-prop.h (enum jump_func_type): Added known_type jump function
29435         type, reordered items, updated comments.
29436         (union jump_func_value): Added base_type field, reordered fields.
29437         (enum ipa_lattice_type): Moved down in the file.
29438         (struct ipa_param_descriptor): New field polymorphic.
29439         (ipa_is_param_polymorphic): New function.
29440         * ipa-prop.c: Include gimple.h and gimple-fold.h.
29441         (ipa_print_node_jump_functions): Print known type jump functions.
29442         (compute_complex_pass_through): Renamed to...
29443         (compute_complex_assign_jump_func): this.
29444         (compute_complex_ancestor_jump_func): New function.
29445         (compute_known_type_jump_func): Likewise.
29446         (compute_scalar_jump_functions): Create known type and complex ancestor
29447         jump functions.
29448         (ipa_note_param_call): New parameter polymorphic, set the corresponding
29449         flag in the call note accordingly.
29450         (ipa_analyze_call_uses): Renamed to...
29451         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
29452         variable var only in the block where it is used.
29453         (ipa_analyze_virtual_call_uses): New function.
29454         (ipa_analyze_call_uses): Likewise.
29455         (combine_known_type_and_ancestor_jfs): Likewise.
29456         (update_jump_functions_after_inlining): Implemented handling of a
29457         number of new jump function types combination.
29458         (print_edge_addition_message): Removed.
29459         (make_edge_direct_to_target): New function.
29460         (try_make_edge_direct_simple_call): Likewise.
29461         (try_make_edge_direct_virtual_call): Likewise.
29462         (update_call_notes_after_inlining): Renamed to...
29463         (update_indirect_edges_after_inlining): this.  Moved edge creation for
29464         indirect calls to try_make_edge_direct_simple_call, also calls
29465         try_make_edge_direct_virtual_call for virtual calls.
29466         (ipa_print_node_params): Changed the header message.
29467         (ipa_write_jump_function): Stream also known type jump functions.
29468         (ipa_read_jump_function): Likewise.
29469         (ipa_write_indirect_edge_info): Stream new fields in
29470         cgraph_indirect_call_info.
29471         (ipa_read_indirect_edge_info): Likewise.
29472         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
29473         GIMPLE_FOLD_H.
29475 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29477         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
29479 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
29481         * tree.h (CALL_EXPR_ARGS): Delete.
29482         (call_expr_arglist): Delete.
29483         * tree.c (call_expr_arglist): Delete.
29484         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
29485         targetm.fold_builtin.
29486         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
29487         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
29488         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
29489         arglist parameter.  Use CALL_EXPR_ARG.
29490         (picochip_expand_builtin_3op): Likewise.
29491         (picochip_expand_builtin_2opvoid): Likewise.
29492         (picochip_expand_array_get): Likewise.
29493         (picochip_expand_array_put): Likewise.
29494         (picochip_expand_array_testport): Likewise.
29495         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
29496         rather than arglist.
29497         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
29498         CALL_EXPR_ARGS.
29499         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
29500         than TREE_VALUE and TREE_CHAIN.
29501         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
29502         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
29503         the arglist.
29505 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
29507         PR bootstrap/42347
29508         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
29509         to have no fallthru edge.
29511         PR middle-end/44102
29512         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
29513         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
29514         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
29515         add BARRIER after previous bb if needed.
29517 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
29519         * tree.c (build_function_type_list_1): Remove bogus assert condition.
29521 2010-05-17  Alan Modra  <amodra@gmail.com>
29523         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
29524         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
29525         with copy_reg rtx param.
29526         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
29527         Correct cases where code for ABI_V4 did not initialise the reg
29528         used to access frame.  Also leave frame_reg_rtx as sp for large
29529         frames that save no regs.
29531 2010-05-17  Martin Jambor  <mjambor@suse.cz>
29533         PR middle-end/44133
29534         * tree-sra.c (create_access_replacement): New parameter rename, mark
29535         the replaement for renaming only when it is true.
29536         (get_access_replacement): Pass true in the rename parameter of
29537         create_access_replacement.
29538         (get_unrenamed_access_replacement): New function.
29539         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
29540         replacement declaration from it.
29542 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
29544         * function.c (try_fit_stack_local, add_frame_space): New static
29545         functions.
29546         (assign_stack_local_1): Use them.  Look for opportunities to use
29547         space previously wasted on alignment.
29548         * function.h (struct frame_space): New.
29549         (struct rtl_data): Add FRAME_SPACE_LIST member.
29550         * reload1.c (something_was_spilled): New static variable.
29551         (alter_reg): Set it.
29552         (reload): Test it in addition to testing if the frame size changed.
29554 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
29556         * config/s390/s390.c: Define sane prefetch settings and activate
29557         flag_prefetch_loop_arrays on -O3.
29558         * config/s390/s390.h: Declare that read can use write prefetch.
29560 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
29562         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
29563         build.
29565 2010-05-16  Jan Hubicka  <jh@suse.cz>
29567         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
29568         function body; do not check stdarg field of struct function.
29570 2010-05-16  Jan Hubicka  <jh@suse.cz>
29572         * cgraph.c (dump_cgraph_node): Dump versionable flag.
29573         * cgraph.h (cgraph_local_info): Add versionable flag.
29574         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
29575         (ipcp_versionable_function_p): Use it.
29576         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
29577         versionable flag.
29579 2010-05-16  Jan Hubicka  <jh@suse.cz>
29581         * cgraph.c (cgraph_clone_node): Take decl argument and insert
29582         clone into hash when it is different from orig.
29583         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
29584         * cgraph.h (cgraph_clone_node): Update prototype.
29585         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
29586         (lto_cgraph_encoder_delete): Delete body map.
29587         (lto_cgraph_encoder_size): Move to header.
29588         (lto_cgraph_encoder_encode_body_p,
29589         lto_set_cgraph_encoder_encode_body): New.
29590         (lto_output_node): Do not take written_decls argument; output clone_of
29591         pointer.
29592         (add_node_to): Add include_body_argument; call
29593         lto_set_cgraph_encoder_encode_body on master of the clone.
29594         (add_references): Update use of add_node_to.
29595         (compute_ltrans_boundary): Likewise.
29596         (output_cgraph): Do not create written_decls bitmap.
29597         (input_node): Take nodes argument; stream in clone_of correctly.
29598         (input_cgraph_1): Update use of input_node.
29599         * lto-streamer-out.c (lto_output): Use encoder info to decide
29600         what bodies to output.
29601         * ipa-inline.c (cgraph_clone_inlined_nodes,
29602         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
29603         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
29604         (lto_cgraph_encoder_size): Define here.
29605         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
29606         Declare.
29608 2010-05-16  Richard Guenther  <rguenther@suse.de>
29610         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
29611         -fipa-type-escape.
29612         * ipa-type-escape.c (gate_type_escape_vars): Run when
29613         -fipa-struct-reorg runs.
29614         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
29615         * common.opt (fipa-type-escape): Remove.
29617 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
29619         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
29620         (decode_options): Likewise.
29621         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
29623 2010-05-16  Jan Hubicka  <jh@suse.cz>
29625         * ipa.c (function_and_variable_visibility): Also bring local all
29626         aliases.
29628 2010-05-16  Richard Guenther  <rguenther@suse.de>
29630         * alias.c (nonoverlapping_memrefs_p): Remove use of
29631         IPA type-escape information.
29633 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
29635         * c-common.c (c_common_reswords): Add _Static_assert for C.
29636         * c-parser.c (c_token_starts_declaration,
29637         c_parser_next_token_starts_declaration,
29638         c_parser_static_assert_declaration_no_semi,
29639         c_parser_static_assert_declaration): New.
29640         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
29641         Handle static assertions if static_assert_ok.
29642         (c_parser_external_declaration, c_parser_declaration_or_fndef,
29643         c_parser_compound_statement_nostart, c_parser_label,
29644         c_parser_for_statement, c_parser_objc_methodprotolist,
29645         c_parser_omp_for_loop): All callers of
29646         c_parser_declaration_or_fndef changed.
29647         (c_parser_struct_declaration): Handle static assertions.
29648         (c_parser_compound_statement_nostart): Use
29649         c_parser_next_token_starts_declaration and
29650         c_token_starts_declaration to detect start of declarations.
29651         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
29652         Likewise.
29654 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
29656         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
29657         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
29658         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
29659         TARGET_FUNCTION_VALUE_REGNO_P): Define.
29660         (mmix_function_outgoing_value): Rename to...
29661         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
29662         (mmix_function_value_regno_p): Make static.
29663         (mmix_libcall_value): New function.
29664         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
29665         mmix_function_value_regno_p): Remove declaration.
29667 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
29669         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
29670         BUILT_IN_ALLOCA if stack checking is enabled.
29672 2010-05-16  Richard Guenther  <rguenther@suse.de>
29674         * var-tracking.c (vars_copy_1): Inline ...
29675         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
29676         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
29677         (variable_merge_over_cur): Adjust.  Merge asserts.
29678         (variable_merge_over_src): Likewise.
29679         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
29680         (variable_post_merge_new_vals): Merge asserts.
29681         (variable_post_merge_perm_vals): Likewise.
29682         (find_mem_expr_in_1pdv): Likewise.
29683         (dataflow_set_different_value): Remove.
29684         (onepart_variable_different_p): Merge asserts.
29685         (variable_different_p): Likewise.
29686         (dataflow_set_different_1): Inline ...
29687         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
29688         (emit_notes_for_differences_1): Merge asserts.
29690 2010-05-16  Richard Guenther  <rguenther@suse.de>
29692         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
29693         * optabs.c (libfunc_decl_hash): Likewise.
29694         * varasm.c (emutls_decl): Likewise.
29696 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
29698         * c-decl.c: Don't include gimple.h.
29699         (merge_decls): Do not copy gimple_body.
29701 2010-05-15  Jason Merrill  <jason@redhat.com>
29703         * c.opt: Add -fnothrow-opt.
29705 2010-05-15  Jan Hubicka  <jh@suse.cz>
29707         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
29708         analyzed.
29709         * passes.c (ipa_write_summaries): Write all analyzed nodes.
29711 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
29713         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
29714         * Makefile.in: Add it.
29715         Fix all other Makefile dependencies for changes below.
29716         * tree.h: Include it instead of defining VEC primitives here.
29717         * gimple.h: Likewise.
29718         * rtl.h: Likewise.
29719         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
29720         * except.h: Include vecir.h, break dependence on tree.h.
29722         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
29723         Move from here...
29724         * tree-iterator.c: ...to here.
29725         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
29727         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
29728         tm_p.h.
29729         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
29730         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
29731         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
29732         tree-mudflap.h, and target.h.
29733         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
29734         predict.h, tree-inline.h, gimple.h, and langhooks.h.
29735         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
29736         Add FIXME for why gimple.h is still included (should be unnecessary
29737         since GCC 4.5 gimplification unit-at-a-time).
29738         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
29739         * c-pragma.c: Add FIXME for why function.h needs to be included just
29740         for cfun, at front-end level.
29741         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
29742         Do not include ggc.h, but include vecprim.h for VEC(char).
29743         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
29744         Explain why target.h is included.
29745         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
29746         Explain why gimple.h is included.
29747         * c-ppoutput.c: Do not include tm.h.
29748         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
29749         * c-parses.c: Explain why rtl.h is included, and that this (and only
29750         this) is also why tm.h must be included.
29751         Do not include except.h.
29752         * c-lang.c: Do not include ggc.h.
29754 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
29756         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
29758 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
29760         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
29761         unions by default if those structs and unions have no tags.  Do
29762         not condition anonymous struct and unions handling on flag_iso.
29763         Allow anonymous structs and unions for C1X.
29764         (finish_struct): Do not diagnose lack of named fields when
29765         anonymous structs and unions present for C1X.  Accept flexible
29766         array members in structure with anonymous structs or unions but no
29767         directly named fields.
29768         * doc/extend.texi (Unnamed Fields): Update.
29770 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
29772         * gimple.h (compare_field_offset): Rename into...
29773         (gimple_compare_field_offset): ...this.
29774         * gimple.c (compare_field_offset): Rename into...
29775         (gimple_compare_field_offset): ...this.  Compare the full access if
29776         the offset is self-referential.
29777         (gimple_types_compatible_p): Adjust for above renaming.
29778         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
29779         DECL_NONADDRESSABLE_P flag of fields before merging them.
29781 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
29783         * tree.h (ctor_to_list): Delete.
29784         * tree.c (ctor_to_list): Delete.
29786 2010-05-15  Jan Hubicka  <jh@suse.cz>
29788         * ipa-reference.c: Include toplev.h
29789         (is_proper_for_analysis): Only add to all_module_statics
29790         if it is allocated.
29791         (write_node_summary_p, stream_out_bitmap,
29792         ipa_reference_write_optimization_summary,
29793         ipa_reference_read_optimization_summary): New.
29794         (struct ipa_opt_pass_d pass_ipa_reference): Add
29795         optimization summary streaming.
29796         * lto-cgraph.c (referenced_from_this_partition_p,
29797         reachable_from_this_partition_p): New functions.
29798         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
29799         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
29800         * opts.c (decode_options): Enable ipa_reference.
29801         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
29802         * lto-streamer.h (referenced_from_this_partition_p,
29803         reachable_from_this_partition_p): Declare.
29805 2010-05-15  Richard Guenther  <rguenther@suse.de>
29807         PR tree-optimization/44038
29808         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
29809         taking the address of a V_C_E of a constant.
29811 2010-05-14  Jan Hubicka  <jh@suse.cz>
29813         * tree.h (memory_identifier_string): Remove.
29814         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
29815         (ipa_reference_global_vars_info_d): Remove statics_not_read and
29816         statics_not_written.
29817         (ipa_reference_optimization_summary_d): New structure.
29818         (ipa_reference_optimization_summary_t): New type and vector.
29819         (ipa_reference_vars_info_d): Embedd structures instead of using
29820         pointers.
29821         (reference_vars_to_consider): Remove out of GGC space.
29822         (module_statics_escape): Remove.
29823         (global_info_obstack): Rename to ...
29824         (optimization_summary_obstack): ... this one.
29825         (initialization_status_t): Remove.
29826         (memory_identifier_string): Remove.
29827         (get_reference_vars_info): Fix indenting.
29828         (set_reference_vars_info): Likewise.
29829         (get_reference_optimization_summary): New.
29830         (set_reference_optimization_summary): New.
29831         (get_global_reference_vars_info): Remove.
29832         (ipa_reference_get_read_global): Remove.
29833         (ipa_reference_get_written_global): Remove.
29834         (ipa_reference_get_not_read_global): Update.
29835         (ipa_reference_get_not_written_global): Update.
29836         (is_proper_for_analysis): Outlaw addressable.
29837         (propagate_bits): Update for new datastructures.
29838         (analyze_variable): Remove.
29839         (init_function_info): Update for new datastructures.
29840         (clean_function_local_data): Remove.
29841         (clean_function): Remove.
29842         (copy_global_bitmap): Use optimizations_summary_obstack.
29843         (duplicate_node_data): Duplicate optimization summary only.
29844         (remove_node_data): Remove optimization summary only.
29845         (generate_summary): Do not analyze variables; do not compute
29846         module_statics_escape; do not prune solutions by it.
29847         (read_write_all_from_decl): Fix typos in comments.
29848         (propagate): Doscover readonly and nonaddressable first;
29849         update for new datastructures; share global bitmaps.
29850         * ipa-reference.h (ipa_reference_get_read_global,
29851         ipa_reference_get_written_global): Remove.
29852         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
29853         * Makefile.in: Remove ipa-refereference from GT files.
29855 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29857         PR debug/44112
29858         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
29859         for all SYMBOL_REF_DECLs.
29861 2010-05-14  Jan Hubicka  <jh@suse.cz>
29863         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
29864         (varpool_all_refs_explicit_p): New inline function.
29865         * ipa-reference.c: Update comment.
29866         (module_statics_written): Remove.
29867         (get_static_decl): Remove.
29868         (ipa_init): Do not initialize module_statics_written.
29869         (analyze_function): Likewise.
29870         (generate_summary): Likewise; do not compute module_statics_readonly
29871         and do not update variable flags.
29872         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
29873         * ipa.c: Inlucde flags.h
29874         (cgraph_local_node_p): New.
29875         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
29876         promote functions to local.
29877         (ipa_discover_readonly_nonaddressable_vars): New function.
29878         (function_and_variable_visibility): Use cgraph_local_node_p.
29879         * varpool.c (varpool_finalize_decl): Set force_output for
29880         DECL_PRESERVE_P vars.
29882 2010-05-14  Jan Hubicka  <jh@suse.cz>
29884         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
29886 2010-05-14  Richard Guenther  <rguenther@suse.de>
29888         PR tree-optimization/44119
29889         * tree-ssa-pre.c (eliminate): Properly mark replacement of
29890         a PHI node necessary.
29892 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
29894         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
29896 2010-05-14  Jason Merrill  <jason@redhat.com>
29898         PR c++/44127
29899         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
29900         (gimple_call_set_nothrow): New.
29901         * gimple.c (gimple_build_call_from_tree): Call it.
29902         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
29904         PR c++/44127
29905         * gimplify.c (gimplify_seq_add_stmt): No longer static.
29906         * gimple.h: Declare it.
29907         * gimple.c (gimple_build_eh_filter): No ops.
29909 2010-05-14  Jan Hubicka  <jh@suse.cz>
29911         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
29912         nodes already in queue.
29913         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
29914         re-enqueueing node.
29916 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29918         PR debug/44136
29919         * cfgexpand.c (expand_debug_expr): If non-memory op0
29920         has BLKmode, return NULL.
29922 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
29924         * config.gcc: Add support for --with-cpu option for bdver1.
29925         * config/i386/i386.h (TARGET_BDVER1): New macro.
29926         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
29927         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29928         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
29929         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29930         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
29931         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
29932         (processor_type): Add PROCESSOR_BDVER1.
29933         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
29934         processor_type in config/i386/i386.h.
29935         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
29936         movaps <reg, reg> instead of movapd <reg, reg> when replacing
29937         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
29938         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
29939         to emit packed xor instead of packed double/packed integer
29940         xor for SSE and AVX when moving a zero value.
29941         * config/i386/sse.md: Add check for
29942         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
29943         movapd/movdqa for SSE and AVX.
29944         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
29945         single logical operations i.e and, or and xor instead of packed double
29946         logical operations for SSE and AVX.
29947         * config/i386/i386-c.c (ix86_target_macros_internal):
29948         Add PROCESSOR_BDVER1.
29949         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
29950         (has_fma4, has_xop): New.
29951         * config/i386/i386.c (bdver1_cost): New variable.
29952         (m_BDVER1): New macro.
29953         (m_AMD_MULTIPLE): Add m_BDVER1.
29954         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
29955         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
29956         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
29957         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
29958         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
29959         x86_tune_sse_partial_reg_dependency,
29960         x86_tune_sse_unaligned_load_optimal,
29961         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29962         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29963         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29964         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29965         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29966         Enable/disable for bdver1.
29967         (processor_target_table): Add bdver1_cost.
29968         (cpu_names): Add bdver1.
29969         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29970          processor_alias_table.
29971         (ix86_expand_vector_move_misalign): Change.
29972         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29973         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29974         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29975         of movupd/movdqu for SSE and AVX.
29976         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29977         (ix86_tune_adjust_cost): Add code for bdver1.
29978         (standard_sse_constant_opcode): Add check for
29979         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29980         of packed double xor for SSE and AVX.
29982 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29984         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29985         result to unsigned.
29987 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29989         * toplev.c (default_debug_hooks): Remove this variable.
29990         (process_options): Remove assignments to default_debug_hooks.
29992 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29994         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29995         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29996         * langhooks.h (struct lang_hooks_for_decls): Removed field
29997         fold_obj_type_ref.
29998         * tree.c (free_lang_data): Remove assignment to
29999         lang_hooks.fold_obj_type_ref.
30000         * tree.def (OBJ_TYPE_REF): Update comment.
30002 2010-05-14  Richard Guenther  <rguenther@suse.de>
30004         PR tree-optimization/44124
30005         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
30007 2010-05-14  Alan Modra  <amodra@gmail.com>
30009         PR target/44075
30010         * config/rs6000/rs6000.c (struct machine_function): Reorder
30011         fields for better packing.  Add lr_save_state.
30012         (rs6000_ra_ever_killed): Return lr_save_state if set.
30013         (rs6000_emit_eh_reg_restore): Set lr_save_state.
30015 2010-05-13  Jan Hubicka  <jh@suse.cz>
30017         * varpool.c (decide_is_variable_needed): Drop code checking
30018         TREE_SYMBOL_REFERENCED.
30020 2010-05-13  Jan Hubicka  <jh@suse.cz>
30022         * final.c (output_addr_const): Do not call mark_decl_referenced.
30023         * cgraphunit.c (process_function_and_variable_attributes): Use
30024         mark_needed_node dirrectly.
30025         (assemble_thunk): Do not call mark_decl_referenced.
30027 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
30029         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
30031 2010-05-13  Jeff Law  <law@redhat.com>
30033         * ira-conflicts.c (print_allocno_conflicts): New function broken out
30034         from...
30035         (print_conflicts): Call print_allocno_conflicts.
30037 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
30039         PR debug/44104
30040         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
30041         if it is NULL.
30043 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
30045         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
30046         t-mingw-w64 or t-mingw-w32 for multilib configuration.
30047         * config/i386/t-mingw-w32: New.
30048         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
30050 2010-05-13  Martin Jambor  <mjambor@suse.cz>
30052         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
30053         gimple-fold.c).
30054         * gimple-fold.c (get_base_binfo_for_type): New function.
30055         (gimple_get_relevant_ref_binfo): Likewise.
30056         (gimple_fold_obj_type_ref_known_binfo): Likewise.
30057         (gimple_fold_obj_type_ref): Likewise.
30058         (fold_gimple_call): Simplify condition for folding virtual calls
30059         and call gimple_fold_obj_type_ref.
30060         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
30061         (gimple_fold_obj_type_ref_known_binfo): Likewise.
30063 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
30065         * config/rs6000/rs6000-protos.h
30066         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
30067         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
30068         (rs6000_debug_mode_dependent_address)
30069         (rs6000_mode_dependent_address_ptr): Likewise.
30071 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
30073         PR debug/43983
30074         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
30075         by SRA.
30076         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
30077         * tree-sra.c (create_access_replacement): Call unshare_expr before
30078         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
30079         * dwarf2out.c: Include tree-flow.h.
30080         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
30081         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
30082         Handle DW_OP_bit_piece.
30083         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
30084         construct_piece_list, adjust_piece_list): New functions.
30085         (add_var_loc_to_decl): Handle SRA optimized variables.
30086         Adjust for var_loc_note to loc field renaming.
30087         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
30088         in VAR_LOCATION note.
30089         (new_loc_descr_op_bit_piece): New function.
30090         (dw_sra_loc_expr): New function.
30091         (dw_loc_list): Use it.  Don't handle the last range after the
30092         loop, handle it inside of the loop.  Adjust for var_loc_note
30093         to loc field renaming.
30094         (add_location_or_const_value_attribute): Only special case
30095         single entry loc lists if loc is NOTE_P.  Adjust for
30096         var_loc_note to loc field renaming.
30097         (dwarf2out_var_location): Don't set newloc->var_loc_note
30098         and newloc->next here.
30100 2010-05-12  Jan Hubicka  <jh@suse.cz>
30102         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
30103         flag.
30104         * cgraph.h (cgraph_only_called_directly_p,
30105         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
30106         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
30107         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
30108         (assemble
30109         * ipa.c (cgraph_remove_unreachable_nodes): Use
30110         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
30111         flags.
30112         * tree-inline.c (copy_bb): Check address_taken flag.
30113         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
30114         externally_visible flag.
30116 2010-05-12  Jason Merrill  <jason@redhat.com>
30118         PR bootstrap/44048
30119         PR target/44099
30120         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
30121         * sdbout.c (plain_type_1): Likewise.
30122         * dwarf2out.c (is_base_type): Likewise.
30123         (gen_type_die_with_usage): Likewise.  Generate
30124         DW_TAG_unspecified_type for any LANG_TYPE.
30126 2010-05-12  Jan Hubicka  <jh@suse.cz>
30128         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
30129         indrect edges too.
30130         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
30131         (cgraph_clone_edge): Update.
30132         (cgraph_node_remove_callees): Remove indirect calls too.
30133         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
30134         (cgraph_create_indirect_edge): Update prototype.
30135         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
30136         is_proper_for_analysis.
30137         (add_new_function, visited_nodes, function_insertion_hook_holder,
30138         get_local_reference_vars_info, mark_address_taken, mark_address,
30139         mark_load, mark_store, check_asm_memory_clobber, check_call,
30140         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
30141         (ipa_init): Do not initialize visited_nodes;
30142         function_insertion_hook_holder.
30143         (analyze_variable): Rewrite.
30144         (analyze_function): Rewrite.
30145         (copy_local_bitmap): Remove.
30146         (duplicate_node_dat): Do not duplicate local info.
30147         (generate_summary): Simplify to only walk cgraph.
30148         (write_node_summary_p, ipa_reference_write_summary,
30149         ipa_reference_read_summary): Remove.
30150         (propagate): Do not remove function insertion;
30151         generate summary.
30152         (pass_ipa_reference): NULLify summary handling fields.
30153         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
30154         (input_edge): Input ecf_flags.
30155         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
30156         (update_indirect_edges_after_inlining): Ignore edges with unknown
30157         param.
30159 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
30161         * implicit-zee.c: New file.
30162         * tree-pass.h (pass_implicit_zee): Declare.
30163         * passes.c (init_optimization_passes): Add zee pass.
30164         * common.opt (fzee): New flag.
30165         * timevar.def (TV_ZEE): Define.
30166         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
30167         and beyond.
30168         * Makefile.in (implicit-zee.o): Add new build file.
30170 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30171             Nathan Froyd  <froydnj@codesourcery.com>
30173         * c-common.c (sync_resolve_params): Remove write-only variable.
30175 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
30177         * target.h (struct gcc_target): Add mode_dependent_address_p field.
30178         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
30179         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
30180         * targhooks.c (default_mode_dependent_address_p): New function.
30181         * targhooks.h (default_mode_dependent_address_p): Declare function.
30182         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
30183         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
30184         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
30185         target hook. Change return type to bool.
30186         * recog.h (mode_dependent_address_p): Change return type to bool.
30188 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30189             Nathan Froyd  <froydnj@codesourcery.com>
30191         * tree-mudflap.c (build_function_type_0, build_function_type_1,
30192         build_function_type_2, build_function_type_3): Remove.
30193         (mudflap_init): Use build_function_type_list.
30195 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30196             Nathan Froyd  <froydnj@codesourcery.com>
30198         * coverage.c (build_fn_info_value): Call build_constructor instead of
30199         build_constructor_from_list.
30200         (build_ctr_info_value): Likewise.
30201         (build_gcov_info): Likewise.
30203 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
30205         * tree.c (build_constructor): Compute TREE_CONSTANT for the
30206         resultant constructor.
30207         (build_constructor_single): Don't set TREE_CONSTANT.
30208         (build_constructor_from_list): Don't compute TREE_CONSTANT.
30210 2010-05-12  Jan Hubicka  <jh@suse.cz>
30212         * cgraph.h (struct varpool_node): Add aux.
30213         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
30214         * varpool.c (varpool_remove_node): Do not remove initializer.
30215         (varpool_reset_queue): Export.
30216         (varpool_finalize_decl): Volatile vars are forced to be output.
30217         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
30218         replaced decl.
30219         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
30220         process_references, varpool_can_remove_if_no_refs): New functions.
30221         (cgraph_remove_unreachable_nodes): Handle variables too.
30223 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
30225         PR target/44088
30226         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
30228 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
30230         PR middle-end/44085
30231         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
30232         change value of ORT_TASK.
30233         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
30234         (omp_notice_threadprivate_variable): New function.
30235         (omp_notice_variable): Call it for threadprivate variables.
30236         If enclosing ctx is a task, print enclosing task rather than
30237         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
30238         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
30239         if task has untied clause.
30241         PR debug/42278
30242         * dwarf2out.c (base_type_die): Don't add name attribute here.
30243         (modified_type_die): Instead of sizetype use
30244         its underlying original type.  If a DW_TAG_base_type doesn't
30245         have name added, add __unknown__.
30246         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
30247         always call force_type_die instead.
30249 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
30251         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
30252         for __stack_chk_guard.
30254 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
30256         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
30257         don't call start_source_file debug hook here...
30258         (finish_options): ... but here, after outputting predefined and
30259         command line defines and undefs.
30261         PR middle-end/44071
30262         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
30263         no fallthru edge.
30264         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
30265         optimizing away empty bb with no successors, move over its
30266         footer chain to fallthru predecessor.
30267         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
30268         (rtl_split_edge): For asm goto call patch_jump_insn even if
30269         splitting fallthru edge.
30271         PR c++/44059
30272         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
30273         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
30274         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
30275         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
30276         on DW.ref.* decls.
30278         PR c++/44062
30279         * c-parser.c (c_parser_expression): Mark LHS of a comma
30280         expression as read if it is a decl, handled component or
30281         COMPOUND_EXPR with that on the RHS.
30282         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
30283         if it is a decl or handled component.
30285 2010-05-11  Jan Hubicka  <jh@suse.cz>
30287         * lto-symtab.c (lto_symtab_free): New function.
30288         * lto-streamer.h (lto_symtab_free): Declare.
30290 2010-05-11  Jan Hubicka  <jh@suse.cz>
30292         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
30293         that if function is needed it is reachable.
30294         (lto_output_node): See if it the function is reachable or referenced.
30295         (output_cgraph): Update call of lto_output_node.
30296         * lto-streamer.h (reachable_from_other_partition_p): Declare.
30298 2010-05-11  Jan Hubicka  <jh@suse.cz>
30300         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
30301         Mark as used.
30303 2010-05-11  Jan Hubicka  <jh@suse.cz>
30305         PR tree-optimize/44063
30306         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
30307         queue.
30308         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
30309         limits.
30310         (estimate_function_body_sizes): Compute sizes even when disregarding.
30312 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
30314         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
30316 2010-05-11  Jan Hubicka  <jh@suse.cz>
30318         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
30319         into every boundary.
30321 2010-05-11  Jan Hubicka  <jh@suse.cz>
30323         * matrix-reorg.c (matrix_reorg): Rebuild edges.
30325 2010-05-11  Jan Hubicka  <jh@suse.cz>
30327         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
30328         lto_streamer_cache_delete): Put nodes into heap.
30329         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
30330         heap.
30332 2010-05-11  Jan Hubicka  <jh@suse.cz>
30334         * cgraphbuild.c (cgraph_rebuild_references): New.
30335         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
30336         out extern inlines.
30337         * cgraph.h (cgraph_rebuild_references): Declare.
30338         * tree-inline.c (tree_function_versioning): Use it.
30339         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
30341 2010-05-11  Jan Hubicka  <jh@suse.cz>
30343         * cgraph.c: Include ipa-utils.h
30344         (cgraph_create_virtual_clone): Update references.
30345         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
30347 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
30349         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
30350         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
30351         cache size.
30353 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
30355         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
30357 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
30359         * gcc.c (execute): For -### don't quote arguments that
30360         contain just alphanumerics and _/-. characters.
30361         * doc/invoke.texi: Document that change for -###.
30363         PR debug/44023
30364         * df-problems.c (struct dead_debug): Add to_rescan field.
30365         (dead_debug_init): Clear to_rescan field.
30366         (dead_debug_finish): Rescan all debug insns in to_rescan
30367         bitmap and free the bitmap.
30368         (dead_debug_insert_before): Instead of rescanning debug insns
30369         immediately queue their rescanning until dead_debug_finish.
30370         (df_note_bb_compute): After dead_debug_add do continue instead
30371         of break.
30373 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
30375         PR debug/44028
30376         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
30377         clear also INSN_REG_USE_LIST.
30379 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30381         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
30383 2010-05-10  Jan Hubicka  <jh@suse.cz>
30385         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
30386         commited change.
30388 2010-05-10  Jan Hubicka  <jh@suse.cz>
30390         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
30391         Allocate encoders.
30392         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
30393         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
30394         (lto_streamer_cache_create): Init alloc pool.
30395         (lto_streamer_cache_delete): Free alloc pool.
30396         * lto-streamer.h: Include alloc pool.
30397         (lto_streamer_cache_d): Use alloc pool.
30398         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
30400 2010-05-10  Jan Hubicka  <jh@suse.cz>
30402         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
30403         * cgraphbuild.c: Include except.h
30404         (record_type_list, record_eh_tables): New function.
30405         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
30407 2010-05-10  Jan Hubicka  <jh@suse.cz>
30409         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
30410         __frame_dummy_init_array_entry, force_to_data): Attribute as used
30411         rather than unused.
30413 2010-05-10  Michael Matz  <matz@suse.de>
30415         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
30416         (can_reassociate_p): Use FLOAT_TYPE_P.
30417         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
30418         (vect_force_simple_reduction): ... this.
30419         * tree-parloops.c (gather_scalar_reductions): Use
30420         vect_force_simple_reduction.
30421         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
30422         vect_is_simple_reduction, add modify argument, if true rewrite
30423         "a-b" into "a+(-b)".
30424         (vect_is_simple_reduction, vect_force_simple_reduction): New
30425         functions.
30426         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
30428 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
30429             Vladimir Makarov  <vmakarov@redhat.com>
30431         PR rtl-optimization/44012
30432         * ira-build.c (remove_unnecessary_allocnos): Nullify
30433         regno_allocno_map of the removed allocno.
30435 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30437         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
30438         to /dev/null.
30439         * configure: Regenerate.
30441 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30443         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
30444         unused.
30445         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
30446         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
30447         support in Sun ld.
30448         * configure: Regenerate.
30450 2010-05-10  Richard Guenther  <rguenther@suse.de>
30452         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
30453         marked if the entry identifier is marked.
30455 2010-05-10  Richard Guenther  <rguenther@suse.de>
30457         * c-common.c (struct c_common_attributes): Add fnspec attribute.
30458         (handle_fnspec_attribute): New function.
30459         * gimple.h (gimple_call_return_flags): Declare.
30460         (gimple_call_arg_flags): Likewise.
30461         * gimple.c (gimple_call_arg_flags): New function.
30462         (gimple_call_return_flags): Likewise.
30463         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
30464         New argument flags.
30465         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
30466         return value flags.
30467         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
30468         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
30469         main work to ...
30470         (make_heapvar_for): ... this new function.
30471         (handle_rhs_call): Handle fnspec attribute argument specifiers.
30472         (handle_lhs_call): Likewise.
30473         (find_func_aliases): Adjust.
30475 2010-05-10  Richard Guenther  <rguenther@suse.de>
30477         PR tree-optimization/44050
30478         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
30480 2010-05-10  Wei Guozhi  <carrot@google.com>
30482         PR target/42879
30483         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
30485 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
30487         PR c/10676
30488         * c-typeck.c (lookup_field): Take a type directly.  Update
30489         recursive calls.
30490         (build_component_ref): Update call to lookup_field.
30491         (set_init_label): Use lookup_field to find initialized field.
30492         Handle returned list of fields like a sequence of designators.
30494 2010-05-09  Richard Guenther  <rguenther@suse.de>
30496         PR middle-end/44024
30497         * fold-const.c (tree_single_nonzero_warnv_p): Properly
30498         handle &FUNCTION_DECL.
30500 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
30502         PR c/4784
30503         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
30504         structures and unions recursively.
30505         (detect_field_duplicates): Move duplicate detection with a hash to
30506         detect_field_duplicates_hash.  Always use a hash if anonymous
30507         structures or unions are present.
30508         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
30509         give errors.
30511 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
30513         PR target/44046
30514         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
30515         detect Atom, Core 2 and Core i7.
30517 2010-05-09  Richard Guenther  <rguenther@suse.de>
30519         * gcc.c (store_arg): Handle temporary file deletion for
30520         joined arguments.
30522 2010-05-09  Richard Guenther  <rguenther@suse.de>
30524         PR middle-end/44043
30525         * ipa-inline.c (estimate_function_body_sizes): Return after
30526         disregarding inline limits.
30528 2010-05-09  Richard Guenther  <rguenther@suse.de>
30530         * gcc.c (store_arg): Revert last change.
30532 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
30534         PR middle-end/28685
30535         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
30536         (optimize_ops_list): Call it.
30538 2010-05-08  Richard Guenther  <rguenther@suse.de>
30540         PR tree-optimization/44030
30541         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
30542         NECESSARY flag if we propagate from a inserted expression.
30544 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
30546         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
30547         domain types as equal if they are both PLACEHOLDER_EXPRs.
30549 2010-05-08  Richard Guenther  <rguenther@suse.de>
30551         * lto-wrapper.c (run_gcc): Remove linker output from
30552         command line for LTRANS invocation.
30554 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
30556         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
30557         lto-macho as lto_binary_reader.
30558         * target.h (struct gcc_target): New hooks lto_start and lto_end.
30559         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
30560         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
30561         in lto_start and lto_end calls.
30562         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
30563         magic numbers.
30564         (scan_prog_file): Update is_elf_or_coff call.
30565         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
30567         * collect2.c (main): Fix enum comparison.
30569         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
30570         Add prototypes.
30571         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
30572         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
30573         and TARGET_ASM_LTO_END.
30574         * darwin.c: Include obstack.h and lto-streamer.h.
30575         (lto_section_names_offset, lto_section_names_obstack,
30576         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
30577         global variables.
30578         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
30579         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
30580         to a temporary file.
30581         (darwin_asm_lto_end): New function.  Restore asm_out_file.
30582         (darwin_asm_named_section): For LTO sections, replace the name with
30583         the offset of the section name in a string table, and build this
30584         table.
30585         (darwin_file_start): Initialize global vars for LTO support.
30586         (darwin_file_end): If output to asm_out_file was redirected, append it
30587         to the proper asm_out_file here.  Add the section names section.
30589 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
30591         * c-pragma.c (pending_weak_d, pending_weak): New.
30592         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
30593         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
30594         handle_pragma_weak): Update the uses of pending_weaks.
30596 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30598         PR documentation/44016
30599         * doc/standards.texi (Standards): Link to unversioned
30600         cxx0x_status.html page.
30602 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
30604         PR target/43708
30605         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
30606         in addition to TREE_USED, to avoid "set but unused" warnings.
30608 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30610         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
30611         (is_loop_prefetching_profitable): Do not insert prefetches
30612         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
30613         times the prefetch ahead distance.
30615 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30617         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
30618         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
30619         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
30620         the unroll_factor.
30622 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30624         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
30625         a diagnostic info when the insn-to-mem ratio is too small.
30627 2010-05-07  Richard Guenther  <rguenther@suse.de>
30629         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
30630         the linker plugin.
30631         (store_arg): Queue temp_filename for deletion instead of
30632         the whole argument.
30634 2010-05-07  Richard Guenther  <rguenther@suse.de>
30636         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
30637         (run_gcc): Handle LTRANS phase invocation.
30638         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
30640 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
30642         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
30643         this is also meaningful on PARM_DECLs and RESULT_DECLs.
30645 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30647         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
30649 2010-05-07  Richard Guenther  <rguenther@suse.de>
30651         PR tree-optimization/44020
30652         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
30653         code when PRE is not yet initialized.
30655 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30657         * config/mips/dbxmdebug.h: Remove.
30658         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
30660 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
30662         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
30663         with null pointer and also warn about ordered comparison of zero with
30664         pointer if -Wextra.
30666 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
30668         * graphite-blocking.c
30669         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
30670         * graphite-clast-to-gimple.c
30671         (clast_to_gcc_expression): Same.
30672         (precision_for_value): Same.
30673         (precision_for_interval): Same.
30674         (gcc_type_for_interval): Same.
30675         (graphite_create_new_guard): Same.
30676         (compute_bounds_for_level): Same.
30677         (graphite_create_new_loop_guard): Same.
30678         * graphite-interchange.c
30679         (build_linearized_memory_access): Same.
30680         (pdr_stride_in_loop): Same.
30681         (memory_strides_in_loop_1): Same.
30682         (memory_strides_in_loop): Same.
30683         (extend_scattering): Same.
30684         (psct_scattering_dim_for_loop_depth): Same.
30685         (pbb_number_of_iterations): Same.
30686         * graphite-poly.h
30687         (debug_iteration_domains): Same.
30688         * graphite-ppl.c
30689         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
30690         (ppl_set_inhomogeneous_gmp): Same.
30691         (ppl_strip_loop): Same.
30692         (ppl_lexico_compare_linear_expressions): Same.
30693         (ppl_read_polyhedron_matrix): Same.
30694         (ppl_max_for_le_pointset): Same.
30695         * graphite-ppl.h
30696         (ppl_read_polyhedron_matrix): Same.
30697         (tree_int_to_gmp): Same.
30698         (gmp_cst_to_tree): Same.
30699         (ppl_set_inhomogeneous): Same.
30700         (ppl_set_inhomogeneous_tree): Same.
30701         (ppl_set_coef): Same.
30702         (ppl_set_coef_tree): Same.
30703         * graphite-sese-to-poly.c
30704         (build_pbb_scattering_polyhedrons): Same.
30705         (build_scop_scattering): Same.
30706         (scan_tree_for_params_right_scev): Same.
30707         (scan_tree_for_params): Same.
30708         (find_params_in_bb): Same.
30709         (find_scop_parameters): Same.
30710         (add_upper_bounds_from_estimated_nit): Same.
30711         (build_loop_iteration_domains): Same.
30712         (add_condition_to_domain): Same.
30713         (pdr_add_memory_accesses): Same.
30715 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
30717         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
30718         CLooG's value_* macros to their respective mpz_* counterparts.
30719         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
30720         (graphite_create_new_loop_guard): Same.
30721         * graphite-interchange.c (build_linearized_memory_access): Same.
30722         (pdr_stride_in_loop): Same.
30723         (memory_strides_in_loop_1): Same.
30724         (1st_interchange_profitable_p): Same.
30725         * graphite-poly.c (extend_scattering): Same.
30726         (psct_scattering_dim_for_loop_depth): Same.
30727         (pbb_number_of_iterations): Same.
30728         (pbb_number_of_iterations_at_time): Same.
30729         * graphite-poly.h (new_1st_loop): Same.
30730         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
30731         (oppose_constraint): Same.
30732         (insert_constraint_into_matrix): Same.
30733         (ppl_set_inhomogeneous_gmp): Same.
30734         (ppl_set_coef_gmp): Same.
30735         (ppl_strip_loop): Same.
30736         (ppl_lexico_compare_linear_expressions): Same.
30737         (ppl_max_for_le_pointset): Same.
30738         (ppl_min_for_le_pointset): Same.
30739         (ppl_build_realtion): Same.
30740         * graphite-ppl.h (gmp_cst_to_tree): Same.
30741         (ppl_set_inhomogeneous): Same.
30742         (ppl_set_inhomogeneous_tree): Same.
30743         (ppl_set_coef): Same.
30744         (ppl_set_coef_tree): Same.
30745         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
30746         (build_scop_scattering): Same.
30747         (add_value_to_dim): Same.
30748         (scan_tree_for_params_right_scev): Same.
30749         (scan_tree_for_params_int): Same.
30750         (scan_tree_for_params): Same.
30751         (find_params_in_bb): Same.
30752         (find_scop_parameters): Same.
30753         (add_upper_bounds_from_estimated_nit): Same.
30754         (build_loop_iteration_domains): Same.
30755         (create_linear_expr_from_tree): Same.
30756         (add_condition_to_domain): Same.
30757         (pdr_add_memory_accesses): Same.
30759 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
30760             Jason Merrill  <jason@redhat.com>
30762         * c-common.c (c_common_reswords): Add nullptr.
30763         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
30764         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
30765         (gen_type_die_with_usage): Likewise.
30766         * dbxout.c (dbxout_type): Likewise.
30767         * sdbout.c (plain_type_1): Likewise.
30769 2010-05-06  Jason Merrill  <jason@redhat.com>
30771         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
30772         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
30773         ret appropriately.
30774         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
30776         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
30777         stripping WITH_SIZE_EXPR.
30778         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
30779         change.
30781 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30783         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
30784         list of obsolete configurations.
30785         Disabled check for obsolete configurations.
30786         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
30787         Removed support for previous versions.
30788         * config/mips/iris.h: Removed.
30789         * config/mips/iris5.h: Removed.
30790         * config/mips/iris6.h: Merged old iris.h contents.
30791         (TARGET_IRIX): Removed.
30792         (DRIVER_SELF_SPECS): Removed mabi=32.
30793         (IDENT_ASM_OP): Removed undef.
30794         (STARTFILE_SPEC): Removed mabi=32.
30795         (ENDFILE_SPEC): Likewise.
30796         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
30797         (MACHINE_TYPE): Update for IRIX 6.5.
30798         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
30799         TARGET_IRIX by TARGET_IRIX6.
30800         (mips_file_start): Likewise.
30801         (mips_output_external): Remove IRIX 5/6 O32 support.
30802         (mips_output_function_prologue): Likewise.
30803         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
30804         TARGET_IRIX6.
30805         (TARGET_CPU_CPP_BUILTINS): Likewise.
30806         (TARGET_IRIX): Removed.
30807         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
30808         (MULTILIB_DIRNAMES): Removed 32.
30809         (MULTILIB_OSDIRNAMES): Removed ../lib.
30810         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
30811         (Specific, mips-sgi-irix5): Document removal.
30812         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
30813         Remove references to older IRIX 6 releases and the O32 ABI.
30815 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
30817         PR bootstrap/43994
30818         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
30819         instead of DF_REF_REAL_REG.
30821 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
30823         PR target/43888
30824         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
30825         handling to still return true for x64 targets.
30827 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30829         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
30831 2010-05-06  Jan Hubicka  <jh@suse.cz>
30833         PR tree-optimization/43791
30834         * ipa-inline.c (update_caller_keys): Remove bogus
30835         disregard_inline_limits check.
30837 2010-05-06  Michael Matz  <matz@suse.de>
30839         PR tree-optimization/43984
30840         * tree-ssa-pre.c (inserted_phi_names): Remove.
30841         (inserted_exprs): Change to bitmap.
30842         (create_expression_by_pieces): Set bits, don't append to vector.
30843         (insert_into_preds_of_block): Don't handle inserted_phi_names.
30844         (eliminate): Don't look at inserted_phi_names, remove deleted
30845         insns from inserted_exprs.
30846         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
30847         (init_pre, fini_pre): Allocate and free bitmaps.
30848         (execute_pre): Insert insns on edges before elimination.
30850 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30852         * tree.c (initializer_zerop): Handle STRING_CST.
30854 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30856         PR 40989
30857         * doc/invoke.texi (Wimplicit): Document as C only.
30858         * opts.c (common_handle_option): Add argument kind.
30859         (handle_option): Rename as read_cmdline_option. Factor out code to...
30860         (handle_option): ... here. New.
30861         (handle_options): Rename as read_cmdline_options.
30862         (decode_options): Update call.
30863         (set_option): Use option index instead of option pointer. Classify
30864         diagnostics correctly.
30865         (enable_warning_as_error): Call handle_option.
30866         * opts.h (set_option): Update declaration.
30867         (handle_option): Declare.
30868         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
30869         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
30870         * c-opts.c (set_Wimplicit): Delete.
30871         (c_family_lang_mask): New static constant.
30872         (c_common_handle_option): Add argument kind. Use handle_option
30873         instead of set_Wimplicit.
30874         (c_common_post_options): warn_implicit and warn_implicit_int
30875         are disabled by default.
30876         * c-common.c (warn_implicit): Do not define here.
30877         * c-common.h (warn_implicit): Do not declare here.
30878         (c_common_handle_option): Update declaration.
30879         * lto-opts.c (lto_reissue_options): Update call to set_option.
30881 2010-05-06  Richard Guenther  <rguenther@suse.de>
30883         PR tree-optimization/43571
30884         * domwalk.c (walk_dominator_tree): Walk the dominator
30885         sons in more optimal order.
30887 2010-05-06  Richard Guenther  <rguenther@suse.de>
30889         PR tree-optimization/43934
30890         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
30891         (stmt_cost): Likewise.
30892         (extract_true_false_args_from_phi): New helper.
30893         (determine_max_movement): For PHI nodes verify we can hoist them
30894         and compute their cost.
30895         (determine_invariantness_stmt): Handle PHI nodes.
30896         (move_computations_stmt): Likewise.  Hoist PHI nodes in
30897         if-converted form using COND_EXPRs.
30898         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
30899         (tree_ssa_lim): Likewise.
30900         * tree-flow.h (tree_ssa_lim): Adjust prototype.
30901         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
30903 2010-05-06  Richard Guenther  <rguenther@suse.de>
30905         PR tree-optimization/43987
30906         * tree-ssa-structalias.c (could_have_pointers): For possibly
30907         address-taken variables force pointers to be recorded.
30908         (create_variable_info_for_1): Likewise.
30909         (push_fields_onto_fieldstack): Pass in wheter all fields
30910         must have pointers.
30911         (find_func_aliases): Query types instead of vars whether
30912         they contain pointers where appropriate.
30914 2010-05-06  Jan Hubicka  <jh@suse.cz>
30916         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
30917         (record_reference, mark_address, mark_load, mark_store): Record
30918         references.
30919         (record_references_in_initializer): Update call of record_references.
30920         (rebuild_cgraph_edges): Remove all references before rebuiding.
30921         * cgraph.c (cgraph_create_node): Clear ref list.
30922         (cgraph_remove_node): Remove references.
30923         (dump_cgraph_node): Dump references.
30924         (cgraph_clone_node): Clone references.
30925         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
30926         (struct cgraph_node, varpool_node): Add ref_lst.
30927         * ipa-ref.c: New file.
30928         * ipa-ref.h: New file.
30929         * ipa-ref-inline.h: New file.
30930         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
30931         (referenced_from_other_partition_p): New function.
30932         (lto_output_varpool_node): Take set arugment; call
30933         referenced_from_other_partition.
30934         (lto_output_ref): New.
30935         (add_references): New.
30936         (output_refs): New.
30937         (output_cgraph): Compute boundary based on references; output refs.
30938         (output_varpool): Accept cgraph_node_set argument.
30939         (input_ref): New.
30940         (input_refs): New.
30941         (input_cgraph): Call input_refs.
30942         * lto-section-in.c (lto_section_name): Add refs.
30943         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
30944         (ipa-ref.o): New file.
30945         * varpool.c (varpool_node): Clear ipa ref list.
30946         (varpool_remove_node): Remove references.
30947         (dump_varpool_node): Dump references.
30948         (varpool_assemble_decl): Only compile finalized ones.
30949         (varpool_extra_name_alias): Initialize ref list.
30950         * lto-streamer.c (lto-get_section_name): Add .refs section.
30951         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
30952         (referenced_from_other_partition_p): Declared.
30954 2010-05-06  Ira Rosen  <irar@il.ibm.com>
30956         PR tree-optimization/43901
30957         * tree-vect-stmts.c (vectorizable_call): Assert that vector
30958         type is not NULL if it's transformation phase, and return
30959         FALSE if it's analysis.
30960         (vectorizable_conversion, vectorizable_operation,
30961         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30963 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30965         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30966         Delete.
30967         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30968         New define.
30969         * config/mips/mips-protos.h
30970         (mips_small_register_classes_for_mode_p): Delete prototype.
30972 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30974         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30975         * config/arm/arm.c (multiple_operation_profitable_p,
30976         compute_offset_order): New static functions.
30977         (load_multiple_sequence, store_multiple_sequence): Use them.
30978         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30979         memory offsets, not register numbers.
30980         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30982 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30984         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30985         (get_pending_sizes, put_pending_size, put_pending_sizes):
30986         Update the uses of pending_sizes.
30987         * c-decl.c (store_parm_decls): Likewise.
30988         * c-tree.h (struct c_arg_info): Likewise.
30989         * tree.h: Update the prototype for get_pending_sizes and
30990         put_pending_sizes.
30992 2010-05-05  Jason Merrill  <jason@redhat.com>
30994         PR debug/43370
30995         * c-common.c (handle_aligned_attribute): Respect
30996         ATTR_FLAG_TYPE_IN_PLACE.
30998         PR testsuite/43758
30999         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
31000         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
31001         (TARGET_INITIALIZER): Use it.
31002         * c-common.c (attribute_takes_identifier_p): Call it.
31003         * c-common.h: Update prototype.
31004         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
31005         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
31007 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
31009         PR debug/43950
31010         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
31011         DW_ID_down_case for Fortran compilation units.
31013 2010-05-05  Jan Hubicka  <jh@suse.cz>
31015         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
31016         handle aliases.
31018 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
31020         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
31021         a variable-sized RESULT_DECL.
31023 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
31025         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
31027 2010-05-05  Jason Merrill  <jason@redhat.com>
31029         PR c++/43787
31030         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
31031         returns GS_OK.
31032         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
31034 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
31035             Jakub Jelinek  <jakub@redhat.com>
31037         PR debug/43478
31038         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
31039         (dead_debug_init, dead_debug_finish): New functions.
31040         (dead_debug_add, dead_debug_insert_before): Likewise.
31041         (df_note_bb_compute): Initialize a dead_debug object, add dead
31042         debug uses to it, insert debug bind insns before death insns,
31043         reset debug insns that refer to pending uses at the end.
31044         * rtl.h (make_debug_expr_from_rtl): New prototype.
31045         * varasm.c (make_debug_expr_from_rtl): New function.
31047 2010-05-05  Jan Hubicka  <jh@suse.cz>
31049         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
31050         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
31051         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
31052         lto_varpool_encoder_deref, lto_varpool_encoder_size,
31053         lto_varpool_encoder_encode_initializer_p,
31054         lto_set_varpool_encoder_encode_initializer): New functions.
31055         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
31056         call output_varpool.
31057         (input_varpool_node): Do not always set analyzed.
31058         (input_cgraph_1): Return vector of cgraph nodes.
31059         (input_varpool_1): Return vector of varpools.
31060         (input_cgraph): Free the vectors.
31061         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
31062         output only initializers needed.
31063         (lto_output): Only call output_cgraph.
31064         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
31065         * lto-section-out.c (lto_new_out_decl_state): Initialize
31066         state->varpool_node_encoder.
31067         * lto-streamer.h (lto_varpool_encoder_d): New.
31068         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
31069         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
31070         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
31071         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
31072         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
31073         Declare.
31074         (output_varpool, input_varpool): Remove declarations.
31076 2010-05-05  Jan Hubicka  <jh@suse.cz>
31078         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
31079         with body can prevail.
31081 2010-05-05  Jan Hubicka  <jh@suse.cz>
31083         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
31084         size.
31086 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31088         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
31090         * gengtype.h (erro_at_line): Constify pos argument.
31092         * gengtype.c: Include hashtab.h.
31093         (enum gc_used): Document GC_MAYBE_POINTED_TO.
31094         (error_at_line): Constify pos argument.
31095         (do_typedef): Initialize p->opt field.
31096         (get_file_gtfilename): Fix comment typo.
31097         (struct walk_type_data): Constify line field.
31098         (get_output_file_for_structure): New function.
31099         (write_local_func_for_structure): Constify orig_s argument.
31100         Use get_output_file_for_structure.
31101         (write_func_for_structure): Use get_output_file_for_structure.
31102         (INDENT): New define.
31103         (dump_pair, dump_type, dump_type_list, dump_typekind)
31104         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
31105         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
31106         functions.
31107         (seen_types): New variable.
31108         (main): New variable do_dump.  Process "-d" command line option.
31109         Call dump_everything if dump requested.
31111 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
31113         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
31114         in a temporary instead of invoking the macro multiple times.
31115         (track_expr_p): Likewise.
31117 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
31119         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
31120         per new semantics.
31121         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
31122         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
31123         conditions for printing notes.
31124         * common.opt (-Wcoverage-mismatch): Allow negative, default to
31125         true, update documentation.
31126         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
31128 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
31130         PR c/43981
31131         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
31132         on dimen.
31134 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
31136         PR target/43799
31137         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
31138         (*sse_prologue_save_insn1): Likewise.
31139         (SSE prologue save splitter): Likewise.
31141 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
31143         * tree.c (free_lang_data_in_one_sizepos): New inline function.
31144         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
31145         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
31146         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
31147         all decls.  Call it on DECL_FIELD_OFFSET of fields.
31148         (find_decls_types_r): Follow DECL_VALUE_EXPR.
31149         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
31151 2010-05-04  Martin Jambor  <mjambor@suse.cz>
31153         * tree-sra.c (build_access_from_expr_1): The first parameter type
31154         changed to simple tree.
31155         (build_access_from_expr): Likewise, gsi parameter was eliminated.
31156         (scan_assign_result): Renamed to assignment_mod_result, enum elements
31157         renamed as well.
31158         (build_accesses_from_assign): Removed all parameters except for a
31159         simple gimple statement.  Now returns a simple bool.
31160         (scan_function): All non-analysis parts moved to separate functions
31161         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
31162         parameters and updated both callers.
31163         (sra_modify_expr): Removed parameter data.
31164         (sra_modify_function_body): New function.
31165         (perform_intra_sra): Call sra_modify_function_body to modify the
31166         function body.
31167         (replace_removed_params_ssa_names): Parameter data changed into
31168         adjustments vector.
31169         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
31170         changed the parameter dont_convert to convert with the opposite
31171         meaning.
31172         (sra_ipa_modify_assign): Parameter data changed into adjustments
31173         vector, return value changed to bool.
31174         (ipa_sra_modify_function_body): New function.
31175         (sra_ipa_reset_debug_stmts): Updated a comment.
31176         (modify_function): Use ipa_sra_modify_function_body to modify function
31177         body.
31179 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
31181         PR middle-end/43671
31182         * alias.c (true_dependence): Handle the same VALUE in x and mem.
31183         (canon_true_dependence): Likewise.
31184         (write_dependence_p): Likewise.
31186 2010-05-04  Jan Hubicka  <jh@suse.cz>
31188         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
31189         * cgraphbuild.c: Include ipa-utils.h
31190         (record_reference_ctx): New struct.
31191         (record_reference): Simplify to work on initializers; not statements.
31192         (mark_address, mark_load, mark_store): New.
31193         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
31194         walk PHI nodes too.
31195         (record_references_in_initializer): Update use of record_reference.
31196         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
31197         walk PHI nodes too.
31199 2010-05-04  Jan Hubicka  <jh@suse.cz>
31201         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
31202         node will be removed anyway.
31203         (lto_varpool_replace_node): Allow also unanalyzed nodes;
31204         relink aliases of node into prevailing node.
31205         * varpool.c (varpool_remove_node): Remove aliases properly;
31206         when removing node, remove all its aliases too; remove DECL_INITIAL
31207         of removed node; ggc_free the varpool node.
31209 2010-05-04  Richard Guenther  <rguenther@suse.de>
31211         PR tree-optimization/43879
31212         * tree-ssa-structalias.c (alias_get_name): Use
31213         DECL_ASSEMBLER_NAME if available.
31214         (create_function_info_for): Return the varinfo node.
31215         (ipa_pta_execute): Associate same-body aliases and extra names
31216         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
31218 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
31220         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
31222 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
31224         PR bootstrap/43964
31225         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
31226         only if HONOR_REG_ALLOC_ORDER is not defined.
31228 2010-05-04  Richard Guenther  <rguenther@suse.de>
31230         PR tree-optimization/43949
31231         * tree-vrp.c (extract_range_from_binary_expr): Only handle
31232         TRUNC_MOD_EXPR.
31234 2010-04-26  Jason Merrill  <jason@redhat.com>
31236         * c.opt (-fstrict-enums): New.
31237         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
31239 2010-05-03  David Ung  <davidu@mips.com>
31240             James E. Wilson  <wilson@codesourcery.com>
31242         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
31243         emit the trap instruction before the divide for TUNE_74K.
31245 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
31247         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
31248         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
31249         based on the above, for new target hook.
31251         * hooks.c (hook_bool_mode_true): New generic hook.
31252         * hooks.h (hook_bool_mode_true): Add prototype.
31254         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
31255         target hook.
31256         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
31257         target hook, set to hook_bool_mode_false.
31258         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
31259         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
31260         with targetm.small_register_classes_for_mode_p.
31261         (find_reusable_reload): Likewise.
31262         (combine_reloads): Likewise.
31263         * reload1.c (reload_as_needed): Likewise.
31264         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
31265         * ifcvt.c (noce_process_if_block, check_cond_move_block,
31266         dead_or_predicable): Likewise.
31267         * regmove.c (optimize_reg_copy_1): Likewise.
31268         * calls.c (prepare_call_address): Likewise.
31269         (precompute_register_parameters): Likewise.
31271         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
31272         hook definition.
31273         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
31274         implementation of the hook that considers all register classes
31275         small except for SH64.
31276         (sh_override_options): Use the new hook.
31277         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
31278         Add prototype.
31280         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
31281         hook definition.
31282         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
31283         implementation of the hook that considers all register classes
31284         small for THUMB1.
31285         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
31286         Add prototype.
31288         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
31289         hook definition.
31290         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
31291         implementation of the hook that considers all register classes
31292         small for MIPS16.
31293         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
31294         Add prototype.
31296         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
31297         hook definition.
31298         * config/m32c/m32c.h: Likewise.
31299         * config/pdp11/pdp11.h: Likewise.
31300         * config/avr/avr.h: Likewise.
31301         * config/xtensa/xtensa.h: Likewise.
31302         * config/m68hc11/m68hc11.h: Likewise.
31303         * config/mn10300/mn10300.h: Likewise.
31304         * config/mcore/mcore.h: Likewise.
31305         * config/h8300/h8300.h: Likewise.
31306         * config/bfin/bfin.h: Likewise.
31308         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
31309         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
31311 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
31313         * double-int.h (tree_to_double_int): Remove macro.
31314         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
31315         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
31316         (tree_to_double_int): New function.
31317         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
31318         Move ...
31319         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
31321 2010-05-03  Richard Guenther  <rguenther@suse.de>
31323         PR tree-optimization/43971
31324         * tree-ssa-structalias.c (get_constraint_for_1): Fix
31325         constraints in the !flag_delete_null_pointer_checks case.
31327 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
31329         PR debug/43972
31330         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
31331         result mode matches original rtl mode.
31333 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
31335         PR target/43888
31336         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
31338 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31340         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
31341         when processing flag options.
31343 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31345         * gcov-iov.c (main): Change format string placeholder
31346         from %#08x to 0x%08x.
31347         * genchecksum.c (dosum): Change format string placeholder
31348         from %#02x to 0x%02x.
31350 2010-05-02  Richard Guenther  <rguenther@suse.de>
31352         PR tree-optimization/43879
31353         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
31355 2010-05-02  Bruno Haible  <bruno@clisp.org>
31357         * doc/extend.texi (Function Attributes): Fix a typo.
31359 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31361         Revert:
31362         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
31363         placeholder from 0x%x to %#x.
31364         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
31365         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31366         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31367         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31368         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31369         * config/i386/i386.c (ix86_target_string): Ditto.
31370         * config/i386/i386.c (output_pic_addr_const): Ditto.
31371         (print_operand): Ditto.
31373 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31375         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
31376         placeholder from 0x%x to %#x.
31377         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
31378         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
31379         (ASM_OUTPUT_DEBUG_DATA): Ditto.
31380         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
31381         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
31382         * optc-gen.awk: Ditto.
31383         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
31384         (HOST_WIDE_INT_PRINT_HEX): Ditto.
31385         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
31386         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
31388 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
31390         * target.h (struct calls): Add function_value_regno_p field.
31391         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
31392         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
31393         * targhooks.c (default_function_value_regno_p): New function.
31394         * targhooks.h (default_function_value_regno_p): Declare function.
31395         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
31396         * builtins.c. (apply_result_size): (Ditto.).
31397         * combine.c. (likely_spilled_retval_p): (Ditto.).
31398         * mode-switching.c. Include 'target.h'.
31399         (create_pre_exit): Use function_value_regno_p hook.
31400         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
31401         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
31402         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
31404         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
31405         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
31406         (ix86_function_value_regno_p): Declare as static, change argument
31407         type to const unsigned int.
31408         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
31410 2010-05-01  Richard Guenther  <rguenther@suse.de>
31412         PR tree-optimization/43949
31413         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
31414         types.
31415         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
31417 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
31419         * rtl.h (CONST_DOUBLE_P): Define.
31420         (rtx_to_double_int): Declare.
31421         * emit-rtl.c (rtx_to_double_int): New function.
31422         * dwarf2out.c (insert_double): New function.
31423         (loc_descriptor, add_const_value_attribute): Clean up, use
31424         rtx_to_double_int and insert_double functions.
31426 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
31428         * doc/extend.texi (Inline): Add missing return keyword to examples.
31429         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
31430         "command-line".
31432 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
31434         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
31435         the variable part of the offset as well.  Use highest_pow2_factor for
31436         all alignment checks.
31438 2010-04-30  Richard Guenther  <rguenther@suse.de>
31440         PR tree-optimization/43879
31441         * tree-ssa-structalias.c (type_could_have_pointers): Functions
31442         can have pointers.
31444 2010-04-30  Jan Hubicka  <jh@suse.cz>
31446         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
31447         varpool.
31448         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
31450 2010-04-30  Jan Hubicka  <jh@suse.cz>
31452         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
31453         New.
31454         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
31455         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
31456         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
31457         cgraph_node_set_needs_ltrans_p): Remove.
31459 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
31461         * sdbout.c: Include vec.h, do not include varray.h.
31462         (deferred_global_decls, sdbout_global_decl,
31463         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
31464         * toplev.c: Do not include varray.h.
31465         (dump_memory_report): Do not dump VARRAY statistics.
31466         * gengtype.c (open_base_file): Ignore varray.h.
31467         * Makefile.in: Update for abovementioned changes.
31468         Remove all traces of varray.c and varray.h.
31469         * varray.c: Remove file.
31470         * varray.h: Remove file.
31472 2010-04-30  Jan Hubicka  <jh@suse.cz>
31474         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
31475         references.
31477 2010-04-30  Jan Hubicka  <jh@suse.cz>
31479         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
31480         needed.
31482 2010-04-30  Richard Guenther  <rguenther@suse.de>
31484         * tree-ssa-structalias.c (get_constraint_for_1): Generate
31485         constraints for CONSTRUCTOR.
31487 2010-04-30  Richard Guenther  <rguenther@suse.de>
31489         PR lto/43946
31490         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
31491         first after all lowering passes.
31493 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
31495         * toplev.c: Include varray.h for statistics dumping.
31496         * tree.h: Do not declare varray_head_tag.
31497         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
31498         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
31499         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
31500         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
31501         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
31502         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
31503         c-common.c, c-common.h, reg-stack.c, basic-block.h,
31504         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
31505         include varray.h.
31506         * Makefile.in: Update for abovementioned changes.
31508 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
31510         PR debug/43942
31511         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
31513 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
31515         * config/picochip/picochip.c (picochip_legitimize_address): Define.
31516         Use this function to do machine-specific conversion.
31517         (picochip_legitimize_reload_address): Likewise.
31518         (picochip_legitimate_address_p): Check valid base register only if
31519         strict.
31520         (picochip_check_conditional_copy): Check for modw only if opnd is
31521         register.
31522         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
31523         to call the function in c.
31524         * config/picochip/picochip-protos.h
31525         (picochip_legitimize_reload_address): Define.
31526         * config/picochip/picochip.md (supported_compare1): Define.
31528 2010-04-30  Jan Hubicka  <jh@suse.cz>
31530         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
31531         (cgraph_global_info): Remove inlined.
31532         (LTO_cgraph_tag_names): Remove.
31533         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
31534         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
31535         simplify cgraph tags and document.
31536         (lto_output_node): Use only LTO_cgraph_unavail_node and
31537         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
31538         for_functions_valid, global info, process and output flags.
31539         (input_overwrite_node): Initialize estimated stack size and
31540         estimated growth.  Do not read flags we no longer store.
31541         (input_node): Likewise do not read info no longer stored.
31542         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
31543         flag.
31545 2010-04-30  Richard Guenther  <rguenther@suse.de>
31547         PR tree-optimization/43879
31548         * tree-ssa-structalias.c (get_constraint_for_1): Properly
31549         handle non-zero initializers.
31551 2010-04-30  Richard Guenther  <rguenther@suse.de>
31553         * builtins.c (fold_builtin_1): Delete free (0).
31555 2010-04-29  Jan Hubicka  <jh@suse.cz>
31557         * gengtype.c (open_base_files): Add lto-streamer.h
31558         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
31559         (pass_ipa_cp): GGC collect.
31560         * toplev. (compile_file): Do not output symbols.
31561         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
31562         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
31563         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
31564         * lto-section-in.c: Include ggc.h
31565         (lto_new_in_decl_state): Alloc in GGC.
31566         (lto_delete_in_decl_state): Likewise.
31567         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
31568         Collect.
31570 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
31572         PR target/42895
31573         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
31574         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
31575         (HONOR_REG_ALLOC_ORDER): Describe new macro.
31576         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
31577         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
31578         account only if HONOR_REG_ALLOC_ORDER is not defined.
31579         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
31580         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
31582 2010-04-29  Jon Grant  <04@jguk.org>
31584         * collect2.c (vflag): Change type from int to bool.
31585         (debug): Likewise.
31586         (helpflag): New global bool.
31587         (main): Set vflag and debug with boolean, not integer truth values.
31588         Accept new "--help" option and output usage text if found.
31589         * collect2.h (vflag): Update prototype.
31590         (debug): Likewise.
31592 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
31594         PR bootstrap/43936
31595         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
31597 2010-04-29  Richard Guenther  <rguenther@suse.de>
31599         PR bootstrap/43935
31600         * plugin.h (invoke_plugin_callbacks): Annotate arguments
31601         with ATTRIBUTE_UNUSED.
31603 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
31605         PR target/43921
31606         * config/i386/i386.c (get_some_local_dynamic_name): Replace
31607         INSN_P with NONDEBUG_INSN_P.
31608         (distance_non_agu_define): Likewise.
31609         (distance_agu_use): Likewise.
31611 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
31613         From Dominique d'Humieres  <dominiq@lps.ens.fr>
31614         PR bootstrap/43858
31615         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
31616         test_set.
31618 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
31620         * plugin.h (invoke_plugin_callbacks): New inline function.
31621         * plugin.c (flag_plugin_added): New global flag.
31622         (add_new_plugin): Initialize above flag.
31623         (invoke_plugin_callbacks): Rename to ...
31624         (invoke_plugin_callbacks_full): ... this.
31626 2010-04-28  Jan Hubicka  <jh@suse.cz>
31628         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
31629         (lto_varpool_replace_node): New.
31630         (lto_symtab_resolve_symbols): Resolve varpool nodes.
31631         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
31632         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
31633         * cgraph.h (varpool_node_ptr): New type.
31634         (varpool_node_ptr): New vector.
31635         (varpool_node_set_def): New structure.
31636         (varpool_node_set): New type.
31637         (varpool_node_set): New vector.
31638         (varpool_node_set_element_def): New structure.
31639         (varpool_node_set_element, const_varpool_node_set_element): New types.
31640         (varpool_node_set_iterator): New type.
31641         (varpool_node): Add prev pointers, add used_from_other_partition,
31642         in_other_partition.
31643         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
31644         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
31645         varpool_get_node, varpool_remove_node): Declare.
31646         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
31647         varpool_node_set_size): New inlines.
31648         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
31649         * tree-pass.h (varpool_node_set_def): Forward declare.
31650         (ipa_opt_pass_d): Summary writting takes vnode sets too.
31651         (ipa_write_optimization_summaries): Update prototype.
31652         * ipa-cp.c (ipcp_write_summary): Update.
31653         * ipa-reference.c (ipa_reference_write_summary): Update.
31654         * lto-cgraph.c (lto_output_varpool_node): New static function.
31655         (output_varpool): New function.
31656         (input_varpool_node): New static function.
31657         (input_varpool_1): New function.
31658         (input_cgraph): Input varpool.
31659         * ipa-pure-const.c (pure_const_write_summary): Update.
31660         * lto-streamer-out.c (lto_output): Update, output varpool too.
31661         (write_global_stream): Kill WPA hack.
31662         (produce_asm_for_decls): Update.
31663         (output_alias_pair_p): Handle variables.
31664         (output_unreferenced_globals): Output only needed partition of varpool.
31665         * ipa-inline.c (inline_write_summary): Update.
31666         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
31667         cgraph.
31668         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
31669         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
31670         varpool_node_set_new, varpool_node_set_add,
31671         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
31672         debug_varpool_node_set): New functions.
31673         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
31674         (execute_one_pass): Process new decls too.
31675         (ipa_write_summaries_2): Pass around vsets.
31676         (ipa_write_summaries_1): Likewise.
31677         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
31678         to add.
31679         (ipa_write_optimization_summaries_1): Pass around vsets.
31680         (ipa_write_optimization_summaries): Likewise.
31681         * varpool.c (varpool_get_node): New.
31682         (varpool_node): Update doubly linked lists.
31683         (varpool_remove_node): New.
31684         (dump_varpool_node): More dumping.
31685         (varpool_enqueue_needed_node): Update doubly linked lists.
31686         (decide_is_variable_needed): Kill ltrans hack.
31687         (varpool_finalize_decl): Kill lto hack.
31688         (varpool_assemble_decl): Skip decls in other partitions.
31689         (varpool_assemble_pending_decls): Update doubly linkes lists.
31690         (varpool_empty_needed_queue): Likewise.
31691         (varpool_extra_name_alias): Likewise.
31692         * lto-streamer.c (lto_get_section_name): Add vars section.
31693         * lto-streamer.h (lto_section_type): Update.
31694         (output_varpool, input_varpool): Declare.
31696 2010-04-28  Mike Stump  <mikestump@comcast.net>
31698         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
31700 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31702         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
31703         record or union type with RECORD_OR_UNION_TYPE_P predicate.
31704         (lto_input_ts_type_tree_pointers): Likewise.
31705         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
31706         (lto_output_ts_type_tree_pointers): Likewise.
31708 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31710         Uniquization of constants at the Tree level
31711         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
31712         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
31713         bit to the end.
31714         (tree_output_constant_def): Declare.
31715         * gimplify.c (gimplify_init_constructor): When using block copy, first
31716         uniquize the constant constructor on the RHS.
31717         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
31718         DECL_IN_CONSTANT_POOL flag.
31719         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
31720         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
31721         constant pool.
31722         (assemble_variable): Deal with symbols belonging to the tree constant
31723         pool.
31724         (get_constant_section): Add ALIGN parameter and simplify.
31725         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
31726         (assemble_constant_contents): Use the expression of the VAR_DECL.
31727         (output_constant_def_contents): Use the alignment of the VAR_DECL.
31728         (tree_output_constant_def): New global function.
31729         (mark_constant): Use the expression of the VAR_DECL.
31730         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
31731         its expression.
31732         (output_object_block): Likewise and assemble the expression.
31734 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31736         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
31737         hash_tree, eq_tree): New tree hash table.
31738         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
31739         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
31740         lto_orig_address_remove): Reimplement.
31742 2010-04-28  Xinliang David Li  <davidxl@google.com>
31744         PR c/42643
31745         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
31746         (compute_uninit_opnds_pos): New function.
31747         (is_non_loop_exit_postdominating): New function.
31748         (compute_control_dep_chain): New function.
31749         (find_pdom): New function.
31750         (convert_control_dep_chain_into_preds): New function.
31751         (find_predicates): New function.
31752         (find_control_equiv_block): New function.
31753         (collect_phi_def_edges): New function.
31754         (find_def_preds): New function.
31755         (find_dom): New function.
31756         (dump_predicates): New function.
31757         (get_cmp_code): New function.
31758         (is_value_included_in): New function.
31759         (find_matching_predicate_in_rest_chains): New function.
31760         (use_pred_not_overlap_with_undef_path_pred): New function.
31761         (is_use_properly_guarded): New function.
31762         (normalize_cond_1): New function.
31763         (is_and_or_or): New function.
31764         (normalize_cond): New function.
31765         (is_gcond_subset_of): New function.
31766         (is_subset_of_any): New function.
31767         (is_or_set_subset_of): New function.
31768         (is_and_set_subset_of): New function.
31769         (is_norm_cond_subset_of): New function.
31770         (is_pred_expr_subset_of): New function.
31771         (is_pred_chain_subset_of): New function.
31772         (is_included_in): New function.
31773         (is_superset_of): New function.
31774         (find_uninit_use): New function.
31775         (warn_uninitialized_phi): New function.
31776         (compute_possibly_undefined_names): New function.
31777         (ssa_undefined_value_p): New function.
31778         (execute_late_warn_uninitialized): New function.
31779         * tree-ssa.c (ssa_undefined_value_p): Removed.
31780         (warn_uninit): Changed to extern.
31781         (warn_uninitialized_phi): Removed.
31782         (warn_uninitialized_vars): Changed to extern.
31783         (execute_late_warn_uninitialized): Removed
31784         * tree-flow.h: Add new prototypes.
31785         * timevar.def: Add new time variable.
31786         * Makefile.in: Add new build file.
31788 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
31790         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
31791         type if available.
31793 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31795         PR target/22224
31796         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
31798 2010-04-28  Martin Jambor  <mjambor@suse.cz>
31800         * cgraph.h (struct cgraph_node): New field indirect_calls.
31801         (struct cgraph_indirect_call_info): New type.
31802         (struct cgraph_edge): Removed field indirect_call. New fields
31803         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
31804         (cgraph_create_indirect_edge): Declare.
31805         (cgraph_make_edge_direct): Likewise.
31806         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
31807         * ipa-prop.h (struct ipa_param_call_note): Removed.
31808         (struct ipa_node_params): Removed field param_calls.
31809         (ipa_create_all_structures_for_iinln): Declare.
31810         * cgraph.c: Described indirect edges and uids in initial comment.
31811         (cgraph_add_edge_to_call_site_hash): New function.
31812         (cgraph_edge): Search also among the indirect edges, use
31813         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
31814         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
31815         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
31816         site hash.
31817         (initialize_inline_failed): Assign a reason to indirect edges.
31818         (cgraph_create_edge_1): New function.
31819         (cgraph_create_edge): Moved some functionality to
31820         cgraph_create_edge_1.
31821         (cgraph_create_indirect_edge): New function.
31822         (cgraph_edge_remove_callee): Add an assert checking for
31823         non-indirectness.
31824         (cgraph_edge_remove_caller): Special-case indirect edges.
31825         (cgraph_remove_edge): Likewise.
31826         (cgraph_set_edge_callee): New function.
31827         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
31828         (cgraph_make_edge_direct): New function.
31829         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
31830         the declaration of the call statement matches.
31831         (cgraph_node_remove_callees): Special-case indirect edges.
31832         (cgraph_clone_edge): Likewise.
31833         (cgraph_clone_node): Clone also the indirect edges.
31834         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
31835         indirect_call, dump count of indirect_calls edges.
31836         * ipa-prop.c (iinlining_processed_edges): New variable.
31837         (ipa_note_param_call): Create indirect edges instead of
31838         creating notes.  New parameter node.
31839         (ipa_analyze_call_uses): New parameter node, pass it on to
31840         ipa_note_param_call.
31841         (ipa_analyze_stmt_uses): Likewise.
31842         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
31843         (print_edge_addition_message): Work on edges rather than on notes.
31844         (update_call_notes_after_inlining): Likewise, renamed to
31845         update_indirect_edges_after_inlining.
31846         (ipa_create_all_structures_for_iinln): New function.
31847         (ipa_free_node_params_substructures): Do not free notes.
31848         (ipa_edge_duplication_hook): Propagate bits within
31849         iinlining_processed_edges bitmap.
31850         (ipa_node_duplication_hook): Do not duplicate notes.
31851         (free_all_ipa_structures_after_ipa_cp): Renamed to
31852         ipa_free_all_structures_after_ipa_cp.
31853         (free_all_ipa_structures_after_iinln): Renamed to
31854         ipa_free_all_structures_after_iinln.
31855         (ipa_write_param_call_note): Removed.
31856         (ipa_read_param_call_note): Removed.
31857         (ipa_write_indirect_edge_info): New function.
31858         (ipa_read_indirect_edge_info): Likewise.
31859         (ipa_write_node_info): Do not stream notes, do stream information
31860         in indirect edges.
31861         (ipa_read_node_info): Likewise.
31862         (lto_ipa_fixup_call_notes): Removed.
31863         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
31864         * ipa-inline.c (pass_ipa_inline): Likewise.
31865         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
31866         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
31867         * tree-inline.c (copy_bb): Removed an unnecessary double check for
31868         is_gimple_call.
31869         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
31870         edges.
31871         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
31872         (output_cgraph): Stream also indirect edges.
31873         (lto_output_edge): Added capability to stream indirect edges.
31874         (input_edge): Likewise.
31875         (input_cgraph_1): Likewise.
31876         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
31877         of indirect edges.
31879 2010-04-28  Richard Guenther  <rguenther@suse.de>
31881         PR tree-optimization/43879
31882         PR tree-optimization/43909
31883         * tree-ssa-structalias.c (struct variable_info): Add
31884         only_restrict_pointers flag.
31885         (new_var_info): Initialize it.  Increment stats.total_vars here.
31886         (create_function_info_for): Do not increment stats.total_vars here.
31887         (get_function_part_constraint): Fix build with C++.
31888         (insert_into_field_list): Remove.
31889         (push_fields_onto_fieldstack): Properly merge fields.
31890         (create_variable_info_for): Split and simplify.
31891         (create_variable_info_for_1): New piece.
31892         (intra_create_variable_infos): Properly make restrict constraints
31893         from parameters.
31895 2010-04-28  Richard Guenther  <rguenther@suse.de>
31897         PR c++/43880
31898         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
31900 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31901             Jan Hubicka  <hubicka@ucw.cz>
31903         * doc/invoke.texi (-Wsuggest-attribute=const,
31904         -Wsuggest-attribute=pure): Document.
31905         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
31906         (function_always_visible_to_compiler_p,
31907         suggest_attribute, warn_function_pure, warn_function_const):
31908         New functions.
31909         (check_call): Improve debug info.
31910         (analyze_function): Do not check availability.
31911         (add_new_function): Check availability.
31912         (propagate): Output warnings.
31913         (skip_function_for_local_pure_const): New function.
31914         (local_pure_const): Use it; output warnings.
31915         * common.opt (Wsuggest-attribute=const,
31916         Wsuggest-attribute=pure): New.
31918 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31920         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
31921         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
31922         or DW_CFA_def_cfa_offset{,_sf}.
31924 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31926         * tree.h: Fix truncated long macros.
31928 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
31930         * collect2.c (TARGET_64BIT): Redefine to target's default.
31931         * tlink.c: Likewise.
31932         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
31933         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
31934         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
31935         for underscoring __USER_LABEL_PREFIX__.
31936         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
31937         (SUB_LINK_ENTRY32): New.
31938         (SUB_LINK_ENTRY64): New.
31939         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
31940         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
31941         (SUB_LINK_ENTRY64): New.
31942         (SUB_LINK_ENTRY): New.
31943         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
31944         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
31945         x64 target is choosen.
31946         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
31947         * configure: Regenerated.
31948         * configure.ac (leading-mingw64-underscores): Option added.
31950 2010-04-27  Jan Hubicka  <jh@suse.cz>
31952         * doc/invoke.texi (-fipa-profile): Document.
31953         * opts.c (decode_options): Enable ipa-profile at -O1.
31954         * timevar.def (TV_IPA_PROFILE): Define.
31955         * common.opt (fipa-profile): Add.
31956         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
31957         flag for clones.
31958         (cgraph_propagate_frequency): Handle only local ones.
31959         * tree-pass.h (pass_ipa_profile): Declare.
31960         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31961         (pass_ipa_profile): Use TV_IPA_PROFILE.
31962         * ipa.c (ipa_profile): New function.
31963         (gate_ipa_profile): Likewise.
31964         (pass_ipa_profile): New global variable.
31965         * passes.c (pass_ipa_profile): New.
31967 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31969         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31971 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31973         PR middle-end/43812
31974         * ipa.c (dissolve_same_comdat_group_list): New function.
31975         (function_and_variable_visibility): Call
31976         dissolve_same_comdat_group_list when comdat group contains external or
31977         newly local nodes.
31978         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31979         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31981 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31983         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31984         (const_hash_1) <VECTOR_CST>: New case.
31985         (compare_constant) <VECTOR_CST>: Likewise.
31986         <ADDR_EXPR>: Deal with LABEL_REFs.
31987         (copy_constant) <VECTOR_CST>: New case.
31989 2010-04-27  Jan Hubicka  <jh@suse.cz>
31991         * cgraph.c (cgraph_propagate_frequency): New function.
31992         * cgraph.h (cgraph_propagate_frequency): Declare.
31993         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31994         cgraph_propagate_frequency.
31996 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31998         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
32000 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
32002         PR target/40657
32003         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
32004         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
32005         here to determine which regs to push and how much stack to reserve.
32007 2010-04-27  Jie Zhang  <jie@codesourcery.com>
32009         * doc/gimple.texi (gimple_statement_with_ops): Remove
32010         addresses_taken field.
32011         (gimple_statement_with_memory_ops): Likewise.
32013 2010-04-27  Jan Hubicka  <jh@suse.cz>
32015         * tree-inline.c (eni_inlining_weights): Remove.
32016         (estimate_num_insns): Special case more builtins.
32018 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
32020         PR c/32207
32021         * c-typeck.c (build_binary_op): Move forward check for comparison
32022         pointer with null pointer constant and adjust the diagnostic message.
32024 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
32026         PR lto/42776
32027         * configure.ac (gcc_cv_as_section_has_align): Set if installed
32028         binutils supports extended .section directive needed by LTO, or
32029         warn if older binutils found.
32030         (LTO_BINARY_READER): New AC_SUBST'd variable.
32031         (LTO_USE_LIBELF): Likewise.
32032         * config.gcc (lto_binary_reader): New target-specific configure
32033         variable.
32034         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
32035         (LTO_USE_LIBELF): Likewise.
32036         * configure: Regenerate.
32038         * collect2.c (is_elf): Rename from this ...
32039         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
32040          object files in addition to ELF-formatted ones.
32041         (scan_prog_file): Caller updated.  Also allow for LTO info marker
32042         symbol to be prefixed or not by an extra underscore.
32044         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
32045         * config/i386/winnt.c: Also #include lto-streamer.h
32046         (i386_pe_asm_named_section): Specify 1-byte section alignment for
32047         LTO named sections.
32048         (i386_pe_asm_output_aligned_decl_common): Add comment.
32049         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
32051 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
32053         PR target/43889
32054         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
32055         Add missing earlyclobber for second alternative.
32057 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
32059         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
32060         bits for artificial defs at the top of the block.
32061         * fwprop.c (single_def_use_enter_block): Don't call it.
32063 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
32065         PR 43715
32066         * configure.ac: Use "$gcc_cv_nm -g" on darwin
32067         instead of "$gcc_cv_objdump -T".
32068         Use "-undefined dynamic_lookup" on darwin.
32069         * configure: Regenerate.
32071 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
32073         PR c/43893
32074         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
32076 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
32078         * c-parser.c (struct c_token): Move location field up.
32079         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
32080         (struct c_declspecs): Convert typespec_word, storage_class, and
32081         default_int_p into bitfields.
32082         (struct c_declarator): Move loc field up.
32084 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
32086         * cfgloop.h (struct loop): Move can_be_parallel field up.
32087         * ipa-prop.h (struct ip_node_params): Move bitfields up.
32088         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
32089         down.
32090         (struct iv_cand): Convert pos field into a bitfield.
32091         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
32092         field up.
32093         (struct _stmt_vec_info): Shuffle fields for better packing.
32095 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
32097         * varasm.c (IN_NAMED_SECTION): Remove guard.
32098         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
32099         (IN_NAMED_SECTION_P): ...this.
32100         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
32101         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
32103 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
32105         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
32106         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
32107         of shadowing it.  Fix comments.
32109 2010-04-26  Jan Hubicka  <jh@suse.cz>
32111         * cgraph.c (cgraph_create_node): Set node frequency to normal.
32112         (cgraph_clone_node): Copy function frequency.
32113         * cgraph.h (node_frequency): New enum
32114         (struct cgraph_node): Add.
32115         * final.c (rest_of_clean_state): Update.
32116         * lto-cgraph.c (lto_output_node): Output node frequency.
32117         (input_overwrite_node): Input node frequency.
32118         * tre-ssa-loop-ivopts (computation_cost): Update.
32119         * lto-streamer-out.c (output_function): Do not output function
32120         frequency.
32121         * predict.c (maybe_hot_frequency_p): Update and handle functions
32122         executed once.
32123         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
32124         attribute lookup.
32125         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
32126         (compute_function_frequency): Set noreturn functions to be executed
32127         once.
32128         (choose_function_section): Update.
32129         * lto-streamer-in.c (input_function): Do not input function frequency.
32130         * function.c (allocate_struct_function): Do not initialize function
32131         frequency.
32132         * function.h (function_frequency): Remove.
32133         (struct function): Remove function frequency.
32134         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
32135         (try_update): Update.
32136         * tree-inline.c (initialize_cfun): Do not update function frequency.
32137         * passes.c (pass_init_dump_file): Update.
32138         * i386.c (ix86_compute_frame_layout): Update.
32139         (ix86_pad_returns): Update.
32141 2010-04-26  Jie Zhang  <jie@codesourcery.com>
32143         PR tree-optimization/43833
32144         * tree-vrp.c (range_int_cst_p): New.
32145         (range_int_cst_singleton_p): New.
32146         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
32147         when both operands are constants.  Use range_int_cst_p in
32148         BIT_IOR_EXPR case.
32150 2010-04-26  Jan Hubicka  <jh@suse.cz>
32152         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
32154 2010-04-26  Richard Guenther  <rguenther@suse.de>
32156         PR lto/43080
32157         * gimple.c (gimple_decl_printable_name): Deal gracefully
32158         with a NULL DECL_NAME.
32160 2010-04-26  Richard Guenther  <rguenther@suse.de>
32162         PR lto/42425
32163         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
32164         if emitting debug information and it is either a function
32165         or a namespace decl.
32167 2010-04-26  Ira Rosen  <irar@il.ibm.com>
32169         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
32170         determine if the statement is vectorizable, and a macro to access it.
32171         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32172         Skip statements that can't be vectorized. If the analysis fails,
32173         mark the statement as unvectorizable if vectorizing basic block.
32174         (vect_compute_data_refs_alignment): Likewise.
32175         (vect_verify_datarefs_alignment): Skip statements marked as
32176         unvectorizable. Add print.
32177         (vect_analyze_group_access): Skip statements that can't be
32178         vectorized. If the analysis fails, mark the statement as
32179         unvectorizable if vectorizing basic block.
32180         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
32181         * tree-vect-stmts.c (vectorizable_store): Fix the number of
32182         generated stmts for SLP.
32183         (new_stmt_vec_info): Initialize the new field.
32184         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
32185         statements marked as unvectorizable.
32187 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
32189         * c-common.c (flag_isoc1x): New.
32190         (flag_isoc99): Update comment.
32191         * c-common.h (flag_isoc1x): New.
32192         (flag_isoc99): Update comment.
32193         * c-cppbuiltin.c (builtin_define_float_constants): Also define
32194         __<type>_DECIMAL_DIG__.
32195         * c-opts.c (set_std_c1x): New.
32196         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
32197         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
32198         * c.opt (-std=c1x, -std=gnu1x): New options.
32199         * doc/cpp.texi: Mention -std=c1x.
32200         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
32201         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
32202         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
32203         * doc/standards.texi: Mention C1X.
32204         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
32205         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
32206         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
32207         Define for C1X.
32209 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
32211         * config/i386/gmon-sol2.c (_mcleanup): Change format string
32212         placeholder from 0x%x to %#x.
32213         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
32214         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
32215         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
32216         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
32217         * config/i386/i386.c (ix86_target_string): Ditto.
32218         (output_pic_addr_const): Ditto.
32219         (print_operand): Ditto.
32221 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
32223         * combine.c (find_split_point): Add third argument.  Use it
32224         to find nested multiply-accumulate instructions.  Adjust calls.
32225         (try_combine): Adjust call to find_split_point.
32227 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
32229         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
32231 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
32233         PR tree-optimization/41442
32234         * fold-const.c (merge_truthop_with_opposite_arm): New function.
32235         (fold_binary_loc): Call it.
32237 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32239         * toplev.c (general_init): Set default for fdiagnostics-show-option.
32240         * opts.c (common_handle_option): Allow disabling it.
32241         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
32243 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
32245         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
32246         between modes if both types are integral.
32248 2010-04-23  Richard Guenther  <rguenther@suse.de>
32250         PR tree-optimization/43572
32251         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
32253 2010-04-23  Richard Guenther  <rguenther@suse.de>
32255         PR lto/43455
32256         * tree-inline.c (tree_can_inline_p): Also check compatibility
32257         of return types.
32259 2010-04-23  Martin Jambor  <mjambor@suse.cz>
32261         PR tree-optimization/43846
32262         * tree-sra.c (struct access): New flag grp_assignment_read.
32263         (build_accesses_from_assign): Set grp_assignment_read.
32264         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
32265         (enum mark_read_status): New type.
32266         (analyze_access_subtree): Propagate grp_assignment_read, create
32267         accesses also if both direct_read and root->grp_assignment_read.
32269 2010-04-23  Martin Jambor  <mjambor@suse.cz>
32271         PR middle-end/43835
32272         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
32273         function does not have type attributes.
32275 2010-04-23  Richard Guenther  <rguenther@suse.de>
32277         PR lto/42653
32278         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
32279         of FUNCTION_DECLs.
32281 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32283         * sese.h (create_if_region_on_edge): Remove.
32285         * sese.c (create_if_region_on_edge): Make static.
32287         * tree-inline.c: Do not include ggc.h.
32289         * expr.c: Do not include ggc.h.
32291         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
32292         dependencies.
32294 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
32296         PR target/43744
32297         * config/sh/sh.c (find_barrier): Don't emit a constant pool
32298         in the middle of insns for casesi_worker_2.
32300 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
32302         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
32304 2010-04-22  Ira Rosen  <irar@il.ibm.com>
32306         PR tree-optimization/43842
32307         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
32308         loop unrolling in update of exit phis. Fix comment.
32309         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
32310         least two reduction statements in the loop before starting SLP
32311         analysis.
32313 2010-04-22  Nick Clifton  <nickc@redhat.com>
32315         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
32317 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
32319         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
32320         to simplify a + ~a.
32322 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32324         * tree-parloops.c (loop_parallel_p): New argument
32325         parloop_obstack.  Pass it down.
32326         (parallelize_loops): New variable parloop_obstack.  Initialize it,
32327         pass it down, free it.
32329         * tree-loop-linear.c (linear_transform_loops): Pass down
32330         lambda_obstack.
32332         * tree-data-ref.h (lambda_compute_access_matrices): New argument
32333         of type struct obstack *.
32335         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
32336         scratch_obstack.  Initialize it, pass down, free it.
32338         * lambda.h (lambda_loop_new): Remove.
32339         (lambda_matrix_new, lambda_matrix_inverse)
32340         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
32341         argument of type struct obstack *.
32343         * lambda-trans.c (lambda_trans_matrix_new): New argument
32344         lambda_obstack.  Pass it down, use obstack allocation for ret.
32345         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
32346         it down.
32348         * lambda-mat.c (lambda_matrix_get_column)
32349         (lambda_matrix_project_to_null): Remove.
32350         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
32351         allocation for mat.
32352         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
32353         lambda_obstack.
32355         * lambda-code.c (lambda_loop_new): New function.
32356         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
32357         (lambda_compute_auxillary_space, lambda_compute_target_space)
32358         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
32359         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
32360         (build_access_matrix): New argument lambda_obstack.  Use obstack
32361         allocation for am.
32362         (lambda_compute_step_signs, lambda_compute_access_matrices): New
32363         argument lambda_obstack.  Pass it down.
32365 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
32367         * optabs.h (expand_widening_mult): Declare.
32369 2010-04-22  Richard Guenther  <rguenther@suse.de>
32371         PR tree-optimization/43845
32372         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
32373         lookup the CALL_EXPR function and arguments.
32375 2010-04-22  Nick Clifton  <nickc@redhat.com>
32377         * config/stormy16/stormy16.c
32378         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
32379         * config/stormy16/stormy16.h: Tidy up formatting.
32380         (DONT_USE_BUILTIN_SETJMP): Remove definition.
32381         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
32382         (ineqbranchsi): Delete pattern.
32383         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
32384         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
32385         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
32386         stormy16-lib2-ucmpsi2.c.
32388 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
32390         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
32391         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
32392         extra set merge_set_noclobber, and use it to relax the final test
32393         slightly.
32394         * df.h (df_simulate_find_noclobber_defs): Declare.
32395         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
32396         conditional defs.
32397         (df_simulate_find_noclobber_defs): New function.
32399 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
32401         * config/i386/i386.md: Use {} around multi-line preparation statements.
32403 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32405         * c-tree.h (push_init_level, pop_init_level, set_init_index)
32406         (process_init_element): New argument of type struct obstack *.
32408         * c-typeck.c (push_init_level, pop_init_level, set_designator)
32409         (set_init_index, set_init_label, set_nonincremental_init)
32410         (set_nonincremental_init_from_string, find_init_member)
32411         (output_init_element, output_pending_init_elements)
32412         (process_init_element): New argument braced_init_obstack.  Pass it
32413         down.
32414         (push_range_stack, add_pending_init): New argument
32415         braced_init_obstack.  Use obstack allocation.
32417         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
32418         braced_init_obstack.  Pass it down.
32419         (c_parser_braced_init): New variables ret, braced_init_obstack.
32420         Initialize obstack, pass it down and finally free it.
32422 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
32424         PR middle-end/29274
32425         * tree-pass.h (pass_optimize_widening_mul): Declare.
32426         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
32427         gate_optimize_widening_mul): New static functions.
32428         (pass_optimize_widening_mul): New.
32429         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
32430         <case MULT_EXPR>: Remove support for widening multiplies.
32431         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
32432         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
32433         simplify_gen_unary rather than directly building extensions.
32434         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
32435         WIDEN_MULT_EXPR.
32436         * expmed.c (expand_widening_mult): New function.
32437         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
32439 2010-04-21  Jan Hubicka  <jh@suse.cz>
32441         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
32442         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
32443         * lto-wpa-fixup.c: Remove.
32444         * Makefile.in (lto-wpa-fixup.o): Remove.
32445         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
32446         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
32447         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
32449 2010-04-21  Jan Hubicka  <jh@suse.cz>
32451         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
32452         add write_optimization_summary, read_optimization_summary.
32453         (ipa_write_summaries_of_cgraph_node_set): Remove.
32454         (ipa_write_optimization_summaries): Declare.
32455         (ipa_read_optimization_summaries): Declare.
32456         * ipa-cp.c (pass_ipa_cp): Update.
32457         * ipa-reference.c (pass_ipa_reference): Update.
32458         * ipa-pure-const.c (pass_ipa_pure_const): Update.
32459         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
32460         Update.
32461         * ipa-inline.c (pass_ipa_inline): Update.
32462         * ipa.c (pass_ipa_whole_program): Update.
32463         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
32464         * passes.c (ipa_write_summaries_1): Do not test wpa.
32465         (ipa_write_optimization_summaries_1): New.
32466         (ipa_write_optimization_summaries): New.
32467         (ipa_read_summaries): Do not test ltrans.
32468         (ipa_read_optimization_summaries_1): New.
32469         (ipa_read_optimization_summaries): New.
32471 2010-04-21  Jan Hubicka  <jh@suse.cz>
32473         * lto-cgraph.c (lto_output_node): Do not output comdat groups
32474         for boundary nodes.
32475         (output_cgraph): Do not arrange comdat groups for boundary nodes.
32477 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32479         PR debug/40040
32480         * dwarf2out.c (add_name_and_src_coords_attributes): Add
32481         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
32483 2010-04-21  Jan Hubicka  <jh@suse.cz>
32485         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
32487 2010-04-21  Jan Hubicka  <jh@suse.cz>
32489         * varpool.c (decide_is_variable_needed): Variable is always needed
32490         during ltrans.
32492 2010-04-21  Jan Hubicka  <jh@suse.cz>
32494         * opts.c (decode_options): Enable pure-const pass for whopr.
32496 2010-04-21  Jan Hubicka  <jh@suse.cz>
32498         * cgraph.c (dump_cgraph_node): Dump also assembler name.
32499         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
32500         at WPA dumping.
32501         (cgraph_decide_inlining): Do not expect callee to be removed in all
32502         cases.
32504 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
32506         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
32508 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
32510         * config/i386/i386.md (x86_shrd): Add athlon_decode and
32511         amdfam10_decode attributes.
32513 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32515         PR middle-end/43570
32516         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
32517         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
32518         (lower_copyprivate_clauses): Use private var in outer
32519         context instead of original var.  Make sure the types
32520         are correct for VLAs.
32522 2010-04-21  Richard Guenther  <rguenther@suse.de>
32524         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
32525         to non-pointer objects.
32527 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32529         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
32530         last chain entry if it starts with the still current label.
32531         (add_location_or_const_value_attribute): Check that
32532         loc_list->first->next is NULL instead of comparing ->first with ->last.
32533         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
32534         to add_var_loc_to_decl.
32536         * dwarf2out.c (output_call_frame_info): For dw_cie_version
32537         >= 4 add also address size and segment size fields into CIE header.
32539         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
32540         long as address size is the same as sizeof (void *) and
32541         segment size is 0.
32542         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
32543         address size or segment size is unexpected, return DW_EH_PE_omit.
32544         (classify_object_over_fdes): If get_cie_encoding returned
32545         DW_EH_PE_omit, return -1.
32546         (init_object): If classify_object_over_fdes returned -1,
32547         pretend there were no FDEs at all.
32549 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
32551         * config/i386/i386.md (bswap<mode>2): Macroize expander from
32552         bswap{si,di}2 using SWI48 mode iterator.
32553         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
32554         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
32555         set modrm attribute of bswap insn to 0 and remove length attribute.
32556         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
32557         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
32558         set mode attribute to <MODE> and remove length attribute.
32560 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
32562         PR rtl-optimization/43520
32563         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
32564         zero available registers.
32566 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32568         * builtins.c (fold_builtin_cproj): Fold more cases.
32570 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32572         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
32573         (fold_builtin_1): Fold builtin cproj.
32574         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
32575         Use ATTR_CONST_NOTHROW_LIST.
32577 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
32579         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
32580         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
32581         ffsi2_no_cmove for !TARGET_CMOVE.
32582         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
32583         (ffssi2): Remove expander.
32584         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
32585         mode iterator.
32586         (ctz<mode>2): Ditto from ctz{si,di}2.
32587         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
32588         mode iterator.
32589         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
32590         mode iterator.
32592 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
32594         * dwarf2out.c (AT_linkage_name): Define.
32595         (clone_as_declaration): Handle DW_AT_linkage_name.
32596         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
32597         of DW_AT_MIPS_linkage_name.
32598         (move_linkage_attr): Likewise.
32599         (dwarf2out_finish): Likewise.
32601 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
32603         PR middle-end/41952
32604         * fold-const.c (fold_comparison): New folding rule.
32606 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
32608         * double-int.h (double_int_setbit): Declare.
32609         * double-int.c (double_int_setbit): New function.
32610         * rtl.h (immed_double_int_const): Declare.
32611         * emit-rtl.c (immed_double_int_const): New function.
32612         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
32613         and immed_double_int_const functions.
32614         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
32615         expand_copysign_bit): (Ditto.).
32616         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
32617         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
32618         * dojump.c (prefer_and_bit_test): (Ditto.).
32619         * expr.c (convert_modes, reduce_to_bit_field_precision,
32620         const_vector_from_tree): (Ditto.).
32621         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32623 2010-04-20  Jan Hubicka  <jh@suse.cz>
32625         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
32626         (dump_cgraph_node): Dump new flags.
32627         * cgraph.h (struct cgraph_node): Add flags
32628         reachable_from_other_partition and in_other_partition.
32629         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
32630         other partition can not be removed.
32631         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
32632         the other partition must be output; silence sanity checking on
32633         leaking functions bodies from other paritition.
32634         * lto-cgraph.c (reachable_from_other_partition_p): New function.
32635         (lto_output_node): Output new flags; do not sanity check that inline
32636         clones are output; drop lto_forced_extern_inline_p code; do not mock
32637         visibility flags at partition boundaries.
32638         (add_node_to): New function.
32639         (output_cgraph): Use it to sort functions so masters appear before
32640         clones.
32641         (input_overwrite_node): Input new flags.
32642         * passes.c (ipa_write_summaries): Do not call
32643         lto_new_extern_inline_states.
32644         * lto-section-out.c (forced_extern_inline,
32645         lto_new_extern_inline_states lto_delete_extern_inline_states,
32646         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
32647         * lto-streamer.h (lto_new_extern_inline_states,
32648         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
32649         lto_forced_extern_inline_p): Kill.
32651 2010-04-20  Richard Guenther  <rguenther@suse.de>
32653         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
32654         from vars that can have pointers.
32655         (process_constraint): Dump useless constraints.
32657 2010-04-20  Richard Guenther  <rguenther@suse.de>
32659         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
32660         (dump_sa_points_to_info): Remove asserts.
32661         (init_base_vars): nothing_id isn't an escape point nor does it
32662         have pointers.
32664 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
32666         * tree.h (TYPE_REF_IS_RVALUE): Define.
32667         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
32668         should_move_die_to_comdat, prune_unused_types_walk): Handle
32669         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
32670         (modified_type_die, gen_reference_type_die): Emit
32671         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
32672         if TYPE_REF_IS_RVALUE and -gdwarf-4.
32674 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32676         PR target/43635
32677         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
32678         calls for -fpic -m31 if they have been sibcall optimized.
32680 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
32682         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
32683         ar.lc fixed and call-used.
32685         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
32687 2010-04-19  Jan Hubicka  <jh@suse.cz>
32689         * opts.c (decode_options): Disable whpr incompatible passes.
32690         * lto/lto.c (lto_1_to_1_map): Skip clones.
32691         (read_cgraph_and_symbols): Do not mark everything as needed.
32692         (do_whole_program_analysis): Do map only after optimizing;
32693         set proper cgraph_state; use passmanager.
32695 2010-04-19  DJ Delorie  <dj@redhat.com>
32697         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
32698         POINTER_PLUS_EXPR and fix them.
32700 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
32702         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
32703         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
32704         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
32705         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
32706         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
32707         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
32708         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
32709         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
32710         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
32711         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
32712         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
32714 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
32716         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
32717         (check_cond_move_block): Likewise.
32718         (cond_move_process_if_block): Likewise.
32719         (noce_find_if_block): Improve formatting.
32720         (find_if_header): Pass 0 to memset and tweak conditions.
32721         (cond_exec_find_if_block): Fix long lines and tweak conditions.
32723 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32725         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
32726         for -gdwarf-4.
32728         PR middle-end/43337
32729         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
32730         with non-local decl doesn't need chain.
32732 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
32734         * ira-color.c (allocno_reload_assign): Avoid accumulating
32735         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
32737 2010-04-19  Martin Jambor  <mjambor@suse.cz>
32739         * gimple.h (create_tmp_reg): Declare.
32740         * gimplify.c (create_tmp_reg): New function.
32741         (gimplify_return_expr): Use create_tmp_reg.
32742         (gimplify_omp_atomic): Likewise.
32743         (gimple_regimplify_operands): Likewise.
32744         * tree-dfa.c (make_rename_temp): Likewise.
32745         * tree-predcom.c (predcom_tmp_var): Likewise.
32746         (reassociate_to_the_same_stmt): Likewise.
32747         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
32748         (get_replaced_param_substitute): Likewise.
32749         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
32750         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
32751         * tree-ssa-pre.c (get_representative_for): Likewise.
32752         (create_expression_by_pieces): Likewise.
32753         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
32754         (create_tailcall_accumulator): Likewise.
32756 2010-04-19  Martin Jambor  <mjambor@suse.cz>
32758         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
32759         new_stmt.
32760         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
32762 2010-04-19  Richard Guenther  <rguenther@suse.de>
32764         PR tree-optimization/43796
32765         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
32766         from SCEV in the lattice.
32767         (vrp_visit_phi_node): Dump change.
32769 2010-04-19  Richard Guenther  <rguenther@suse.de>
32771         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
32772         * configure: Re-generated.
32774 2010-04-19  Richard Guenther  <rguenther@suse.de>
32776         PR tree-optimization/43783
32777         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
32778         constant ARRAY_REF operands two and three if possible.
32780 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
32782         PR target/43766
32783         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
32785 2010-04-19  Jie Zhang  <jie@codesourcery.com>
32787         PR target/43662
32788         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
32790 2010-04-19  Ira Rosen  <irar@il.ibm.com>
32792         PR tree-optimization/37027
32793         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
32794         and macro to access it.
32795         (vectorizable_reduction): Add argument.
32796         (vect_get_slp_defs): Likewise.
32797         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
32798         statements for possible use in SLP.
32799         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
32800         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
32801         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
32802         add new argument.
32803         (vectorizable_reduction): Likewise.
32804         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
32805         vect_get_slp_defs.
32806         (vectorizable_type_demotion, vectorizable_type_promotion,
32807         vectorizable_store): Likewise.
32808         (vect_analyze_stmt): Update call to vectorizable_reduction.
32809         (vect_transform_stmt): Likewise.
32810         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
32811         (vect_build_slp_tree): Fix indentation. Check that there are no loads
32812         from different interleaving chains in same node.
32813         (vect_slp_rearrange_stmts): New function.
32814         (vect_supported_load_permutation_p): Allow load permutations for
32815         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
32816         inside SLP nodes if necessary.
32817         (vect_analyze_slp_instance): Handle reductions.
32818         (vect_analyze_slp): Try to build SLP instances originating from groups
32819         of reductions.
32820         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
32821         (vect_get_constant_vectors): Create initial vectors for reductions
32822         according to reduction code. Add new argument.
32823         (vect_get_slp_defs): Add new argument, pass it to
32824         vect_get_constant_vectors.
32825         (vect_schedule_slp_instance): Remove SLP tree root statements.
32827 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32829         * tree.h (ENUM_IS_SCOPED): Define.
32830         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
32831         for ENUM_IS_SCOPED enums.
32833 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
32835         * fold-const.c (fold_comparison): Use ssizetype.
32836         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
32837         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
32838         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
32839         * tree-object-size.c (compute_object_sizes): Use size_type_node.
32841         * tree.h (initialize_sizetypes): Remove parameter.
32842         (build_common_tree_nodes): Remove second parameter.
32843         * stor-layout.c (initialize_sizetypes): Remove parameter.
32844         Always create an unsigned type.
32845         (set_sizetype): Assert that the passed type is unsigned and simplify.
32846         * tree.c (build_common_tree_nodes): Remove second parameter.
32847         Adjust call to initialize_sizetypes.
32848         * c-decl.c (c_init_decl_processing): Remove second argument in call to
32849         build_common_tree_nodes.
32851 2010-04-18  Matthias Klose  <doko@ubuntu.com>
32853         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
32855 2010-04-18  Ira Rosen  <irar@il.ibm.com>
32857         PR tree-optimization/43771
32858         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
32859         load permutation doesn't have gaps.
32861 2010-04-18  Jan Hubicka  <jh@suse.cz>
32863         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
32864         (sse_prologue_save_insn expander): Use new pattern.
32865         (sse_prologue_save_insn1): New pattern and splitter.
32866         (sse_prologue_save_insn): Update to deal also with 64bit aligned
32867         blocks.
32868         * i386.c (setup_incoming_varargs_64): Do not compute jump
32869         destination here.
32870         (ix86_gimplify_va_arg): Update alignment needed.
32871         (ix86_local_alignment): Do not align all local arrays to 128bit.
32873 2010-04-17  Jan Hubicka  <jh@suse.cz>
32875         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
32877 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32879         * arm.md (negdi2): Remove redundant code to force values into a
32880         register.
32882 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32884         * arm/bpabi.S: Add EABI alignment attributes to objects.
32885         * arm/bpabi-v6m.S: Likewise.
32886         * arm/crti.asm: Likewise.
32887         * arm/crtn.asm: Likewise.
32888         * arm/lib1funcs.asm: Likewise.
32889         * arm/libunwind.S: Likewise.
32891 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32893         * arm-protos.h (tune_params): New structure.
32894         * arm.c (current_tune): New variable.
32895         (arm_constant_limit): Delete.
32896         (struct processors): Add pointer to the tune parameters.
32897         (arm_slowmul_tune): New tuning option.
32898         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
32899         (all_cores): Adjust to pick up the tuning model.
32900         (arm_constant_limit): New function.
32901         (arm_override_options): Select the appropriate tuning model.  Delete
32902         initialization of arm_const_limit.
32903         (arm_split_constant): Use the new constant-limit model.
32904         (arm_rtx_costs): Pick up the current tuning model.
32905         * arm.md (is_strongarm, is_xscale): Delete.
32906         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
32907         for Xscale variant architectures.
32908         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
32910 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32912         * config/arm/arm.c (arm_gen_constant): Remove unused variable
32913         can_shift.
32914         (arm_rtx_costs_1): Remove unused variable extra_cost.
32915         (arm_unwind_emit_set): Use variable offset.
32916         (thumb1_output_casesi): Remove unused variable flags.
32918 2010-04-16  Jeff Law  <law@redhat.com>
32920         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
32921         needing assignment rather than doing a two-phase assignment.  Remove
32922         unused variable 'm'.
32924 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32926         PR bootstrap/43767
32927         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
32929 2010-04-16  Doug Kwan  <dougkwan@google.com>
32931         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
32932         (next_operand_entry_id): New static variable.
32933         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
32934         (add_to_ops_vec): Assigned unique ID to operand entry.
32935         (struct oecount_s): New field ID.
32936         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
32937         (undistribute_ops_list): Assign unique IDs to oecounts.
32938         (init_reassoc): reset next_operand_entry_id.
32940 2010-04-16  Doug Kwan  <dougkwan@google.com>
32942         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
32943         missing left parenthesis.
32945 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
32947         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
32948         *btdi_rex64 using SWI48 mode iterator.
32949         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
32950         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
32951         *jcc_btdi_mask_rex64.
32953 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
32955         * double-int.h (tree_to_double_int): Convert to macro.
32956         * double-int.c (tree_to_double_int): Remove.
32958 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32960         PR debug/43762
32961         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32962         with want_address 2 and in case a single element list might be
32963         possible, call it again with want_address 0.
32965 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32967         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32968         case 'W' print operands for HI mode.
32969         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32970         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32971         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32972         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32974         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32976         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32977         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32978         #xx:3 and #xx:4 mode.
32980         * config/h8300/h8300.md (inverted load with HImode dest): Add
32981         support for H8300SX.
32983         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32984         satisfy 'U' constraint.
32986 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32988         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32989         * configure: Regenerate.
32990         * config.in: Regenerate.
32991         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32992         works.
32994 2010-04-16  Richard Guenther  <rguenther@suse.de>
32996         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32997         (struct tree_decl_common): ... here.
32998         (DECL_PT_UID): Adjust.
32999         (SET_DECL_PT_UID): Likewise.
33000         (DECL_PT_UID_SET_P): Likewise.
33002 2010-04-16  Richard Guenther  <rguenther@suse.de>
33004         PR tree-optimization/43572
33005         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
33006         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
33007         * tree-flow.h (is_call_clobbered): Remove.
33008         * tree-flow-inline.h (is_call_clobbered): Likewise.
33009         * tree-dfa.c (dump_variable): Do not dump call clobber state.
33010         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
33011         (execute_return_slot_opt): Adjust.
33012         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
33013         check for call clobbered vars here.
33014         (find_tail_calls): Move tailcall verification to the
33015         proper place.
33017 2010-04-16  Diego Novillo  <dnovillo@google.com>
33019         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
33021 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
33023         PR target/40603
33024         * config/arm/arm.md (cbranchqi4): New pattern.
33025         * config/arm/predicates.md (const0_operand,
33026         cbranchqi4_comparison_operator): New predicates.
33028 2010-04-16  Richard Guenther  <rguenther@suse.de>
33030         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
33031         (dump_gimple_stmt): Likewise.
33033 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
33035         * recog.h (struct recog_data): New field is_operator.
33036         (struct insn_operand_data): New field is_operator.
33037         * recog.c (extract_insn): Set recog_data.is_operator.
33038         * genoutput.c (output_operand_data): Emit code to set the
33039         is_operator field.
33040         * reload.c (find_reloads): Use it rather than testing for an
33041         empty constraint string.
33043         PR target/41514
33044         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
33045         If the previous insn is a cbranchsi4_insn with the same arguments,
33046         omit the compare instruction.
33048         * config/arm/arm.md (addsi3_cbranch): If destination is a high
33049         register, inputs must be low registers and we need a low register
33050         scratch.  Handle alternative 2 like alternative 3.
33052 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
33054         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
33055         don't call get_addr on both.  If one expression is a VALUE and
33056         the other a REG, check VALUE's locs if the REG isn't among them.
33058 2010-04-16  Christian Bruel  <christian.bruel@st.com>
33060         * config/sh/sh.h (sh_frame_pointer_required): New function.
33061         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
33062         (flag_omit_frame_pointer) Set.
33063         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
33064         (rounded_frame_size): Adjust size with outgoing_args_size.
33065         (sh_set_return_address): Must return from stack pointer.
33066         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
33067         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
33068         (ACCUMULATE_OUTGOING_ARGS): Define.
33069         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
33070         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
33072 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
33074         PR target/43471
33075         * config/sh/sh.c (sh_legitimize_reload_address): Use
33076         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
33077         Remove a unneeded check for offset_base.
33079 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
33081         * configure: Regenerated.
33083 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33085         * config/s390/s390.c (s390_call_save_register_used): Switch back
33086         to HARD_REGNO_NREGS.
33088 2010-04-15  Richard Guenther  <rguenther@suse.de>
33090         * alias.c (alias_set_subset_of): Handle alias-set zero
33091         child properly.
33093 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
33094             Julian Brown  <julian@codesourcery.com>
33096         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
33097         alternatives according to use of high and low regs.
33098         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
33099         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
33100         optimizing for size on Thumb-2.
33102 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
33104         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
33106 2010-04-15  Richard Guenther  <rguenther@suse.de>
33108         * tree-ssa-structalias.c (struct variable_info): Add
33109         is_fn_info flag.
33110         (new_var_info): Initialize it.
33111         (dump_constraints): Support printing last added constraints.
33112         (debug_constraints): Adjust.
33113         (dump_constraint_graph): Likewise.
33114         (make_heapvar_for): Check for NULL cfun.
33115         (get_function_part_constraint): New function.
33116         (get_fi_for_callee): Likewise.
33117         (find_func_aliases): Properly implement IPA PTA constraints.
33118         (process_ipa_clobber): New function.
33119         (find_func_clobbers): Likewise.
33120         (insert_into_field_list_sorted): Remove.
33121         (create_function_info_for): Properly allocate vars for IPA mode.
33122         Do not use insert_into_field_list_sorted.
33123         (create_variable_info_for): Properly generate constraints for
33124         global vars in IPA mode.
33125         (dump_solution_for_var): Always dump the solution.
33126         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
33127         (find_what_var_points_to): Adjust.
33128         (pt_solution_set): Change.
33129         (pt_solution_ior_into): New function.
33130         (pt_solution_empty_p): Export.
33131         (pt_solution_includes_global): Adjust.
33132         (pt_solution_includes_1): Likewise.
33133         (pt_solutions_intersect_1): Likewise.
33134         (dump_sa_points_to_info): Check some invariants.
33135         (solve_constraints): Move constraint dumping ...
33136         (compute_points_to_sets): ... here.
33137         (ipa_pta_execute): ... and here.
33138         (compute_may_aliases): Do not re-compute points-to info
33139         locally if IPA info is available.
33140         (ipa_escaped_pt): New global var.
33141         (ipa_pta_execute): Properly implement IPA PTA.
33142         * tree-into-ssa.c (dump_decl_set): Support dumping
33143         decls not in referenced-vars.
33144         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
33145         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
33146         (dump_points_to_solution): Likewise.
33147         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
33148         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
33149         (remap_gimple_stmt): Reset call clobber/use information if necessary.
33150         (copy_decl_to_var): Copy DECL_PT_UID.
33151         (copy_result_decl_to_var): Likewise.
33152         * tree.c (make_node_stat): Initialize DECL_PT_UID.
33153         (copy_node_stat): Copy it.
33154         * tree.h (DECL_PT_UID): New macro.
33155         (SET_DECL_PT_UID): Likewise.
33156         (DECL_PT_UID_SET_P): Likewise.
33157         (struct tree_decl_minimal): Add pt_uid member.
33158         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
33159         (pt_solution_empty_p): Declare.
33160         (pt_solution_set): Adjust.
33161         (ipa_escaped_pt): Declare.
33162         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
33163         * gimple-pretty-print.c (pp_points_to_solution): New function.
33164         (dump_gimple_call): Dump call clobber/use information.
33165         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
33166         * tree-pass.h (TDF_ALIAS): New dump option.
33167         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
33168         * doc/invoke.texi (-fipa-pta): Update documentation.
33170 2010-04-15  Richard Guenther  <rguenther@suse.de>
33172         * Makefile.in (OBJS-common): Add gimple-fold.o.
33173         (gimple-fold.o): New rule.
33174         * tree.h (maybe_fold_offset_to_reference,
33175         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
33176         prototypes ...
33177         * gimple.h: ... here.
33178         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
33179         may_propagate_address_into_dereference): Move prototypes ...
33180         * gimple.h: ... here.
33181         * tree-ssa-ccp.c (get_symbol_constant_value,
33182         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
33183         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
33184         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
33185         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
33186         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
33187         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
33188         gimplify_and_update_call_from_tree): Move ...
33189         * gimple-fold.c: ... here.  New file.
33190         (ccp_fold_builtin): Rename to ...
33191         (gimple_fold_builtin): ... this.
33192         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
33194 2010-04-15  Richard Guenther  <rguenther@suse.de>
33196         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
33197         fit_double_type, force_fit_type_double, add_double_with_sign,
33198         neg_double, mul_double_with_sign, lshift_double, rshift_double,
33199         lrotate_double, rrotate_double, div_and_round_double): Move ...
33200         * double-int.c: ... here.
33201         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
33202         add_double, neg_double, mul_double_with_sign, mul_double,
33203         lshift_double, rshift_double, lrotate_double, rrotate_double,
33204         div_and_round_double): Move prototypes ...
33205         * double-int.h: ... here.
33207 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
33209         PR target/43742
33210         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
33211         matching constraints to ensure inputs match the output.
33213 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
33215         PR target/43742
33216         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
33217         in an input-only operand.
33219 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
33221         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
33222         (double_int_not, double_int_lshift, double_int_rshift): Declare.
33223         (double_int_negative_p): Convert to static inline function.
33224         * double-int.c (double_int_lshift, double_int_lshift): New functions.
33225         (double_int_negative_p): Remove.
33226         * tree.h (lshift_double, rshift_double):
33227         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
33228         * fold-const.c (fold_convert_const_int_from_real,
33229         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
33230         (lshift_double): Change type of arith argument to bool.
33231         (rshift_double): Change type of arith argument to bool. Correct
33232         comment.
33233         * expmed.c (mask_rtx, lshift_value): (Ditto.).
33235 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
33237         PR target/21803
33238         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
33239         at the start and end of the then/else blocks, and omit them from the
33240         conversion.
33241         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
33242         argument; all callers changed.  Pass zero to old_insns_match_p instead.
33243         (flow_find_head_matching_sequence): New function.
33244         (old_insns_match_p): Check REG_EH_REGION notes for calls.
33245         * basic-block.h (flow_find_cross_jump,
33246         flow_find_head_matching_sequence): Declare functions.
33248 2010-04-14  Jason Merrill  <jason@redhat.com>
33250         PR c++/36625
33251         * c-common.c (attribute_takes_identifier_p): New fn.
33252         * c-common.h: Declare it.
33254 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33256         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
33257         splitter condition.
33258         (*udivmod<mode>4): Ditto.
33260 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33262         * config/i386/i386.md (maxmin_int): Rename code attribute from
33263         maxminiprefix and update all users.
33264         (maxmin_float): Ditto from maxminfprefix.
33265         (logic): Ditto from logicprefix.
33266         (absneg_mnemonic): Ditto from absnegprefix.
33267         * config/i386/mmx.md: Update all users of maxminiprefix,
33268         maxminfprefix and logicprefix for rename.
33269         * config/i386/sse.md: Ditto.
33270         * config/i386/sync.md (sync_<code><mode>): Update for
33271         logicprefix rename.
33273 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33275         PR 42966
33276         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
33277         warnings converted to errors.
33279 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33281         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
33282         used insn_type variable.
33283         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
33284         to avoid set-but-not-used warning.
33286 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33288         * df-core.c (df_ref_debug): Change format string placeholder
33289         from 0x%x to %#x.
33290         * dwarf2asm.c (dw2_asm_output_data_raw,
33291         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
33292         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
33293         * dwarf2out.c (output_cfi, output_cfi_directive,
33294         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
33295         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
33296         Ditto.
33297         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
33298         * print-rtl.c (print_rtx): Ditto.
33300 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
33302         PR middle-end/42694
33303         * builtins.c (expand_builtin_pow_root): New function to expand pow
33304         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
33305         series of sqrt and cbrt calls under -ffast-math.
33306         (expand_builtin_pow): Call it.
33308 2010-04-14  Michael Matz  <matz@suse.de>
33310         PR tree-optimization/42963
33311         * tree-cfg.c (touched_switch_bbs): New static variable.
33312         (group_case_labels_stmt): New function broken out from ...
33313         (group_case_labels): ... here, use the above.
33314         (start_recording_case_labels): Allocate touched_switch_bbs.
33315         (end_recording_case_labels): Deallocate it, call
33316         group_case_labels_stmt.
33317         (gimple_redirect_edge_and_branch): Remember index of affected BB.
33319 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33321         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
33322         from insn template.
33324 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33326         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
33328 2010-04-13  Jan Hubicka  <jh@suse.cz>
33330         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
33331         of optimized out static functions.
33332         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
33333         cost computation.  Also sanity check for overflows.
33334         (update_caller_keys): Update cgraph_edge_badness call; properly
33335         update fibheap and sanity check that it is up to date.
33336         (add_new_edges_to_heap): Update cgraph_edge_badness.
33337         (cgraph_decide_inlining_of_small_function): Likewise;
33338         add sanity checking that badness in heap is up to date;
33339         improve dumping of reason; Update badness of calls to the
33340         offline copy of function currently inlined; dump badness
33341         of functions not inlined because of unit growth limits.
33343 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
33345         PR middle-end/32628
33346         * c-common.c (pointer_int_sum): Disregard overflow that occured only
33347         because of sign-extension change when converting to sizetype here...
33348         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
33350         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
33351         the folding to constants.  Remove redundant final conversion.
33352         (fold_binary) <associate>: Do not associate if the re-association of
33353         constants alone overflows.
33354         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
33355         to the end of the list.
33356         (multiple_of_p) <COND_EXPR>: New case.
33358 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33360         * opt-functions.awk (opt_sanitized_name): New.
33361         (opt_enum): New.
33362         * optc-gen.awk: Use it
33363         * opth-gen.awk: Use it.
33365 2010-04-13  Martin Jambor  <mjambor@suse.cz>
33367         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
33368         (sra_modify_assign): Delete stmts loading dead data even if racc has no
33369         children.  Call replace_uses_with_default_def_ssa_name to handle
33370         SSA_NAES on lhs.
33372 2010-04-13  Michael Matz  <matz@suse.de>
33374         PR middle-end/43730
33375         * builtins.c (expand_builtin_interclass_mathfn): Also create
33376         a register if the predicate doesn't match.
33378 2010-04-13  Diego Novillo  <dnovillo@google.com>
33380         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
33381         * c-pch.c: Include timevar.h.
33382         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
33383         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
33384         * ggc-common.c: Include timevar.h.
33385         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
33386         * timevar.def (TV_PCH_SAVE): Define.
33387         (TV_PCH_CPP_SAVE): Define.
33388         (TV_PCH_PTR_REALLOC): Define.
33389         (TV_PCH_PTR_SORT): Define.
33390         (TV_PCH_RESTORE): Define.
33391         (TV_PCH_CPP_RESTORE): Define.
33393 2010-04-13  Michael Matz  <matz@suse.de>
33395         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
33396         into MINUS_EXPRs.
33397         (can_reassociate_p): New function.
33398         (break_up_subtract_bb, reassociate_bb): Use it.
33400 2010-04-13  Richard Guenther  <rguenther@suse.de>
33402         PR bootstrap/43737
33403         * builtins.c (c_readstr): Fix assert.
33405 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
33407         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
33408         when generating cltd insn.
33410         (*ashl<mode>3_1): Remove special handling for register operand 2.
33411         (*ashlsi3_1_zext): Ditto.
33412         (*ashlhi3_1): Ditto.
33413         (*ashlhi3_1_lea): Ditto.
33414         (*ashlqi3_1): Ditto.
33415         (*ashlqi3_1_lea): Ditto.
33416         (*<shiftrt_insn><mode>3_1): Ditto.
33417         (*<shiftrt_insn>si3_1_zext): Ditto.
33418         (*<shiftrt_insn>qi3_1_slp): Ditto.
33419         (*<rotate_insn><mode>3_1): Ditto.
33420         (*<rotate_insn>si3_1_zext): Ditto.
33421         (*<rotate_insn>qi3_1_slp): Ditto.
33423 2010-04-13  Richard Guenther  <rguenther@suse.de>
33425         * tree-ssa-structalias.c (callused_id): Remove.
33426         (call_stmt_vars): New.
33427         (get_call_vi): Likewise.
33428         (lookup_call_use_vi): Likewise.
33429         (lookup_call_clobber_vi): Likewise.
33430         (get_call_use_vi): Likewise.
33431         (get_call_clobber_vi): Likewise.
33432         (make_transitive_closure_constraints): Likewise.
33433         (handle_const_call): Adjust to do per-call call-used handling.
33434         (handle_pure_call): Likewise.
33435         (find_what_var_points_to): Remove general callused handling.
33436         (init_base_vars): Likewise.
33437         (init_alias_vars): Initialize call_stmt_vars.
33438         (compute_points_to_sets): Process call-used and call-clobbered
33439         vars for call statements.
33440         (delete_points_to_sets): Free call_stmt_vars.
33442 2010-04-13  Richard Guenther  <rguenther@suse.de>
33444         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
33445         Only add RW dependence for dependence distance zero.
33446         Adjust maximal vectorization factor according to dependences.
33447         Move alignment handling ...
33448         (vect_find_same_alignment_drs): ... here.  New function.
33449         (vect_analyze_data_ref_dependences): Adjust.
33450         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
33451         (vect_analyze_data_refs): Adjust minimal vectorization factor
33452         according to data references.
33453         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
33454         dependences before determining the vectorization factor.
33455         Analyze alignment after determining the vectorization factor.
33456         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
33457         dependences before alignment.
33458         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
33459         Adjust prototype.
33460         (vect_analyze_data_refs): Likewise.
33461         (MAX_VECTORIZATION_FACTOR): New define.
33463 2010-04-13  Duncan Sands  <baldrick@free.fr>
33465         * except.h (lang_eh_type_covers): Remove.
33466         * except.c (lang_eh_type_covers): Likewise.
33468 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33469             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
33471         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
33472         * config/s390/s390.c: Replace UNTIS_PER_WORD with
33473         UNITS_PER_LONG where it is ABI relevant.
33474         (s390_return_addr_rtx): Likewise.
33475         (s390_back_chain_rtx): Likewise.
33476         (s390_frame_area): Likewise.
33477         (s390_frame_info): Likewise.
33478         (s390_initial_elimination_offset): Likewise.
33479         (save_gprs): Likewise.
33480         (s390_emit_prologue): Likewise.
33481         (s390_emit_epilogue): Likewise.
33482         (s390_function_arg_advance): Likewise.
33483         (s390_function_arg): Likewise.
33484         (s390_va_start): Likewise.
33485         (s390_gimplify_va_arg): Likewise.
33486         (s390_function_profiler): Likewise.
33487         (s390_optimize_prologue): Likewise.
33488         (s390_rtx_costs): Likewise.
33489         (s390_secondary_reload): Likewise.
33490         (s390_promote_function_mode): Likewise.
33491         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
33492         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
33493         registers available.
33494         (s390_unwind_word_mode): New function.
33495         (s390_function_value): Split 64 bit values into register pair if
33496         used as return value.
33497         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
33498         function call parameters.  Handle parallels.
33499         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
33500         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
33501         (DWARF_CIE_DATA_ALIGNMENT): New macro.
33502         (s390_expand_setmem): Remove unused variable src_addr.
33503         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
33504         deal with 64 bit registers.
33505         * config/s390/s390.h: Define __zarch__ predefined macro.
33506         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
33507         (UNITS_PER_LONG): New macro.
33508         * libjava/include/s390-signal.h: Define extended ucontext
33509         structure containing the upper halfs of the 64 bit registers.
33511 2010-04-13  Simon Baldwin  <simonb@google.com>
33513         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
33515 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
33517         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
33518         rvalue on the RHS if the LHS is of a non-renamable type.
33519         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
33521 2010-04-13  Matthias Klose  <doko@ubuntu.com>
33523         * gcc.c (cc1_options): Handle -iplugindir before processing
33524         the cc1 spec. Only add -iplugindir once.
33525         (cpp_unique_options): Add -iplugindir option if -fplugin* options
33526         found.
33527         * common.opt (iplugindir): Remove `Separate' property, initialize.
33528         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
33529         option.
33530         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
33531         (distclean): Remove plugin dir.
33532         * doc/invoke.texi: Document -iplugindir.
33534 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
33536         * doc/plugins.texi (Loading Plugins): Document short
33537         -fplugin=foo option.
33538         (Plugin API): Mention default_plugin_dir_name function.
33540         * gcc.c (find_file_spec_function): Add new declaration.
33541         (static_spec_func): Use it for "find-file".
33542         (find_file_spec_function): Add new function.
33543         (cc1_options): Add -iplugindir option if -fplugin* options found.
33545         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
33547         * plugin.c (add_new_plugin): Updated comment, and handle short
33548         plugin name.
33549         (default_plugin_dir_name): Added new function.
33551         * common.opt (iplugindir): New option to set the plugin directory.
33553 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
33555         * config/i386/i386.md (any_rotate): New code iterator.
33556         (rotate_insn): New code attribute.
33557         (rotate): Ditto.
33558         (SWIM124): New mode iterator.
33559         (<rotate_insn>ti3): New expander.
33560         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
33561         any_rotate code iterator.
33562         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
33563         using any_rotate code iterator and SWIM124 mode iterator.
33564         (ix86_rotlti3): New insn_and_split pattern.
33565         (ix86_rotrti3): Ditto.
33566         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
33567         ix86_rotl{di,ti}3 patterns.
33568         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
33569         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
33570         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
33571         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
33572         code iterator and SWI mode iterator.
33573         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
33574         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
33575         code iterator.
33576         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
33577         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
33578         (bswap rotatert splitter): Add splitter.
33579         (bswap splitter): Macroize splitter using any_rotate code iterator.
33580         Add insn predicate to split only for TARGET_USE_XCHGB or when
33581         optimizing function for size.
33583 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33585         * config/pa/pa.c (emit_move_sequence): Remove use of
33586         deleted variable flag_argument_noalias.
33588 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33590         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
33591         configurations.
33592         Add to unsupported targets list.
33593         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
33594         sparc*-sun-solaris2.[567]* from target lists.
33595         * configure: Regenerate.
33596         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
33597         removal.
33598         Remove Solaris 7 patch references.
33599         (Specific, sparc-sun-solaris2.7): Removed.
33600         (sparc-sun-solaris2*): Update Solaris 7 example.
33601         (sparc64-*-solaris2*): Likewise.
33603 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33605         * config.build (alpha*-dec-osf4*): Remove.
33606         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
33607         of obsolete configurations.
33608         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
33609         support.
33610         * config/alpha/t-osf4: Renamed to ...
33611         * config/alpha/t-osf5: ... this.
33612         * config/alpha/osf.h: Renamed to ...
33613         * config/alpha/osf5.h: ... this.
33614         Merged old osf5.h contents.
33615         Update comments.
33616         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
33617         (EXTRA_SPECS): Removed.
33618         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
33619         reflect removal of Tru64 UNIX V4.0/V5.0 support.
33620         Document that.
33622 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33624         * doc/contrib.texi (Contributors, Rainer Orth): Update.
33626 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
33628         PR/43702
33629         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
33630         __thiscall convention.
33632 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33634         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
33635         orig_base.
33636         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
33638 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33640         * function.c (assign_parms_initialize_all): Add unused attribute
33641         to fntype.
33643 2010-04-12  Richard Guenther  <rguenther@suse.de>
33645         * gsstruct.def (GSS_CALL): New.
33646         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
33647         * gimple.h: Include tree-ssa-alias.h.
33648         (struct gimple_statement_call): New.
33649         (union gimple_statement_struct_d): Add gimple_call member.
33650         (gimple_call_reset_alias_info): Declare.
33651         (gimple_call_use_set): New function.
33652         (gimple_call_clobber_set): Likewise.
33653         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
33654         * gimple.c (gimple_call_reset_alias_info): New function.
33655         (gimple_build_call_1): Call it.
33656         * lto-streamer-in.c (input_gimple_stmt): Likewise.
33657         * tree-inline.c (remap_gimple_stmt): Likewise.
33658         (expand_call_inline): Remove callused handling.
33659         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
33660         * tree-dfa.c (dump_variable): Likewise.
33661         * tree-parloops.c (parallelize_loops): Likewise.
33662         * tree-ssa.c (init_tree_ssa): Likewise.
33663         (delete_tree_ssa): Likewise.
33664         * tree-flow-inline.h (is_call_used): Remove.
33665         * tree-flow.h (struct gimple_df): Remove callused member.
33666         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
33667         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
33668         (ref_maybe_used_by_call_p_1): Simplify.
33669         (call_may_clobber_ref_p_1): Likewise.
33670         * tree-ssa-structalias.c (compute_points_to_sets): Set
33671         the call stmt used and clobbered sets.
33672         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
33673         (find_tail_calls): Verify the tail call.
33675 2010-04-12  Richard Guenther  <rguenther@suse.de>
33677         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
33678         single-iteration always-inline inlining.
33679         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
33680         (cgraph_decide_inlining): Do not handle always-inline specially.
33681         (try_inline): Remove always-inline cycle detection special case.
33682         Do not recurse on always-inlines.
33683         (cgraph_early_inlining): Do not iterate if not optimizing.
33684         (cgraph_gate_early_inlining): remove.
33685         (pass_early_inline): Run unconditionally.
33686         (gate_cgraph_decide_inlining): New function.
33687         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
33688         not inlining or optimizing.
33689         (cgraph_decide_inlining_of_small_functions): Also consider
33690         always-inline functions.
33691         (cgraph_default_inline_p): Return true for nodes which should
33692         disregard inline limits.
33693         (estimate_function_body_sizes): Assume zero size and time for
33694         nodes which are marked as disregarding inline limits.
33695         (cgraph_decide_recursive_inlining): Do not perform recursive
33696         inlining on always-inline nodes.
33698 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
33700         PR bootstrap/43699
33701         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
33702         for exprs satisfying handled_component_p.
33704 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
33706         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
33707         non-constant aggregate elements.
33709         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
33710         is a real initialization.
33712 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
33714         PR c/36774
33715         * c-decl.c (start_function): Move forward check for nested function.
33717 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
33719         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
33720         * config/sh/sh.c: Include reload.h.
33721         (sh_legitimize_reload_address): New.
33722         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
33723         sh_legitimize_reload_address.
33725 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
33727         * config/sh/sh.md (*movqi_pop): New insn pattern.
33728         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
33730 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33732         * config/i386/i386.md (any_shiftrt): New code iterator.
33733         (shiftrt_insn): New code attribute.
33734         (shiftrt): Ditto.
33735         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
33736         using any_shiftrt code iterator.
33737         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
33738         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
33739         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
33740         pattern from corresponding peephole2 patterns.
33741         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
33742         using any_shiftrt code iterator.
33743         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
33744         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
33745         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
33746         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
33747         *{ashr,lshr}<mode>3_cmp_zext.
33748         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
33750 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33752         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
33753         scratch register.
33754         (*lshr<mode>3_cconly): Ditto.
33756 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33758         * config/i386/i386.md (lshr<mode>3): Macroize expander from
33759         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
33760         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33761         pattern from *lshr{di,ti}3_1 and corresponding splitters using
33762         DWI mode iterator.
33763         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
33764         from corresponding peephole2 patterns.
33765         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
33766         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
33767         and *lshrdi3_1_rex64 using SWI mode iterator.
33768         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
33769         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
33770         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
33771         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
33772         and *lshrdi3_cmp_rex64 using SWI mode iterator.
33773         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
33774         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
33775         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
33776         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
33777         SWI mode iterator.
33779 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
33781         * config/i386/i386.md (ashr<mode>3): Macroize expander from
33782         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
33783         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33784         pattern from *ashr{di,ti}3_1 and corresponding splitters using
33785         DWI mode iterator.
33786         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
33787         from corresponding peephole2 patterns.
33788         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
33789         (ashrsi3_cvt): Rename from ashrsi3_31.
33790         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
33791         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
33792         and x86_64_shift_adj_3 using SWI48 mode iterator.
33793         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
33794         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
33795         and *ashrdi3_1_rex64 using SWI mode iterator.
33796         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
33797         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
33798         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
33799         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
33800         and *ashrdi3_cmp_rex64 using SWI mode iterator.
33801         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
33802         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
33803         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
33804         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
33805         SWI mode iterator.
33806         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
33807         * config/i386/i386.c (ix86_split_ashr): Update for renamed
33808         x86_shift<mode>_adj_3 expanders.
33810 2010-04-10  Wei Guozhi  <carrot@google.com>
33812         PR target/42601
33813         * config/arm/arm.c (arm_pic_static_addr): New function.
33814         (legitimize_pic_address): Call arm_pic_static_addr when it detects
33815         a static symbol.
33816         (arm_output_addr_const_extra): Output expression for new pattern.
33817         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
33819 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
33821         * ira-costs.c (record_reg_classes): Ignore alternatives that are
33822         not enabled.
33824         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
33825         * web.c: Include "insn-config.h" and "recog.h".
33826         (union_match_dups): New function.
33827         (web_main): Call it.
33828         (union_defs): Don't try to recognize match_dups.
33830         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
33831         if doing so would replace the entire pattern.
33833 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33835         PR target/43707
33836         PR target/43709
33837         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
33838         and splitter pattern.  Change splitter operand 1 predicate to
33839         nonmemory_operand.
33841 2010-04-09  Martin Jambor  <mjambor@suse.cz>
33843         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
33844         lattices are addresses of CONST_DECLs with the same initial value.
33845         (ipcp_print_all_lattices): Print values of CONST_DECLs.
33846         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
33848 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
33849             Bernd Schmidt  <bernds@codesourcery.com>
33851         * loop-invariant.c (replace_uses): New static function.
33852         (move_invariant_reg): Use it to ensure we can replace the uses.
33854 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
33856         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
33857         function template.
33858         (picochip_override_options): Enable section anchors only above -O1.
33859         (picochip_reorg): Fixed a couple of build warnings.
33861 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33863         * configure.ac (plugin -rdynamic test): Log result.
33864         * configure: Regenerate.
33865         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
33866         (RDYNAMIC_SPEC): Define.
33867         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
33869 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33871         * configure.ac: Determine Sun ld version numbers.
33872         (comdat_group): Restrict GNU ld version checks to gld.
33873         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
33874         (enable_comdat): Support --enable-comdat.
33875         * configure: Regenerate.
33876         * doc/install.texi (Configuration): Document --enable-comdat.
33878 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33880         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
33881         * config/sol2-gld.h: ... here.
33882         * config.gcc (sparc*-*-solaris2*): Reflect this.
33883         (i[34567]86-*-solaris2*): Use it.
33885 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
33887         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
33888         setup_clocks_p.
33889         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
33891 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33893         PR 42965
33894         * diagnostic.c (diagnostic_initialize): Initialize
33895         some_warnings_are_errors.
33896         (diagnostic_finish): New.
33897         (diagnostic_action_after_output): Call it before exiting.
33898         (diagnostic_report_diagnostic): Do not print message here. Set
33899         some_warnings_are_errors.
33900         * diagnostic.h (diagnostic_context): Delete
33901         issue_warnings_are_errors_message. Add some_warnings_are_errors.
33902         (diagnostic_finish): Declare.
33903         * toplev.c (toplev_main): Call it before exit.
33905 2010-04-09  Jason Merrill  <jason@redhat.com>
33907         PR c++/42623
33908         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
33909         for incomplete type.
33911         PR c++/41788
33912         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
33913         based on a warning flag.
33915 2010-04-09  Richard Guenther  <rguenther@suse.de>
33917         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
33919 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
33921         PR bootstrap/43684
33922         * varasm.c (default_assemble_visibility): Wrap vars that are
33923         set, but unused, by targets without GAS.
33924         * config/rs6000/rs6000.c (paired_emit_vector_compare):
33925         Remove set, but unused, vars.
33926         (rs6000_legitimize_tls_address): Likewise.
33927         (altivec_expand_dst_builtin): Likewise.
33928         * config/darwin.c (machopic_classify_symbol): Likewise.
33929         (machopic_indirection_name): Likewise.
33931 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33933         * config/i386/i386.md (DWI): New mode iterator.
33934         (S): New mode attribute.
33935         (shift_operand): Ditto.
33936         (shift_immediate_operand): Ditto.
33937         (ashl_input_operand): Ditto.
33938         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
33939         using SDWIM mode iterator.
33940         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33941         pattern from *ashl{di,ti}3_1 and corresponding splitters using
33942         DWI mode iterator.
33943         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
33944         from corresponding peephole2 patterns.
33945         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
33946         and x86_64_shift_adj_1 using SWI48 mode iterator.
33947         (x86_shift<mode>_adj_2): Ditto.
33948         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
33949         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
33950         using SWI48 mode iterator.
33951         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
33952         *ashldi3_cmp_rex64 using SWI mode iterator.
33953         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
33954         *ashldi3_cconly_rex64 using SWI mode iterator.
33955         * config/i386/i386.c (ix86_split_ashl): Update for renamed
33956         x86_shift<mode>_adj_{1,2}.
33957         (ix86_split_ashr): Ditto.
33958         (ix86_split_lshr): Ditto.
33960 2010-04-09  Richard Guenther  <rguenther@suse.de>
33962         * target.h (builtin_conversion): Pass in input and output types.
33963         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33964         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33965         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33966         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33968         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33969         Handle AVX modes.
33970         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33972 2010-04-09  Richard Guenther  <rguenther@suse.de>
33974         PR target/43152
33975         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33977 2010-04-09  Richard Guenther  <rguenther@suse.de>
33979         * tree-vectorizer.h (struct _stmt_vec_info): Document
33980         that vectype is the type of the LHS.
33981         (supportable_widening_operation, supportable_narrowing_operation):
33982         Get both input and output vector types as arguments.
33983         (vect_is_simple_use_1): Declare.
33984         (get_same_sized_vectype): Likewise.
33985         * tree-vect-loop.c (vect_determine_vectorization_factor):
33986         Set STMT_VINFO_VECTYPE to the vector type of the def.
33987         (vectorizable_reduction): Adjust.
33988         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33989         Adjust.  Specify the output vector type.
33990         (vect_pattern_recog_1): Adjust.
33991         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33992         (vectorizable_call): Adjust.
33993         (vectorizable_conversion): Likewise.
33994         (vectorizable_operation): Likewise.
33995         (vectorizable_type_demotion): Likewise.
33996         (vectorizable_type_promotion): Likewise.
33997         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33998         the def.
33999         (vect_is_simple_use_1): New function.
34000         (supportable_widening_operation): Get both input and output
34001         vector types.
34002         (supportable_narrowing_operation): Likewise.
34003         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
34005 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
34007         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
34008         __thiscall and _thiscall as predefined macros.
34009         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
34010         thiscall attribute handling.
34011         (ix86_comp_type_attributes): Likewise.
34012         (ix86_function_regparm): Likewise.
34013         (ix86_return_pops_args): Likewise.
34014         (init_cumulative_args): Likewise.
34015         (find_drap_reg): Likewise.
34016         (ix86_static_chain): Likewise.
34017         (x86_this_parameter): Likewise.
34018         (x86_output_mi_thunk): Likewise.
34019         (ix86_attribute_table): Add description for thiscall attribute.
34020         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
34021         * doc/extend.texi: Add documentation for thiscall.
34023 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34025         PR c++/28584
34026         * c.opt (Wint-to-pointer-cast): Available in C++.
34027         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
34029 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
34031         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
34032         * calls.c (expand_call): Pass the function type to aggregate_value_p.
34033         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
34034         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
34035         function type instead.  Reorder and simplify checks.
34037         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
34039 2010-04-08  Jing Yu  <jingyu@google.com>
34040             Zdenek Dvorak  <ook@ucw.cz>
34042         PR tree-optimization/42720
34043         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
34044         loop unswitch conditions here from ...
34045         (tree_unswitch_single_loop): ... here.
34047 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
34049         * tree-if-conv.c: Fix comments and simplify logic.
34051 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
34053         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
34054         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
34055         (main_tree_if_conversion): Update call to tree_if_conversion.
34057 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34059         PR 42485
34060         * doc/invoke.texi (-b,-V): Delete.
34061         * doc/tm.texi: Do not mention -b.
34062         * gcc.c (display_help): Delete -b and -V.
34063         (process_command): Delete -b and -V.
34064         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
34066 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
34067             Wolfgang Gellerich  <gellerich@de.ibm.com>
34069         Implement target hook for loop unrolling
34070         * target.h (loop_unroll_adjust): Add a new target hook function.
34071         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
34072         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
34073         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
34074         (s390_loop_unroll_adjust): Implement the new target hook for s390.
34075         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
34076         target hook.
34077         (decide_unroll_stupid): Likewise.
34079 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34081         PR target/43643
34082         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
34084 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34086         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
34087         (Specific, *-*-solaris2*): Likewise.
34088         Don't prefer Sun as over GNU as.
34090 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
34092         * config/s390/s390.c (override_options): Adjust the z10 defaults
34093         for max-unroll-times, max-completely-peeled-insns
34094         and max-completely-peel-times.
34096 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34098         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
34099         instructions for z10.
34100         (s390_expand_setmem): Likewise.
34101         (s390_expand_cmpmem): Likewise.
34103 2010-04-08  Richard Guenther  <rguenther@suse.de>
34105         PR tree-optimization/43679
34106         * tree-ssa-pre.c (eliminate): Only propagate copies.
34108 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
34110         PR bootstrap/43681
34111         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
34112         set but not used variable warning.
34114 2010-04-08  Wei Guozhi  <carrot@google.com>
34116         PR target/41653
34117         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
34118         (arm_size_rtx_costs): Call the new function when optimized for size.
34120 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
34122         PR debug/43670
34123         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
34124         op0 is not a MEM, just return NULL instead of assertion
34125         failure.
34126         (discover_nonconstant_array_refs): Don't walk debug stmts.
34128 2010-04-08  Doug Kwan  <dougkwan@google.com>
34130         * configure.ac: Recognize gold and do not use its version number
34131         to test ld features.
34132         * configure: Regenerate.
34134 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
34136         PR middle-end/40815
34137         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
34138         (negate_value): Move code to push elements to broken_up_substracts ...
34139         (eliminate_plus_minus_pair): ... here.  Push operands that have no
34140         negative pair to plus_negates.
34141         (repropagate_negates, init_reassoc, fini_reassoc): Update.
34143 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34145         * doc/install.texi (Configuration): Move description of
34146         --enable-lto, --with-libelf*, --enable-gold from Java section to
34147         general section.
34149         * doc/generic.texi (Working with declarations)
34150         (Function Properties, C and C++ Trees): Fix typos.
34151         * doc/sourcebuild.texi (Top Level): Likewise.
34153 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
34155         PR c/18624
34156         * tree.h (DECL_READ_P): Define.
34157         (struct tree_decl_common): Add decl_read_flag.
34158         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
34159         a set but not used warning.
34160         (merge_decls): Merge DECL_READ_P flag.
34161         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
34162         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
34163         * c-common.c (handle_used_attribute, handle_unused_attribute):
34164         Likewise.
34165         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
34166         New prototypes.
34167         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
34168         New functions.
34169         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
34170         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
34171         c_parser_binary_expression, c_parser_cast_expression,
34172         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
34173         Call default_function_array_read_conversion instead of
34174         default_function_array_conversion where needed.
34175         (c_parser_unary_expression, c_parser_conditional_expression,
34176         c_parser_postfix_expression_after_primary, c_parser_initelt):
34177         Likewise.  Call mark_exp_read where needed.
34178         (c_parser_statement_after_labels, c_parser_asm_operands,
34179         c_parser_typeof_specifier, c_parser_sizeof_expression,
34180         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
34181         where needed.
34182         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
34183         New.
34184         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
34185         (warn_unused_but_set_parameter): Default to warn_unused
34186         && extra_warnings.
34187         * doc/invoke.texi: Document -Wunused-but-set-variable and
34188         -Wunused-but-set-parameter.
34190         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
34191         used count variable.
34192         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
34193         when operandN variables aren't used in the body of the expander
34194         or splitter.
34195         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
34196         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
34197         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
34198         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
34199         FOR_EACH_IMM_USE_ON_STMT): Likewise.
34200         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
34201         * tree.c (PROCESS_ARG): Likewise.
34203 2010-04-07  Simon Baldwin  <simonb@google.com>
34205         * diagnostic.h (diagnostic_override_option_index): New macro to
34206         set a diagnostic's option_index.
34207         * c-tree.h (c_cpp_error): Add warning reason argument.
34208         * opts.c (_warning_as_error_callback): New.
34209         (register_warning_as_error_callback): Store callback for
34210         warnings enabled via enable_warning_as_error.
34211         (enable_warning_as_error): Call callback, minor code tidy.
34212         * opts.h (register_warning_as_error_callback): Declare.
34213         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
34214         response to -Werror=.
34215         (c_common_init_options): Register warning_as_error_callback in opts.c.
34216         * common.opt: Add -Wno-cpp option.
34217         * c-common.c (struct reason_option_codes_t): Map cpp warning
34218         reason codes to gcc option indexes.
34219         * (c_option_controlling_cpp_error): New function, lookup the gcc
34220         option index for a cpp warning reason code.
34221         * (c_cpp_error): Add warning reason argument, call
34222         c_option_controlling_cpp_error for diagnostic_override_option_index.
34223         * doc/invoke.texi: Document -Wno-cpp.
34225 2010-04-07  Richard Guenther  <rguenther@suse.de>
34227         * ipa-reference.c (mark_load): Use get_base_address.
34228         (mark_store): Likewise.
34230         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
34231         inserting GIMPLE_NOPs into the IL.
34232         * tree-ssa-structalias.c (get_constraint_for_component_ref):
34233         Explicitly strip handled components and indirect references.
34235         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
34236         folding address expressions.
34237         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
34238         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
34239         operand_equal_p to compare decls.
34240         (ptr_deref_may_alias_decl_p): Likewise.
34241         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
34242         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
34243         Handle reversed comparison ops.
34244         * tree-sra.c (asm_visit_addr): Use get_base_address.
34245         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
34246         * ipa-reference.c (mark_address): Use get_base_address.
34248 2010-04-07  Richard Guenther  <rguenther@suse.de>
34250         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
34251         Propagate constants everywhere.
34253 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
34255         PR debug/43516
34256         * tree.c (MAX_INT_CACHED_PREC): Define.
34257         (nonstandard_integer_type_cache): New array.
34258         (build_nonstandard_integer_type): Cache results for precision
34259         <= MAX_INT_CACHED_PREC.
34261 2010-04-07  Richard Guenther  <rguenther@suse.de>
34263         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
34264         -fargument-noalias-global, -fargument-noalias-anything): Remove.
34265         * common.opt: Likewise.
34266         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
34267         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
34268         (nonoverlapping_memrefs_p): Likewise.
34269         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
34270         * opts.c (common_handle_option): Handle OPT_fargument_alias,
34271         OPT_fargument_noalias, OPT_fargument_noalias_anything and
34272         OPT_fargument_noalias_global for backward compatibility.
34274 2010-04-07  Richard Guenther  <rguenther@suse.de>
34276         PR tree-optimization/43270
34277         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
34278         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
34279         * tree-ssa-pre.c (phi_translate_1): Adjust.
34280         (fully_constant_expression): Split out vn_reference handling to ...
34281         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
34282         Fold reads from constant strings.
34283         (vn_reference_lookup): Handle fully constant references.
34284         (vn_reference_lookup_pieces): Likewise.
34285         * Makefile.in (expmed.o-warn): Add -Wno-error.
34287 2010-04-07  Martin Jambor  <mjambor@suse.cz>
34289         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
34291 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
34293         PR driver/41594
34294         * gcc.c: Add -static-libstdc++ to list of recognized options.
34296 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34298         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
34300 2010-04-07  Richard Guenther  <rguenther@suse.de>
34302         PR middle-end/42617
34303         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
34304         bases build simple mem attributes to retain points-to information.
34306 2010-04-07  Richard Guenther  <rguenther@suse.de>
34308         PR middle-end/42617
34309         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
34310         preserve points-to related information.
34312 2010-04-07  Richard Guenther  <rguenther@suse.de>
34314         PR middle-end/42617
34315         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
34316         discard plain indirect references.
34317         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
34318         * tree.c (tree_nop_conversion): Likewise.
34320 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
34322         PR debug/43628
34323         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
34325 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
34327         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
34328         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
34330 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
34332         * tree-if-conv.c: Fix indentation and comments.
34334 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
34336         * tree-if-conv.c: Sort static functions in topological order.
34338 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
34340         * tree-if-conv.c: Fix indentation and comments.
34342 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34344         PR middle-end/43519
34345         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
34346         lang_hooks.types.type_for_size instead of
34347         build_nonstandard_integer_type.
34348         When converting an unsigned type to signed, double its precision.
34349         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
34350         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
34351         (graphite_create_new_loop_guard): When ub + 1 wraps around,
34352         use lb <= ub.
34354 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34356         PR middle-end/43519
34357         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
34358         POINTER_PLUS_EXPR for pointer types.
34360 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34362         PR middle-end/43519
34363         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
34364         * graphite-clast-to-gimple.c: Include langhooks.h.
34365         (max_signed_precision_type): New.
34366         (max_precision_type): Takes two types as arguments.
34367         (precision_for_value): New.
34368         (precision_for_interval): New.
34369         (gcc_type_for_interval): New.
34370         (gcc_type_for_value): New.
34371         (gcc_type_for_clast_term): New.
34372         (gcc_type_for_clast_red): New.
34373         (gcc_type_for_clast_bin): New.
34374         (gcc_type_for_clast_expr): Split up into several functions.
34375         (gcc_type_for_clast_eq): Rewritten.
34376         (compute_bounds_for_level): New.
34377         (compute_type_for_level_1): New.
34378         (compute_type_for_level): New.
34379         (gcc_type_for_cloog_iv): Removed.
34380         (gcc_type_for_iv_of_clast_loop): Rewritten.
34381         (graphite_create_new_loop): Compute the lower and upper bound types
34382         with gcc_type_for_clast_expr.
34383         (graphite_create_new_loop_guard): Same.
34384         (find_cloog_iv_in_expr): Removed.
34385         (compute_cloog_iv_types_1): Removed.
34386         (compute_cloog_iv_types): Removed.
34387         (gloog): Do not call compute_cloog_iv_types.
34388         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
34389         GBB_CLOOG_IV_TYPES.
34390         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
34391         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
34392         (GBB_CLOOG_IV_TYPES): Removed.
34394 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34396         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
34397         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
34398         (detect_commutative_reduction): Same.
34400 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34402         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
34403         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
34404         argument.
34405         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
34406         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
34407         (rewrite_commutative_reductions_out_of_ssa): Same.
34408         * passes.c (execute_function_todo): Call verify_ssa for every pass
34409         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
34410         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
34411         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
34412         with an extra argument.
34413         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
34414         verify_ssa only when the extra argument is true.
34415         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
34416         with an extra argument.
34417         (tree_transform_and_unroll_loop): Same.
34419 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34421         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
34422         for all the passes of the LNO having LOOP_CLOSED_SSA.
34423         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
34424         * tree-loop-distribution.c (pass_loop_distribution): Same.
34425         * tree-pass.h (TODO_verify_loops): Removed.
34426         * tree-ssa-loop.c (pass_tree_loop_init): Same.
34427         (pass_lim): Same.
34428         (pass_tree_unswitch): Same.
34429         (pass_predcom): Same.
34430         (pass_vectorize): Same.
34431         (pass_linear_transform): Same.
34432         (pass_graphite_transforms): Same.
34433         (pass_iv_canon): Same.
34434         (pass_complete_unroll): Same.
34435         (pass_complete_unrolli): Same.
34436         (pass_parallelize_loops): Same.
34437         (pass_loop_prefetch): Same.
34438         (pass_iv_optimize): Same.
34440 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
34442         PR middle-end/32824
34443         * passes.c (init_optimization_passes): Move pass_lim before
34444         pass_copy_prop and pass_dce_loop.
34446 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
34448         PR target/43667
34449         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
34450         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
34451         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
34452         MULTI_* defines for 4 argument vpermil2p* builtins.
34454 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
34456         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
34457         * config/i386/i386.c (x86_maybe_negate_const_int): New.
34458         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
34459         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
34460         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
34461         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
34462         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
34463         Use x86_maybe_negate_const_int to output insn mnemonic.
34464         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
34465         check from instruction predicate.  Update comments.
34466         * config/i386/sync.md (sync_add<mode>): Use
34467         x86_maybe_negate_const_int to output insn mnemonic.
34469 2010-04-06  Jan Hubicka  <jh@suse.cz>
34471         PR tree-optimization/42906
34472         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
34473         IGNORE_SELF argument.  Set visited_control_parents for fully
34474         processed BBs.
34475         (find_obviously_necessary_stmts): Update call of
34476         mark_control_dependent_edges_necessary.
34477         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
34479 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
34481         * config/i386/i386.md: Remove comment about 'e' and 'E'
34482         operand modifier.
34484 2010-04-06  Richard Guenther  <rguenther@suse.de>
34486         PR tree-optimization/43627
34487         * tree-vrp.c (extract_range_from_unary_expr): Widenings
34488         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
34489         not varying.
34491 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
34493         * BASE-VER: Change to 4.6.0.
34495         PR target/43638
34496         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
34497         handling.
34499 2010-04-06  Richard Guenther  <rguenther@suse.de>
34501         PR middle-end/43661
34502         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
34504 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34506         * doc/invoke.texi (Optimize Options): Document that LTO
34507         won't remove object access purely due to incompatible
34508         declarations.
34510 2010-04-04  Matthias Klose  <doko@ubuntu.com>
34512         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
34513         Initialize variable.
34515 2010-04-03  Richard Guenther  <rguenther@suse.de>
34517         PR middle-end/42509
34518         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
34519         require a non-NULL MEM_OFFSET.
34521 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
34523         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
34524         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
34525         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
34526         config/alpha/predicates.md, config/arm/arm.md,
34527         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
34528         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
34529         config/darwin9.h, config/darwin.c, config/darwin.h,
34530         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
34531         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
34532         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
34533         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
34534         config/mips/mips.md, config/mn10300/mn10300.c,
34535         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
34536         config/rs6000/aix.h, config/rs6000/dfp.md,
34537         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
34538         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
34539         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
34540         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
34541         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
34542         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
34543         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
34544         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
34545         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
34546         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
34547         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
34548         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
34549         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
34550         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
34551         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
34552         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
34553         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
34554         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
34555         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
34556         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
34557         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
34558         opt-functions.awk, opth-gen.awk, params.def, passes.c,
34559         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
34560         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
34561         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
34562         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
34563         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
34564         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
34565         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
34566         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
34567         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
34568         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
34569         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
34570         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
34571         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
34572         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
34574 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34576         PR other/43620
34577         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
34578         * aclocal.m4: Regenerate.
34580 2010-04-02  Richard Guenther  <rguenther@suse.de>
34582         PR tree-optimization/43629
34583         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
34584         if we have seen a constant value.
34586 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
34588         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
34590 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
34592         PR target/43469
34593         * arm.c (legitimize_tls_address): Adjust call to
34594         gen_tls_load_dot_plus_four.
34595         (arm_note_pic_base): New function.
34596         (arm_cannot_copy_insn_p): Use it.
34597         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
34598         constraint.
34600 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34602         PR bootstrap/43531
34604         Revert:
34605         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34607         * Makefile.in ($(out_object_file)): Depend on
34608         gt-$(basename $(notdir $(out_file))).h.
34610 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
34612         * config.gcc (lm32-*-rtems*): Add t-lm32.
34614 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
34616         * config.gcc: Add lm32-*-rtems*.
34617         * config/lm32/rtems.h: New file.
34619 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
34621         PR target/42609
34622         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
34624 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
34626         * dwarf2out.c (output_compilation_unit_header): For
34627         -gdwarf-4 use version 4 instead of version 3.
34628         (output_line_info): For version 4 and above emit additional
34629         maximum ops per insn header field.
34630         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
34632         * dwarf2out.c (is_c_family, is_java): Remove.
34633         (lower_bound_default): New function.
34634         (add_bound_info, gen_descr_array_type_die): Use it.
34636 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
34638         PR debug/43325
34639         * dwarf2out.c (gen_variable_die): Allow debug info for variable
34640         re-declaration when it happens in a function.
34642 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
34644         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
34645         (cgraph_remove_function_insertion_hook): Same.
34646         (cgraph_call_function_insertion_hooks): Same.
34648 2010-04-01  Richard Guenther  <rguenther@suse.de>
34650         PR middle-end/43614
34651         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
34652         and TREE_THIS_VOLATILE.
34653         (copy_ref_info): Likewise.
34654         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
34655         * tree.c (build6_stat): Ignore side-effects of all but arg5
34656         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
34657         TARGET_MEM_REF.
34659 2010-04-01  Richard Guenther  <rguenther@suse.de>
34661         PR tree-optimization/43607
34662         * ipa-type-escape.c (check_call): Do not access non-existing
34663         arguments.
34665 2010-04-01  Richard Guenther  <rguenther@suse.de>
34667         PR middle-end/43602
34668         Revert
34669         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34670                     Jack Howarth  <howarth@bromo.med.uc.edu>
34672         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34673         variables TLS.
34675 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34677         * doc/install.texi (Prerequisites): Document libelf usability on
34678         IRIX 5/6 and Solaris 2.
34679         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
34680         Update GNU as, GNU ld requirements.
34681         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
34682         Document Sun Studio compiler download.
34683         Update and simplify as, ld recommendations.
34684         (Specific, *-*-solaris2.7): Note obsoletion, removal.
34686 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34688         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
34689         with_tune_32 to pentium4.
34691 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
34693         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
34695 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34697         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
34698         obsoletion, removal.
34699         Update IDO URL.
34700         Document GNU as requirement.
34701         Update configure requirements.
34702         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
34703         Recomment IRIX 6.5.18+.
34704         Document IDF/IDL requirement.
34705         Document GNU as requirement.
34706         Document GNU ld bootstrap failure.
34707         Remove freeware.sgi.com reference.
34709 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34711         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
34712         UNIX V4.0, V5.0 obsoletion, removal.
34713         Remove --with-gc=simple reference.
34714         Update VM requirements during bootstrap.
34715         Remove -oldas bootstrap description.
34716         Update binutils reference.
34717         Remove comparison failure note.
34719 2010-03-31  Richard Guenther  <rguenther@suse.de>
34720             Zdenek Dvorak  <ook@ucw.cz>
34721             Sebastian Pop  <sebastian.pop@amd.com>
34723         PR middle-end/43464
34724         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
34725         with multiple arguments.
34726         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
34728 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34730         * graphite-dependences.c (print_pddr): Call print_pdr with an
34731         extra argument.
34732         * graphite-poly.c (debug_pdr): Add an extra argument for the
34733         verbosity level.
34734         (print_pdr): Same.
34735         (print_pbb_domain): Same.
34736         (print_pbb): Same.
34737         (print_scop_context): Same.
34738         (print_scop): Same.
34739         (print_cloog): Same.
34740         (debug_pbb_domain): Same.
34741         (debug_pbb): Same.
34742         (print_pdrs): Same.
34743         (debug_pdrs): Same.
34744         (debug_scop_context): Same.
34745         (debug_scop): Same.
34746         (debug_cloog): Same.
34747         (print_scop_params): Same.
34748         (debug_scop_params): Same.
34749         (print_iteration_domain): Same.
34750         (print_iteration_domains): Same.
34751         (debug_iteration_domain): Same.
34752         (debug_iteration_domains): Same.
34753         (print_scattering_function): Same.
34754         (print_scattering_functions): Same.
34755         (debug_scattering_function): Same.
34756         (debug_scattering_functions): Same.
34757         * graphite-poly.h (debug_pdr): Update declaration.
34758         (print_pdr): Same.
34759         (print_pbb_domain): Same.
34760         (print_pbb): Same.
34761         (print_scop_context): Same.
34762         (print_scop): Same.
34763         (print_cloog): Same.
34764         (debug_pbb_domain): Same.
34765         (debug_pbb): Same.
34766         (print_pdrs): Same.
34767         (debug_pdrs): Same.
34768         (debug_scop_context): Same.
34769         (debug_scop): Same.
34770         (debug_cloog): Same.
34771         (print_scop_params): Same.
34772         (debug_scop_params): Same.
34773         (print_iteration_domain): Same.
34774         (print_iteration_domains): Same.
34775         (debug_iteration_domain): Same.
34776         (debug_iteration_domains): Same.
34777         (print_scattering_function): Same.
34778         (print_scattering_functions): Same.
34779         (debug_scattering_function): Same.
34780         (debug_scattering_functions): Same.
34782 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34784         * graphite-poly.c (print_scattering_function_1): New.
34785         (print_scattering_function): Call it.
34786         (print_scop_params): Remove spaces at the end of lines.
34787         (print_cloog): New.
34788         (debug_cloog): New.
34789         * graphite-poly.h (print_cloog): Declared.
34790         (debug_cloog): Declared.
34792 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34794         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
34795         in loop->header.
34796         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
34797         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
34798         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
34799         to switch between adding the IV bump in loop->latch or in loop->header.
34801 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34803         * graphite-poly.c (print_scattering_function): Pretty print following
34804         the scoplib format.
34805         (print_pdr): Same.
34806         (print_pbb_domain): Same.
34807         (dump_gbb_cases): Same.
34808         (dump_gbb_conditions): Same.
34809         (print_pdrs): Same.
34810         (print_pbb): Same.
34811         (print_scop_params): Same.
34812         (print_scop_context): Same.
34813         (print_scop): Same.
34814         (print_pbb_body): New.
34815         (lst_indent_to): New.
34816         (print_lst): Start new lines with a #.
34817         * graphite-poly.h (pbb_bb): New.
34818         (pbb_index): Use pbb_bb.
34819         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
34820         disjuncts.
34821         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
34823 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34825         * dwarf2out.c (size_of_die): For -gdwarf-4 use
34826         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
34827         and 0 instead of 1 for dw_val_class_flag.
34828         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
34829         dw_val_class_range_list, dw_val_class_loc_list,
34830         dw_val_class_lineptr and dw_val_class_macptr, use
34831         DW_FORM_flag_present for dw_val_class_flag and
34832         DW_FORM_exprloc for dw_val_class_loc.
34833         (output_die): For -gdwarf-4 print dw_val_class_loc
34834         size as uleb128 instead of 1 or 2 bytes and don't print
34835         anything for dw_val_class_flag.
34837         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
34838         instead of cselib_lookup following by tweaking locs->setting_insn.
34840         PR bootstrap/43596
34841         * cselib.c (cselib_process_insn): Clear cselib_current_insn
34842         even before returning from label, setjmp call or volatile asm
34843         handling.
34845 2010-03-31  Richard Guenther  <rguenther@suse.de>
34847         PR middle-end/43600
34848         * cgraphunit.c (cgraph_output_in_order): Do not allocate
34849         temporary data on stack.
34851 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34853         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
34854         (PUSHSECTION_ASM_OP): Remove.
34855         (POPSECTION_ASM_OP): Remove.
34856         (PUSHSECTION_FORMAT): Remove.
34857         * config/sol2.h (PUSHSECTION_FORMAT): Define.
34858         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
34859         * config/sol2.c (solaris_output_init_fini): Use it.
34861 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34863         PR 43574
34864         * opt-functions.awk (var_type_struct): Use signed char type
34865         for simple variables.
34867 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34869         * config/sol2.c: Include output.h.
34870         (solaris_assemble_visibility): New function.
34871         * config/t-sol2 (sol2.o): Add output.h dependency.
34872         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
34873         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
34874         Redefine.
34876 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34878         PR target/43580
34879         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
34880         V2SImode or XFmode on PRE_DEC.
34882         PR debug/43557
34883         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
34884         BLKmode.
34886 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34888         PR 43562
34889         * reload.h (caller_save_initialized_p): Declare.
34890         * toplev.c (backend_init_target): Don't call
34891         init_caller_save but set caller_save_initialized_p to false.
34892         * caller-save.c (caller_save_initialized_p): Define.
34893         (init_caller_save): Check caller_save_initialized_p.
34894         * ira.c (ira): Call init_caller_save if flag_caller_saves.
34896 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34898         PR target/39048
34899         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
34900         and soft-fp/t-softfp to tmake_file.
34901         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
34902         (LIBGCC2_TF_CEXT): Define.
34903         (TF_SIZE): Define.
34905 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
34907         PR debug/42977
34908         * cselib.c (n_useless_values): Document handling of debug locs.
34909         (n_useless_debug_values, n_debug_values): New variables.
34910         (new_elt_loc_list): Don't add to debug values, keep count.
34911         (promote_debug_loc): New.
34912         (cselib_reset_table): Zero new variables.
34913         (entry_and_rtx_equal_p): Promote debug locs.
34914         (discard_useless_locs): Increment n_useless_debug_values for
34915         debug values.
34916         (remove_useless_values): Adjust n_useless_values and n_debug_values
34917         with n_useless_debug_values.
34918         (add_mem_for_addr): Promote debug locs.
34919         (cselib_lookup_mem): Likewise.
34920         (cselib_lookup_addr): Renamed to...
34921         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
34922         (cselib_log_lookup): ... this.  Turn into...
34923         (cselib_lookup_addr): ... new wrapper.
34924         (cselib_lookup_from_insn): New.
34925         (cselib_invalidate_regno): Increment n_useless_debug_values for
34926         debug values.
34927         (cselib_invalidate_mem): Likewise.
34928         (cselib_process_insn): Take n_deleted and n_debug_values into
34929         account to guard remove_useless_value call.
34930         (cselib_finish): Zero n_useless_debug_values.
34931         * cselib.h (cselib_lookup_from_insn): Declare.
34932         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
34933         (sched_analyze_2): Likewise.
34935 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
34937         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
34938         functions.
34939         (adjust_mems): Replace narrowing SUBREG of expression containing
34940         just PLUS, MINUS, MULT and ASHIFT of registers and constants
34941         with operations in the narrower mode.
34943         PR debug/43593
34944         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
34945         regs_invalidated_by_call instead all call_used_reg_set registers.
34947 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
34949         PR middle-end/43430
34950         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
34951         pointer comparisons with types_compatible_p.
34952         * tree-vect-stmts.c (vectorizable_call): Same.
34953         (vectorizable_condition): Same.
34955 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34957         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
34958         stack check if the mask would be zero.
34960 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34961             Jack Howarth  <howarth@bromo.med.uc.edu>
34963         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34964         variables TLS.
34966 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34968         PR other/25232
34969         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34970         and __unordtf2.
34971         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34972         Include ___unordxf2 and ___unordtf2.
34973         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34974         GCC_4.4.0 here.
34976 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34978         * config/lm32/t-lm32: New file.
34979         * config.gcc: Use the above file when targetting lm32.
34981 2010-03-28  Duncan Sands  <baldrick@free.fr>
34983         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34985 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34987         PR middle-end/43431
34988         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34989         Improve vectorization cost model diagnostic.
34991 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34993         PR middle-end/43436
34994         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34995         compute_data_dependences_for_loop returns false, early exit
34996         and output an extra diagnostic for the failed data reference
34997         analysis.
34999 2010-03-29  Richard Guenther  <rguenther@suse.de>
35001         PR tree-optimization/43560
35002         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
35003         (can_sm_ref_p): Treat stores to readonly locations as trapping.
35005 2010-03-29  Jie Zhang  <jie@codesourcery.com>
35007         PR 43564
35008         * toplev.c (process_options): Set optimization_default_node
35009         and optimization_current_node.
35010         * opts.c (decode_options): Don't set optimization_default_node
35011         and optimization_current_node.
35013 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
35015         * config/rtems.h: Abandon -qrtems_debug.
35017 2010-03-28  Jan Hubicka  <jh@suse.cz>
35019         PR tree-optimization/43505
35020         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
35021         map should not be copied.
35023 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35025         PR middle-end/41674
35026         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
35027         cdtors, set DECL_PRESERVE_P.
35028         * ipa.c (cgraph_externally_visible_p): Return true if declaration
35029         should be preseved.
35031 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
35033         PR tree-optimization/43528
35034         * stor-layout.c (place_field): Check that constant fits into
35035         unsigned HWI when skipping calculation of MS bitfield layout.
35037 2010-03-27  Jan Hubicka  <jh@suse.cz>
35039         PR middle-end/43391
35040         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
35041         notice_global_symbol work.
35043 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
35045         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
35046         instead of dwarf2out_decl.
35047         (struct var_loc_node): Remove section_label field.
35048         (dwarf2out_function_decl): New function.
35049         (dwarf2out_var_location): Don't set section_label field.
35050         (dwarf2out_begin_function): Don't empty decl_loc_table here.
35052 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
35054         PR tree-optimization/43544
35055         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
35056         First argument for builtin vectorized function hook is now a
35057         tree to be able to distinguish between machine specific and
35058         standard builtins.
35059         * targhooks.c (default_builtin_vectorized_function): Ditto.
35060         * targhooks.h (default_builtin_vectorized_function): Ditto.
35061         * target.h (struct gcc_target): Ditto.
35062         * tree-vect-stmts.c (vectorizable_function): Ditto.
35063         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
35064         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
35065         Ditto.
35067 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
35069         PR c/43381
35070         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
35071         nested binding iff it is a FUNCTION_DECL.
35072         (store_parm_decls_newstyle): Pass nested=true to bind for
35073         FUNCTION_DECLs amongst parameters.
35075 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
35077         * var-tracking.c (vt_expand_loc_callback): Don't run
35078         cselib_expand_value_rtx_cb in dummy mode if
35079         cselib_dummy_expand_value_rtx_cb returned false.
35081         * var-tracking.c (emit_note_insn_var_location): For one part
35082         notes with offset 0, don't add EXPR_LIST around the location.
35083         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
35084         add_location_or_const_value_attribute): Adjust for that change.
35086         PR debug/43540
35087         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
35088         into first operand and location into second.
35089         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
35090         dw_cfi_oprnd_loc for DW_CFA_expression.
35091         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
35092         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
35093         assume first argument is regnum and second argument is location.
35095 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
35097         PR target/42113
35098         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
35099         of scratch register to DImode.  Split to DImode comparison operator.
35100         Use SImode subreg of scratch register in the multiplication.
35101         (*cmp_sadd_sidi): Ditto.
35102         (*cmp_ssub_si): Ditto.
35103         (*cmp_ssub_sidi): Ditto.
35105 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
35107         PR target/43524
35108         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
35109         Remove invalid assert and wrong comment.
35111 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
35113         PR debug/43516
35114         * flags.h (final_insns_dump_p): New extern.
35115         * final.c (final_insns_dump_p): New variable.
35116         (rest_of_clean_state): Set it before -fdump-final-insns=
35117         dumping, clear afterwards.
35118         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
35119         MEM_ALIAS_SET on MEMs.
35121 2010-03-26  David S. Miller  <davem@davemloft.net>
35123         * configure.ac: Fix sparc GOTDATA_OP bug check.
35124         * configure: Rebuild.
35126 2010-03-26  Alan Modra  <amodra@gmail.com>
35128         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
35130 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35132         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
35133         TLS_SECTION_ASM_FLAG.
35135 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
35137         PR bootstrap/43511
35138         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
35139         Clear first_function_block_is_cold.
35141         PR c/43385
35142         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
35143         argument if the argument is truth_value_p.
35145 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
35147         * config/rs6000/constraints.md: Update copyright year for my changes.
35149         PR target/43484
35150         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
35151         used in reg+reg addressing, swap registers.
35153 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
35155         PR debug/43293
35156         * target.h (struct gcc_target): Add code_end hook.
35157         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
35158         if not yet defined.
35159         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
35160         * toplev.c (compile_file): Call targetm.asm_out.code_end
35161         hook before unwind info/debug info output.
35162         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
35163         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
35164         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
35165         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
35166         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
35167         * config/i386/i386.c (ix86_file_end): Renamed to...
35168         (ix86_code_end): ... this.  Make static.  Don't call
35169         file_end_indicate_exec_stack.  Emit unwind info using
35170         final_start_function/final_end_function.
35171         (darwin_x86_file_end): Remove.
35172         (TARGET_ASM_CODE_END): Define.
35173         * config/i386/i386.h (TARGET_ASM_FILE_END,
35174         NEED_INDICATE_EXEC_STACK): Don't define.
35175         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
35176         (TARGET_ASM_FILE_END): Define to darwin_file_end.
35177         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
35178         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
35180         PR target/43498
35181         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
35182         at the beginning and final_end_function at the end.
35183         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
35185 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35187         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
35188         and Sun as TLS syntax.
35189         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
35190         * configure: Regenerate.
35191         * config.in: Regenerate.
35192         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
35193         (default_elf_asm_named_section): Use it.
35194         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
35195         (i386_output_dwarf_dtprel): Likewise.
35196         (output_addr_const_extra): Likewise.
35197         (output_pic_addr_const): Lowercase @GOTTPOFF.
35198         (output_addr_const_extra): Likewise.
35199         (output_pic_addr_const): Lowercase @GOTNTPOFF.
35200         (output_addr_const_extra): Likewise.
35201         (output_pic_addr_const): Lowercase @INDNTPOFF.
35202         (output_addr_const_extra): Likewise.
35203         (output_pic_addr_const): Lowercase @NTPOFF.
35204         (output_addr_const_extra): Likewise.
35205         (output_pic_addr_const): Lowercase @TPOFF.
35206         (output_addr_const_extra): Likewise.
35207         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
35208         (*tls_global_dynamic_64): Likewise.
35209         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
35210         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
35212         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
35213         (ASM_OUTPUT_TLS_COMMON): Use it.
35214         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
35216         PR target/38118
35217         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
35218         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
35219         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
35220         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
35221         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
35222         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
35224 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35226         * config/i386/i386.c (override_options): Don't accept
35227         -mtls-dialect=sun any longer.
35228         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
35229         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
35230         (*tls_local_dynamic_base_32_sun): Likewise.
35231         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
35233 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
35235         PR debug/43508
35236         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
35237         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
35239         PR debug/43479
35240         * ira.c (adjust_cleared_regs): New function.
35241         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
35243         PR debug/19192
35244         PR debug/43479
35245         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
35246         from gimple_block.
35247         * expr.c (expand_expr_real): Restore previous
35248         curr_insn_source_location and curr_insn_block after
35249         expand_expr_real_1 call.
35250         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
35251         instead of expand_expr_real_1.
35253 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
35255         PR rtl-optimization/43413
35256         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
35257         hard regs too.
35259 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
35261         PR target/43348
35262         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
35263         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
35265 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
35267         * config/i386/i386.c (ix86_target_string): Add -mfma.
35268         Fix a typo in comment.
35270 2010-03-22  Mike Stump  <mikestump@comcast.net>
35272         PR target/23071
35273         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
35274         Don't overly align based upon packed packed fields.
35276 2010-03-22  Jason Merrill  <jason@redhat.com>
35278         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
35279         Use () rather than [], and move before the element type.
35281 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35283         * doc/configfiles.texi (Configuration Files): Removed
35284         fixinc/Makefile*, intl/Makefile.*.
35285         * doc/makefile.texi: Fixed markup. Abstract from version
35286         control system used.
35287         (Makefile): Removed obsolete java/parse.y example.
35288         * doc/sourcebuild.texi: Likewise.
35289         (Top Level): Added config, gnattools, libdecnumber, libgcc,
35290         libgomp, libssp.  Removed fastjar.
35291         (Miscellaneous Docs): Clarify location.
35292         Added COPYING3, COPYING3.LIB.
35293         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
35295 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35297         PR target/38085
35298         * config/i386/i386.c (x86_function_profiler)
35299         [!NO_PROFILE_COUNTERS]: Fix typo.
35300         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
35301         instead of callq.
35303 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
35304             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35306         * doc/sourcebuild.texi (Test Directives): Split into six
35307         subsections, with most of the current text in new subsections
35308         Directives, Selectors, and Final Actions.
35309         (Directives): Split list of test directives into multiple
35310         subsubsections.
35311         (Selectors): Describe use and syntax of selectors.
35312         (Effective-Target Keywords): Describe all existing keywords.
35313         (Add Options): Describe features for dg-add-options.
35314         (Require Support): Describe variants of dg-require-support.
35315         (Final Actions): Describe commands to use in dg-final.
35317 2010-03-22  Michael Matz  <matz@suse.de>
35319         PR middle-end/43475
35320         * recog.c (validate_replace_rtx_group): Replace also in
35321         REG_EQUAL and REG_EQUIV notes.
35323 2010-03-22  Richard Guenther  <rguenther@suse.de>
35325         PR tree-optimization/43390
35326         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
35327         sure vector extracts are type correct.
35329 2010-03-22  Richard Guenther  <rguenther@suse.de>
35331         PR middle-end/40106
35332         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
35333         x * sqrt (x) even when optimizing for size if the target
35334         has native support for sqrt.
35336 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
35338         * varasm.c (make_decl_rtl_for_debug): Also clear
35339         flag_mudflap for the duration of make_decl_rtl call.
35341         PR debug/43443
35342         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
35343         locs from preserved VALUEs.
35345 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35347         PR middle-end/42718
35348         * pa.md (movmemsi): Set align to one if zero.
35349         (movmemdi): Likewise.
35351 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
35353         PR target/42321
35354         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
35355         with their corresponding prologue pushes.
35357 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
35359         PR target/43156
35360         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
35361         at the begining or end.
35362         (spu_expand_epilogue): Likewise.
35364 2010-03-20  Richard Guenther  <rguenther@suse.de>
35366         PR rtl-optimization/43438
35367         * combine.c (make_extraction): Properly zero-/sign-extend an
35368         extraction of the low part of a CONST_INT.  Also handle
35369         CONST_DOUBLE.
35371 2010-03-19  Mike Stump  <mikestump@comcast.net>
35373         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
35374         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
35375         (override_options): Use SUBTARGET32_DEFAULT_CPU.
35377 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35379         PR c/43211
35380         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
35381         an error.
35383 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
35385         PR rtl-optimization/42258
35386         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
35387         use that may match DEF.
35389         PR target/40697
35390         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
35391         the cost of loading the constant rather than assuming
35392         COSTS_N_INSNS (1).
35393         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
35394         outer code is AND, do the same tests as the andsi3 expander and
35395         return COSTS_N_INSNS (1) if and is cheap.
35397         * optabs.c (avoid_expensive_constant): Fix formatting.
35399 2010-03-19  Michael Matz  <matz@suse.de>
35401         PR c++/43116
35402         * attribs.c (decl_attributes): When rebuilding a function pointer
35403         type use the same qualifiers as the original pointer type.
35405 2010-03-19  Martin Jambor  <mjambor@suse.cz>
35407         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
35408         and is_gimple_ip_invariant_address.
35410 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35412         Revert
35413         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35415         * config/arm/arm.c (arm_override_options): Turn off
35416         flag_dwarf2_cfi_asm for AAPCS variants.
35418 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35420         PR target/43399
35421         * config/arm/arm.c (emit_multi_reg_push): Update comments.
35422         Use PRE_MODIFY instead of PRE_DEC.
35423         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
35424         (vfp_emit_fstmd): Likewise.
35426 2010-03-19  Michael Matz  <matz@suse.de>
35428         PR target/43305
35429         * builtins.c (expand_builtin_interclass_mathfn,
35430         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
35431         if that fails.
35433 2010-03-19  Richard Guenther  <rguenther@suse.de>
35435         PR tree-optimization/43415
35436         * tree-ssa-pre.c (phi_translate): Split out worker to ...
35437         (phi_translate_1): ... this.
35438         (phi_translate): Move all caching here.  Cache all NARY
35439         and REFERENCE translations.
35441 2010-03-19  David S. Miller  <davem@davemloft.net>
35443         With help from Eric Botcazou.
35444         * config/sparc/sparc.c: Include dwarf2out.h.
35445         (emit_pic_helper): Delete.
35446         (pic_helper_symbol_name): Delete.
35447         (pic_helper_emitted_p): Delete.
35448         (pic_helper_needed): New.
35449         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
35450         (get_pc_thunk_name): New.
35451         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
35452         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
35453         Set pic_helper_needed to true.  Don't call emit_pic_helper.
35454         (sparc_expand_prologue): Update load_pic_register call.
35455         (sparc_output_mi_thunk): Likewise.
35456         (sparc_file_end): Emit a hidden comdat symbol for the PIC
35457         thunk if possible.  Output CFI information as needed.
35459 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
35460             Jack Howarth  <howarth@bromo.med.uc.edu>
35462         PR target/36399
35463         * config/i386/i386.h: Fix ABI on darwin x86-32.
35465 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
35467         * tree.h: Declare make_decl_rtl_for_debug.
35468         * varasm.c (make_decl_rtl_for_debug): New.
35469         * dwarf2out.c (rtl_for_decl_location): Call it.
35470         * cfgexpand.c (expand_debug_expr): Call it.
35472 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
35474         PR bootstrap/43399
35475         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
35476         mem_mode.
35478         PR bootstrap/43403
35479         * var-tracking.c (vt_init_cfa_base): Do nothing if
35480         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
35482 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
35484         PR debug/42873
35485         * var-tracking.c (canonicalize_vars_star): New.
35486         (dataflow_post_merge_adjust): Use it.
35488 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
35490         PR debug/43058
35491         * var-tracking.c (non_suitable_const): New function.
35492         (add_uses): For DEBUG_INSNs with constants, don't record any
35493         value, instead just the constant value itself.
35494         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
35495         is not VAR_LOC_UNKNOWN_P, set var to the constant.
35496         (emit_notes_in_bb): Likewise.
35497         (emit_note_insn_var_location): For onepart variables if
35498         cur_loc is a VOIDmode constant, use DECL_MODE.
35500 2010-03-18  Martin Jambor  <mjambor@suse.cz>
35502         PR middle-end/42450
35503         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
35504         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
35505         all non-clones.  Moved call redirection...
35506         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
35507         (cgraph_materialize_all_clones): Dispose of all
35508         combined_args_to_skip bitmaps.
35509         (verify_cgraph_node): Do not check for edges pointing to wrong
35510         nodes in inline clones.
35511         * tree-inline.c (copy_bb): Call
35512         cgraph_redirect_edge_call_stmt_to_callee.
35513         * ipa.c (cgraph_remove_unreachable_nodes): Call
35514         cgraph_node_remove_callees even when there are used clones.
35516 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
35518         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
35520 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
35522         PR target/43383
35523         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
35524         for 32bit.
35526 2010-03-18  Michael Matz  <matz@suse.de>
35528         PR middle-end/43419
35529         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
35530         into sqrt(x) if we need to preserve signed zeros.
35532 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
35533             Eric Botcazou  <ebotcazou@adacore.com>
35535         PR rtl-optimization/43360
35536         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
35537         note if we don't know its invariant status.
35539 2010-03-18  Michael Matz  <matz@suse.de>
35541         PR tree-optimization/43402
35542         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
35543         PHI chains of ssa names registered for update.
35545 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
35547         PR target/42427
35548         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
35549         non-offsettable and pre_modify update addressing.
35550         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
35551         and "2" alternatives "#".
35552         (*movdd_softfloat32): Make all alternatives "#";
35553         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
35554         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
35555         (*movdf_softfloat32): Make all alternatives "#";
35556         (movdi): Use the new DIFD mode iterator to create a common splitter
35557         for movdi, movdf and movdd patterns.
35559 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
35561         * common.opt (dumpdir): Remove redundant tab.
35563 2010-03-17  Martin Jambor  <mjambor@suse.cz>
35565         PR tree-optimization/43347
35566         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
35567         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
35569 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
35571         PR rtl-optimization/42216
35572         * regrename.c (create_new_chain): New function, broken out from...
35573         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
35574         appending a use to an empty chain.
35575         (build_def_use): Remove previous changes that convert OP_INOUT to
35576         OP_OUT operands; instead detect the case where an OP_INOUT operand
35577         uses a previously untracked register and create an empty chain for it.
35579 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35581         * doc/extend.texi (Function Attributes): Rewrite unfinished
35582         sentence in ms_abi documentation.
35584 2010-03-17  Alan Modra  <amodra@gmail.com>
35586         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
35587         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
35588         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
35589         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
35591 2010-03-16  Richard Henderson  <rth@redhat.com>
35593         PR middle-end/43365
35594         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
35595         (lower_try_finally): Save and restore eh_seq around the expansion
35596         of the try-finally.
35598 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
35600         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
35601         statements before splitting block.
35603 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35605         * doc/sourcebuild.texi (Testsuites): Fix markup.
35606         Use pathnames relative to gcc/testsuite.
35607         (Test Directives): Move description of how timeout is determined.
35608         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
35609         (C Tests): Correct gcc.misc-tests directory.
35610         Framework tests now live in gcc.test-framework.
35612 2010-03-16  Richard Guenther  <rguenther@suse.de>
35614         PR middle-end/43379
35615         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
35616         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
35618 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
35619             Alexandre Oliva  <aoliva@redhat.com>
35621         PR tree-optimization/42917
35622         * lambda-code.c (remove_iv): Skip debug statements.
35623         (lambda_loopnest_to_gcc_loopnest): Likewise.
35624         (not_interesting_stmt): Debug statements are not interesting.
35626 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
35628         PR debug/43051
35629         PR debug/43092
35630         * cselib.c (cselib_preserve_constants,
35631         cfa_base_preserved_val): New static variables.
35632         (preserve_only_constants): New function.
35633         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
35634         clear its REG_VALUES.  If cselib_preserve_constants, don't
35635         empty the whole hash table, but preserve there VALUEs with constants,
35636         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
35637         (cselib_preserve_cfa_base_value): New function.
35638         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
35639         (cselib_init): Change argument to int bitfield.  Set
35640         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
35641         is in it.
35642         (cselib_finish): Clear cselib_preserve_constants and
35643         cfa_base_preserved_val.
35644         * cselib.h (enum cselib_record_what): New enum.
35645         (cselib_init): Change argument to int.
35646         (cselib_preserve_cfa_base_value): New prototype.
35647         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
35648         * dse.c (dse_step1): Likewise.
35649         * cfgcleanup.c (thread_jump): Likewise.
35650         * sched-deps.c (sched_analyze): Likewise.
35651         * gcse.c (local_cprop_pass): Likewise.
35652         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
35653         If FN is non-NULL, call the callback always and whenever it returns
35654         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
35655         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
35656         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
35657         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
35658         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
35659         * var-tracking.c: Include recog.h.
35660         (bb_stack_adjust_offset): Remove.
35661         (vt_stack_adjustments): Don't call it, instead just gather the
35662         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
35663         (adjust_stack_reference): Remove.
35664         (compute_cfa_pointer): New function.
35665         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
35666         (struct adjust_mem_data): New type.
35667         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
35668         functions.
35669         (get_address_mode): New function.
35670         (replace_expr_with_values): Use it.
35671         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
35672         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
35673         (adjust_sets): Remove.
35674         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
35675         Use get_address_mode.
35676         (get_adjusted_src): Remove.
35677         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
35678         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
35679         (add_with_sets): Don't call adjust_sets.
35680         (fp_setter, vt_init_cfa_base): New functions.
35681         (vt_initialize): Change return type to bool.  Move most of pool etc.
35682         initialization to the beginning of the function from end.  Pass
35683         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
35684         If !frame_pointer_needed, call vt_stack_adjustment before mos
35685         vector is filled, call vt_init_cfa_base if argp/framep has been
35686         eliminated to sp.  If frame_pointer_needed and argp/framep has
35687         been eliminated to hard frame pointer, set
35688         hard_frame_pointer_adjustment and call vt_init_cfa_base after
35689         encountering fp setter in the prologue.  For MO_ADJUST, call
35690         log_op_type before pusing the op into mos vector, not afterwards.
35691         Call adjust_insn before cselib_process_insn/add_with_sets,
35692         call cancel_changes (0) afterwards.
35693         (variable_tracking_main_1): Adjust for vt_initialize calling
35694         vt_stack_adjustments and returning whether it succeeded or not.
35696 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
35698         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
35699         debug statements.
35701 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
35703         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
35704         has been set.
35705         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
35706         drap_reg has not been set.
35708 2010-03-15  Michael Matz  <matz@suse.de>
35710         PR middle-end/43300
35711         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
35712         use it to expand block copies.
35713         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
35714         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
35715         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
35717 2010-03-15  Richard Guenther  <rguenther@suse.de>
35719         PR tree-optimization/43367
35720         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
35721         elimination check.
35723 2010-03-15  Richard Guenther  <rguenther@suse.de>
35725         PR tree-optimization/43317
35726         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
35728 2010-03-15  Martin Jambor  <mjambor@suse.cz>
35730         PR tree-optimization/43141
35731         * tree-sra.c (create_abstract_origin): New function.
35732         (modify_function): Call create_abstract_origin.
35734 2010-03-15  Chris Demetriou  <cgd@google.com>
35736         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
35737         wasn't copied.
35739 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35741         PR middle-end/43354
35742         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
35743         call insert_out_of_ssa_copy for default definitions.
35745 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35747         * graphite-clast-to-gimple.c (my_long_long): Defined.
35748         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
35749         * graphite-sese-to-poly.c (my_long_long): Defined.
35750         (scop_ivs_can_be_represented): Use it.
35752 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35754         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
35755         graphite-max-bbs-per-function, and loop-block-tile-size.
35756         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
35757         with "maximum".
35758         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
35760 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35762         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
35763         forward declaration.
35764         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
35765         (add_upper_bounds_from_estimated_nit): New.
35766         (build_loop_iteration_domains): Use it.
35768 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35770         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
35772 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35774         PR middle-end/43306
35775         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
35776         should be an INTEGER_CST.  Also handle CASE_CONVERT.
35778 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35780         * graphite.c (graphite_initialize): To bound the number of bbs per
35781         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
35782         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
35783         * doc/invoke.texi: Document it.
35785 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35787         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
35788         * graphite-sese-to-poly.h (build_poly_scop): Same.
35790 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35792         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
35793         the number of parameters in the scop.  Use as an upper bound
35794         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
35795         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
35796         * doc/invoke.texi: Document it.
35798 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
35800         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
35801         * doc/c-tree.texi: Remove.
35802         * doc/generic.texi: Merge c-tree.texi here.
35803         * doc/gccint.texi (Trees): Remove menu entry.
35804         (c-tree.texi): Remove @include.
35805         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
35806         * doc/languages.texi (Reading RTL): Ditto.
35808 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
35810         PR target/42869
35811         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
35813 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
35815         PR middle-end/42431
35816         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
35817         code added to work around reload clobbering CONST insns.
35819 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
35821         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
35822         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
35823         (cselib_preserve_only_values): Remove retain argument, don't
35824         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
35825         * cselib.h (cselib_preserve_only_values): Remove retain argument.
35826         * var-tracking.c (micro_operation): Move insn field before union.
35827         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
35828         (struct variable_tracking_info_def): Remove n_mos field, change
35829         mos into a vector of micro_operations.
35830         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
35831         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
35832         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
35833         changing into a vector.
35834         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
35835         come before all other uops generated by add_stores.
35836         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
35837         argument removal.
35838         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
35839         a vector.  Run just one pass over the bbs instead of separate counting
35840         and computation phase.
35841         (vt_finalize): Free VTI (bb)->mos vector instead of array.
35843         PR debug/43329
35844         * tree-inline.c (remap_decls): Put old_var rather than origin_var
35845         into *nonlocalized_list vector.
35846         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
35847         even if origin is non-NULL.
35848         (gen_variable_die): Likewise.
35849         (process_scope_var): Don't change origin.
35850         (gen_decl_die): Likewise.
35851         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
35852         before adding new edges instead of after it, fix moving over
35853         debug stmts.
35855 2010-03-11  David S. Miller  <davem@davemloft.net>
35857         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
35858         of four.
35859         * configure: Rebuild.
35861 2010-03-11  Martin Jambor  <mjambor@suse.cz>
35863         PR tree-optimization/43257
35864         * tree.c (assign_assembler_name_if_neeeded): New function.
35865         (free_lang_data_in_cgraph): Assembler name assignment moved to the
35866         above new function.
35867         * tree.h (assign_assembler_name_if_neeeded): Declare.
35868         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
35869         the function if needed.
35871 2010-03-11  Chris Demetriou  <cgd@google.com>
35873         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
35874         include/stdint-gcc.h, and include/stdint.h world-readable.
35876 2010-03-11  Richard Guenther  <rguenther@suse.de>
35878         PR tree-optimization/43255
35879         * tree-vrp.c (process_assert_insertions_for): Do not insert
35880         asserts for trivial conditions.
35882 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35884         PR tree-optimization/43280
35885         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
35886         generation.  Move calculation of size out of the if branch.
35887         (find_bswap): Modify compare number generation.
35889 2010-03-11  Richard Guenther  <rguenther@suse.de>
35891         PR lto/43200
35892         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
35893         (input_gimple_stmt): Fixup handled component types during
35894         operand read.  Also fix up decls in ADDR_EXPRs.
35896 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
35898         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
35899         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
35901 2010-03-10  Jan Hubicka  <jh@suse.cz>
35903         PR c/43288
35904         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
35905         * varasm.c (get_variable_section): Don't do that here...
35906         (make_decl_rtl): ... and here.
35907         (do_assemble_alias): Produce decl RTL.
35908         (assemble_alias): Likewise.
35910 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35912         PR debug/43290
35913         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
35914         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
35915         of fde->vdrap_reg.
35916         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
35917         (based_loc_descr): Only express drap or vdrap regno based expressions
35918         using DW_OP_fbreg when not optimizing.
35919         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
35920         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
35921         REG_CFA_SET_VDRAP note.
35923 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
35925         PR tree-optimization/43236
35926         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
35927         error in calculation of base address in reverse iteration case.
35928         (generate_builtin): Take number of latch executions if the statement
35929         is in the latch.
35931 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
35933         PR middle-end/42859
35934         * tree-eh.c: Include pointer-set.h.
35935         (lower_eh_dispatch): Filter out duplicate case labels and
35936         remove the unneeded edge when the label is unused.  Return
35937         true when some edges are removed.
35938         (execute_lower_eh_dispatch): When any lowering resulted in
35939         removing an edge, also delete unreachable blocks.
35941 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35943         PR bootstrap/43287
35944         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
35945         UNSPEC_MACHOPIC_OFFSET.
35947 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
35949         PR target/43294
35950         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
35951         (m68k_delegitimize_address): New function.
35953 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
35955         PR debug/43299
35956         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
35958         PR debug/43299
35959         * var-tracking.c (adjust_sets): New function.
35960         (count_with_sets, add_with_sets): Use it.
35961         (get_adjusted_src): New inline function.
35962         (add_stores): Use it.
35964         PR debug/43304
35965         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35966         call cselib_dummy_expand_value_rtx_cb instead of
35967         cselib_expand_value_rtx_cb.
35969         PR debug/43293
35970         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35971         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35972         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35973         and .cfi_endproc around the pic thunks.
35974         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35975         all queued unwind info register saves are saved before the call.
35976         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35977         considered as sp-=4 for unwind info and the pop as sp+=4 which
35978         also clobbers dest, but doesn't actually restore it.
35980         PR debug/43290
35981         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35982         RTX_FRAME_RELATED_P.
35984 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35986         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35987         whitespaces in output template.
35989 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35991         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35992         out array boundary.
35994 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35996         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35997         builtins.exp in a separate job.
35999 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36001         * graphite-sese-to-poly.c (add_param_constraints): Use
36002         lower_bound_in_type and upper_bound_in_type.
36004 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36006         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
36007         instead of unsigned_type_node.
36009 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36010             Reza Yazdani  <reza.yazdani@amd.com>
36012         PR middle-end/43065
36013         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
36014         on pointer type parameters.
36016 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
36018         PR middle-end/42644
36019         PR middle-end/42130
36020         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
36021         handle conversions from pointer to integers.
36022         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
36023         induction variable, to be able to work with code generated by CLooG.
36024         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
36025         (build_poly_scop): Bail out if we cannot codegen a loop.
36027 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
36029         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
36030         code generation with gloog_error.
36032 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36034         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
36035         Call fold_convert on all the returned values.
36036         (expand_scalar_variables_expr): Pass to
36037         expand_scalar_variables_ssa_name the type of the resulting expression.
36039 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36041         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
36042         ppl_min_for_le_pointset.
36043         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
36044         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
36046 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36048         * graphite-dependences.c (map_into_dep_poly): Removed.
36049         (dependence_polyhedron_1): Use combine_context_id_scat.
36051 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36053         * graphite-poly.h (struct poly_scattering): Add layout documentation.
36054         (struct poly_bb): Same.
36055         (combine_context_id_scat): New.
36057 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36059         PR middle-end/42326
36060         * sese.c (name_defined_in_loop_p): Return false for default
36061         definitions.
36063 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36065         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
36066         and clean up the logic.
36068 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36070         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
36071         early return.
36073 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
36075         * var-tracking.c (remove_cselib_value_chains): Define only for
36076         ENABLE_CHECKING.
36077         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
36078         delete_slot_part, emit_notes_for_differences_1): Don't call
36079         remove_cselib_value_chains here.
36080         (set_slot_part, emit_notes_for_differences_2): Don't call
36081         add_cselib_value_chains here.
36082         (preserved_values): New vector.
36083         (preserve_value): New function.
36084         (add_uses, add_stores, vt_add_function_parameters): Use it
36085         instead of cselib_preserve_value.
36086         (changed_values_stack): New vector.
36087         (check_changed_vars_0): New function.
36088         (check_changed_vars_1, check_changed_vars_2): Use it.
36089         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
36090         changed_values_stack VALUEs.
36091         (vt_emit_notes): For all preserved_values call
36092         add_cselib_value_chains.  If ENABLE_CHECKING call
36093         remove_cselib_value_chains before verifying value_chains is empty.
36094         Initialize and free changed_values_stack.
36095         (vt_initialize): Initialize preserved_values.
36096         (vt_finalize): Free preserved_values.
36098 2010-03-08  Richard Guenther  <rguenther@suse.de>
36100         PR tree-optimization/43269
36101         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
36102         region detection.
36104 2010-03-08  Martin Jambor  <mjambor@suse.cz>
36106         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
36107         (ipa_is_param_called): Removed.
36108         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
36109         (ipa_print_node_params): Do not print the called flag.
36110         (ipa_write_node_info): Do not stream the called flag.
36111         (ipa_read_node_info): Likewise.
36113 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
36115         PR debug/43176
36116         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
36117         * cselib.c (struct expand_value_data): Add dummy field.
36118         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
36119         dummy to false.
36120         (cselib_dummy_expand_value_rtx_cb): New function.
36121         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
36122         any rtl.
36123         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
36124         * var-tracking.c: Include pointer-set.h.
36125         (variable): Change n_var_parts to char from int.  Add
36126         cur_loc_changed and in_changed_variables fields.
36127         (variable_canonicalize): Remove.
36128         (shared_var_p): New inline function.
36129         (unshare_variable): Maintain cur_loc_changed and
36130         in_changed_variables fields.  If var was in changed_variables,
36131         replace it there with new_var.  Just copy cur_loc instead of
36132         resetting it to something else.
36133         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
36134         (dataflow_set_union): Don't call variable_canonicalize.
36135         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
36136         of their DEBUG_EXPR_TREE_DECLs.
36137         (canonicalize_loc_order_check): Verify that cur_loc is NULL
36138         and in_changed_variables and cur_loc_changed is false.
36139         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
36140         and cur_loc_changed.  Don't update cur_loc here.
36141         (variable_merge_over_src): Don't call variable_canonicalize.
36142         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
36143         removing loc that is equal to cur_loc, clear cur_loc,
36144         set cur_loc_changed and ensure variable_was_changed is called.
36145         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
36146         compare pointers in cur_loc check, if it is equal to loc,
36147         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
36148         (variable_different_p): Remove compare_current_location argument,
36149         don't compare cur_loc.
36150         (dataflow_set_different_1): Adjust variable_different_p caller.
36151         (variable_was_changed): If dv had some var in changed_variables
36152         already, reset in_changed_variables flag for it and propagate
36153         cur_loc_changed over to the new variable.  On empty var
36154         always set cur_loc_changed.  Set in_changed_variables on whatever
36155         var is added to changed_variables.
36156         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
36157         Use shared_var_p.  When removing loc that is equal to cur_loc,
36158         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
36159         end, don't set it to something else, just call variable_was_changed.
36160         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
36161         loc being removed, clear cur_loc and set cur_loc_changed.
36162         Set cur_loc_changed if all locations have been removed.
36163         (struct expand_loc_callback_data): New type.
36164         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
36165         allocated.  Always create SUBREGs if simplify_subreg failed.
36166         Prefer to use cur_loc, when that fails and still in
36167         changed_variables (and seen first time) recompute it.  Set
36168         cur_loc_changed of variables which had to change cur_loc and
36169         compute elcd->cur_loc_changed if any of the subexpressions used
36170         had to change cur_loc.
36171         (vt_expand_loc): Adjust to pass arguments in
36172         expand_loc_callback_data structure.
36173         (vt_expand_loc_dummy): New function.
36174         (emitted_notes): New variable.
36175         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
36176         that weren't used for any other decl in current
36177         emit_notes_for_changes call call vt_expand_loc_dummy to update
36178         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
36179         first loc_chain location if NULL before.  Always use just
36180         cur_loc instead of first loc_chain location.  When cur_loc_changed
36181         is false, when not --enable-checking=rtl just don't emit any note.
36182         When rtl checking, compute the note and assert it is the same
36183         as previous note.  Clear cur_loc_changed and in_changed_variables
36184         at the end before removing from changed_variables.
36185         (check_changed_vars_3): New function.
36186         (emit_notes_for_changes): Traverse changed_vars to call
36187         check_changed_vars_3 on each changed var.
36188         (emit_notes_for_differences_1): Clear cur_loc_changed and
36189         in_changed_variables.  Recompute cur_loc of new_var.
36190         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
36191         (vt_emit_notes): Initialize and destroy emitted_notes.
36193 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
36195         PR rtl-optimization/42220
36196         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
36197         Use verify_reg_tracked to determine if we should use OP_OUT rather
36198         than OP_INOUT.
36199         (build_def_use): If we see an in-out operand for a register that we
36200         know nothing about, treat is an output if possible, fail the block if
36201         not.
36203 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
36205         PR debug/42897
36206         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
36207         permanently.
36209 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
36211         PR debug/42897
36212         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
36213         uses of relevant DEFs that are dead outside the loop too.
36215 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
36217         * var-tracking.c (dataflow_set_merge): Swap src and src2.
36218         Reverted:
36219         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
36220         PR debug/41371
36221         * var-tracking.c (values_to_unmark): New variable.
36222         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
36223         values_to_unmark vector.  Moved body to...
36224         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
36225         instead queue it into values_to_unmark vector.
36226         (vt_find_locations): Free values_to_unmark vector.
36228 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
36230         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
36231         (site.exp): Export them when plugins are enabled.
36233 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
36235         PR middle-end/42326
36236         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
36237         that contain scevs.
36238         (chrec_fold_multiply): Same.
36240 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
36242         PR c/43248
36243         * c-decl.c (build_compound_literal): Return early if init is
36244         an error_mark_node.
36246 2010-03-04  Martin Jambor  <mjambor@suse.cz>
36248         PR tree-optimization/43164
36249         PR tree-optimization/43191
36250         * tree-sra.c (type_consists_of_records_p): Reject records with
36251         zero-size bit-fields at the end.
36253 2010-03-04  Mike Stump  <mikestump@comcast.net>
36255         * Makefile.in (TAGS): Remove *.y.
36257 2010-03-04  Richard Guenther  <rguenther@suse.de>
36259         PR tree-optimization/40761
36260         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
36261         in reverse order.
36262         (my_rev_post_order_compute): New function.
36263         (init_pre): Call it.
36265 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
36267         PR middle-end/43209
36268         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
36269         decrease the cost of an IV candidate when the cost is infinite.
36271 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36273         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
36274         Use '3DNow!' for the extension of that name, ensure normal space
36275         after the string.
36276         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
36278 2010-03-03  Jeff Law  <law@redhat.com>
36280         * PR middle-end/32693
36281         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
36282         than gen_rtx_SUBREG.
36283         (extract_bit_field_1): Likewise.
36285 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
36287         * doc/sourcebuild.texi (Test directives): Document that arguments
36288         include-opts and exclude-opts are now optional for dg-skip-if,
36289         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
36291 2010-03-03  Jason Merrill  <jason@redhat.com>
36293         PR c++/12909
36294         * cgraph.h (varpool_node): Add extra_name field.
36295         * varpool.c (varpool_extra_name_alias): New.
36296         (varpool_assemble_decl): Emit extra name aliases.
36297         (varpool_mark_needed_node): Look past an extra name alias.
36298         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
36299         * lto-streamer-in.c (lto_input_tree): Read it.
36300         * lto-streamer-out.c (output_unreferenced_globals): Write it.
36302 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
36304         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
36305         (sparc*-*-solaris2*): ...this.
36307 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
36309         PR debug/43229
36310         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
36311         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
36312         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
36313         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
36315         PR debug/43237
36316         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
36317         fallthrough to default handling, just with want_address 0 instead of 2.
36318         For single element lists, add_AT_loc directly, otherwise create an
36319         artificial variable DIE and stick location list to it.
36321         PR debug/43177
36322         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
36323         (VAL_EXPR_HAS_REVERSE): Define.
36324         (reverse_op): New function.
36325         (add_stores): For reversible operations add an extra MO_VAL_USE.
36327 2010-03-02  Jason Merrill  <jason@redhat.com>
36329         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
36331 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
36333         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
36334         (sparc64-*-linux*): Likewise.
36335         (sparc64-*-solaris2*): Include assembler files before linker ones.
36336         (sparc-*-solaris2*): Simplify and reorder to match previous case.
36337         * config/sparc/gas.h: Delete.
36338         * config/sparc/sol2-64.h: Add copyright notice.
36339         * config/sparc/sol2-gas-bi.h: Likewise.
36340         * config/sparc/sol2-gld.h: Likewise.
36341         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
36342         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
36343         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
36344         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
36345         (sparc_elf_asm_named_section): Rename into...
36346         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
36348 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
36350         * config/alpha/alpha.c (override_options): Fix -mtune error message.
36352 2010-03-02  Jeff Law  <law@redhat.com>
36354         PR middle-end/42431
36355         * reload1.c (rtx_p, substitute_stack): Declare.
36356         (substitute): Record addresses of changed rtxs.
36357         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
36358         Restore the original rtx when complete.
36359         (reload): Free subsitute_stack when complete.
36361 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
36363         * doc/gccint.texi (menu): Add Testsuites as a chapter.
36364         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
36365         new chapter.
36366         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
36367         LTO Testing, gcov Testing, profopt Testing, compat Testing,
36368         Torture Tests): Change from subsection to section.
36370 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
36371             Steven Bosscher  <steven@gcc.gnu.org>
36373         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
36374         instead of bb.
36376 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
36378         PR middle-end/42640
36379         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
36380         the assignment from the new induction variable to the assignment
36381         of the value from the original loop PHI function.
36383 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
36384             Daniel Jacobowitz  <dan@codesourcery.com>
36386         * doc/sourcebuild.texi (Test directives): Clarify options to
36387         dg-skip-if.
36389 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36391         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
36392         Disable cfi directives unless GCC and gas agree on using read-only
36393         .eh_frame sections for 64-bit.
36394         * configure: Regenerate.
36396 2010-03-01  Richard Guenther  <rguenther@suse.de>
36398         PR tree-optimization/43220
36399         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
36400         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
36402 2010-03-01  Richard Guenther  <rguenther@suse.de>
36403             Martin Jambor  <mjambor@suse.cz>
36405         PR middle-end/41250
36406         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
36407         gimplified parameters.
36409 2010-03-01  Christian Bruel  <christian.bruel@st.com>
36411         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
36413 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
36415         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
36417 2010-03-01  Richard Guenther  <rguenther@suse.de>
36419         PR middle-end/43213
36420         * expr.c (expand_assignment): Use the alias-oracle to tell
36421         if the rhs aliases the result decl.
36423 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36425         PR pch/14940
36426         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
36427         to sol_gt_pch_get_address.
36428         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
36429         64-bit, SPARC and x86.
36430         (sol_gt_pch_get_address): New function.
36432 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
36434         * toplev.h (inform_n, error_n): Declare.
36435         * diagnostic.c (inform_n, error_n): New function.
36437 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
36439         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
36440         has no rtl yet when processing local_decls, queue it and recheck
36441         if deferred stack allocation hasn't assigned it rtl.
36443 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
36445         * config/sh/sh.c (unspec_bbr_uid): New.
36446         (gen_block_redirect): Use it instead of INSN_UID.
36447         (gen_far_branch): Likewise.
36449 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
36451         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
36452         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
36454 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36456         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
36457         (Warning Options): -Wno-conversion-null is valid for
36458         Objective-C++ as well.
36459         * doc/tm.texi (Named Address Spaces): Likewise.
36460         * doc/plugins.texi (Plugins): Replace TABs with spaces.
36461         * doc/tree-ssa.texi (Tree SSA): Likewise.
36463 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
36465         PR bootstrap/43202
36466         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
36467         by default.  Don't set the default arch for
36468         i[34567]86-*-darwin*|x86_64-*-darwin*.
36470 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
36472         PR bootstrap/43202
36473         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
36474         default.  Set the default 32bit/64bit archs with $with_arch
36475         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
36477 2010-02-27  Richard Guenther  <rguenther@suse.de>
36479         PR tree-optimization/43186
36480         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
36481         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
36482         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
36483         unroller iterations.
36485 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
36487         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
36488         required and i[34567]86-*-* targets don't support 64bit ISA.
36490 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
36492         PR ada/43096
36493         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36494         the same alias set.
36496 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
36498         * config.gcc: Set the default arch at least to Prescott for
36499         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
36500         if SSE math is enabled.
36502 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36504         * diagnostic.c (diagnostic_initialize): Update.
36505         (diagnostic_report_diagnostic): Test inhibit_notes_p for
36506         informative notes.
36507         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
36508         (diagnostic_inhibit_notes): New.
36509         * toplev.c (process_options): inhibit notes with -fcompare-debug.
36511 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36513         PR c/20631
36514         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
36515         * doc/standards.texi: Likewise.
36516         * doc/extend.texi: Likewise.
36517         * doc/trouble.texi: Likewise.
36518         * doc/cppopts.texi: Likewise.
36519         * doc/install.texi: Likewise.
36520         * c.opt (std=c90,std=gnu90): New options.
36521         * c-opts.c (c_common_handle_option): Handle them.
36523 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36525         PR c/24577
36526         * c-decl.c (undeclared_variable): Use an informative note.
36528 2010-02-26  Richard Guenther  <rguenther@suse.de>
36530         PR tree-optimization/43186
36531         * gimple.h (gimple_fold): Remove.
36532         * gimple.c (gimple_fold): Remove.  Inline into single user ...
36533         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
36534         Try harder for conditions.
36536 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
36538         PR debug/43190
36539         * function.c (used_types_insert): Don't skip through named pointer
36540         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
36541         and it is different from the main variant's type.
36543 2010-02-26  Nick Clifton  <nickc@redhat.com>
36545         * config/rx/rx.md (sminsi3): Remove bogus alternative.
36547 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
36549         * config.gcc: Support --with-fpmath=sse for x86.
36551         * config/i386/ssemath.h: New.
36553         * doc/install.texi (--with-fpmath=sse): Documented.
36555 2010-02-26  Richard Guenther  <rguenther@suse.de>
36557         PR tree-optimization/43188
36558         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
36559         vector types of over-aligned element type.
36561 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
36563         PR target/43175
36564         * config/i386/i386.c (expand_vec_perm_blend): Use correct
36565         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
36567 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
36569         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
36571 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
36573         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
36574         * var-tracking.c: Include diagnostic.h.
36575         (debug_dv): New function.
36576         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
36578         PR debug/43160
36579         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
36580         (add_value_chain, add_value_chains, remove_value_chain,
36581         remove_value_chains): Handle DEBUG_EXPRs.
36582         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
36584         PR debug/43161
36585         * regcprop.c (struct queued_debug_insn_change): New type.
36586         (struct value_data_entry): Add debug_insn_changes field.
36587         (struct value_data): Add n_debug_insn_changes field.
36588         (debug_insn_changes_pool): New variable.
36589         (free_debug_insn_changes, apply_debug_insn_changes,
36590         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
36591         (kill_value_one_regno): Call free_debug_insn_changes if needed.
36592         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
36593         fields.
36594         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
36595         changes for them.
36596         (copyprop_hardreg_forward_1): Don't call apply_change_group for
36597         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
36598         changes, call cprop_find_used_regs via note_stores.
36599         (copyprop_hardreg_forward): When copying vd from predecessor
36600         which has any queued DEBUG_INSN changes, make sure the pointers are
36601         cleared.  At the end call df_analyze and then if there are any
36602         DEBUG_INSN changes queued at the end of some basic block for still
36603         live registers, apply them.
36604         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
36606 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
36608         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
36609         (arm*-*-*): Ditto.
36611 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
36613         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
36614         targets.  Set the default with_cpu/with_arch from arch/cpu.
36615         Allow x86-64 and native for with_cpu/with_arch.
36617 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
36619         * ebitmap.c: Change calls to verify_popcount with calls to
36620         sbitmap_verify_popcount.
36621         (ebitmap_clear_bit): Fixed map->cacheindex test and
36622         map>cache update when bit clearing results in an empty
36623         element.
36625 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
36627         PR target/43154
36628         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
36629         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
36630         and support both V2DF and V2DI modes.
36631         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
36632         support both V2DF and V2DI modes.
36633         (general): Delete trailing whitespace from a few patterns.
36635         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
36636         V2DF/V2DI interleave high/low builtins.
36638         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
36639         new VSX builtins.
36641         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
36642         interleave high/low functions.
36644 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
36646         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
36647         #pragma extern_prefix.
36649 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
36651         PR debug/43166
36652         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
36653         BLKmode, assert op0 is a MEM and just adjust its mode.
36655         PR debug/43165
36656         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
36657         if bitpos isn't multiple of mode's bitsize.
36659 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36661         * c.opt (-ftemplate-depth=): New.
36662         (-ftemplate-depth-): Deprecate.
36663         * optc-gen.awk: Handle -ftemplate-depth=.
36664         * opth-gen.awk: Likewise.
36665         * c-opts.c (c_common_handle_option): Likewise.
36666         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
36668 2010-02-24  Jason Merrill  <jason@redhat.com>
36670         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
36672 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36674         * cfg.c (alloc_aux_for_block): Remove inline.
36675         (alloc_aux_for_edge): Likewise.
36677 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36679         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
36681 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36683         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
36684         * config/i386/sol2-gas.h: New file.
36685         * config.gcc (i[34567]86-*-solaris2*): Use it.
36687 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36689         PR c/43128
36690         * c-typeck.c (ep_convert_and_check): New.
36691         (build_conditional_expr): Use it.
36692         (build_binary_op): Likewise.
36694 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
36696         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
36698         PR debug/43150
36699         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
36700         bounds even for -O+.
36701         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
36702         expr needs to have DECL_NAME set.
36704 2010-02-24  Nick Clifton  <nickc@redhat.com>
36706         * config/mep/mep.c: Include gimple.h.
36707         (mep_function_uses_sp): Delete unused function.
36708         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
36709         parameters.  Use unsigned integers to count args.  Return a
36710         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
36712 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
36714         PR target/43107
36715         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
36716         greater or equal to nelt instead of 2 * nelt.
36717         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
36718         with nelt - 1.
36720 2010-02-23  Jason Merrill  <jason@redhat.com>
36722         PR debug/42800
36723         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
36724         in cfun->local_decls even if they have register types.
36726         PR c++/42837
36727         * stor-layout.c (place_field): Don't warn about unnecessary
36728         DECL_PACKED if the type is packed.
36730 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
36732         PR target/43139
36733         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
36734         GOTOFF relocs, even when the base reg isn't pic pointer.
36736 2010-02-23  Michael Matz  <matz@suse.de>
36738         PR debug/43077
36739         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
36740         (expand_gimple_basic_block): Generate and use debug temps if there
36741         are debug uses left after the last real use of TERed ssa names.
36742         Unlink debug immediate uses when they are expanded.
36744 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36746         PR 43123
36747         * config/i386/i386.c (override_options): Reorganise to provide
36748         better error messages.
36750 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36752         PR middle-end/43083
36753         * graphite-scop-detection.c (create_single_exit_edge): Move
36754         the call to find_single_exit_edge to....
36755         (create_sese_edges): ...here.  Don't handle multiple edges
36756         exiting the function.
36757         (build_graphite_scops): Don't handle multiple edges
36758         exiting the function.
36760 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36762         PR middle-end/43097
36763         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
36764         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
36766 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36768         PR middle-end/43026
36769         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
36771 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36773         PR c++/43126
36774         * c-typeck.c (convert_arguments): Print declaration location.
36775         * c-common.c (validate_nargs): Rename as
36776         builtin_function_validate_nargs.
36777         (check_builtin_function_arguments): Update.
36779 2010-02-22  Richard Guenther  <rguenther@suse.de>
36781         PR lto/43045
36782         * tree-inline.c (declare_return_variable): Use the type of
36783         the call stmt lhs if available.
36785 2010-02-22  Duncan Sands  <baldrick@free.fr>
36787         * passes.c (register_pass): Always consider all pass lists when
36788         ref_pass_instance_number is zero.
36790 2010-02-22  Richard Guenther  <rguenther@suse.de>
36792         PR tree-optimization/42749
36793         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
36794         parameter.  Do arithmetic in the original type.
36795         (update_accumulator_with_ops): Likewise.
36796         (adjust_accumulator_values): Adjust.
36798 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36800         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
36801         (QI to BLKmode splitter): New splitter.
36803 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
36805         * config/i386/i386.c (initial_ix86_tune_features): Turn on
36806         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
36808 2010-02-22  Richard Guenther  <rguenther@suse.de>
36810         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
36812 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
36814         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
36815         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
36816         ($(T)crti.o, $(T)crtn.o): Remove rules.
36818 2010-02-21  Tobias Burnus  <burnus@net-b.de>
36820         PR fortran/35259
36821         * doc/invoke.texi (-fassociative-math): Document that this
36822         option is automatically enabled for Fortran.
36824 2010-02-20  David S. Miller  <davem@davemloft.net>
36826         * configure.ac: Test if linker and assembler properly support
36827         GOTDATA_OP relocations.
36828         * configure: Rebuild.
36829         * config.in: Likewise.
36830         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
36831         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
36832         (movsi_high_pic): Likewise.
36833         (movdi_lo_sum_pic): Likewise.
36834         (movdi_high_pic): Likewise.
36835         (movsi_pic_gotdata_op): New pattern.
36836         (movdi_pic_gotdata_op): Likewise.
36837         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
36838         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
36840 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
36842         PR target/43067
36843         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
36844         attribute to ssemul.
36845         (xop_mulv2div2di3_high): Ditto.
36847 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36849         PR c++/35669
36850         * c.opt (Wconversion-null): New option.
36851         * doc/invoke.texi (Wconversion-null): Document.
36853 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36855         * common.opt (Wlarger-than-): Add Undocumented.
36857 2010-02-19  Mike Stump  <mikestump@comcast.net>
36859         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
36861 2010-02-19  Jason Merrill  <jason@redhat.com>
36863         PR target/40332
36864         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
36865         * configure: Likewise.
36867 2010-02-20  Alan Modra  <amodra@gmail.com>
36869         PR middle-end/42344
36870         * cgraph.h (cgraph_make_decl_local): Declare.
36871         * cgraph.c (cgraph_make_decl_local): New function.
36872         (cgraph_make_node_local): Use it.
36873         * cgraphunit.c (cgraph_function_versioning): Likewise.
36874         * ipa.c (function_and_variable_visibility): Likewise.
36876 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36878         PR bootstrap/43121
36879         * except.c (sjlj_emit_function_enter): Don't call
36880         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
36881         directly.
36882         * rtl.h (add_reg_br_prob_note): Remove prototype.
36884 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36886         PR 41779
36887         * c-common.c (conversion_warning): Remove widening conversions
36888         before checking the conversion of integers to reals.
36890 2010-02-19  Mike Stump  <mikestump@comcast.net>
36892         PR middle-end/43125
36893         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
36895         PR objc/43061
36896         * cgraphunit.c (process_function_and_variable_attributes): Check
36897         DECL_PRESERVE_P instead of looking up attribute "used".
36898         * ipa-pure-const.c (check_decl): Likewise.
36899         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
36900         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
36901         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
36902         instead of attribute "used".
36903         * config/sol2-c.c (solaris_pragma_init): Likewise.
36904         (solaris_pragma_fini): Likewise.
36906 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36908         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
36909         Use XCNEW instead of xcalloc.
36910         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
36911         XNEW instead of xmalloc.
36912         (get_fields): Use XNEWVEC instead of xmalloc.
36914         PR debug/43084
36915         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
36916         populate vars array.
36917         (create_new_general_access): For debug stmts just reset value.
36918         (get_stmt_accesses): For accesses within debug stmts just record them
36919         using add_access_to_acc_sites instead of preventing the peeling or
36920         counting them as accesses.
36922         PR middle-end/42233
36923         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
36925 2010-02-19  Richard Guenther  <rguenther@suse.de>
36927         PR tree-optimization/42916
36928         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
36929         instructions.
36931 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
36933         * configure.ac: Replace all uses of changequote in macro arguments
36934         with proper quoting.
36936 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36938         PR middle-end/42233
36939         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
36941 2010-02-19  Richard Guenther  <rguenther@suse.de>
36943         PR tree-optimization/42944
36944         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
36945         test for aliasing with errno.
36947 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36949         PR middle-end/42233
36950         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
36951         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
36952         * dojump.c: Include output.h.
36953         (inv): New inline function.
36954         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
36955         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
36956         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
36957         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
36958         argument, pass it down to other calls.
36959         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
36960         add REG_BR_PROB note to the conditional jump.
36961         * cfgexpand.c (add_reg_br_prob_note): Removed.
36962         (expand_gimple_cond): Don't call it, add the probability
36963         as last argument to jumpif_1/jumpifnot_1.
36964         * Makefile.in (dojump.o): Depend on output.h.
36965         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36966         callers.
36967         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36968         * stmt.c (do_jump_if_equal): Likewise.
36969         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36970         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36971         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36972         Likewise.
36973         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36974         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36975         jumpifnot_1 callers.
36976         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36977         callers.
36978         (store_expr): Adjust jumpifnot caller.
36979         (store_constructor): Adjust jumpif caller.
36981         PR middle-end/42233
36982         * gimplify.c (gimple_boolify): For __builtin_expect call
36983         gimple_boolify also on its first argument.
36985 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36987         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36988         changequote block.
36989         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36990         * configure: Regenerated.
36992 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36994         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36995         lang_hooks.types_compatible_p instead of comptypes.
36997 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36999         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
37000         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
37001         if __prefer_thumb__ is defined.
37003 2010-02-18  Martin Jambor  <mjambor@suse.cz>
37005         PR tree-optimization/43066
37006         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
37007         array with zero-sized element type.
37009 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
37011         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
37012         rtx, allocate struct var_loc_node here and return it to the
37013         caller, and only if it is actually needed.
37014         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
37015         move it earlier and return immediately if it returns NULL.
37017 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
37019         * config/sparc/gas.h: New file.  Restore
37020         TARGET_ASM_NAMED_SECTION to its ELF default.
37021         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
37022         check !HAVE_GNU_AS.
37023         * config/sparc/sparc.c (sparc_elf_asm_named_section):
37024         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
37025         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
37026         after sparc/sysv4.h.
37028 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
37030         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
37032 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
37034         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
37035         patterns from predicated pattern.
37037 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
37039         PR target/43103
37040         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
37041         for insn mnemonic suffix.
37043 2010-02-17  Richard Guenther  <rguenther@suse.de>
37045         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
37046         to loop PHI nodes.
37048 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
37050         PR debug/42918
37051         * caller-save.c (save_call_clobbered_regs): If BB ends with
37052         a DEBUG_INSN, move any notes in between last real insn and the last
37053         DEBUG_INSN after the last DEBUG_INSN.
37055 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
37057         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
37058         Fix return type.  Fix argument type.  Explain meaning of return value.
37060 2010-02-16  Richard Guenther  <rguenther@suse.de>
37062         PR tree-optimization/41043
37063         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
37064         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
37065         statements ...
37066         (vrp_visit_phi_node): ... but only for loop PHI nodes.
37068 2010-02-16  Ira Rosen  <irar@il.ibm.com>
37070         PR tree-optimization/43074
37071         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
37072         * tree-vect-loop.c (vect_analyze_loop_operations): Add
37073         vectorizable cycles in hybrid SLP check.
37074         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
37076 2010-02-16  Richard Guenther  <rguenther@suse.de>
37078         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
37079         (true_dependence): If memrefs_conflict_p computes must-alias
37080         trust it.  Move TBAA check after offset-based disambiguation.
37081         (canon_true_dependence): Likewise.
37083 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
37085         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
37086         * doc/invoke.texi: Document it.
37087         * var-tracking.c: Include toplev.h and params.h.
37088         (vt_find_locations): Return bool indicating success.  Compute
37089         hash sizes unconditionally.  Check new parameter, report.
37090         (variable_tracking_main_1): Check vt_find_locations results and
37091         retry.  Renamed from...
37092         (variable_tracking_main): ... this.  New wrapper to preserve
37093         flag_var_tracking_assignments.
37094         * Makefile.in (var-tracking.o): Adjust dependencies.
37096 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
37097             Jakub Jelinek  <jakub@redhat.com>
37099         PR target/42854
37100         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
37101         if weak_import attribute is present.
37102         * config/darwin.c (machopic_select_section): Likewise.
37104 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
37106         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
37107         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
37108         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
37109         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
37111         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
37112         types.
37114         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
37115         Fix argument types.
37117         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
37118         Rewrite text to refer to the names.
37120 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
37122         * config/i386/i386-builtin-types.def
37123         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
37124         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
37125         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
37126         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
37127         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
37128         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
37129         IX86_BUILTIN_VPERMIL2PS256.
37130         (MULTI_ARG_4_DF2_DI_I): Defined.
37131         (MULTI_ARG_4_DF2_DI_I1): Defined.
37132         (MULTI_ARG_4_SF2_SI_I): Defined.
37133         (MULTI_ARG_4_SF2_SI_I1): Defined.
37134         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
37135         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
37136         __builtin_ia32_vpermil2ps256.
37137         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
37138         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
37139         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
37140         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
37141         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
37142         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
37143         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
37144         CODE_FOR_xop_vpermil2v8sf3.
37145         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
37146         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
37147         * config/i386/xopintrin.h (_mm_permute2_pd): New.
37148         (_mm256_permute2_pd): New.
37149         (_mm_permute2_ps): New.
37150         (_mm256_permute2_ps): New.
37152 2010-02-15  Nick Clifton  <nickc@redhat.com>
37154         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
37155         boolean parameters.  Use emit_jump_insn when emitting a pop
37156         instruction containing a return insn.
37157         (push): Use 'true' rather than '1' as second parameter to F.
37158         (h8300_expand_prologue): Likewise.
37159         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
37160         (h8300_expand_epilogue): Likewise.
37162 2010-02-15  Richard Guenther  <rguenther@suse.de>
37164         PR middle-end/43068
37165         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
37166         if that is zero.
37168 2010-02-15  Nick Clifton  <nickc@redhat.com>
37170         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
37171         delta.
37173 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
37175         * intl.c (fake_ngettext): New function.
37176         * intl.h (fake_ngettext): Declare.
37177         (ngettext): Define macro.
37178         * collect2.c (notice_translated): New function.
37179         (main): Use notice_translated and ngettext.
37180         * collect2.h (notice_translated): Declare.
37182 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
37184         * reorg.c (delete_computation): Comment fixes.
37185         * caller-save.c (setup_save_areas): Idem.
37186         * sel-sched-dump.c (dump_lv_set): Idem.
37187         * rtl.def: Idem.
37189 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37191         * config/s390/s390.c (s390_sched_init): New function.
37192         (TARGET_SCHED_INIT): Target hook defined.
37194 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
37195             Jack Howarth  <howarth@bromo.med.uc.edu>
37196             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
37198         PR target/42982
37199         Partial revert of unintended change in fix for PR41605.
37200         * config/darwin.h: Fix typo.
37201         * config/darwin9.h: Same.
37203 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
37205         * c-pch.c (pch_init): Clear v.
37207 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37209         PR middle-end/42930
37210         * graphite-scop-detection.c (graphite_can_represent_scev): Call
37211         graphite_can_represent_init for MULT_EXPR.
37213 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37215         PR middle-end/42914
37216         PR middle-end/42530
37217         * graphite-sese-to-poly.c (remove_phi): New.
37218         (translate_scalar_reduction_to_array): Call remove_phi.
37220 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37222         PR middle-end/42771
37223         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
37224         * graphite-clast-to-gimple.h (gloog): Update declaration.
37225         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
37226         * graphite-poly.h (struct poly_bb): Add missing comments.
37227         (struct scop): Add poly_scop_p field.
37228         (POLY_SCOP_P): New.
37229         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
37230         * graphite.c (graphite_transform_loops): Build the polyhedral
37231         representation for each scop before code generation.
37232         * sese.c (rename_variables_in_operand): Removed.
37233         (rename_variables_in_expr): Return the renamed expression.
37234         (rename_sese_parameters): New.
37235         * sese.h (rename_sese_parameters): Declared.
37237 2010-02-11  Richard Guenther  <rguenther@suse.de>
37239         PR tree-optimization/42998
37240         * tree-ssa-pre.c (create_expression_by_pieces): Treat
37241         POINTER_PLUS_EXPR properly.
37243 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37244             Changpeng Fang  <changpeng.fang@amd.com>
37246         PR middle-end/40886
37247         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
37248         the cost of an IV candidate when the IV is used in a test against zero.
37250         * gcc.dg/tree-ssa/ivopts-3.c: New.
37252 2010-02-11  Richard Guenther  <rguenther@suse.de>
37254         PR lto/41664
37255         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
37256         pointer-vs-decl case by swapping refs.  Handle some cases
37257         of pointer-vs-decl disambiguations more conservatively.
37258         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
37259         to false after expanding.
37261 2010-02-11  Richard Guenther  <rguenther@suse.de>
37263         PR driver/43021
37264         * gcc.c (process_command): Handle LTO file@offset case more
37265         appropriately.
37267 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
37269         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
37270         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
37271         of DEBUG_INSNs.
37272         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
37274         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
37275         if MEM's mode size isn't DWARF2_ADDR_SIZE.
37276         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
37277         Optimize eq/ne comparisons when both arguments are known to be
37278         zero-extended.
37279         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
37280         Don't mask operands unnecessarily if they are known to be already
37281         zero-extended.
37283 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
37285         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
37286         instead of loop.
37288 2010-02-10  Richard Guenther  <rguenther@suse.de>
37290         PR tree-optimization/43017
37291         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
37292         for wrapping signed arithmetic.
37294 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
37296         PR debug/43010
37297         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
37298         if no debug info should be emitted for it.
37300 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
37302         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
37303         note when flag_exceptions is set.
37305 2010-02-10  Duncan Sands  <baldrick@free.fr>
37307         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
37309 2010-02-10  Richard Guenther  <rguenther@suse.de>
37311         PR c/43007
37312         * tree.c (get_unwidened): Handle constants.
37313         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
37315 2010-02-10  Martin Jambor  <mjambor@suse.cz>
37317         PR lto/42985
37318         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
37319         check for variable argument counts independently.
37321 2010-02-10  Christian Bruel  <christian.bruel@st.com>
37323         PR target/42841
37324         * config/sh/sh.c (find_barrier): Increase length for non delayed
37325         conditional branches.
37327 2010-02-10  Christian Bruel  <christian.bruel@st.com>
37329         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
37331 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
37333         * builtins.c (set_builtin_user_assembler_name): Also handle
37334         ffs if int is smaller than word.
37336 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
37338         PR middle-end/42973
37339         * ira-conflicts.c (get_dup): Remove.
37340         (process_reg_shuffles): Add new parameter.  Use it as an
37341         additional guard for copy generation.
37342         (add_insn_allocno_copies): Rewrite.
37344 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
37346         * common.opt (fsched2-use-traces): Preserved for backward
37347         compatibility.
37348         * doc/invoke.texi: Remove the documentation about option
37349         -fsched2-use-traces.
37350         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
37351         flag_sched2_use_traces.
37352         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
37353         the backward compatibility flag section.
37355 2010-02-09  Richard Guenther  <rguenther@suse.de>
37357         PR tree-optimization/43008
37358         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
37359         make HEAP variables initialized from global memory if they
37360         are not known builtin functions.
37361         (find_func_aliases): Adjust.
37363 2010-02-09  Richard Guenther  <rguenther@suse.de>
37365         PR tree-optimization/43000
37366         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
37367         arithmetic manually.
37369 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
37371         PR tree-optimization/42931
37372         * tree-loop-linear.c (try_interchange_loops): Don't call
37373         double_int_mul if estimated_loop_iterations failed.
37375 2010-02-08  Martin Jambor  <mjambor@suse.cz>
37377         PR middle-end/42898
37378         * tree-sra.c (build_accesses_from_assign): Do not mark in
37379         should_scalarize_away_bitmap if stmt has volatile ops.
37380         (sra_modify_assign): Do not process assigns piecemeal if if stmt
37381         has volatile ops.
37383 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
37385         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
37387 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
37389         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
37390         before the pattern.
37392 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
37394         PR middle-end/42946
37395         * df-core.c (df_finish_pass): Change type of saved_flags to int.
37397 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
37399         PR middle-end/42988
37400         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
37401         to unknown_dependence.
37402         (graphite_legal_transform_dr): Handle the unknown_dependence.
37403         (graphite_carried_dependence_level_k): Same.
37405 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
37407         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
37409 2010-02-07  Richard Guenther  <rguenther@suse.de>
37411         PR middle-end/42991
37412         * expr.c (get_inner_reference): Always initialize *pbitsize.
37414 2010-02-07  Richard Guenther  <rguenther@suse.de>
37416         PR middle-end/42956
37417         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
37418         new ARRAY_REFs on variable size element or minimal index arrays.
37419         Complete.
37420         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
37421         gimple_fold_indirect_ref.
37423 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
37425         PR target/42957
37426         * arm.c (arm_override_options): Just return if the user has specified
37427         an invalid fpu name.
37429 2010-02-03  Jason Merrill  <jason@redhat.com>
37431         PR c++/42870
37432         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
37433         i386_pe_maybe_record_exported_symbol.
37435 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
37437         PR target/42924
37438         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
37439         (pa_delegitimize_address): New function.
37441 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
37443         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
37444         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
37446 2010-02-05  Richard Guenther  <rguenther@suse.de>
37448         PR lto/42762
37449         * lto-streamer-in.c (get_resolution): Deal with references
37450         to undefined functions.
37452 2010-02-05  Richard Guenther  <rguenther@suse.de>
37454         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
37455         (fold_const_aggregate_ref): Likewise.
37456         (ccp_fold_stmt): Substitute loads.
37457         (maybe_fold_reference): Verify types before substituting.
37458         Unshare properly.
37459         (fold_gimple_assign): Unshare properly.
37460         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
37462 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
37464         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
37465         for rs6000_gen_cell_microcode.
37467 2010-02-04  Richard Guenther  <rguenther@suse.de>
37469         PR rtl-optimization/42952
37470         * dse.c (const_or_frame_p): Remove MEM handling.
37472 2010-02-04  Nick Clifton  <nickc@redhat.com>
37474         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
37475         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
37476         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
37477         (mn10300_asm_output_mi_thunk): New function.
37478         (mn10300_can_output_mu_thunk): New function.
37479         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
37480         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
37481         (FUNCTION_ARG): Delete incorrect comment.
37483 2010-02-03  Jason Merrill  <jason@redhat.com>
37485         PR c++/40138
37486         * fold-const.c (operand_equal_p): Handle erroneous types.
37488 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
37490         * config/h8300/h8300.md (can_delay): Fix attibute condition.
37492 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
37494         PR rtl-optimization/42941
37495         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
37496         of xmalloc.
37498 2010-02-03  Jason Merrill  <jason@redhat.com>
37500         PR c++/35652
37501         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
37503 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
37505         PR debug/42896
37506         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
37507         (cselib_reset_table): Renamed from...
37508         (cselib_reset_table_with_next_value): ... this.
37509         (cselib_get_next_uid): Renamed from...
37510         (cselib_get_next_unknown_value): ... this.
37511         * cselib.c (next_uid): Renamed from...
37512         (next_unknown_value): ... this.
37513         (cselib_clear_table): Adjust.
37514         (cselib_reset_table): Adjust.  Renamed from...
37515         (cselib_reset_table_with_next_value): ... this.
37516         (cselib_get_next_uid): Adjust.  Renamed from...
37517         (cselib_get_next_unknown_value): ... this.
37518         (get_value_hash): Use hash.
37519         (cselib_hash_rtx): Likewise.
37520         (new_cselib_val): Adjust.  Set and dump uid.
37521         (cselib_lookup_mem): Pass next_uid as hash.
37522         (cselib_subst_to_values): Likewise.
37523         (cselib_log_lookup): Dump uid.
37524         (cselib_lookup): Pass next_uid as hash.  Adjust.
37525         (cselib_process_insn): Adjust.
37526         (cselib_init): Initialize next_uid.
37527         (cselib_finish): Adjust.
37528         (dump_cselib_table): Likewise.
37529         * dse.c (canon_address): Dump value uid.
37530         * print-rtl.c (print_rtx): Print value uid.
37531         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
37532         (dvuid): New type.
37533         (dv_uid): New function, sort of renamed from...
37534         (dv_htab_hash): ... this, reimplemented in terms of it and...
37535         (dv_uid2hash): ... this.  New.
37536         (variable_htab_eq): Drop excess assertions.
37537         (tie_break_pointers): Removed.
37538         (canon_value_cmp): Compare uids.
37539         (variable_post_merge_New_vals): Print uids.
37540         (vt_add_function_parameters): Adjust.
37541         (vt_initialize): Reset table.  Adjust.
37543 2010-02-03  Richard Guenther  <rguenther@suse.de>
37545         PR tree-optimization/42944
37546         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
37547         (call_may_clobber_ref_p_1): Likewise.  Properly handle
37548         malloc and calloc clobbering errno.
37550 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
37552         * doc/invoke.texi: Fix name of sched1 dump.
37554         * opts.c (decode_options): Set flag_tree_switch_conversion
37555         only conditionally on optimize >= 2.
37557         * gcse.c: Assorted comment fixes in pass description.
37559 2010-02-03  Anthony Green  <green@moxielogic.com>
37561         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
37562         nop padding in order to maintain alignment of storage location of
37563         target function address.
37564         (moxie_trampoline_init): Store target function address at newly
37565         aligned location.
37566         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
37567         to 32.
37568         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
37570 2010-02-03  Richard Guenther  <rguenther@suse.de>
37572         PR middle-end/42927
37573         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
37575 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37577         * config.gcc: Reenable check for obsolete targets.
37578         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
37579         mips-sgi-irix6.[0-4]*.
37581 2010-02-02  Nick Clifton  <nickc@redhat.com>
37583         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
37584         constant size of 4 as being the same as 0.
37585         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
37586         can take values in the range 0..4.
37588 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
37590         PR java/41991
37591         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
37592         as _darwin10_Unwind_FindEnclosingFunction().
37593         * libgcc-libsystem.ver: New.
37595 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
37597         PR target/41399
37598         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
37599         implicitly set registers.
37601 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
37603         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
37604         (arm_override_options): Allow automatic selection of the thread
37605         pointer register if thumb2.
37606         (legitimize_pic_address): Improve code sequences for Thumb2.
37607         (arm_call_tls_get_addr): Likewise.
37608         (legitimize_tls_address): Likewise.
37609         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
37610         (pic_load_addr_32bit): ... this.  New named pattern.
37611         * thumb2.md (pic_load_addr_thumb2): Delete.
37612         (pic_load_dot_plus_four): Delete.
37613         (tls_load_dot_plus_four): New named pattern.
37615 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37617         PR libgomp/29986
37618         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
37619         Document fix for TLS bug.
37621 2010-01-31  Richard Guenther  <rguenther@suse.de>
37623         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
37624         conservatively correct.
37626 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37628         PR target/42850
37629         Revert:
37630         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37632         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
37634 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
37636         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
37638 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
37640         * config.gcc: Adjust order of makefile fragments for mingw targets.
37642 2010-01-31  Richard Guenther  <rguenther@suse.de>
37644         PR middle-end/42898
37645         * gimplify.c (gimplify_init_constructor): For volatile LHS
37646         initialize a temporary.
37648 2010-01-31  Matthias Klose  <doko@ubuntu.com>
37650         * configure.ac: Fix __stack_chk_fail check for cross builds configured
37651         --with-headers
37652         * configure: Regenerate.
37654 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
37656         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
37657         the same alias set and their sizes different constantness.
37658         (aliasing_component_refs_p): Revert 2009-10-24 change.
37660 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37662         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
37663         unused.
37665 2010-01-29  Richard Guenther  <rguenther@suse.de>
37667         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
37668         Assert we successfully updated the call.
37670 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
37672         PR rtl-optimization/42889
37673         * df.h (df_set_bb_dirty_nonlr): New prototype.
37674         * df-core.c (df_set_bb_dirty_nonlr): New function.
37675         * df-scan.c (df_insn_rescan): Call it instead of
37676         df_set_bb_dirty for DEBUG_INSNs.
37678 2010-01-29  Richard Guenther  <rguenther@suse.de>
37680         PR middle-end/37448
37681         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
37682         quadratic behavior in most cases.
37684 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
37686         PR target/42891
37687         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
37688         in the call to gen_x86_movsicc_0_m1.
37690 2010-01-28  Richard Guenther  <rguenther@suse.de>
37692         PR tree-optimization/42871
37693         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
37695 2010-01-28  Richard Guenther  <rguenther@suse.de>
37697         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
37698         into call arguments.
37700 2010-01-28  Richard Guenther  <rguenther@suse.de>
37702         PR middle-end/42883
37703         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
37704         the forwarder if the destination is an EH landing pad.
37706 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
37708         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
37709         block list passed to gimple_duplicate_sese_tail.
37710         (parallelize_loops): Avoid parallelization when the function
37711         has_nonlocal_label.
37712         Avoid parallelization when the preheader is IRREDUCIBLE.
37713         Try to optimize when estimated_loop_iterations_int is unresolved.
37714         Add the loop's location to the dump file.
37715         * tree-cfg.c (add_phi_args_after_redirect): Remove.
37716         (gimple_duplicate_sese_tail): Remove the check for the latch.
37717         Redirect nexits to the exit block.
37718         Remove handling of the incoming edges to the latch.
37719         Redirect the backedge from the copied latch to the exit bb.
37721 2010-01-28  Michael Matz  <matz@suse.de>
37723         PR target/42881
37724         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
37725         Wrap force_reg into a sequence, emit it before user.
37727 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
37729         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
37730         (arm_rev): New.
37731         (arm_legacy_rev): Likewise.
37732         (thumb_legacy_rev): Likewise.
37734 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
37736         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
37737         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
37738         on MEM's address failed, try avoid_constant_pool_reference and
37739         recurse if it returned something different.
37740         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
37741         address, try avoid_constant_pool_reference and recurse if it
37742         returned something different.
37743         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
37744         address and avoid_constant_pool_reference returned something
37745         different, don't set have_address.
37747 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
37749         PR debug/42861
37750         * var-tracking.c (val_store): Add modified argument, obey it.
37751         Adjust callers.
37752         (count_uses): Move down logging of main.
37753         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
37754         don't need resolution.
37755         (emit_notes_in_bb): Likewise.
37757 2010-01-27  Richard Guenther  <rguenther@suse.de>
37759         PR middle-end/42878
37760         * tree-inline.c (remap_decl): Delay remapping of SSA name
37761         default definitions until we need them.
37763 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
37765         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
37766         (rs6000_delegitimize_address): New function.
37768         * config/s390/s390.c (s390_delegitimize_address): Call
37769         delegitimize_mem_from_attrs.
37771         PR middle-end/42874
37772         * tree-inline.c (cannot_copy_type_1): Removed.
37773         (copy_forbidden): Don't forbid copying of functions containing
37774         records/unions with variable length fields.
37776 2010-01-27  Christian Bruel  <christian.bruel@st.com>
37778         Revert:
37779         PR target/42841
37780         * config/sh/sh.c (find_barrier): Increase length for non delayed
37781         conditional branches.
37783 2010-01-27  Matthias Klose  <doko@ubuntu.com>
37785         * configure.ac (gnu-unique-object): Fix ldd version check.
37786         * configure: Regenerate.
37788 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37790         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
37791         HAVE_GNU_AS value.
37792         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
37793         Test for HAVE_GNU_AS value.
37795 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37797         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
37798         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
37799         INT64_TYPE): Define.
37800         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
37801         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
37802         INT_LEAST64_TYPE): Define.
37803         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
37804         UINT_LEAST64_TYPE): Define.
37805         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
37806         INT_FAST64_TYPE): Define.
37807         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
37808         UINT_FAST64_TYPE): Define.
37809         (INTMAX_TYPE, UINTMAX_TYPE): Define.
37810         (INTPTR_TYPE, UINTPTR_TYPE): Define.
37811         (SIG_ATOMIC_TYPE): Define.
37813 2010-01-26  Richard Guenther  <rguenther@suse.de>
37815         * df-scan.c (df_scan_set_bb_info): Remove assert.
37816         (df_insn_rescan_debug_internal): Merge asserts.
37817         (df_install_ref): Likewise.
37818         (df_mark_reg): Use bitmap_set_range.
37819         (df_hard_reg_used_p): Remove assert.
37820         (df_hard_reg_used_count): Likewise.
37822 2010-01-26  Richard Guenther  <rguenther@suse.de>
37824         PR rtl-optimization/42685
37825         * web.c (web_main): Ignore DEBUG_INSNs.
37827 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
37829         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
37831         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
37832         Fix types of fndecl and arglist parameters.
37834 2010-01-26  Richard Guenther  <rguenther@suse.de>
37836         PR middle-end/42806
37837         * tree-eh.c (unsplit_eh): Skip debug insns.
37839 2010-01-26  Richard Guenther  <rguenther@suse.de>
37841         PR tree-optimization/42250
37842         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
37844 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
37846         PR fortran/42866
37847         * omp-low.c (expand_omp_sections): Only use single_pred if
37848         l2_bb is single_pred_p.
37850 2010-01-25  Christian Bruel  <christian.bruel@st.com>
37852         PR target/42841
37853         * config/sh/sh.c (find_barrier): Increase length for non delayed
37854         conditional branches.
37855         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
37857 2010-01-24  David S. Miller  <davem@davemloft.net>
37859         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
37860         define if not using GAS.
37861         * config/sparc/sparc.c (sparc_elf_asm_named_section):
37862         Likewise.  Delete SECTION_MERGE code, which is only applicable
37863         when using GAS.
37865 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
37867         PR c++/42748
37868         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
37869         mangling of va_list in system headers.
37871 2010-01-23  Toon Moene  <toon@moene.org>
37873         * tree-predcom.c (combine_chains): Return NULL, not false.
37875 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
37877         * tree-loop-distribution.c (distribute_loop): Fix declaration and
37878         initialization of variable res to agree with return type.
37880 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
37882         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
37883         * tree-sra.c: Add include of expr.h.
37885 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
37887         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
37888         insert the debug stmt on the single non-EH edge from the stmt.
37890 2010-01-22  Richard Henderson  <rth@redhat.com>
37892         PR tree-opt/42833
37893         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
37894         the RHS until after generate_subtree_copies has insertted its
37895         code before the current statement.
37897 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
37899         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
37901         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
37903 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37905         PR tree-optimization/42585
37906         * tree-sra.c (struct access): New field grp_total_scalarization.
37907         (dump_access): Dump the new field.
37908         (should_scalarize_away_bitmap): New variable.
37909         (cannot_scalarize_away_bitmap): Likewise.
37910         (sra_initialize): Allocate new bitmaps.
37911         (sra_deinitialize): Free new bitmaps.
37912         (create_access_1): New function.
37913         (create_access): Parts moved to create_access_1.
37914         (type_consists_of_records_p): New function.
37915         (completely_scalarize_record): Likewise.
37916         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
37917         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
37918         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
37919         access.
37920         (analyze_all_variable_accesses): Completely scalarize small eligible
37921         records.
37923 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37925         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
37927 2010-01-21  Andrew Haley  <aph@redhat.com>
37929         * gcc.c (process_command): Move lang_specific_driver before
37930         setting cc_libexec_prefix.
37932 2010-01-21  Richard Guenther  <rguenther@suse.de>
37934         PR middle-end/19988
37935         * fold-const.c (negate_expr_p): Pretend only negative
37936         real constants are easily negatable.
37938 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
37939             Jason Merrill  <jason@redhat.com>
37941         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
37942         (TYPE_TRANSPARENT_AGGR): this, for union and record.
37943         * calls.c (initialize argument_information): Handle it.
37944         * c-common.c (handle_transparent_union_attribute): Use new name.
37945         * c-decl.c (finish_struct): Ditto.
37946         * c-typeck.c (type_lists_compatible_p): Ditto.
37947         (convert_for_assignment): Use new name and also handle record.
37948         * function.c (aggregate_value_p): Handle it.
37949         (pass_by_reference): Ditto.
37950         (assign_parm_data_types): Ditto.
37951         * print-tree.c (print_node): Ditto.
37952         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
37953         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
37954         * tree.c (first_field): New fn.
37956 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
37958         PR target/42818
37959         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
37960         even when linking statically, for now.
37962 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37964         PR debug/42715
37965         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37966         without a cselib val.
37967         (count_uses): Accept MO_VAL_SET with no val on stores.
37968         (add_stores): Likewise.
37970 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37972         * var-tracking.c (check_value_val): Add a compile time assertion.
37973         (dv_is_decl_p): Simplify.
37974         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37975         gcc_assert if ENABLE_CHECKING.
37977 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37979         PR debug/42782
37980         * var-tracking.c: Include tree-flow.h.
37981         (mem_dies_at_call): New.
37982         (dataflow_set_preserve_mem_locs): Use it.
37983         (dataflow_set_remove_mem_locs): Likewise.
37984         (dump_var): Renamed from dump_variable.  Adjust all callers.
37985         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37986         * Makefile.in (var-tracking.o): Adjust deps.
37988 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37990         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37992 2010-01-20  Richard Guenther  <rguenther@suse.de>
37994         PR tree-optimization/42717
37995         * tree-ssa-dce.c (get_live_post_dom): Remove.
37996         (forward_edge_to_pdom): Take an arbitrary edge to copy
37997         degenerate PHI args from.
37998         (remove_dead_stmt): Use the first post-dominator even if it
37999         does not contain live statements as redirection destination.
38001 2010-01-20  Richard Guenther  <rguenther@suse.de>
38003         * tree-inline.c (estimate_num_insns): Handle EH builtins.
38005 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38007         * sel-sched.c (create_speculation_check): Remove set but not used
38008         variable twin.
38009         (try_transformation_cache): Remove set but not used variable ds.
38010         (calculate_privileged_insns): Remove set but not used variables
38011         cur_insn and min_spec_insn.
38012         (find_best_expr): Remove set but not used variable avail_n.
38013         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
38014         variable e.
38015         * cgraphunit.c (assemble_thunk): Remove set but not used variable
38016         false_label.
38017         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
38018         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
38019         new_scop_exit_edge.
38021 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
38023         PR bootstrap/42786
38024         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
38025         cpu types.  Add support for *-sse3 cpu types.
38026         (x86_64-*-*): Ditto.
38028 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38030         PR middle-end/42803
38031         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
38032         argument, call initializer_constant_valid_p_1 instead of
38033         initializer_constant_valid_p, pass CACHE to it, return NULL
38034         immediately if first call returns NULL.
38035         (initializer_constant_valid_p_1): New function.
38036         (initializer_constant_valid_p): Use it.
38038 2010-01-20  Thomas Quinot  <quinot@adacore.com>
38040         * tree.def (PLACEHOLDER_EXPR): Fix comment.
38042 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38044         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
38045         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
38046         (loc_list_from_tree): Don't handle unsigned division.  Handle
38047         signed modulo using DW_OP_{over,over,div,mul,minus}.
38048         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
38049         modulo instead of signed.
38051 2010-01-20  DJ Delorie  <dj@redhat.com>
38053         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
38054         (Fpa): Pass it
38055         (h8300_emit_stack_adjustment): Propogate it.
38056         (push): Pass it.
38057         (h8300_expand_prologue): Likewise.
38058         (h8300_expand_epilogue): Likewise.
38060 2010-01-19  Michael Matz  <matz@suse.de>
38062         PR tree-optimization/41783
38063         * tree-data-ref.c (toplevel): Include flags.h.
38064         (dump_data_dependence_relation):  Also dump the inputs if the
38065         result will be unknown.
38066         (split_constant_offset_1): Look through some conversions.
38067         * tree-predcom.c (determine_roots_comp): Restart a new chain if
38068         the offset from last element is too large.
38069         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
38070         (reassociate_to_the_same_stmt): Handle vector registers.
38071         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
38072         (e.g. conversions).
38073         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
38074         wide_prolog_niters argument, emit widening instructions.
38075         (vect_do_peeling_for_alignment): Adjust caller, use widened
38076         variant of the iteration cound.
38077         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
38079 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38081         PR target/38697
38082         * config/arm/neon-testgen.m (emit_automatics): New parameter
38083         features. Adjust for Fixed_return_reg feature.
38084         (test_intrinsic): Call emit_automatics with new feature.
38085         * config/arm/neon.ml: Update copyright years.
38086         (features): New Fixed_return_reg feature.
38087         (ops): Update feature for Vget_low.
38089 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
38091         PR tree-optimization/42719
38092         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
38093         stmt uses.
38095         PR debug/42728
38096         * fwprop.c (all_uses_available_at): Return false if def_set dest
38097         is a REG that is used in def_insn.
38099 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
38101         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
38103         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
38104         Add argument names.
38106         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
38108         * target.h (struct gcc_target) <secondary_reload>: Change type
38109         of last argument to secondary_reload_info *.
38111 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
38113         PR target/42774
38114         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
38115         memory references with unaligned offsets.  Remove CQImode handling.
38116         (unaligned_memory_operand): Return 1 for memory references with
38117         unaligned offsets.  Remove CQImode handling.
38119 2010-01-18  Richard Guenther  <rguenther@suse.de>
38121         PR middle-end/39954
38122         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
38123         builtin calls.
38125 2010-01-18  Richard Guenther  <rguenther@suse.de>
38127         PR tree-optimization/42781
38128         * tree-ssa-structalias.c (find_what_var_points_to): Skip
38129         restrict processing only if the original variable was artificial.
38131 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
38133         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
38134         find number of popped argument bytes.
38136         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
38137         Fix the text that describes the return value for invalid insns.
38139         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
38141         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
38142         Clarify what 'cost of the -dependence' is.  Fix quoting.
38144         * toplev.c (default_get_pch_validity): Rename argument to "sz".
38145         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
38147 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
38149         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
38150         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
38152 2010-01-17  Richard Guenther  <rguenther@suse.de>
38154         PR middle-end/42248
38155         * function.c (split_complex_args): Take a VEC to modify.
38156         (assign_parms_augmented_arg_list): Build a VEC instead of
38157         a chain of PARM_DECLs.
38158         (assign_parms_unsplit_complex): Take a VEC of arguments.
38159         Do not fixup unmodified parms.
38160         (assign_parms): Deal with the VEC.
38161         (gimplify_parameters): Likewise.
38163 2010-01-17  Richard Guenther  <rguenther@suse.de>
38165         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
38166         node existence check.
38167         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
38168         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
38169         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
38170         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
38171         (gimple_execute_on_growing_pred): Likewise.
38173 2010-01-17  Richard Guenther  <rguenther@suse.de>
38175         PR tree-optimization/42773
38176         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
38177         (compute_antic_aux): Likewise.
38178         (compute_partial_antic_aux): Likewise.
38180 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
38182         PR debug/42767
38183         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
38184         and US_TRUNCATE.
38186 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
38188         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
38189         appearance.
38191         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
38192         Fix markup for strict argument.
38194         (TARGET_SCHED_REORDER2): Fix argument types.
38196         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
38197         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
38199         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
38200         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
38202         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
38203         Add argument name.
38205         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
38206         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
38207         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
38208         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
38209         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
38211         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
38213         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
38215         (TARGET_ASM_RELOC_RW_MASK): Add return type.
38216         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
38218         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
38220         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
38221         Use prototype.
38223         (TARGET_ASM_NAMED_SECTION): Fix argument list.
38225         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
38226         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
38228         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
38230         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
38232         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
38233         referring to it.  Fix language.
38235         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
38237         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
38239         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
38241         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
38243         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
38244         '@var{stream}.  Remove stray 'and'.
38246         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
38248         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
38250         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
38252         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
38253         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
38255         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
38256         Fix description of return value.
38257         Rename argument "sz" to "len."
38259         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
38260         Clarify meaning of 'true' return value.
38262         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
38264         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
38265         rep_mode versus mode_rep.
38267         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
38269         (TARGET_BUILTIN_DECL): Fix name.
38271         (TARGET_COMMUTATIVE_P): Fix type of first argument.
38273         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
38275         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
38277         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
38279         (TARGET_RELAXED_ORDERING): Use @deftypevr.
38281         (TARGET_GET_DRAP_RTX): Note that this is a hook.
38282         Clarify language.
38284         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
38285         Rename argument tm_fn to md_fn.
38287         (TARGET_OPTION_PRINT): Fix argument list.
38289 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
38291         PR target/42664
38292         * config/i386/i386.c (ix86_fixup_binary_operands):
38293         Revert FMA4 fixup of operands.
38295 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38297         PR other/42525
38298         * Makefile.in (write_entries_to_file, install-plugin):
38299         Use \012 instead of \n with tr.
38301 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
38303         * configure.ac (HAVE_AS_REF): New C macro.
38304         * configure: Regenerate.
38305         * config.in: Likewise.
38306         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
38307         if HAVE_AS_REF.
38308         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
38309         if HAVE_AS_REF.
38311 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
38313         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
38315         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
38317         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
38319         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
38321         (TARGET_IN_SMALL_DATA_P): Fix argument type.
38323         (TARGET_BINDS_LOCAL_P): Fix argument type.
38325         (TARGET_ASM_FILE_END): Use prototype.
38327         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
38329         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
38331         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
38333         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
38335         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
38336         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
38338         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
38339         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
38341         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
38342         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
38343         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
38344         (TARGET_ADDR_SPACE_CONVERT): Likewise.
38346         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
38348         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
38350         (TARGET_INIT_BUILTINS): Use prototype.
38352         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
38353         Put 'const char *' in braces.  Fix parameter types.
38354         (TARGET_INVALID_CONVERSION): Fix parameter types.
38355         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
38356         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
38358         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
38359         Fix argument type.
38361         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
38363         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
38365 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
38367         * doc/tm.texi (TARGET_HELP): Fix return type.
38369         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
38370         in braces.  Fix argument types.
38372         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
38374         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
38376         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
38378         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
38379         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
38381         (TARGET_MANGLE_TYPE): Fix argument types.
38383         (TARGET_IRA_COVER_CLASSES): Use prototype.
38385         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
38387         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
38389         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
38391         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
38393         (TARGET_CALLEE_COPIES): Fix argument types.
38395         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
38397         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
38399         (TARGET_FUNCTION_VALUE): Fix argument types.
38401         (TARGET_RETURN_IN_MSB): Fix argument type.
38403         (TARGET_RETURN_IN_MEMORY): Fix argument types.
38405         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
38407         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
38409         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
38410         agree with return type.
38412         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
38414 2010-01-15  Jing Yu  <jingyu@google.com>
38416         PR rtl-optimization/42691
38417         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
38418         a pseudo to a constant and are merged, and adjust comments.
38420 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
38422         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
38424 2010-01-15  Richard Guenther  <rguenther@suse.de>
38426         PR middle-end/42739
38427         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
38428         labels of computed or non-local gotos to the destination.
38429         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
38430         landing pad label is the first label.
38432 2010-01-15  Richard Guenther  <rguenther@suse.de>
38434         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
38436 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
38438         PR target/42747
38439         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
38440         to allow generation of the xssqrtdp instruction on power7.
38441         (sqrtdf2_fpr): Ditto.
38443 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38445         PR middle-end/42674
38446         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
38447         functions with noreturn attribute.
38449         PR c++/42608
38450         * varasm.c (declare_weak): Add weak attribute to decl if it
38451         doesn't have one already.
38452         (assemble_external): Only add decls to weak_decls if they also
38453         have weak attribute.
38455 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
38457         * var-tracking.c (var_reg_delete): Don't delete the association
38458         between REGs and values or one-part variables if the register
38459         isn't clobbered.
38461 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38463         PR debug/42657
38464         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
38465         because its first operand is a non-localized variable.
38467 2010-01-14  Martin Jambor  <mjambor@suse.cz>
38469         PR tree-optimization/42706
38470         * tree-sra.c (encountered_recursive_call): New variable.
38471         (encountered_unchangable_recursive_call): Likewise.
38472         (sra_initialize): Initialize both new variables.
38473         (callsite_has_enough_arguments_p): New function.
38474         (scan_function): Call decl and flags check only for IPA-SRA, check
38475         whether there is a recursive call and whether it has enough arguments.
38476         (all_callers_have_enough_arguments_p): New function.
38477         (convert_callers): Look for recursive calls only when
38478         encountered_recursive_call is set.
38479         (ipa_early_sra): Bail out either if
38480         !all_callers_have_enough_arguments_p or
38481         encountered_unchangable_recursive_call.
38483 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38485         * sel-sched.c: Add 2010 to copyright years.
38486         * sel-sched-ir.c: Likewise.
38487         * sel-sched-ir.h: Likewise.
38489 2010-01-14  Martin Jambor  <mjambor@suse.cz>
38491         PR tree-optimization/42714
38492         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
38493         constructors specially.
38495 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38497         * config/i386/drivers-i386.c (detect_caches_intel):
38498         Add l2sizekb parameter and fill in.
38499         (host_detect_local_cpu): Add l2sizekb, fill in.
38500         Add Atom small cache heuristic.
38502 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38504         * config/i386/drivers-i386.c (detect_caches_cpuid4):
38505         Add level3 parameter and fill in.
38506         (detect_caches_intel): Handle level3 cache.
38508 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38510         * config/i386/drivers-i386.c (host_detect_local_cpu):
38511         Fix core duo detection.
38513 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38515         * config/i386/drivers-i386.c (host_detect_local_cpu):
38516         Fix Atom detection.
38518 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38520         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
38521         (rs6000_variable_issue_1): this.  Use...
38522         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
38524 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38526         * sel-sched-ir.c (sel_restore_other_notes): Rename to
38527         sel_restore_notes.  Update all callers.  Call reemit_notes
38528         for all insns.
38530 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38532         PR rtl-optimization/42246
38533         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
38534         loops.
38536 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38538         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
38539         all successors is the same as number of successors in current region.
38541 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38543         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
38544         to rename is not separable.  Otherwise check that its LHS is not NULL.
38546 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38548         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
38550 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38552         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
38553         available registers when failed to discover LHS register class.
38554         Fix indentation.  Update comment.
38556 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38557             Alexander Monakov  <amonakov@ispras.ru>
38559         PR rtl-optimization/42389
38560         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
38561         to can_issue_more.
38562         (advance_state_on_fence): Likewise.
38563         (sel_target_adjust_priority): Print debug output only when
38564         sched_verbose >= 4, not 2.
38565         (get_expr_cost): Do not issue all unique insns on the next cycle.
38566         (fill_insns): Initialize can_issue_more from the value saved
38567         with the fence.
38568         * sel-sched-ir.c (flist_add): New parameter issue_more.
38569         Init FENCE_ISSUE_MORE with it.
38570         (merge_fences): Likewise.
38571         (init_fences): Update call to flist_add.
38572         (add_to_fences, add_clean_fence_to_fences)
38573         (add_dirty_fence_to_fences): Likewise.
38574         (move_fence_to_fences): Update call to merge_fences.
38575         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
38576         sched groups.
38577         * sel-sched-ir.h (struct _fence): New field issue_more.
38578         (FENCE_ISSUE_MORE): New accessor macro.
38580 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38582         PR rtl-optimization/42388
38583         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
38584         that have no predecessors nor successors.  Do not call move_bb_info
38585         for empty blocks outside of current region.
38587 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38589         PR rtl-optimization/42294
38590         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
38591         * sel-sched.c (move_exprs_to_boundary): Transitively add all
38592         originators' originators.
38594 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38596         PR rtl-optimization/39453
38597         PR rtl-optimization/42246
38598         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
38599         for pipelining_p.
38600         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
38602 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38603             Alexander Monakov  <amonakov@ispras.ru>
38605         PR middle-end/42245
38606         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
38607         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
38608         argument.  Update all callers.
38609         (tidy_control_flow): ... and here.  Recompute topological order
38610         of basic blocks in region if necessary.
38611         (sel_redirect_edge_and_branch): Change return type.  Return true
38612         if topological order might have been invalidated.
38613         (purge_empty_blocks): Export and move from...
38614         * sel-sched.c (purge_empty_blocks): ... here.
38615         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
38616         (maybe_tidy_empty_bb): Delete prototype.
38617         (purge_empty_blocks): Declare.
38619 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38621         PR rtl-optimization/42249
38622         * sel-sched.c (try_replace_dest_reg): When chosen register
38623         and original register is the same, do not bail out early, but
38624         still check all original insns for validity of replacing destination
38625         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
38626         in this case.
38628 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38630         PR c/42721
38631         Port from no-undefined-overflow branch:
38632         2009-03-09  Richard Guenther  <rguenther@suse.de>
38634         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
38636 2010-01-14  Richard Guenther  <rguenther@suse.de>
38638         PR lto/42665
38639         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
38641 2010-01-14  Ira Rosen  <irar@il.ibm.com>
38643         PR tree-optimization/42709
38644         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
38645         as scalar type in creation of constant vector operand.
38647 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38649         PR testsuite/42414
38650         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
38651         (check-parallel-%): Match `testsuite' directory component only
38652         at the end.
38654 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
38656         PR translation/39521
38657         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
38658         strings with _().
38660 2010-01-13  Richard Guenther  <rguenther@suse.de>
38662         PR tree-optimization/42730
38663         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
38664         offset zero.
38666 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
38668         PR target/pr42542
38669         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
38670         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
38671         them signed.
38673 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
38675         * config/bfin/libgcc-bfin.ver: Regenerate based on current
38676         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
38677         ___umulsi3_highpart.
38679         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
38680         rather than schedule_insns if the pass is enabled.
38682 2010-01-13  Martin Jambor  <mjambor@suse.cz>
38684         PR tree-optimization/42704
38685         * tree-sra.c (sra_modify_assign): Do not delete assignments to
38686         SSA_NAMEs.
38688 2010-01-13  Martin Jambor  <mjambor@suse.cz>
38690         PR tree-optimization/42703
38691         * tree-sra.c (analyze_access_subtree): Check that we can build a
38692         reference to the original data within the aggregate.
38694 2010-01-13  Richard Guenther  <rguenther@suse.de>
38696         PR tree-optimization/42705
38697         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
38699 2010-01-13  Richard Guenther  <rguenther@suse.de>
38701         PR middle-end/42716
38702         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
38704 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
38706         PR debug/41371
38707         * var-tracking.c (values_to_unmark): New variable.
38708         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
38709         values_to_unmark vector.  Moved body to...
38710         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
38711         instead queue it into values_to_unmark vector.
38712         (vt_find_locations): Free values_to_unmark vector.
38714 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
38716         * config/s390/s390.c (override_options): Set
38717         default of max-pending-list-length to 256
38719 2010-01-13  Richard Guenther  <rguenther@suse.de>
38721         PR lto/42678
38722         * tree-pass.h (PROP_gimple_lcx): New.
38723         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
38724         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
38725         before the final cleanup_eh.
38726         (dump_properties): Dump PROP_gimple_lcx.
38727         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
38728         (tree_lower_complex_O0): Remove.
38729         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
38730         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
38731         tree_lower_complex, schedule TODO_update_ssa.
38732         * lto-streamer-out.c (output_function): Stream the functions
38733         properties.
38734         * lto-streamer-in.c (input_function): Likewise.
38735         (lto_read_body): Do not override them here.
38737 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
38739         PR c/42708
38740         * c-typeck.c (build_c_cast): Fold value cast to union type before
38741         wrapping it in a CONSTRUCTOR.
38743 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
38745         PR rtl-optimization/42699
38746         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
38747         involved.
38749 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38751         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
38752         SUBTARGET_WARN_UNUSED_SPEC): Move ...
38753         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
38754         SUBTARGET_WARN_UNUSED_SPEC): ... here
38755         * config/mips/iris5.h (LIBGCC_SPEC): Define.
38757 2010-01-12  Julian Brown  <julian@codesourcery.com>
38759         * config/arm/neon-schedgen.ml (Utils): Don't try to
38760         open missing module.
38761         (find_with_result): New.
38763 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
38765         PR debug/42662
38766         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
38767         sharing when canonicalizing ({lt,ge}u (plus a b) b).
38769         PR tree-optimization/42645
38770         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
38771         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
38772         decl_map, set processing_debug_stmt to -1 and return name without
38773         any remapping.
38775 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
38777         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
38778         binutils version, and reword target configuration description.
38780 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38782         * config/avr/avr.h (LINKER_NAME): Remove.
38784 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
38786         PR target/42416
38787         * config/rs6000/rs6000.c (rs6000_override_options): On targets
38788         that support VSX, warn for -mno-altivec if vsx is not disabled,
38789         and disable vsx.
38791 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
38792             Shujing Zhao  <pearly.zhao@oracle.com>
38794         PR translation/42469
38795         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
38796         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
38797         character between option name and help text.
38798         * c.opt (imultilib): Likewise.
38800 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
38802         * lto-streamer-out.c (output_unreferenced_globals): Output static
38803         variables.
38805 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
38807         PR rtl-optimization/42621
38808         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
38809         optimizing for size.
38810         (duplicate_computed_gotos): Remove now-redundant check.
38812 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
38814         PR target/37454
38815         * configure.ac: Save and restore LDFLAGS and LIBS
38816         * configure: Regenerate.
38818 2010-01-10  Richard Guenther  <rguenther@suse.de>
38820         PR middle-end/42667
38821         * builtins.c (fold_builtin_strlen): Add type argument and
38822         convert the resulting length to it.
38823         (fold_builtin_1): Adjust.
38825 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38827         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
38828         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
38829         1 insn.
38830         (num_insns_constant_wide): Adjust for that change.
38832 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38834         PR debug/42631
38835         * web.c (union_defs): Add used argument, to combine uses of
38836         uninitialized regs.
38837         (entry_register): Adjust type and tests of used argument.
38838         (web_main): Widen used for new use.  Pass it to union_defs.
38839         * df.h (union_defs): Adjust prototype.
38841 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38843         PR debug/42630
38844         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
38845         uses in new incoming argument.  Free body.
38846         (reset_debug_uses_in_loop): New.
38847         (analyze_insn_to_expand_var): Call the latter if the former found
38848         anything.  Fix whitespace.  Reject invalid dest overlaps before
38849         going through all insns in the loop.
38851 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38853         PR debug/42629
38854         * haifa-sched.c (dying_use_p): Debug insns don't count.
38856 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38858         PR middle-end/42363
38859         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
38860         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
38861         (verify_gimple_call): Reject LHS in noreturn calls.
38863 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38865         PR debug/42604
38866         PR debug/42395
38867         * tree-vect-loop-manip.c (adjust_info): New type.
38868         (adjust_vec): New pointer to vector.
38869         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
38870         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
38871         (slpeel_update_phis_for_duplicate_loop): Use them.
38872         (slpeel_update_phi_nodes_for_guard1): Likewise.
38873         (slpeel_update_phi_nodes_for_guard2): Likewise.
38874         (slpeel_tree_peel_loop_to_edge): Likewise.
38875         (vect_update_ivs_after_vectorizer): Likewise.
38877 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38879         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
38880         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
38882 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38884         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
38885         bogus uninitialized warning.
38887 2010-01-09  Richard Guenther  <rguenther@suse.de>
38889         PR middle-end/42512
38890         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
38891         the evolution is compatible with the initial condition.
38893 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38895         * gcc.c (process_command): Update copyright notice dates.
38896         * gcov.c (print_version): Likewise.
38897         * gcov-dump.c (print_version): Likewise.
38898         * mips-tfile.c (main): Likewise.
38899         * mips-tdump.c (main): Likewise.
38901 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38903         PR target/41885
38904         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
38905         (rotlhi3): Delete.
38906         (rotlhi3_8): Delete.
38907         (rotlsi3): Delete.
38908         (rotlsi3_8): Delete.
38909         (rotlsi3_16): Delete.
38910         (rotlsi3_24): Delete.
38911         (rotl<mode>3): New.
38912         (*rotw<mode>3): New.
38913         (*rotb<mode>3): New.
38914         * config/avr/avr.c (avr_rotate_bytes): New function.
38915         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
38917 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
38919         PR target/37454
38920         * configure.ac: Modify -rdynamic check.
38921         * configure: Regenerate.
38923 2010-01-08  DJ Delorie  <dj@redhat.com>
38925         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
38926         register popping order.
38928 2010-01-08  Richard Guenther  <rguenther@suse.de>
38930         PR lto/42528
38931         * c.opt (fsigned-char): Also let LTO handle this option.
38932         (funsigned-char): Likewise.
38934 2010-01-07  Richard Guenther  <rguenther@suse.de>
38936         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
38937         (gimple_op): Likewise.
38938         (gimple_op_ptr): Likewise.
38939         (gimple_assign_set_lhs): Remove gcc_assert.
38940         (gimple_assign_set_rhs1): Likewise.
38941         (gimple_assign_set_rhs2): Likewise.
38942         (gimple_call_set_lhs): Likewise.
38943         (gimple_call_set_fn): Likewise.
38944         (gimple_call_set_fndecl): Likewise.
38945         (gimple_call_fndecl): Likewise.
38946         (gimple_call_return_type): Likewise.
38947         (gimple_call_set_chain): Likewise.
38948         (gimple_call_num_args): Likewise.
38949         (gimple_call_set_arg): Likewise.
38950         (gimple_cond_set_code): Likewise.
38951         (gimple_cond_set_lhs): Likewise.
38952         (gimple_cond_set_rhs): Likewise.
38953         (gimple_cond_set_true_label): Likewise.
38954         (gimple_cond_set_false_label): Likewise.
38955         (gimple_label_set_label): Likewise.
38956         (gimple_goto_set_dest): Likewise.
38957         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
38958         (gimple_debug_bind_get_value): Likewise.
38959         (gimple_debug_bind_get_value_ptr): Likewise.
38960         (gimple_debug_bind_set_var): Likewise.
38961         (gimple_debug_bind_set_value): Likewise.
38962         (gimple_debug_bind_reset_value): Likewise.
38963         (gimple_debug_bind_has_value_p): Likewise.
38964         (gimple_return_retval_ptr): Remove gcc_assert.
38965         (gimple_return_retval): Likewise.
38966         (gimple_return_set_retval): Likewise.
38967         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38968         (safe_referenced_var_iterator): Remove.
38969         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38970         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38971         (fill_referenced_var_vec): Remove.
38972         (first_readonly_imm_use): Remove redundant gcc_assert.
38973         (phi_arg_index_from_use): Combine gcc_asserts.
38974         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38975         (first_imm_use_stmt): Remove redundant gcc_assert.
38976         * tree-cfg.c (verify_gimple_call): Verify function and chain
38977         operands.  Verify arguments.
38978         (verify_types_in_gimple_stmt): Verify condition code and labels.
38980 2010-01-07  Richard Guenther  <rguenther@suse.de>
38982         PR tree-optimization/42641
38983         * sese.c (rename_map_elt_info): Use the SSA name version, do
38984         not hash pointers.
38986 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38988         PR tree-optimization/42625
38989         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38990         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38992 2010-01-07  Duncan Sands  <baldrick@free.fr>
38994         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38996 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38998         PR target/42511
38999         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
39000         note itself is not function_invariant_p.
39002 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
39004         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
39005         Do not add the DF_NOTE problem.
39006         * store-motion.c (execute_rtl_store_motion): Likewise.
39008 2010-01-07  Martin Jambor  <mjambor@suse.cz>
39010         PR tree-optimization/42157
39011         * tree-sra.c (compare_access_positions): Stabilize sort if both
39012         accesses have integer types, return zero immediately if they are the
39013         same.
39015 2010-01-06  Richard Henderson  <rth@redhat.com>
39017         PR middle-end/41883
39018         * haifa-sched.c (add_to_note_list): Merge into ...
39019         (concat_note_lists): ... here, and ...
39020         (unlink_other_notes, rm_other_notes): Merge into...
39021         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
39022         NOTE_INSN_EPILOGUE_BEG.
39024 2010-01-06  Richard Guenther  <rguenther@suse.de>
39026         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
39027         not inline regular functions into always-inline functions.
39029 2010-01-06  Nick Clifton  <nickc@redhat.com>
39031         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
39032         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
39033         used together.
39034         (OVERRIDE_OPTIONS): Delete.
39035         (OPTIMIZATION_OPTIONS): Define.
39036         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
39037         * config/rx/rx.c (rx_handle_option): Issue an error message if
39038         -mcpu=rx200 and -fpu are used together.
39039         (rx_set_optimization_options): New function.  Issue an error
39040         message if an optimization attribute attempts to reset the FPU/
39041         math optimization pairing.
39042         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
39043         * config/rx/rx.opt: Set the default to 32-bit doubles.
39044         * config/rx/t-rx: Add multilibs for -nofpu option.
39045         * doc/invoke.texi: Update documentation of RX options.
39047 2010-01-06  Richard Guenther  <rguenther@suse.de>
39049         * tree-ssa-pre.c (name_to_id): New global.
39050         (alloc_expression_id): Simplify SSA name handling.
39051         (lookup_expression_id): Likewise.
39052         (init_pre): Zero name_to_id.
39053         (fini_pre): Free it.
39055 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
39057         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
39059 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
39061         PR target/42542
39062         * config/i386/sse.md (smaxv2di3): New.
39063         (umaxv2di3): Likewise.
39064         (sminv2di3): Likewise.
39065         (uminv2di3): Likewise.
39067 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
39069         PR target/42564
39070         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
39071         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
39072         (legitimize_tls_address): Likewise.
39073         (sparc_tls_referenced_p): Likewise.
39074         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
39075         and adjust calls to legitimize_pic_address.
39076         (legitimate_constant_p) Use sparc_tls_referenced_p.
39077         (legitimate_pic_operand_p): Likewise.
39078         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
39079         (sparc_tls_symbol_ref_1): Delete.
39080         (sparc_tls_referenced_p): Make static, recognize specific patterns.
39081         (legitimize_tls_address): Make static, handle CONST patterns.
39082         (legitimize_pic_address): Make static, remove unused parameter and
39083         adjust recursive calls.
39084         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
39085         and adjust call to legitimize_pic_address.
39086         (sparc_output_mi_thunk): Likewise.
39088 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
39089             H.J. Lu  <hongjiu.lu@intel.com>
39091         PR target/42542
39092         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
39093         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
39094         operands to make them signed.
39096         Revert:
39097         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
39099         PR target/42542
39100         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
39101         GTU to GT for V4SI and V2DI.
39103         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
39104         (umin<mode>3): Removed.
39105         (uminv8hi3): New.
39106         (uminv4si3): Likewise.
39108 2010-01-05  Martin Jambor  <mjambor@suse.cz>
39110         PR tree-optimization/42462
39111         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
39112         current_function_decl to helper functions and macros.
39114 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39116         PR bootstrap/41771
39117         * flags.h: Don't include real.h.
39118         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
39119         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
39120         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
39121         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
39122         * dominance.c: Update copyright.
39123         * gimple.c (walk_gimple_op): Remove inline.
39124         * tree-ssa-reassoc.c: Include real.h.
39125         * Makefile.in (FLAGS_H): Remove $(REAL_H).
39126         (tree-ssa-reassoc.o): Depend on $(REAL_H).
39128 2010-01-05  Nick Clifton  <nickc@redhat.com>
39130         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
39131         register to push into the stack frame when the accumulator has to
39132         be saved during interrupts.
39134 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
39136         * doc/invoke.texi: Remove the documentation about option
39137         -Wunreachable-code.
39138         * common.opt (Wunreachable-code):  Preserved for backward
39139         compatibility.
39140         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
39141         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
39142         the backward compatibility flag section.
39144 2010-01-05  Richard Guenther  <rguenther@suse.de>
39146         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
39148 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
39150         PR other/42611
39151         * cfgexpand.c (expand_one_var): Diagnose too large variables.
39153         PR tree-optimization/42508
39154         * tree-sra.c (convert_callers): Check for recursive call
39155         by comparing cgraph nodes instead of decls.
39156         (modify_function): Call ipa_modify_formal_parameters also
39157         on all same_body aliases.
39159         * cgraphunit.c (cgraph_materialize_all_clones): Compare
39160         cgraph nodes when checking for same_body aliases.
39162 2010-01-05  Richard Guenther  <rguenther@suse.de>
39164         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
39165         allocation and lookup.
39166         (get_or_alloc_expr_for_constant): Likewise.
39167         (phi_translate): Sink allocation.
39169 2010-01-04  Richard Guenther  <rguenther@suse.de>
39171         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
39172         a new entry only if needed.
39173         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
39174         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
39175         hashtable lookup.
39176         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
39177         the result array.
39178         (phi_translate): Handle CONSTANTs early.
39180 2010-01-04  Martin Jambor  <mjambor@suse.cz>
39182         PR tree-optimization/42398
39183         * tree-sra.c (struct access): Removed flag grp_different_types.
39184         (dump_access): Do not dump the removed flag.
39185         (sort_and_splice_var_accesses): Do not set the removed flag.
39186         (sra_modify_expr): Check for type compatibility directly.
39188 2010-01-04  Martin Jambor  <mjambor@suse.cz>
39190         PR tree-optimization/42366
39191         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
39192         edges with variable number of parameters.
39193         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
39194         flag instead of asserting it.
39195         (ipa_read_node_info): Read uses_analysis_done flag.
39197 2010-01-04  Richard Guenther  <rguenther@suse.de>
39199         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
39200         iterative_hash_* as intended.
39201         (vn_reference_compute_hash): Likewise.  Simplify hashing
39202         SSA names.
39203         (vn_reference_lookup_2): Likewise.
39204         (vn_nary_op_compute_hash): Likewise.
39205         (vn_phi_compute_hash): Likewise.
39206         (expressions_equal_p): Remove strange code.
39207         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
39208         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
39209         (bitmap_insert_into_set_1): Take value-id as parameter.
39210         (add_to_value): Pass it.
39211         (bitmap_insert_into_set): Likewise.
39212         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
39214 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
39216         PR driver/42442
39217         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
39218         (do_self_spec): For switches with SWITCH_IGNORE set set also
39219         SWITCH_IGNORE_PERMANENTLY.
39220         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
39221         of SWITCH_IGNORE.
39223 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
39225         * lto-streamer-out.c (output_unreferenced_globals): Output the full
39226         tree of an unreferenced global var.
39228 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
39230         PR target/42542
39231         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
39232         GTU to GT for V4SI and V2DI.
39234         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
39235         (umin<mode>3): Removed.
39236         (uminv8hi3): New.
39237         (uminv4si3): Likewise.
39239 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
39241         PR lto/42581
39242         * collect2.c (main): Turn on trace in collect2 if -v is passed
39243         to gcc with LTO.
39245 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
39247         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
39248         description of expression operand.
39250 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
39252         * configure.ac: Add install-html to target_list for Make-hooks.
39253         * configure: Regenerate.
39254         * fortran/Make-lang.in (F95_HTMLFILES): New.
39255         (fortran.html): Use it.
39256         (fortran.install-html): New.
39257         * Makefile.in (install-html): Add lang.install-html.
39258         * java/Make-lang.in (JAVA_HTMLFILES): New.
39259         (java.html): Use it.
39260         (java.install-html): New.
39261         * objc/Make-lang.in (objc.install-html): New.
39262         * objcp/Make-lang.in (obj-c++.install-html): New.
39263         * cp/Make-lang.in (c++.install-html): New.
39264         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
39265         * lto/Make-lang.in (lto.install-html): New.
39267 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
39269         PR lto/42520
39270         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
39272 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
39274         PR rtl-optimization/41862
39275         * store-motion.c (store_killed_in_insn, compute_store_table,
39276         remove_reachable_equiv_notes, replace_store_insn,
39277         build_store_vectors): Ignore all DEBUG_INSNs.
39279 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
39281         PR lto/41564
39282         * common.opt: Add dumpdir.
39284         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
39285         isn't specified.
39286         (option_map): Add --dumpdir.
39288         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
39290         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
39292         * opts.c (decode_options): Try dump_dir_name first if
39293         dump_base_name isn't an absolute path.
39294         (common_handle_option): Handle OPT_dumpdir.
39296         * toplev.c (dump_dir_name): New.
39297         (print_switch_values): Also ignore -dumpdir.
39299         * toplev.h (dump_dir_name): New.
39301 2010-01-03  Richard Guenther  <rguenther@suse.de>
39303         PR tree-optimization/42589
39304         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
39305         double-word expansion of bswap32.
39307 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
39309         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
39310         with BLOCK_FOR_INSN.
39311         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
39312         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
39313         noce_process_if_block): Likewise.
39314         * gcse.c (compute_local_properties, insert_expr_in_table,
39315         insert_set_in_table, canon_list_insert, find_avail_set,
39316         pre_insert_copy_insn): Likewise.
39318         * basic-block.h (BLOCK_NUM): Move from here...
39319         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
39321 2010-01-03  Richard Guenther  <rguenther@suse.de>
39323         PR tree-optimization/42438
39324         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
39325         contains_may_not_return_call flag.
39326         (BB_MAY_NOTRETURN): New.
39327         (valid_in_sets): Trapping nary operations are not valid
39328         in blocks that may not return.
39329         (insert_into_preds_of_block): Remove check for trapping expressions.
39330         (compute_avail): Compute also BB_MAY_NOTRETURN.
39332 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
39334         * doc/invoke.texi: Add 2010 to copyright years.
39336 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
39338         * config/sparc/sparc.c: Fix formatting nits.
39340 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
39341             Alexander Monakov  <amonakov@ispras.ru>
39343         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
39345 2010-01-02  Richard Guenther  <rguenther@suse.de>
39347         PR middle-end/42577
39348         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
39349         (simplify_switch_using_ranges): Mark to be removed edges
39350         as non-executable.
39352 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
39354         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
39356         * collect2.c (scan_libraries): Add missing argument in call to
39357         scan_prog_file.
39359 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
39361         PR target/42448
39362         * config/alpha/predicates.md (aligned_memory_operand): Return false
39363         for CQImode.
39364         (unaligned_memory_operand): Return true for CQImode.
39365         * config/alpha/alpha.c (get_aligned_mem): Assert that location
39366         doesn not cross aligned SImode word boundary.
39368 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
39370         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
39371         Remove.
39372         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
39373         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
39375 2010-01-02  Richard Guenther  <rguenther@suse.de>
39377         PR lto/41597
39378         * toplev.c (compile_file): Emit LTO marker properly.  Change
39379         it to __gnu_lto_v1.
39380         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
39382 2010-01-01  Richard Guenther  <rguenther@suse.de>
39384         PR debug/42455
39385         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
39387 2010-01-01  Richard Guenther  <rguenther@suse.de>
39389         PR c/42570
39390         * c-decl.c (grokdeclarator): For zero-size arrays force
39391         structural equality checks as layout_type does.
39393 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
39395         * builtins.c: Update copyright to 2010.
39397 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
39399         PR lto/42531
39400         * lto-streamer-out.c (produce_asm): Revert the last change.
39401         (copy_function): Likewise.
39403         * lto-streamer.c (lto_get_section_name): Skip any leading
39404         asterisk in name.
39406 2010-01-01  Richard Guenther  <rguenther@suse.de>
39408         PR middle-end/42559
39409         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
39410         for LABEL_DECLs.
39413 Copyright (C) 2010 Free Software Foundation, Inc.
39415 Copying and distribution of this file, with or without modification,
39416 are permitted in any medium without royalty provided the copyright
39417 notice and this notice are preserved.