OSDN Git Service

2010-12-09 Martin Jambor <mjambor@suse.cz>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-09  Martin Jambor  <mjambor@suse.cz>
2
3         PR middle-end/46734
4         * tree-sra.c (splice_param_accesses): Check that there are not
5         multiple ADDRESSABLE types.
6
7 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
8
9         * config/arc/arc.h (ASM_SPEC): Remove %{v}.
10         * config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
11         * config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
12         * config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
13         * config/frv/frv.h (ASM_SPEC): Remove %{v}.
14         * config/i386/linux.h (ASM_SPEC): Remove %{v}.
15         * config/i386/linux64.h (ASM_SPEC): Remove %{v}.
16         * config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
17         * config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
18         * config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
19         * config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
20         * config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
21         * config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
22         * config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
23         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
24         * config/mips/mips.h (ASM_SPEC): Remove %{v}.
25         * config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
26         * config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
27         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
28         * config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
29         * config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
30         * config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
31         * config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
32         * config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
33         * config/xtensa/linux.h (ASM_SPEC): Remove %{v}.
34
35 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
36
37         * config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
38         * config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
39         * config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not
40         %{r*:}.
41         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not
42         %{r*:}.
43         * config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
44         * config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.
45
46 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
47
48         * config/alpha/freebsd.h (LINK_SPEC): Don't use
49         %{!dynamic-linker:}.
50         * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
51         * config/arm/freebsd.h (LINK_SPEC): Likewise.
52         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
53         * config/bfin/linux.h (LINK_SPEC): Likewise.
54         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
55         * config/frv/linux.h (LINK_SPEC): Likewise.
56         * config/i386/freebsd.h (LINK_SPEC): Likewise.
57         * config/i386/freebsd64.h (LINK_SPEC): Likewise.
58         * config/i386/linux.h (LINK_SPEC): Likewise.
59         * config/i386/linux64.h (LINK_SPEC): Likewise.
60         * config/i386/openbsdelf.h (LINK_SPEC): Likewise.
61         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
62         * config/ia64/linux.h (LINK_SPEC): Likewise.
63         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
64         * config/m32r/linux.h (LINK_SPEC): Likewise.
65         * config/m68k/linux.h (LINK_SPEC): Likewise.
66         * config/microblaze/linux.h (LINK_SPEC): Likewise.
67         * config/mips/linux.h (LINK_SPEC): Likewise.
68         * config/mips/linux64.h (LINK_SPEC): Likewise.
69         * config/mips/openbsd.h (LINK_SPEC): Likewise.
70         * config/mn10300/linux.h (LINK_SPEC): Likewise.
71         * config/netbsd-elf.h (LINK_SPEC): Likewise.
72         * config/pa/pa-linux.h (LINK_SPEC): Likewise.
73         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
74         LINK_OS_LINUX_SPEC64): Likewise.
75         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
76         LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC):
77         Likewise.
78         * config/s390/linux.h (LINK_SPEC): Likewise.
79         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
80         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
81         * config/sparc/linux.h (LINK_SPEC): Likewise.
82         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
83         LINK_SPEC): Likewise.
84         * config/sparc/openbsd64.h (LINK_SPEC): Likewise.
85         * config/vax/linux.h (LINK_SPEC): Likewise.
86         * config/xtensa/linux.h (LINK_SPEC): Likewise.
87
88 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
89
90         * config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
91         * config/frv/frv.h (ASM_SPEC): Likewise.
92         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
93         * config/i386/sol2.h (ASM_SPEC): Likewise.
94         * config/m68k/linux.h (ASM_SPEC): Likewise.
95         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
96         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
97         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
98         * config/sol2.h (ASM_SPEC): Likewise.
99         * config/sparc/linux.h (ASM_SPEC): Likewise.
100         * config/sparc/linux64.h (ASM_SPEC): Likewise.
101         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
102         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
103         * config/svr4.h (SVR4_ASM_SPEC): Likewise.
104
105 2010-12-09  Richard Guenther  <rguenther@suse.de>
106
107         * reginfo.c (struct subregs_of_mode_node): Remove.
108         (subregs_of_mode): Likewise.
109         (som_hash): Likewise.
110         (som_eq): Likewise.
111         (invalid_mode_changes): New bitmap.
112         (record_subregs_of_mode): Get subregs_of_mode argument.
113         Fill in invalid_mode_changes bitmap.
114         (find_subregs_of_mode): Get subregs_of_mode argument and pass
115         it through.
116         (init_subregs_of_mode): Adjust.
117         (finish_subregs_of_mode): Likewise.
118         (invalid_mode_change_p): Query invalid_mode_changes bitmap.
119
120 2010-12-09  Richard Guenther  <rguenther@suse.de>
121
122         * ira.c (ira): Do not call finish_subregs_of_mode.
123         * ira-costs.c (finish_costs): Call finish_subregs_of_mode.
124
125 2010-12-09  Richard Guenther  <rguenther@suse.de>
126
127         * rtl.h (invalid_mode_change_p): Adjust prototype.
128         * reginfo.c (invalid_mode_change_p): Remove from argument.
129         * ira-costs.c (print_allocno_costs): Adjust callers.
130         (find_costs_and_classes): Likewise.
131
132 2010-12-09  Jakub Jelinek  <jakub@redhat.com>
133
134         * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
135         locg and stocg even in comment.
136         (sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.
137
138         PR target/41082
139         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
140         instead of stve*x.
141         (altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
142         of operand 0.
143         * config/rs6000/altivec.md (VI_scalar): New mode attr.
144         (altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
145         vector mode for operand 0, put operand 1 into UNSPEC.
146
147 2010-12-09  Yao Qi  <yao@codesourcery.com>
148
149         * config/arm/arm.c (arm_preferred_rename_class): Implement targethook
150         PREFERRED_RENAME_CLASS.
151
152 2010-12-08  Ian Lance Taylor  <iant@google.com>
153
154         * doc/sourcebuild.texi (Front End): Remove reference to
155         snapshot-README and snapshot-index.html.
156
157 2010-12-08  Ian Lance Taylor  <iant@google.com>
158
159         * doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
160         to update_web_docs_svn.
161         (Front End): Likewise.
162
163 2010-12-08  Iain Sandoe <iains@gcc.gnu.org>
164
165         gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
166         x86_64-*-darwin* to with_cpu:-core2.
167         gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
168         with movd for darwin assembler.
169         gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
170         (*vec_concatv2di_rex64_sse): Ditto.
171
172 2010-12-08  Richard Guenther  <rguenther@suse.de>
173             Sebastian Pop  <sebastian.pop@amd.com>
174
175         PR tree-optimization/45230
176         PR tree-optimization/45231
177         PR tree-optimization/45370
178         * sese.c (rename_uses): Returns a bool.  Call
179         recompute_tree_invariant_for_addr_expr only on the RHS of a
180         GIMPLE_ASSIGN.
181         (graphite_copy_stmts_from_block): Call fold_stmt_inplace when
182         rename_uses returns true.
183         * tree-ssa-copy.c (replace_exp): Add a comment about calling
184         fold_stmt_inplace after replace_exp.
185
186 2010-12-08  Mike Stump  <mikestump@comcast.net>
187
188         PR debug/46749
189         * config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
190         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
191         * config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
192         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
193         * collect2.c (post_ld_pass): Add.
194         (process_args): Add.
195         (maybe_run_lto_and_relink): Call post_ld_pass after ld.
196         (main): Likewise.  Call process_args.
197
198 2010-12-08  Jakub Jelinek  <jakub@redhat.com>
199
200         PR middle-end/46844
201         * regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg
202         parameter.
203
204 2010-12-08  Richard Earnshaw  <rearnsha@arm.com>
205
206         PR target/46631
207         * arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
208         into a 16-bit instruction.
209
210 2010-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
211
212         PR middle-end/42694
213         * builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
214         where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
215         instruction, but do optimize if y is 0.5 or 1./3. since that
216         changes an expensive call into a cheaper one.
217
218 2010-12-08  Richard Guenther  <rguenther@suse.de>
219
220         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
221         instead of a division to divide by BITS_PER_UNIT.
222
223 2010-12-08  Richard Guenther  <rguenther@suse.de>
224
225         * gimplify.c (gimple_tree_eq): Assert hashes are equal only
226         when checking is enabled.
227
228 2010-12-07  Andrey Belevantsev  <abel@ispras.ru>
229
230         PR target/43603
231         * haifa-sched.c (sched_create_recovery_edges): Update
232         dominator info.
233         * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
234         after deleting an empty block.
235         (tidy_control_flow): Also verify dominators.
236         (sel_remove_bb): Update dominator info after removing a block.
237         (sel_redirect_edge_and_branch_force): Assert that no unreachable
238         blocks will be created. Update dominator info.
239         (sel_redirect_edge_and_branch): Update dominator info when
240         basic blocks do not become unreachable.
241         (sel_remove_loop_preheader): Update dominator info. 
242
243 2010-12-07  Richard Guenther  <rguenther@suse.de>
244
245         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
246         Reset alignment information.
247         (bump_vector_ptr): Likewise.
248
249 2010-12-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
250
251         PR middle-end/46671
252         PR target/46685
253         * config/pa/pa.c (pa_function_section): New function.
254         (TARGET_ASM_FUNCTION_SECTION): Define.
255
256 2010-12-07  Ian Lance Taylor  <iant@google.com>
257             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
258
259         PR bootstrap/46810
260         * configure.ac: Disable AC_MSG_ERROR while looking for the C++
261         preprocessor.
262         * configure: Rebuild.
263
264 2010-12-07  Paul Koning  <ni1d@arrl.net>
265
266         * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
267         values with sign rather than as unsigned.
268
269 2010-12-07  Paul Koning  <ni1d@arrl.net>
270
271         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
272         (pdp11_function_section): New function.
273
274 2010-12-07  Joseph Myers  <joseph@codesourcery.com>
275
276         * config/mcore/mcore.c Don't include assert.h.
277         (layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
278         * config/spu/spu.c: Don't include assert.h.
279         (spu_sms_res_mii): Use gcc_assert.
280
281 2010-12-07  Sebastian Pop  <sebastian.pop@amd.com>
282
283         PR tree-optimization/42327
284         * tree-data-ref.c (omega_setup_subscript): Call build_int_cst
285         instead of using integer_minus_one_node.
286
287 2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>
288
289         PR c++/45330
290         * params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
291         * doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.
292
293 2010-12-07  Richard Guenther  <rguenther@suse.de>
294
295         PR tree-optimization/46832
296         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
297         that the call has a lhs.
298
299 2010-12-07  Yao Qi  <yao@codesourcery.com>
300
301         * Makefile.in: Add $(TARGET_H) to the regrename.o rule.
302         * regrename.c (struct du_head): Add new element length.
303         (sort_du_head, get_element, merge, merge_sort_comparison):
304         New functions of merge sort implementation to du_head list.
305         (regrename_optimize): Sort du_head linked list by length.
306         Iterate registers in a preferred-register-first order.
307         Move some code to ...
308         (check_new_reg_p): here.  New function.
309         (create_new_chain):  Initialize length.
310         (scan_rtx_reg): Increase length for non-debug insns.
311         * target.def: New hook preferred_rename_class.
312         * targhook.c (default_preferred_rename_class): New.
313         * targhook.h: Declare it.
314         * doc/tm.texi.in: New hook TARGET_PREFERRED_RENAME_CLASS.
315         * doc/tm.texi: Regenerate.
316
317 2010-12-07  Jakub Jelinek  <jakub@redhat.com>
318
319         PR debug/46799
320         * tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
321         instead of BUILTINS_LOCATION.
322         (create_loop_fn): Add LOC argument, pass it to build_decl instead of
323         BUILTINS_LOCATION.
324         (create_parallel_loop): Add LOC argument, use it for OMP clauses
325         and GIMPLE_*OMP* statements.
326         (gen_parallel_loop): Determine locus for the parallel loop, pass it
327         to create_loop_fn and create_parallel_loop.
328         * cfgexpand.c (gimple_expand_cfg): For builtin functions, call
329         set_curr_insn_source_location (UNKNOWN_LOCATION).
330
331 2010-12-07  Joern Rennecke  <amylaar@spamcop.net>
332             Richard Guenther  <rguenther@suse.de>
333
334         PR target/46737
335         * config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
336         (bfin_reorder_loops): Change type of index to intptr_t.
337
338 2010-12-07  Richard Guenther  <rguenther@suse.de>
339
340         PR tree-optimization/46726
341         * tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
342
343 2010-12-07  Richard Guenther  <rguenther@suse.de>
344
345         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
346         virtual operands.
347
348 2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>
349
350         * c-parser.c (c_parser_typeof_specifier): Removed special
351         treatment of objc_volatilized attribute for Objective-C.
352
353 2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>
354
355         * ira.c (update_equiv_regs): Prohibit move insns if
356         pressure-sensitive scheduling was done.
357
358 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
359
360         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
361         of c_process_expr_stmt() for the iterating and collection
362         expressions of an Objective-C fast enumeration loop.
363
364 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
365
366         PR debug/45997
367         * dwarf2out.c (modified_type_die): If both is_const_type and
368         is_volatile_type is set, start with DW_TAG_const_type or
369         DW_TAG_volatile_type depending on where we get qualified type
370         in the recursive call.
371
372         PR target/43897
373         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
374         as a store into that register.
375
376         PR tree-optimization/46528
377         PR debug/46338
378         * profile.c (branch_prob): Make sure last is never set to a debug
379         stmt.
380
381         PR debug/46771
382         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
383         on DEBUG_INSNs.
384
385         PR rtl-optimization/46777
386         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
387         also barrier after tablejump.
388
389 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
390             Richard Henderson  <rth@redhat.com>
391
392         PR target/46740
393         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
394
395 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
396
397         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
398         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
399
400 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
401
402         PR target/46735
403         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
404         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
405         (int12_operand, int_2word_operand, uint16_operand): Likewise.
406         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
407         (uint5_operand, uint4_operand): Likewise.
408         * config/frv/frv.h (IN_RANGE_P): Delete.
409         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
410         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
411         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
412         (CONST_OK_FOR_P): Likewise.
413         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
414         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
415         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
416         (*movsicc_internal2_float, casesi): Likewise.
417         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
418         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
419         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
420         (frv_split_cond_move, frv_rtx_costs): Likewise.
421
422         PR target/46739
423         * config/mmix/mmix.c (mmix_intval): Split shift count.
424
425 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
426
427         * config/i386/i386.c (m_COREI7): New.
428         (initial_ix86_tune_features): Turn on
429         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
430         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
431
432 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
433
434         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
435
436         * config/i386/driver-i386.c (host_detect_local_cpu): Support
437         Sandy Bridge.
438
439         * config/i386/i386.c (override_options): Handle "corei7-avx".
440
441         * doc/invoke.texi: Document corei7-avx.
442
443 2010-12-06  Richard Guenther  <rguenther@suse.de>
444
445         PR tree-optimization/46806
446         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
447         coalesce different types.
448
449 2010-12-06  Richard Guenther  <rguenther@suse.de>
450
451         PR tree-optimization/46785
452         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
453         call statements as operand definition.
454
455 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
456
457         * doc/tm.texi.in: Fix typo.
458         * doc/tm.texi: Regenerate.
459
460 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
461
462         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
463         last change.
464
465 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
466
467         * c-family/c-common.h: Removed the declarations of all the objc_
468         callbacks, and moved them into c-objc.h.  Removed
469         objc_ivar_visibility_kind and moved it into c-objc.h.
470         * c-family/c-objc.h: New file.
471         * c-family/c-common.c: Include c-objc.h.
472         * c-family/c-format.c: Same change.
473         * c-family/stub-objc.c: Same change.
474         * c-decl.c: Include c-family/c-objc.h.
475         * c-parser.c: Same change.
476         * c-typeck.c: Same change.
477         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
478         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
479         (c-parser.o): same change.
480         (c-typeck.o): Same change.
481         (c-family/c-format.o): Same change.
482         (c-family/stub-objc.o): Same change.
483         (c-family/c-common.o): Same change.
484         (PLUGIN_HEADERS): Added c-family/c-objc.h.
485
486 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
487
488         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
489         --with-dwarf2 option.
490
491 2010-12-03  Jan Hubicka  <jh@suse.cz>
492
493         * lto-streamer-in.c (input_cfg): Fix pasto.
494
495 2010-12-03  Jan Hubicka  <jh@suse.cz>
496
497         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
498         and functions with user asm defined names.
499         (varpool_externally_visible_p): Do not localize vars with user
500         asm defined names.
501
502 2010-12-03  Jan Hubicka  <jh@suse.cz>
503
504         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
505         to prevent mangling with lto frontend.
506
507 2010-12-03  Jan Hubicka  <jh@suse.cz>
508
509         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
510         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
511
512 2010-12-03  Jan Hubicka  <jh@suse.cz>
513
514         PR tree-optimization/46760
515         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
516         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
517         * lto-cgraph.c (lto_output_edge): Fix assert.
518         (lto_output_node): Output count_materialization_scale.
519         (output_profile_summary): Output only runs and sum_max.
520         (input_node): Input count_materialization_scale.
521         (input_profile_summary): Read data into file specific gcov summary.
522         (merge_profile_summaries): New function.
523         (input_cgraph): Update call of input_profile_summary;
524         call merge_profile_summaries.
525         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
526         rescale counts at read in.
527         (intput_bb): Likewise.
528         (input_function): Update call of input_bb.
529         (lto_read_body): Update call of input_cfg.
530         * lto-streamer.h: Inlclude gcov-io.h
531         (lto_file_decl_data): Add gcov_ctr_summary.
532
533 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
534
535         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
536         (Cond Exec Macros): ... to this.
537         * doc/tm.texi: Regenerate.
538
539 2010-12-03  Jason Merrill  <jason@redhat.com>
540
541         PR debug/46123
542         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
543         a declaration DIE.
544
545 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
546
547         * config/arm/arm.c (arm_legitimate_index_p): Split
548         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
549         slightly larger constants in the latter case.
550         (thumb2_legitimate_index_p): Likewise.
551
552 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
553
554         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
555         * gcc.c (cc1_options): Add %{Qy:}.
556
557 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
558
559         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
560         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
561         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
562
563 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
564
565         PR rtl-optimization/45354
566         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
567         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
568         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
569         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
570
571 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
572
573         * basic-block.h (struct edge_prediction): Remove forward
574         declaration.
575         * tree-flow.h (struct edge_prediction): Move from here...
576         * predict.c (struct edge_prediction): ...to here.
577         * cselib.h (struct elt_list): Move from here...
578         * cselib.c (struct elt_list): ...to here.
579
580 2010-12-02  Ian Lance Taylor  <iant@google.com>
581
582         * gcc.c (default_compilers): Add entry for ".go".
583         * common.opt: Add -static-libgo as a driver option.
584         * doc/install.texi (Configuration): Mention libgo as an option for
585         --enable-shared.  Mention go as an option for --enable-languages.
586         * doc/invoke.texi (Overall Options): Mention .go as a file name
587         suffix.  Mention go as a -x option.
588         * doc/frontends.texi (G++ and GCC): Mention Go as a supported
589         language.
590         * doc/sourcebuild.texi (Top Level): Mention libgo.
591         * doc/standards.texi (Standards): Add section on Go language.
592         Move references for other languages into their own section.
593         * doc/contrib.texi (Contributors): Mention that I contributed the
594         Go frontend.
595
596 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
597
598         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
599         (const_call_expr_arg_iterator_d): Likewise.
600         (expanded_location): Likewise.
601         * c-tree.h (struct c_arg_tag_d): Likewise.
602         * dwarf2out.c (struct cfa_loc): Likewise.
603         (struct skeleton_chain_struct): Likewise.
604         * except.c (struct ttypes_filter): Likewise.
605         * cselib.h (struct cselib_val_struct): Likewise.
606         (elt_loc_list): Likewise.
607         (elt_list): Likewise.
608         * varasm.c (struct addr_const): Likewise.
609         * tree-flow.h (struct edge_prediction): Likewise.
610         (struct int_tree_map): Likewise.
611         (struct _edge_var_map): Likewise.
612
613 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
614
615         PR target/46768
616         * config/i386/i386.c (initial_ix86_tune_features): Turn on
617         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
618
619 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
620
621         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
622
623 2010-12-02  Ian Lance Taylor  <iant@google.com>
624
625         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
626         header files unordered_map, tr1/unordered_map, and ext/hash_map.
627         * configure, config.in: Rebuild.
628
629 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
630
631         PR target/46685
632         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
633         (sparc_expand_move): Call it to decide whether to emit the special
634         mov{si,di}_pic_label_ref patterns.
635         (sparc_legitimize_pic_address): Call it to decide whether to emit
636         the regular PIC sequence for labels.  Fix long line.
637         (sparc_file_end): Set is_thunk for the PIC helper.
638
639 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
640
641         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
642         for a non-shared type.
643
644 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
645
646         PR middle-end/45297
647         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
648         with MEM_REFs as POINTER_PLUS_EXPR.
649
650 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
651
652         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
653         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
654         mentioning /lib/elf.
655
656 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
657
658         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
659         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
660         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
661         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
662         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
663         * config/sol2.h (LINK_SPEC): Remove %{b}.
664         * config/svr4.h (LINK_SPEC): Remove %{b}.
665
666 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
667
668         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
669         * config/i386/linux.h (LINK_SPEC): Cut long comment.
670         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
671         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
672         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
673         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
674         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
675         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
676         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
677         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
678         %{v:%{!V:-V}}.
679
680 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
681
682         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
683         -ftraditional.
684
685 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
686
687         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
688         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
689         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
690         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
691         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
692         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
693         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
694         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
695         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
696         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
697         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
698         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
699         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
700         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
701         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
702         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
703         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
704         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
705
706 2010-12-02  Paul Koning  <ni1d@arrl.net>
707
708         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
709         opcodes if CC_NO_OVERFLOW is set.
710         (notice_update_cc_on_set): Correct setting of CC0 as a side
711         effect; set CC_NO_OVERFLOW for cases where C flag is not
712         meaningful.
713
714 2010-12-02  Ian Lance Taylor  <iant@google.com>
715
716         * doc/install.texi (Configuration): Update default for
717         --with-boot-ldflags.
718
719 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
720
721         PR c/45062
722         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
723         !funcdef_flag.
724
725 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
726
727         PR tree-optimization/45199
728         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
729         (stores_zero_from_loop): Call
730         mem_write_stride_of_same_size_as_unit_type_p.
731         * tree-data-ref.h (stride_of_unit_type_p): New.
732         * tree-loop-distribution.c (generate_memset_zero): Simplified.
733         Call stride_of_unit_type_p.
734         (build_rdg_partition_for_component): Do not call
735         rdg_flag_similar_memory_accesses when
736         flag_tree_loop_distribute_patterns is set.
737
738 2010-12-02  Richard Guenther  <rguenther@suse.de>
739
740         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
741         sign-changing conversions for induction detection.
742
743 2010-12-02  Richard Guenther  <rguenther@suse.de>
744
745         PR tree-optimization/46723
746         * tree-vect-loop.c (get_initial_def_for_induction): Strip
747         conversions from the induction evolution and apply it to
748         the result instead.
749         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
750         assigns for induction defs.
751
752 2010-12-02  Richard Guenther  <rguenther@suse.de>
753
754         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
755         the case we need to split the edge and not the block.
756
757 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
758
759         DFA model for Core 2 and Core i7 scheduling.
760
761         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
762         * config/i386/i386.c (ix86_option_override_internal): Update entries
763         for Core 2 and Core i7.
764         (ix86_issue_rate): Set issue rate to 3 [be realistic].
765         * config/i386/i386.md: Include "core2.md".
766         (define_attr cpu): Add "corei7".
767
768 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
769
770         Define tuning for Core 2 and Core i7.
771
772         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
773         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
774         (m_CORE2): Replace with m_CORE2_{32,64}.
775         (m_CORE2I7{,_32,_64}): New macros.
776         (m_GENERIC32, m_GENERIC64): Update.
777         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
778         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
779         set m_CORE2I7_64 iff m_GENERIC64.
780         (processor_target_table): Use generic costs for Core 2 and Core i7.
781         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
782         (ix86_issue_rate): Remove entry for Core 2.
783         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
784         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
785         (TARGET_CORE2): Update.
786         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
787         (PROCESSOR_CORE2): Remove.
788
789 2010-12-02  Richard Guenther  <rguenther@suse.de>
790
791         * lto-streamer.h (LTO_major_version): Bump to 2.
792
793 2010-12-02  Richard Guenther  <rguenther@suse.de>
794
795         PR lto/44871
796         * gimple.c (canonical_type_hash_cache): New hashtable.
797         (gimple_type_hash): Make a wrapper around ...
798         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
799         (gimple_canonical_type_hash): Likewise.
800         (gtc_visit): Take a gtc_mode argument.
801         (gimple_types_compatible_p_1): Likewise. Do not compare struct
802         tag names or field names when computing canonical types.
803         (gimple_types_compatible_p): Adjust.
804         (visit): Take a gtc_mode argument.
805         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
806         names or field names when computing hashes of canonical types.
807         (gimple_register_canonical_type): Use gimple_canonical_type_hash
808         for the hash.
809         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
810         (free_gimple_type_tables): Free canonical_type_hash_cache.
811
812 2010-12-02  Richard Guenther  <rguenther@suse.de>
813             Ira Rosen  <irar@il.ibm.com>
814
815         PR tree-optimization/46663
816         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
817         FUNCTION_DECL exists and that it's a builtin.
818
819 2010-12-02  Jie Zhang  <jie@codesourcery.com>
820
821         PR middle-end/46674
822         * varasm.c (compute_visible_aliases): Handle user set
823         assembler name.
824
825 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
826
827         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
828         thinko regarding setting -mno-<xxx> debug switches.
829         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
830
831 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
832
833         * intl.c: Don't include tm.h.
834         * Makefile.in (intl.o): Don't depend on $(TM_H).
835
836 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
837
838         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
839         unused warning.
840         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
841
842 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
843
844         * graphite-sese-to-poly.c (analyze_drs): Removed.
845         (build_scop_drs): Do not call analyze_drs.
846         (analyze_drs_in_stmts): New.
847         (insert_stmts): New.
848         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
849         (insert_out_of_ssa_copy_on_edge): Same.
850         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
851         (rewrite_phi_out_of_ssa): Same.
852         (rewrite_cross_bb_scalar_dependence): Same.
853         (split_reduction_stmt): Move data references in the new basic blocks.
854         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
855
856 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
857
858         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
859
860 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
861
862         PR middle-end/45297
863         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
864         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
865         * graphite-poly.h (new_poly_bb): Update declaration.
866         (gbb_from_bb): Moved here...
867         (pbb_from_bb): New.
868         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
869         Removed.
870         (graphite_stmt_p): Removed.
871         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
872         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
873         new_poly_bb.
874         (build_scop_bbs_1): Do not pass in sbitmap reductions.
875         (build_scop_bbs): Same.
876         (gbb_from_bb): ... from here.
877         (add_conditions_to_constraints): Moved up.
878         (analyze_drs): New.
879         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
880         not contain data references.
881         (new_pbb_from_pbb): New.
882         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
883         block is split.
884         (rewrite_close_phi_out_of_ssa): Update call to
885         insert_out_of_ssa_copy_on_edge.
886         (rewrite_reductions_out_of_ssa): Now static.
887         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
888         (split_pbb): New.
889         (split_reduction_stmt): Call split_pbb.
890         (translate_scalar_reduction_to_array): Pass in the scop, do not
891         pass in the sbitmap reductions.
892         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
893         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
894         (rewrite_commutative_reductions_out_of_ssa): Same.
895         (build_poly_scop): Call build_scop_bbs,
896         rewrite_commutative_reductions_out_of_ssa,
897         rewrite_reductions_out_of_ssa, and
898         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
899         before scop_to_lst.
900         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
901         Removed declaration.
902         (rewrite_reductions_out_of_ssa): Same.
903         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
904         (build_scop_bbs): Same.
905         * graphite.c (graphite_transform_loops): Do not initialize reductions.
906         Do not call build_scop_bbs,
907         rewrite_commutative_reductions_out_of_ssa,
908         rewrite_reductions_out_of_ssa, and
909         rewrite_cross_bb_scalar_deps_out_of_ssa.
910         * sese.h (struct gimple_bb): Add field pbb.
911         (GBB_PBB): New.
912
913 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
914
915         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
916         New.
917         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
918         handle_scalar_deps_crossing_scop_limits.
919         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
920         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
921
922 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
923
924         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
925         when replacing a constant in an ADDR_EXPR.
926
927 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
928
929         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
930         for the stride.
931         (lst_do_strip_mine): Same.
932         (scop_do_strip_mine): Same.
933         * graphite-poly.c (apply_poly_transforms): Update call to
934         scop_do_strip_mine.
935         * graphite-poly.h (scop_do_strip_mine): Update declaration.
936
937 2010-12-01  Jan Hubicka  <jh@suse.cz>
938
939         * tree.c (build_common_builtin_nodes): Do not initialize
940         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
941         * builtins.c (expand_builtin_profile_func): Remove.
942         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
943         BUILT_IN_PROFILE_FUNC_EXIT.
944         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
945         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
946         * gimplify.c (gimplify_function_tree): Reorganize code calling
947         profiling functions.
948
949 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
950
951         * opts.c: Expand comment on tm.h include.
952
953 2010-12-01  Yao Qi  <yao@codesourcery.com>
954
955         * config/arm/predicates.md ("vfp_register_operand"): Return true for
956         VFP_D0_D7_REGS classes.
957
958 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
959
960         * common.opt (flag_stack_check): New Variable entry.
961         (fcompare-debug-second): Use Var.
962         * flags.h (flag_compare_debug, flag_stack_check): Remove.
963         * opts.c (flag_compare_debug): Remove.
964         (common_handle_option): Don't handle OPT_fcompare_debug_second.
965         Set opts->x_flag_stack_check for OPT_fstack_check_.
966         * toplev.c (flag_stack_check): Remove.
967
968 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
969
970         * common.opt (main_input_filename, main_input_basename,
971         main_input_baselength): New Variable entries.  From toplev.c.
972         * final.c (output_quoted_string): Move from toplev.c.
973         * output.h (output_quoted_string): Move from toplev.h.
974         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
975         access main_input_filename, main_input_baselength and
976         main_input_basename.
977         * targhooks.c: Include intl.h and opts.h.
978         (option_affects_pch_p, default_get_pch_validity): Move from
979         toplev.c.
980         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
981         Move from toplev.h.
982         * toplev.c (main_input_filename, main_input_basename,
983         main_input_baselength): Move to common.opt.
984         (output_quoted_string): Move to final.c.
985         (warn_deprecated_use): Move to tree.c.
986         (option_affects_pch_p, default_get_pch_validity,
987         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
988         * toplev.h (skip_leading_substring): Move to tree-dump.c.
989         (warn_deprecated_use): Move to tree.h.
990         (output_quoted_string): Move to output.h.
991         (main_input_filename, main_input_basename, main_input_baselength):
992         Move to common.opt.
993         (default_get_pch_validity, default_pch_valid_p): Move to
994         targhooks.c.
995         * tree-dump.c (skip_leading_substring): Move from toplev.h.
996         * tree.c (warn_deprecated_use): Move from toplev.c.
997         * tree.h (warn_deprecated_use): Move from toplev.h.
998         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
999         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
1000         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
1001         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
1002         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
1003         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
1004         config/mcore/mcore.c, config/mep/mep.c,
1005         config/microblaze/microblaze.c, config/mips/mips.c,
1006         config/mmix/mmix.c, config/mn10300/mn10300.c,
1007         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
1008         config/picochip/picochip.c, config/s390/s390.c,
1009         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
1010         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
1011         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
1012         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
1013         varasm.c, xcoffout.c: Don't include toplev.h.
1014         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
1015         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
1016         varasm.o, xcoffout.o): Update dependencies.
1017         * config/arm/t-arm (arm.o): Update dependencies.
1018         * config/spu/t-spu-elf (spu.o): Update dependencies.
1019
1020 2010-12-01  Richard Guenther  <rguenther@suse.de>
1021
1022         PR tree-optimization/46730
1023         * value-prof.c (gimple_ic): Always generate a separate merge BB.
1024
1025 2010-11-30  Ian Lance Taylor  <iant@google.com>
1026
1027         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
1028         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
1029         * config/i386/linux64.h (ASM_SPEC): Likewise.
1030         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
1031         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
1032         * config/i386/vxworks.h (ASM_SPEC): Likewise.
1033         * config/i386/x86-64.h (ASM_SPEC): Likewise.
1034         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
1035         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
1036
1037 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1038
1039         * c-decl.c (finish_function): Call objc_finish_function in
1040         Objective-C.
1041         * c-typeck.c (convert_for_assignment): Do not call
1042         objc_type_quals_match().
1043
1044 2010-11-30  Richard Guenther  <rguenther@suse.de>
1045
1046         PR tree-optimization/46722
1047         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
1048         operands as arguments.
1049         (execute_optimize_widening_mul): Also handle power of two as
1050         multiplication.
1051
1052 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1053
1054         PR middle-end/46709
1055         * cgraphunit.c (process_function_and_variable_attributes): Fix
1056         cut'n'pasteo.
1057
1058 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
1059
1060         * hwint.c:  New.  Extracted from toplev.c.
1061         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1062         Move from toplev.h.
1063         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1064         Move to hwint.c.
1065         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1066         Move to hwint.h.
1067         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
1068         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
1069         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
1070         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
1071         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
1072         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
1073         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
1074         tree-vrp.c: Don't include toplev.h.
1075         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
1076         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
1077         toplev.h in generated output.
1078         * Makefile.in (OBJS-common): Add hwint.o.
1079         Dependencies for above files changed to remove toplev.h.
1080         (hwint.o): New.
1081         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
1082         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
1083         toplev.h.
1084         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
1085         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
1086
1087 2010-11-30  Richard Guenther  <rguenther@suse.de>
1088
1089         PR tree-optimization/46717
1090         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
1091         call.  Manually create EH edges for the direct call and update
1092         target PHI nodes.
1093
1094 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
1095
1096         * diagnostic-core.h: Include bversion.h.
1097         * toplev.h: Don't include input.h or bversion.h.
1098         (parse_optimize_options): Don't declare here.
1099         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
1100         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
1101         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
1102         config/host-darwin.c, config/i386/host-cygwin.c,
1103         config/i386/host-mingw32.c, config/i386/msformat-c.c,
1104         config/i386/netware.c, config/i386/nwld.c,
1105         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
1106         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
1107         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
1108         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
1109         config/score/score3.c, config/score/score7.c,
1110         config/sh/symbian-base.c, config/sh/symbian-c.c,
1111         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
1112         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
1113         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
1114         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
1115         graphite-blocking.c, graphite-clast-to-gimple.c,
1116         graphite-dependences.c, graphite-flattening.c,
1117         graphite-interchange.c, graphite-poly.c,
1118         graphite-scop-detection.c, graphite.c, haifa-sched.c,
1119         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
1120         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
1121         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
1122         lto-opts.c, lto-section-in.c, lto-section-out.c,
1123         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
1124         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
1125         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
1126         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
1127         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
1128         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
1129         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
1130         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
1131         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
1132         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
1133         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
1134         include toplev.h.
1135         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
1136         toplev.h.  Dependencies for above files and c-family files changed
1137         to remove $(TOPLEV_H) or toplev.h.
1138         (C_TREE_H): Don't include $(TOPLEV_H).
1139         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
1140         bversion.h.
1141         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
1142         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
1143         config/t-darwin, config/t-sol2,
1144         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
1145         Dependencies for above files changed to remove $(TOPLEV_H) or
1146         toplev.h.
1147
1148 2010-11-30  Richard Guenther  <rguenther@suse.de>
1149
1150         PR lto/44986
1151         * gcc.c (main): Use the first input with a compiler as infile
1152         for link spec processing.
1153
1154 2010-11-30  Richard Guenther  <rguenther@suse.de>
1155
1156         PR lto/45949
1157         * cgraphunit.c (ipa_passes): Stop after errors from
1158         small IPA passes.
1159
1160 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
1161
1162         * gcc-plugin.h: Include coretypes.h.
1163         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
1164
1165 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1166
1167         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
1168         * ggc-none.c (ggc_internal_alloc_zone_stat)
1169         (ggc_internal_cleared_alloc_zone_stat): New.
1170
1171 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
1172
1173         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
1174         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
1175         (rs6000_emit_prologue): Don't set PIC register if
1176         TARGET_SINGLE_PIC_BASE.
1177         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
1178         * doc/invoke.texi (msingle-pic-base): Document.
1179
1180 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
1181
1182         PR driver/46712
1183         * exec-tool.in (id): New.
1184         Check and export LT_RCU_$id instead of LT_RCU.
1185
1186 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
1187
1188         PR tree-optimization/46675
1189         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
1190         in offset calculation.
1191
1192 2010-11-29  Jan Hubicka  <jh@suse.cz>
1193
1194         * collect2.c (main): Do not imply verbose output with
1195         LTO and linker plugin.
1196
1197 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
1198
1199         * dwarf2out.c (print_die): Print the address of the current DIE or
1200         of any DIE referenced by the current one.
1201
1202 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
1203
1204         PR debug/46101
1205         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
1206         function.
1207         (scope_die_for, gen_type_die_for_member): Replace uses of
1208         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
1209
1210 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
1211
1212         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
1213         (darwin_asm_declare_object_name): Correct spelling.
1214         (darwin_output_aligned_bss): Likewise.
1215
1216 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
1217             Mike Stump  <mrs@gcc.gnu.org>
1218
1219         PR target/26427
1220         PR target/33120
1221         PR testsuite/35710
1222         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
1223         (ASM_OUTPUT_LOCAL): Likewise.
1224         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
1225         (darwin_output_aligned_bss): Likewise.
1226         (darwin_asm_output_aligned_decl_local): Likewise.
1227         (darwin_asm_output_aligned_decl_common): Likewise.
1228         (darwin_use_anchors_for_symbol_p): Likewise.
1229         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
1230         (TARGET_ASM_OUTPUT_ANCHOR): Define.
1231         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
1232         (DARWIN_SECTION_ANCHORS): Set to 1.
1233         * config/darwin.c (emit_aligned_common): New var.
1234         (darwin_init_sections): Check that the Darwin private zero-size section
1235         marker is in range.
1236         (darwin_text_section): Check for zero-sized objects.
1237         (darwin_mergeable_string_section): Likewise.
1238         (darwin_mergeable_constant_section): Likewise.
1239         (machopic_select_section): Adjust to check for zero-sized objects.
1240         Assert that OBJC meta data are non-zero sized.
1241         (darwin_asm_declare_object_name): New.
1242         (darwin_asm_declare_constant_name): Adjust for zero-sized
1243         object sections.
1244         (BYTES_ZFILL): Define.
1245         (darwin_emit_weak_or_comdat): New.
1246         (darwin_emit_local_bss): New.
1247         (darwin_emit_common): New.
1248         (darwin_output_aligned_bss): New.
1249         (darwin_asm_output_aligned_decl_common): New.
1250         (darwin_asm_output_aligned_decl_local): New.
1251         (darwin_file_end): Disable subsections_via_symbols when section
1252         anchoring is active.
1253         (darwin_asm_output_anchor): Re-enable.
1254         (darwin_use_anchors_for_symbol_p): New.
1255         (darwin_override_options): Check for versions that can emit
1256         aligned common.  Update usage of flags to current.
1257         * config/darwin-sections.def: Update comments and flags for
1258         non-anchor sections.  zobj_const_section, zobj_data_section,
1259         zobj_bss_section, zobj_const_data_section: New.
1260         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
1261         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
1262         (L2_MAX_OFILE_ALIGNMENT): Define.
1263         (ASM_OUTPUT_ALIGNED_BSS): Define.
1264         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
1265         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
1266         (SECTION_NO_ANCHOR): Define.
1267         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
1268         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
1269
1270 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
1271
1272         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
1273         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
1274         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
1275         Conditionally define.
1276         (GET_ENVIRONMENT): Poison.
1277         * configure.ac: Don't test for mincore.
1278         * configure: Regenerate.
1279         * config.in: Regenerate.
1280         * collect2-aix.c: Don't include <sys/mman.h>.
1281         * collect2.c: Don't include <signal.h>.
1282         (SIGCHLD): Don't define.
1283         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
1284         * config/alpha/alpha.c: Include "splay-tree.h" instead of
1285         <splay-tree.h>.
1286         * config/arm/arm.c (arm_target_help): Use getenv instead of
1287         GET_ENVIRONMENT.
1288         * config/avr/driver-avr.c: Don't include <stdlib.h>.
1289         * config/frv/frv.c: Don't include <ctype.h>.
1290         * config/host-darwin.c: Don't include <sys/mman.h>.
1291         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
1292         (MAP_FAILED): Don't define.
1293         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
1294         * config/host-solaris.c: Don't include <sys/mman.h>.
1295         * config/i386/cygming.h: Don't include <stdio.h>.
1296         * config/i386/driver-i386.c: Don't include <stdlib.h>.
1297         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
1298         * config/iq2000/iq2000.c: Don't include <signal.h>.
1299         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
1300         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
1301         * config/mep/mep-pragma.c: Don't include <stdio.h>.
1302         * config/microblaze/microblaze.c: Don't include <signal.h>.
1303         * config/mips/mips.c: Don't include <signal.h>.
1304         * config/rs6000/host-darwin.c: Don't include <signal.h>.
1305         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
1306         * defaults.h (GET_ENVIRONMENT): Don't define.
1307         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
1308         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
1309         (SIGCHLD, MAP_FAILED, kill): Don't define.
1310         (process_command): Use getenv instead of GET_ENVIRONMENT.
1311         * genhooks.c: Don't include <string.h>.
1312         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
1313         <sys/types.h>.
1314         (MAP_FAILED): Don't define.
1315         * ggc-page.c Don't include <sys/mman.h>.
1316         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
1317         * ggc-zone.c: Don't include <sys/mman.h>.
1318         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
1319         * graph.c: Include "config.h" instead of <config.h>.
1320         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
1321         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
1322         (SIGCHLD, kill): Don't define.
1323         * mips-tfile.c: Don't include <signal.h>.
1324         * opts.c: Don't include <signal.h> or <sys/resource.h>.
1325         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
1326         * passes.c: Don't include <signal.h>, <sys/resource.h> or
1327         <sys/times.h>.
1328         * sparseset.h: Don't include <assert.h>.
1329         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
1330         * tlink.c: Don't include "libiberty.h".
1331         * toplev.c: Don't include <signal.h> or <sys/times.h>.
1332         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
1333         * tree-switch-conversion.c: Don't include <signal.h>.
1334         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
1335
1336 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1337
1338         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
1339         c_parser_objc_try_catch_finally_statement for consistency with the
1340         C++ parser.  Parse @catch(...) and pass NULL_TREE to
1341         objc_begin_catch_clause() in that case.  Improved error recovery.
1342         Reorganized code to be almost identical to
1343         cp_parser_objc_try_catch_finally_statement.
1344
1345 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
1346
1347         PR tree-optimization/46621
1348         * gimple.h: Don't include tm.h or hard-reg-set.h .
1349         * Makefile.in (GIMPLE_H): Remove $(TM_H).
1350
1351         PR bootstrap/44756
1352         * cppbuiltin.c: Include target.h .
1353         (define_builtin_macros_for_type_sizes):
1354         Use targetm.float_words_big_endian.
1355
1356 2010-11-27  Jan Hubicka  <jh@suse.cz>
1357
1358         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
1359         and output cold_text_section_label.
1360         (dwarf2out_init): Don't do that there.
1361         (dwarf2out_finish): Handle cold section end label only if cold
1362         section was used.
1363
1364 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1365
1366         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
1367         VLA variables.
1368
1369 2010-11-27  Richard Guenther  <rguenther@suse.de>
1370
1371         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
1372         (gimple_assign_ssa_name_copy_p): Likewise.
1373         (gimple_assign_unary_nop_p): Use is_gimple_assign.
1374         (is_gimple_cast): Remove.
1375         (gimple_assign_single_p): Move ...
1376         * gimple.h (gimple_assign_single_p): ... here.
1377         (is_gimple_cast): Remove.
1378         (gimple_assign_rhs_code): Simplify.
1379         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
1380         instead of is_gimple_cast.
1381         * ipa-type-escape.c (look_for_casts): Likewise.
1382
1383 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
1384
1385         * doc/options.texi (Enum, EnumValue): Document new record types.
1386         (Enum): Document new option flag.
1387         * opt-functions.awk
1388         * optc-gen.awk: Handle enumerated option arguments.
1389         * opth-gen.awk: Handle enumerated option arguments.
1390         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
1391         enum_value_to_arg): New.
1392         (decode_cmdline_option): Handle enumerated arguments.
1393         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
1394         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
1395         * opts.c (print_filtered_help, print_specific_help): Take
1396         lang_mask arguments.
1397         (print_filtered_help): Handle printing values of enumerated
1398         options.  Print possible arguments for enumerated options.
1399         (print_specific_help): Update call to print_filtered_help.
1400         (common_handle_option): Update calls to print_specific_help.  Use
1401         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
1402         handle OPT_ffp_contract_, OPT_fexcess_precision_,
1403         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
1404         OPT_fira_region_ here.
1405         * opts.h (enum cl_var_type): Add CLVC_ENUM.
1406         (struct cl_option): Add var_enum.
1407         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
1408         struct cl_enum, cl_enums, cl_enums_count): New.
1409         (CL_ERR_ENUM_ARG): Define.
1410         (CL_ERR_NEGATIVE): Update value.
1411         (enum_value_to_arg): Declare.
1412         * common.opt (flag_ira_algorithm, flag_ira_region,
1413         flag_fp_contract_mode, flag_excess_precision_cmdline,
1414         default_visibility, flag_tls_default): Remove Variable entries.
1415         (help_enum_printed): New Variable.
1416         (fdiagnostics-show-location=): Use Enum.  Add associated
1417         SourceInclude, Enum and EnumValue entries.
1418         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
1419         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
1420         associated Enum and EnumValue entries.
1421
1422 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
1423
1424         PR target/46623
1425         * config/microblaze/microblaze.c (microblaze_block_move_straight):
1426         Use XALLOCAVEC.
1427         (microblaze_option_override): Don't use C++ style comments.
1428         (save_restore_insns): Remove unused variable base_offset.
1429         (microblaze_expand_prologue): Remove unused variable insn.
1430         (microblaze_secondary_reload): Adjust type to match target.h .
1431         (microblaze_elf_in_small_data_p): Move declarations to start of block.
1432         (microblaze_expand_move): Likewise.
1433         * config/microblaze/microblaze.h (LARGE_INT):
1434         Avoid signed / unsigned comparisons.
1435         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1436         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
1437         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
1438
1439 2010-11-26  Michael Matz  <matz@suse.de>
1440
1441         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
1442
1443         * passes.c (init_optimization_passes): Remove superfluous
1444         copy-prop pass.
1445
1446 2010-11-26  Richard Guenther  <rguenther@suse.de>
1447
1448         PR lto/46648
1449         * gimple.c (gtc_visit): Do not return true for members of an
1450         SCC still being processed but the current lattice value of
1451         the member.  Treat SCC members comparison state as lattice,
1452         starting at equal, eventually dropping to unequal.
1453         (gimple_types_compatible_p_1): Likewise.
1454
1455 2010-11-26  Richard Guenther  <rguenther@suse.de>
1456
1457         PR middle-end/46559
1458         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
1459         for location list processing.
1460
1461 2010-11-26  Richard Guenther  <rguenther@suse.de>
1462
1463         PR lto/46560
1464         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
1465         flags manually.
1466
1467 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1468
1469         * config/s390/s390.c (print_operand_address): Replace assert with
1470         error message.
1471         (print_operand): Replace assertions, gcc_unreachable and
1472         fatal_insn with error messages.
1473
1474 2010-11-26  Richard Guenther  <rguenther@suse.de>
1475
1476         PR tree-optimization/46665
1477         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
1478
1479 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
1480
1481         * config/arm/arm.c (arm_option_override): enable loop array
1482         prefetching at -O3 for suitable targets, and configure params.
1483         * config/arm/arm-protos.h (struct tune_params): Add fields for
1484         configuring loop array prefetching.
1485
1486 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
1487
1488         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
1489
1490 2010-11-26  Richard Guenther  <rguenther@suse.de>
1491
1492         PR tree-optimization/46664
1493         * tree-affine.c (aff_combination_to_tree): Add rest last.
1494
1495 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
1496
1497         PR target/33637
1498         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
1499         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
1500         * configure: Regenerated.
1501         * exec-tool.in: Not quoting command, may have extra arguments.
1502
1503 2010-11-26  Richard Guenther  <rguenther@suse.de>
1504
1505         PR tree-optimization/46528
1506         PR debug/46338
1507         * profile.c (branch_prob): Do not split blocks based on locations
1508         from debug statements.
1509
1510 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
1511
1512         PR middle-end/46647
1513         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
1514         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
1515
1516         PR bootstrap/45700
1517         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
1518         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
1519         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
1520         build6_loc): Define.
1521         * fold-const.c (protected_set_expr_location_unshare): New inline.
1522         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
1523         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
1524         pedantic_omit_one_operand_loc, omit_two_operands_loc,
1525         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
1526         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
1527         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
1528         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
1529         instead of buildN followed by SET_EXPR_LOCATION or
1530         protected_set_expr_location.
1531         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
1532         Use buildN_stat_loc instead of buildN_stat followed by
1533         SET_EXPR_LOCATION.
1534
1535 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
1536
1537         * Makefile.in (s-tm-texi): Remove spurous tab.
1538
1539 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
1540
1541         PR debug/46258
1542         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
1543         debug stmts.
1544
1545 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
1546
1547         * toplev.c (finalize): Add no_backend parameter.  Don't finish
1548         passes when preprocessing only.  Adjust...
1549         (do_compile): ... caller.
1550
1551 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1552
1553         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
1554         flag_unsafe_math_optimizations.
1555         (negsf2): Likewise.
1556         Move fnegabs related patterns together.  Only use fmpynfadd instruction
1557         to negate a multiply if !flag_signed_zeros is true.
1558
1559 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
1560
1561         * gengtype-state.c (read_state_structures): Initialize "previous".
1562
1563 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
1564             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1565
1566         * gengtype-state.c: Add new file.
1567
1568         * gengtype.c (type count): New variable.
1569         (new_structure, find_param_structure, create_pointer)
1570         (create_array): Use it to set state_number in types.
1571         (dump_everything): Improve comment.
1572         (main): Call read_state and write_state. Print type_count.
1573
1574         * gengtype.h (type_lineloc): New function.
1575         (read_state, write_state): New declarations.
1576
1577         * Makefile.in (GENGTYPE_FLAGS): New variable.
1578         (s-gtype): Run gengtype twice and generate gtype.state.
1579         (build/gengtype-state.o): New rule.
1580         (build/gengtype$(build_exeext)): Link gengtype-state.o.
1581         (mostlyclean): Update comment.  Remove gtype.state.
1582
1583 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
1584
1585         PR middle-end/46637
1586         * combine.c (try_combine): When substing i2dest for i2src, pass
1587         1 as last argument even if
1588         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
1589
1590 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
1591
1592         PR middle-end/46647
1593         * builtins.c (target_char_cast): Check INTEGER_CST instead of
1594         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
1595
1596 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
1597
1598         * target.def (supports_split_stack, except_unwind_info): Take
1599         gcc_options parameters.
1600         * targhooks.c (default_except_unwind_info,
1601         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
1602         gcc_options parameters.
1603         * targhooks.h (default_except_unwind_info,
1604         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
1605         prototypes.
1606         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
1607         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
1608         Document that hooks must not be modified.
1609         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
1610         * doc/tm.texi: Regenerate.
1611         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
1612         &global_options to targetm.except_unwind_info.
1613         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
1614         dwarf2out_begin_prologue, dwarf2out_frame_init,
1615         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
1616         &global_options to targetm.except_unwind_info.
1617         * except.c (init_eh, finish_eh_generation,
1618         gate_convert_to_eh_region_ranges,
1619         output_one_function_exception_table): Pass &global_options to
1620         targetm.except_unwind_info.
1621         * expr.c (build_personality_function): Pass &global_options to
1622         targetm.except_unwind_info.
1623         * function.c (expand_function_end): Pass &global_options to
1624         targetm.except_unwind_info.
1625         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
1626         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
1627         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
1628         and targetm.supports_split_stack.  Remove assertions about opts
1629         and opts_set.
1630         (common_handle_option): Remove assertions about opts, opts_set and dc.
1631         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
1632         &global_options to targetm.except_unwind_info.
1633         * tree.c (build_common_builtin_nodes: Pass &global_options to
1634         targetm.except_unwind_info.
1635         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
1636         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
1637         thumb1_expand_prologue, thumb1_output_function_prologue,
1638         arm_unwind_emit, arm_output_fn_unwind): Update calls to
1639         arm_except_unwind_info.
1640         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
1641         parameter.
1642         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
1643         parameter.
1644         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
1645         ia64_reorg, ia64_asm_unwind_emit): Update calls to
1646         ia64_except_unwind_info.
1647         * config/pa/pa.c (pa_option_override): Pass &global_options to
1648         targetm.except_unwind_info.
1649         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
1650         Remove prototype.
1651
1652 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
1653
1654         * cgraphunit.c (process_function_and_variable_attributes):
1655         Mark dllexport-ed function/variables as needed.
1656         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
1657         as externally visible.
1658
1659 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1660
1661         PR rtl-optimization/46585
1662         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
1663         (vinsn_init): Skip computation of dependencies for local NOPs.
1664         (vinsn_delete): Don't try to free regsets for local NOPs.
1665         (setup_nop_and_exit_insns): Change definition of nop_pattern.
1666
1667 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1668
1669         PR rtl-optimization/46602
1670         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
1671         (tidy_control_flow): Here.
1672
1673 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
1674             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1675
1676         PR bootstrap/45888
1677         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
1678         Fix target.def pathname in timestamp comparison.
1679
1680 2010-11-24  Richard Henderson  <rth@redhat.com>
1681
1682         * config/ia64/predicates.md (pmpyshr_operand): New.
1683         * config/ia64/ia64.c (ia64_expand_unpack): New.
1684         (ia64_expand_widen_mul_v4hi): New.
1685         (ia64_expand_widen_sum): Update for pattern renames.
1686         (ia64_expand_dot_prod_v8qi): Likewise.
1687         * config/ia64/ia64-protos.h: Update.
1688         * config/ia64/vect.md (vecwider): New mode attribute.
1689         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
1690         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
1691         (pmpyshr2, pmpyshr2_u): New.
1692         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
1693         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
1694         (mulv2si3): New.
1695         (vec_pack_ssat_v4hi): Rename from pack2_sss.
1696         (vec_pack_usat_v4hi): Rename from *pack2_uss.
1697         (vec_pack_ssat_v2si): Rename from pack4_sss.
1698         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
1699         vec_select operation.
1700         (vec_interleave_highv8qi): Similarly.
1701         (mux1_alt): Rename from *mux1_alt.
1702         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
1703         (vec_interleave_lowv4hi): Rename from unpack2_l.
1704         (vec_interleave_highv4hi): Rename from unpack2_h.
1705         (mix2_r): Rename from *mix2_r.
1706         (mix2_l): Similarly.
1707         (vec_extract_evenodd_helper): New.
1708         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
1709         (vec_interleave_lowv2si): Rename from *unpack4_l.
1710         (vec_interleave_highv2si): Rename from *unpack4_h.
1711         (vec_extract_evenv2si, vec_extract_oddv2si): New.
1712         (vec_interleave_lowv2sf): Rename from fmix_r.
1713         (vec_interleave_highv2sf): Rename from *fmix_l.
1714         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
1715         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
1716         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
1717         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
1718
1719 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1720
1721         * targhooks.c (default_except_unwind_info): Remove
1722         MUST_USE_SJLJ_EXCEPTIONS case.
1723         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1724         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1725         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1726         * doc/tm.texi: Regenerate.
1727         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
1728
1729 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1730
1731         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1732         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
1733         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
1734         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
1735         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
1736
1737 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1738
1739         PR target/46519
1740         * config/i386/i386.c (ix86_expand_call): Don't check
1741         TREE_THIS_VOLATILE.
1742
1743 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1744
1745         PR target/46519
1746         * config/i386/i386.c (upper_128bits_state): New.
1747         (block_info_def): Remove upper_128bits_set and done.  Add state,
1748         referenced, count, processed and rescanned.
1749         (check_avx256_stores): Updated.
1750         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1751         Call note_stores only if needed.  Set referenced and count.
1752         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1753         (rescan_move_or_delete_vzeroupper): New.
1754         (move_or_delete_vzeroupper):  Process and rescan all all basic
1755         blocks instead of predecessor blocks of all exit points.
1756         (ix86_option_override_internal): Enable vzeroupper optimization
1757         only for -fexpensive-optimizations and not optimizing for size.
1758         (use_avx256_p): Removed.
1759         (init_cumulative_args): Don't set use_avx256_p.
1760         (ix86_function_arg): Likewise.
1761         (ix86_expand_move): Likewise.
1762         (ix86_expand_vector_move_misalign): Likewise.
1763         (ix86_local_alignment): Likewise.
1764         (ix86_minimum_alignment): Likewise.
1765         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1766         vzeroupper.
1767         (ix86_expand_call): Likewise.
1768
1769         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1770         and use_avx256_p.  Add rescan_vzeroupper_p.
1771
1772 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1773
1774         * toplev.c: Include <signal.h>.
1775
1776 2010-11-24  Richard Guenther  <rguenther@suse.de>
1777
1778         PR lto/43218
1779         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1780         conflicting function signatures as non-inlineable.
1781
1782 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1783
1784         PR rtl-optimization/46614
1785         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1786          (deps_analyze_insn): Mark JUMP_INSNs in
1787         last_pending_memory_flush that weren't added through
1788         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1789         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1790         on INSN_LIST instead of JUMP_P check on its operand.
1791         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1792
1793 2010-11-24  Richard Guenther  <rguenther@suse.de>
1794
1795         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1796
1797 2010-11-24  Richard Guenther  <rguenther@suse.de>
1798
1799         PR lto/46606
1800         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1801         a FIELD_DECL that is type correct issue a warning and fixup
1802         with a VIEW_CONVERT_EXPR.
1803
1804 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1805
1806         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1807         Explain static numbering of dump files.
1808
1809 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1810
1811         * common.opt (user_vect_verbosity_level): New Variable entry.
1812         (ftree-vectorizer-verbose=): Mark as UInteger.
1813         * flag-types.h (enum vect_verbosity_levels): Move from enum
1814         verbosity_levels in tree-vectorizer.h.
1815         * opts.c: Don't include tree.h.
1816         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1817         gcc_options parameter; take integer option argument.
1818         (common_handle_option): Update call to vect_set_verbosity_level.
1819         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1820         (vect_set_verbosity_level): Move to opts.c.
1821         (vect_verbosity_level, vect_print_dump_info): Update for change of
1822         enum name.
1823         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1824         (vect_print_dump_info): Update for change of enum name.
1825         * tree.h (vect_set_verbosity_level): Remove.
1826         * Makefile.in (opts.o): Update dependencies.
1827
1828 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1829
1830         PR middle-end/46629
1831         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1832         instead of insn with any_condjump_p.
1833
1834 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1835
1836         * config/mips/loongson.md: Change the description comment of the file
1837         and update the copyright years.
1838         (define_insn "<u>div<mode>3): Add loongson3a support.
1839         (define_insn "<u>mod<mode>3"): Likewise.
1840         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1841         mul<mode>3_mul3_loongson.
1842         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1843         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1844
1845 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1846
1847         * common.opt (initial_max_fld_align, flag_debug_asm,
1848         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1849         flag_print_asm_name, graph_dump_format, help_printed,
1850         help_columns, flag_opts_finished): New Variable entries.
1851         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1852         frandom-seed=): Mark deferred.
1853         (fsched-verbose=): Use UInteger and Var.
1854         * flags.h (set_struct_debug_option, flag_print_asm_name,
1855         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1856         graph_dump_format): Don't declare here.
1857         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1858         * opts-global.c: Include dbgcnt.h and debug.h.
1859         (decode_options): Pass location to finish_options.
1860         (handle_common_deferred_options): Check flag_dump_all_passed.
1861         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1862         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1863         OPT_fstack_limit.
1864         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1865         (set_struct_debug_option): Add location_t parameter.  Update
1866         recursive call.  Use error_at.
1867         (default_options_optimization): Use error_at.
1868         (finish_options): Add location_t parameter.  Use
1869         opts->x_flag_opts_finished instead of first_time_p.  Use
1870         opts->x_optimize instead of optimize.  Use error_at.  Pass
1871         location to inform.
1872         (print_filtered_help): Use opts->x_help_printed to track what
1873         options have been printed.
1874         (print_specific_help): Use opts->x_help_columns to track number of
1875         columns.
1876         (common_handle_option): Pass locations and gcc_options pointers to
1877         more functions.  Use warning_at instead of fnotice and warning.
1878         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1879         OPT_fdebug_prefix_map_.  Use error_at.  Set
1880         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1881         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1882         OPT_fsched_verbose_.
1883         (handle_param): Add location_r parameter.  Use error_at.
1884         (set_debug_level): Add location_r parameter.  Use error_at and
1885         warning_at.
1886         (setup_core_dumping): Add diagnostic_context parameter.
1887         (decode_d_option): Add gcc_options, location_t and
1888         diagnostic_context parameters and use them instead of global
1889         state.  Use warning_at.
1890         (enable_warning_as_error): Use error_at.
1891         * opts.h (finish_options): Update prototype.
1892         (set_struct_debug_option): Declare here.
1893         * rtl.h (fix_sched_param): Remove.
1894         * stor-layout.c (initial_max_fld_align): Remove.
1895         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1896         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1897         (process_options): Set maximum_field_alignment.
1898         * tree.h (initial_max_fld_align) Don't declare here.
1899         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1900
1901 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1902
1903         * flag-types.h (struct visibility_flags): Don't declare here.
1904         * flags.h (strip_off_ending, fast_math_flags_set_p,
1905         fast_math_flags_struct_set_p): Declare here.
1906         (visibility_options): Don't declare here.
1907         * opts-common.c (option_enabled, get_option_state): Move from
1908         opts.c.
1909         * opts-global.c: Include diagnostic.h instead of
1910         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1911         and toplev.h.
1912         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1913         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1914         print_ignored_options, unknown_option_callback,
1915         post_handling_callback, lang_handle_option, add_input_filename,
1916         read_cmdline_options, initial_lang_mask, init_options_once,
1917         decode_cmdline_options_to_array_default_mask,
1918         set_default_handlers, decode_options): Move from opts.c.
1919         (print_ignored_options): Use warning_at instead of saving and
1920         restoring input_location.
1921         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1922         instead of expr.h.  Don't include langhooks.h, except.h or
1923         lto-streamer.h.  Add more comments on includes.
1924         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1925         toplev.c.
1926         (visibility_options): Move to c-family/c-common.c.
1927         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1928         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1929         print_ignored_options, unknown_option_callback,
1930         post_handling_callback, lang_handle_option, add_input_filename,
1931         read_cmdline_options, initial_lang_mask, init_options_once,
1932         decode_cmdline_options_to_array_default_mask,
1933         set_default_handlers, decode_options): Move to opts-global.c.
1934         (target_handle_option, default_options_optimization,
1935         finish_options, common_handle_option): Remove static.
1936         (option_enabled, get_option_state): Move to opts-common.c.
1937         * opts.h (common_handle_option, target_handle_option,
1938         finish_options, default_options_optimization): Declare.
1939         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1940         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1941         opts.c.
1942         * toplev.h (strip_off_ending, decode_d_option,
1943         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1944         declare here.
1945         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1946
1947 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1948
1949         PR driver/42690
1950         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1951         options, replace by call of pass-through-libs spec function to process
1952         link_gcc_c_sequence spec.
1953         (lto_libgcc_spec): Delete variable.
1954         (static_specs[]): Remove related entry.
1955         (static_spec_functions[]): Add new entry for pass-through-libs.
1956         (main): Don't generate deleted lto_libgcc_spec.
1957         (pass_through_libs_spec_func): New function to implement the new
1958         pass-through-libs spec function.
1959         * doc/invoke.texi (pass-through-libs): Document new spec function.
1960
1961 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1962
1963         * doc/options.texi (Warning, Optimization): Document.
1964
1965 2010-11-23  Jan Hubicka  <jh@suse.cz>
1966
1967         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1968         (tree_decl_with_vis): Add implicit_section_name_p.
1969         * targhooks.h (default_function_section): Declare.
1970         * target.def (function_section): New hook.
1971         * defaults.h (HOT_TEXT_SECTION_NAME,
1972         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1973         * predict.c (choose_function_section): Remove.
1974         (estimate_bb_frequencies): Do not use choose_function_section.
1975         * coretypes.h (enum node_frequency): Move here from cgraph.h
1976         * cgraph.h (enum node_frequency): Remove.
1977         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1978         unlikely_text_section_p): Remove.
1979         (named_subsection_entry): New structure.
1980         (get_text_section): New function.
1981         (default_function_section): New function.
1982         (function_section_1): Break out from ...; handle profile info.
1983         (function_section): ... here.
1984         (unlikely_text_section): Remove.
1985         (unlikely_text_section_p): Use function_section_1.
1986         (assemble_start_function): Do not initialize cold section.
1987         (default_section_type_flags): Do not special case cold subsection.
1988         (switch_to_section): Likewise.
1989         * output.h (get_text_section): Define.
1990         * config/i386/winnt.c: Do not special case cold section.
1991         * config/darwin-protos.h (darwin_function_section): Declare.
1992         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
1993         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1994         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
1995         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1996         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
1997         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
1998         * config/darwin.c (machopic_select_section): Use
1999         darwin_function_section.
2000         (darwin_function_section): New function.
2001         * config/darwin.h (HOT_TEXT_SECTION_NAME,
2002         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2003         (TARGET_ASM_FUNCTION_SECTION): Define.
2004         * system.h (HOT_TEXT_SECTION_NAME,
2005         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
2006
2007 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
2008
2009         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
2010         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
2011
2012 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
2013
2014         PR middle-end/46499
2015         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
2016         following unconditional jumps.
2017
2018 2010-11-23  Richard Guenther  <rguenther@suse.de>
2019
2020         * doc/md.texi (386 constraints): Clarify A constraint documentation.
2021
2022 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
2023             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2024
2025         * gengtype.c (enum typekind, struct options)
2026         (struct nested_ptr_data, struct pair, NUM_PARAM)
2027         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
2028         Move to gengtype.h.
2029         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
2030         Remove static, add zero state_number.
2031         (typedefs, structures, param_structs, variables): Remove static.
2032         (create_option): Remove.
2033         (create_string_option, create_type_option, create_nested_option):
2034         New functions.
2035         (create_nested_ptr_option): Use create_nested_option.
2036         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
2037         new create*option functions.
2038         (process_gc_options): Adjust for discriminated option.
2039         (output_mangled_typename): Handle TYPE_NONE.
2040         (walk_type): Test option kinds.
2041         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
2042         (write_func_for_structure, write_type, write_local, write_root)
2043         (write_roots, note_def_vec, dump_options): Adjust for
2044         discriminated option.
2045
2046         * gengtype.h (typedefs, structures, param_structs, variables
2047         enum typekind): Move from gengtype.c
2048         (enum option_kind): New discriminating enumeration.
2049         (struct options): Becomes discriminated.
2050         (struct nested_ptr_data): Nove from gengtype.c
2051         (create_string_option, create_type_option, create_nested_option)
2052         (create_nested_ptr_option): New functions
2053         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
2054         (UNION_OR_STRUCT_P): Move from gengtype.c
2055
2056         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
2057         discriminated options.
2058
2059 2010-11-23  Richard Guenther  <rguenther@suse.de>
2060
2061         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
2062         twice.  Avoid re-allocating the ops vector all the time.
2063
2064 2010-11-23  Richard Guenther  <rguenther@suse.de>
2065
2066         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
2067         is_gimple_min_invariant, group tree code checks to allow
2068         combining them.
2069         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
2070         of is_gimple_reg.
2071
2072 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
2073
2074         * config.gcc (sparc*-*-*): Reorder.
2075
2076 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
2077
2078         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
2079         Remove ENABLE_CHECKING around DBGPRINTF.
2080
2081 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
2082
2083         * common.opt (exit_after_options, write_symbols, debug_info_level,
2084         use_gnu_debug_info_extensions): New Variable entries.
2085         (fprofile-dir=): Use Var.
2086         * flag-types.h (enum debug_info_level): Rename to enum
2087         debug_info_levels.
2088         * flags.h (write_symbols, debug_info_level,
2089         use_gnu_debug_info_extensions): Remove declarations.
2090         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
2091         (set_struct_debug_option): Make static variables const.
2092         (use_gnu_debug_info_extensions): Remove.
2093         (set_debug_level, print_filtered_help, print_specific_help,
2094         fast_math_flags_set_p): Take gcc_options parameters and use them
2095         in place of global variables.
2096         (print_filtered_help): Make new_help non-static.
2097         (print_specific_help): Update call to print_filtered_help.
2098         (common_handle_option): Update calls to print_specific_help.  Use
2099         gcc_options structure for more settings.  Make --help table
2100         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
2101         set_debug_level.
2102         * toplev.c (profile_data_prefix): Remove.
2103         * toplev.h (profile_data_prefix, exit_after_options): Remove
2104         declarations.
2105         (fast_math_flags_set_p): Update prototype.
2106         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
2107         Update call to fast_math_flags_set_p.
2108
2109 2010-11-22  Richard Henderson  <rth@redhat.com>
2110
2111         PR target/46434
2112         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
2113         return the address register extracted.
2114         (crx_decompose_address): Update the extracted address register.
2115
2116 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
2117
2118         PR driver/43335
2119         * gcc.c (main): Don't crash when lto-wrapper program is not found.
2120
2121 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
2122
2123         PR target/46608
2124         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
2125         * config/picochip/picochip-protos.h: Don't include "target.h" .
2126         (picochip_secondary_reload): Don't declare.
2127
2128         PR target/46613
2129         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
2130         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
2131         static.
2132
2133 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
2134
2135         PR bootstrap/46609
2136         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
2137         (source_dot_c_frul): Likewise.
2138
2139 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
2140
2141         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
2142
2143 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
2144
2145         PR bootstrap/44970
2146         * Makefile.in (fwprop.o) Add sparseset.h.
2147         * fwprop.c: Include sparseset.h
2148         (struct find_occurrence_data, find_occurrence_callback,
2149         find_occurrence): Remove.
2150         (active_defs, active_defs_check, register_active_defs,
2151         update_df_init, update_uses): New.
2152         (update_df): Rewrite.
2153         (try_fwprop_subst, forward_propagate_asm): Add calls to
2154         update_df_init and update_df.
2155         (fwprop_init): Allocate active_defs and active_defs_check.
2156         (fwprop_done): Free them.
2157         (fwprop, fwprop_addr): Adjust comments.
2158         * df.h (df_uses_create): Declare.
2159         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
2160         (df_ref_create): Return result of df_ref_create_structure directly.
2161         (df_ref_create_structure): Call df_install_ref_incremental when
2162         no collection_rec is passed.
2163         (df_ref_record): Do not create multiword hard reg info when no
2164         collection_rec is passed.
2165         (df_uses_create): New.
2166
2167 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
2168
2169         PR middle-end/43057
2170         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
2171         setting location.
2172
2173 2010-11-22  Richard Guenther  <rguenther@suse.de>
2174
2175         * gimple-fold.c (maybe_fold_reference): When canonicalizing
2176         MEM_REFs, preserve volatileness.
2177         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
2178         addresses.
2179
2180 2010-11-22  Richard Guenther  <rguenther@suse.de>
2181
2182         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
2183
2184 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
2185
2186         PR rtl-optimization/45652
2187         * alias.c (get_reg_base_value): New.
2188         * rtl.h (get_reg_base_value): Add prototype.
2189         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
2190         non-null REG_BASE_VALUE for renaming.
2191
2192 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
2193             Basile Starynkevitch  <basile@starynkevitch.net>
2194
2195         * gengtype.c: Include xregex.h and obstack.h
2196         Added comments about role of get_output_file_with_visibility and
2197         our regexpr machinery.
2198         (frul_actionrout_t, struct file_rule_st): New.
2199         (hader_dot_h_frul, source_dot_c_frul): New functions.
2200         (NULL_REGEX,  NULL_FRULACT): New.
2201         (files_rules): New.
2202         (matching_file_name_substitute): New function.
2203         (get_output_file_with_visibility): Updated comments and rewritten
2204         to use the new files_rules machinery.
2205
2206         * Makefile.in (XREGEX_H): Added variable.
2207         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
2208
2209 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
2210
2211         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
2212
2213 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
2214
2215         * target.def (conditional_register_usage): Define.
2216         * reginfo.c (init_reg_sets_1): Call
2217         targetm.conditional_register_usage.
2218         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
2219         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
2220         for making it a hook.
2221         * doc/tm.texi: Regenerate.
2222         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2223         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
2224         New function.
2225         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2226         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2227         * config/arc/arc.c (arc_conditional_register_usage): ...here.
2228         New function.
2229         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2230         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2231         * config/arm/arm.c (arm_conditional_register_usage): ...here.
2232         New function.
2233         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2234         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
2235         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
2236         * config/bfin/bfin.c (conditional_register_usage): Move code into...
2237         (bfin_conditional_register_usage): ...here.  New function.
2238         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2239         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
2240         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
2241         * config/cris/cris.c (cris_conditional_register_usage): Make static.
2242         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2243         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
2244         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
2245         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
2246         * config/frv/frv.c (frv_conditional_register_usage): Make static.
2247         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2248         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2249         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
2250         New function.
2251         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2252         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
2253         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
2254         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
2255         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2256         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
2257         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
2258         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
2259         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2260         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2261         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
2262         New function.
2263         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2264         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
2265         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
2266         Delete.
2267         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
2268         static.
2269         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2270         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
2271         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
2272         * config/mep/mep.c (mep_conditional_register_usage): Make static.
2273         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2274         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
2275         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
2276         * config/mips/mips.c (mips_conditional_register_usage): Make static.
2277         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2278         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
2279         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
2280         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
2281         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2282         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2283         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
2284         ...here.  New function.
2285         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2286         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2287         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
2288         * config/pa/pa.c (pa_conditional_register_usage): ...here.
2289         New function.
2290         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2291         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2292         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
2293         New function.
2294         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2295         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
2296         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
2297         Delete.
2298         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
2299         static.
2300         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2301         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
2302         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
2303         * config/rx/rx.c (rx_conditional_register_usage): Make static.
2304         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2305         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
2306         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
2307         * config/s390/s390.c (s390_conditional_register_usage): Make static.
2308         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2309         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2310         * config/score/score.c (score_conditional_register_usage): ...here.
2311         New function.
2312         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2313         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2314         * config/sh/sh.c (sh_conditional_register_usage): ...here.
2315         New function.
2316         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2317         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2318         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
2319         New function.
2320         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2321         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
2322         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
2323         * config/spu/spu.c (spu_conditional_register_usage): Make static.
2324         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2325         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2326         * config/v850/v850.c (v850_conditional_register_usage): ...here.
2327         New function.
2328         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2329
2330 2010-11-21  Jan Hubicka  <jh@suse.cz>
2331             Dominique d'Humieres <dominiq@lps.ens.ft>
2332
2333         PR target/46510
2334         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
2335         finalize external decls.
2336
2337 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
2338
2339         * system.h (strerror): Poison.
2340
2341 2010-11-21  Richard Henderson  <rth@redhat.com>
2342
2343         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
2344         for infq/huge_valq.
2345
2346 2010-11-21  Richard Henderson  <rth@redhat.com>
2347
2348         PR rtl-optimization/46571
2349         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
2350         (compute_hash_table_work): Use NONDEBUG_INSN_P.
2351
2352 2010-11-21  Paul Koning  <ni1d@arrl.net>
2353
2354         * config/mips/pdp11.md (negsi2): Fix wrong code.
2355
2356 2010-11-21  Paul Koning  <ni1d@arrl.net>
2357
2358         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
2359         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2360
2361 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
2362
2363         * config/mips/mips.c (machine_function): Rename load_label_length to
2364         load_label_num_insns.
2365         (mips_load_label_length): Rename to...
2366         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
2367         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
2368
2369 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
2370
2371         PR target/46533
2372         * config/alpha/predicates.md (direct_call_operand): Return false
2373         for !TARGET_SMALL_TEXT targets.
2374
2375 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
2376
2377         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
2378         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
2379         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
2380         * doc/tm.texi: Regenerate.
2381         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
2382         HANDLE_PRAGMA_WEAK): Poison.
2383         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2384         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2385         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
2386         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
2387         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2388         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2389         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2390         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
2391         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2392         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
2393         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2394         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
2395         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2396         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2397         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2398         (HANDLE_PRAGMA_WEAK): Don't undefine.
2399         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2400         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
2401         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2402         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
2403         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2404         (HANDLE_PRAGMA_WEAK): Don't undefine.
2405         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2406         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
2407         (HANDLE_PRAGMA_PACK): Don't undefine.
2408         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
2409         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2410         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2411         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2412         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
2413         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2414         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2415         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2416         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
2417         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2418         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
2419         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2420         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2421         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2422         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2423         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
2424         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2425
2426 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
2427
2428         PR target/31100
2429         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
2430         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
2431         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
2432
2433 2010-11-20  Jan Hubicka  <jh@suse.cz>
2434
2435         * cgraph.c (ld_plugin_symbol_resolution_names): New.
2436         (dump_cgraph_node): Dump resolution.
2437         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
2438         (cgraph_comdat_can_be_unshared_p): Dclare.
2439         * lto-streamer-out.c (produce_symtab): Use
2440         cgraph_comdat_can_be_unshared_p.
2441         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
2442         (cgraph_comdat_can_be_unshared_p): New function based on logic
2443         in cgraph_externally_visible_p.
2444         (cgraph_externally_visible_p): Use it.
2445         (varpool_externally_visible_p): Virtual tables can be unshared.
2446         * varpool.c (dump_varpool_node): Dump resolution.
2447
2448 2010-11-20  Jan Hubicka  <jh@suse.cz>
2449
2450         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
2451
2452 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2453
2454         PR other/46202
2455         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
2456         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
2457         shell quoting.
2458         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
2459         (install-strip): New target.
2460         (STRIPPROG): New variable, exported if STRIP is set.
2461         * doc/install.texi (Final install): Minor markup and code style
2462         fixes.  Document install-strip target.
2463
2464 2010-11-20  Paul Koning  <ni1d@arrl.net>
2465
2466         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
2467         pdp11_regno_reg_class): New functions.
2468         * config/pdp11/pdp11.md (define_constants): Add register numbers.
2469         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
2470         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
2471         functions.
2472         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
2473         frame pointer and argument pointer pseudo-registers.
2474         (ARG_POINTER_REGNUM): Define.
2475         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
2476         argument pointer.
2477         (FIRST_PARM_OFFSET): Update for argument pointer.
2478         (INITIAL_FRAME_POINTER_OFFSET): Delete.
2479         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
2480         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
2481         frame pointer and argument pointer.
2482
2483 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
2484
2485         PR debug/46561
2486         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
2487         when looking for immediate uses.
2488
2489         PR tree-optimization/45830
2490         * stmt.c (expand_switch_using_bit_tests_p): New function.
2491         (expand_case): Use it.
2492         * tree.h (expand_switch_using_bit_tests_p): New prototype.
2493         * tree-switch-conversion.c (struct switch_conv_info): Add
2494         bit_test_uniq, bit_test_count and bit_test_bb fields.
2495         (check_range): Fix a comment.
2496         (check_process_case): Compute bit_test_uniq and bit_test_count.
2497         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
2498         allocation.
2499         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
2500         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
2501         (array_value_type): New function.
2502         (build_one_array): Use it, if it returned different type,
2503         fold_convert all constructor fields and convert back to the
2504         wider type in the generated code.
2505         (process_switch): Initialize bit_test_uniq, bit_test_count and
2506         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
2507         returned true.
2508
2509 2010-11-19  Michael Matz  <matz@suse.de>
2510
2511         PR tree-optimization/46077
2512         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
2513
2514 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
2515
2516         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2517         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
2518         function.
2519         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2520
2521 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2522
2523         * mode-switching.c (optimize_mode_switching): Use
2524         FOR_BB_INSNS instead of open-coded loop.
2525         * cfgrtl.c (redirect_branch_edge): Ditto.
2526
2527 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
2528
2529         PR target/46436
2530         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
2531         to accomodate 32 bit HOST_WIDE_INT.
2532         (m68hc11_emit_logical): Remove unused variable insn.
2533         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
2534         this_insn_uses_iy before use.
2535
2536         PR target/46434
2537         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
2538
2539 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2540
2541         PR c/46547
2542         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
2543         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
2544
2545 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2546
2547         * doc/extend.texi (Function attributes): Document PowerPC target
2548         attributes that are supported.
2549         (Pragmas): Document that PowerPC now supports target pragmas.
2550
2551         * doc/options.texi (TargetVariable): Document TargetVariable,
2552         HeaderInclude, and SourceInclude.
2553
2554         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
2555         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
2556         -ffp-contract=off.
2557
2558         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
2559         SourceInclude directives.  Fix a cut+paste error with target save
2560         enum variables.  Sort enums in the structures after ints and
2561         before shorts.
2562         * opth-gen.awk: Ditto.
2563
2564         * configure.ac: Add support for HeaderInclude and SourceInclude option
2565         directives to add the appropriate files to the dependency lists.
2566         * configure: Regenerate.
2567         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
2568         (OPTIONS_C_EXTRA): New variable for SourceInclude.
2569         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
2570         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
2571         (gcc-options.o): Ditto.
2572         * opt-include.awk: New awk script to handle HeaderInclude and
2573         TargetInclude.
2574
2575         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
2576         gets saved in the target options.
2577         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
2578         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
2579         (-mprototype): Ditto.
2580         (-mbit-word): ditto.
2581         (-mregnames): Ditto.
2582         (-msecure-plt): Ditto.
2583         (-mbss-plt): Ditto.
2584         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
2585         (-mpowerpc-gfxopt): Ditto.
2586         (-mmfcrf): Ditto.
2587         (-mpopcntb): Ditto.
2588         (-mfprnd): Ditto.
2589         (-mcmpb): Ditto.
2590         (-mmmfpgpr): Ditto.
2591         (-maltivec): Ditto.
2592         (-mhard-dfp): Ditto.
2593         (-mmulhw): Ditto.
2594         (-mdlmzb): Ditto.
2595         (-mmultiple): Ditto.
2596         (-mstring): Ditto.
2597         (-mpopcntd): Ditto.
2598         (-mfriz): Ditto.
2599         (-mvsx): Ditto.
2600         (-mno-update): Ditto.
2601         (-mavoid-indexed-addresses): Ditto.
2602         (-mtls-markers): Ditto.
2603         (-msched-epilog): Ditto.
2604         (-msched-prolog): Ditto.
2605         (-maix-struct-return): Ditto.
2606         (-msvr4-struct-return): Ditto.
2607         (-mxl-compat): Ditto.
2608         (-mrecip-precision): Ditto.
2609         (-mfp-in-toc): Ditto.
2610         (-msum-in-toc): Ditto.
2611         (-mvrsave): Ditto.
2612         (-mblock-move-inline-limit=): Ditto.
2613         (-misel): Ditto.
2614         (-mpaired): Ditto.
2615         (-mlongcall): Ditto.
2616         (-mgen-cell-microcode): Ditto.
2617         (-mwarn-cell-microcode): Ditto.
2618         (-mwarn-altivec-long): Ditto.
2619         (-mprioritize-restricted-insns=): Ditto.
2620         (-msingle-float): Ditto.
2621         (-mdouble-float): Ditto.
2622         (-msimple-fpu): Ditto.
2623         (-mxilinx-fpu): Ditto.
2624         * config/rs6000/aix64.opt (-mpe): Ditto.
2625
2626         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
2627         (rs6000_cpu): Move variable to be a target variable.  Rename
2628         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
2629         -mdebug=<xxx> variables into a single int.
2630         (rs6000_always_hint): Ditto.
2631         (rs6000_sched_groups): Ditto.
2632         (rs6000_align_branch_targets): Ditto.
2633         (rs6000_sched_costly_dep): Ditto.
2634         (rs6000_sched_insert_nops): Ditto.
2635         (rs6000_long_double_type_size): Ditto.
2636         (rs6000_ieeequad): Ditto.
2637         (rs6000_altivec_abi): Ditto.
2638         (rs6000_spe): Ditto.
2639         (rs6000_spe_abi): Ditto.
2640         (rs6000_float_gprs): Ditto.
2641         (rs6000_darwin64_abi): Ditto.
2642         (can_override_loop_align): Ditto.
2643         (rs6000_sdata): Ditto.
2644         (rs6000_tls_size): Ditto.
2645         (rs6000_current_abi): Ditto.
2646         (rs6000_traceback): Ditto.
2647         (rs6000_alignment_flags): Ditto.
2648         (rs6000_current_cmodel): Ditto.
2649         (rs6000_recip_control): Ditto.
2650         (rs6000_cpu_index): Ditto.
2651         (rs6000_tune_index): Ditto.
2652         (rs6000_debug): Ditto.
2653         (rs6000_target_flags_explict): Ditto.
2654
2655         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
2656         declaration.
2657
2658         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
2659         cmodel.  Change all uses.
2660
2661         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
2662         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
2663         Rename cmodel to rs6000_current_cmodel.
2664         (rs6000_sched_groups): Ditto.
2665         (rs6000_align_branch_targets): Ditto.
2666         (rs6000_sched_costly_dep): Ditto.
2667         (rs6000_sched_insert_nops): Ditto.
2668         (rs6000_long_double_type_size): Ditto.
2669         (rs6000_ieeequad): Ditto.
2670         (rs6000_altivec_abi): Ditto.
2671         (rs6000_spe): Ditto.
2672         (rs6000_spe_abi): Ditto.
2673         (rs6000_float_gprs): Ditto.
2674         (rs6000_darwin64_abi): Ditto.
2675         (can_override_loop_align): Ditto.
2676         (rs6000_sdata): Ditto.
2677         (rs6000_tls_size): Ditto.
2678         (rs6000_current_abi): Ditto.
2679         (rs6000_traceback): Ditto.
2680         (rs6000_alignment_flags): Ditto.
2681         (rs6000_current_cmodel): Ditto.
2682         (rs6000_recip_control): Ditto.
2683         (rs6000_cpu_index): Ditto.
2684         (rs6000_tune_index): Ditto.
2685         (rs6000_debug): Ditto.
2686         (rs6000_target_flags_explict): Ditto.
2687         (rs6000_sched_insert_nops_str): Make static.
2688         (rs6000_sched_costly_dep_str): Ditto.
2689         (rs6000_recip_name): Ditto.
2690         (rs6000_abi_name): Ditto.
2691         (rs6000_sdata_name): Ditto.
2692         (enum rs6000_traceback_name): Move to rs6000-opts.h.
2693         (rs6000_parse_tls_size_option): Delete.
2694         (rs6000_valid_attribute_p): New function for target attributes and
2695         pragmas.
2696         (rs6000_function_specific_save): Ditto.
2697         (rs6000_function_specific_restore): Ditto.
2698         (rs6000_function_specific_print): Ditto.
2699         (rs6000_can_inline_p): Ditto.
2700         (rs6000_set_current_function): Ditto.
2701         (rs6000_inner_target_options): Ditto.
2702         (rs6000_debug_target_options): Ditto.
2703         (rs6000_pragma_target_parse): Ditto.
2704         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
2705         attributes and pragmas.
2706         (TARGET_OPTION_SAVE): Ditto.
2707         (TARGET_OPTION_RESTORE): Ditto.
2708         (TARGET_OPTION_PRINT): Ditto.
2709         (TARGET_CAN_INLINE_P): Ditto.
2710         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2711         (POWER_MASKS): Move to file level scope from the
2712         rs6000_option_override_internal function.
2713         (POWERPC_MASKS): Ditto.
2714         (ISA_*_MASKS): Ditto.
2715         (struct rs6000_ptt): Ditto.
2716         (processor_target_table): Ditto.
2717         (rs6000_cpu_name_lookup): Map cpu name to an index in
2718         processor_target_table.
2719         (rs6000_debug_reg_global): Print more information on processor
2720         options for -mdebug=reg.
2721         (rs6000_init_hard_regno_mode_ok): Add support for target
2722         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
2723         Allow -mdebug=val1,val2.  Rename cmodel variable.
2724         (rs6000_option_override_internal): Ditto.
2725         (rs6000_option_override): Ditto.
2726         (rs6000_handle_option): Ditto.
2727         (rs6000_conditional_register_usage): Add debug trace message.
2728         (struct rs6000_opt_mask): New for target attribute/pragma support.
2729         (rs6000_opt_masks): Ditto.
2730         (struct rs6000_opt_var): Ditto.
2731         (rs6000_opt_vars): Ditto.
2732         (rs6000_previous_function): Ditto.
2733
2734         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
2735         wasn't already included.
2736         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2737         (enum processor_type): Ditto.
2738         (rs6000_cpu): Ditto.
2739         (enum fpu_type_t): Ditto.
2740         (fpu_type): Ditto.
2741         (enum rs6000_dependence_cost): Ditto.
2742         (enum rs6000_nop_insertion): Ditto.
2743         (enum group_termination): Ditto.
2744         (rs6000_long_double_type_size): Ditto.
2745         (rs6000_ieeequad): Ditto.
2746         (rs6000_altivec_abi): Ditto.
2747         (rs6000_spe_abi): Ditto.
2748         (rs6000_spe): Ditto.
2749         (rs6000_float_gprs): Ditto.
2750         (rs6000_alignment_flags): Ditto.
2751         (rs6000_sched_insert_nops): Ditto.
2752         (enum rs6000_vector): Ditto.
2753         (enum rs6000_abi): Ditto.
2754         (rs6000_current_opt): Ditto.
2755         (rs6000_debug_*): Delete.
2756         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2757         (TARGET_DEBUG*): Ditto.
2758
2759         * config/rs6000/rs6000-opts.h: New header file to define the enums
2760         that are used in target variables that are now defined in rs6000.opt.
2761
2762         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2763         rs6000-opts.h.
2764         (rs6000_sdata): Ditto.
2765         (rs6000_abi_name): Delete.
2766         (rs6000_sdata_name): Ditto.
2767         (rs6000_tls_size_string): Ditto.
2768
2769 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2770
2771         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2772         Variable entries.
2773         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2774         should_emit_struct_debug): Move from opts.c.
2775         * flag-types.h (enum debug_struct_file): Move from opts.c.
2776         * flags.h (should_emit_struct_debug): Remove.
2777         (base_of_path): Declare.
2778         (set_struct_debug_option): Add gcc_options parameter.
2779         * optc-gen.awk, opth-gen.awk: Handle array variables.
2780         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2781         debug_struct_generic): Remove.
2782         (set_struct_debug_option): Add gcc_options parameter.
2783         (base_of_path): Remove static.
2784         (main_input_basename, main_input_baselength, matches_main_base,
2785         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2786         Remove.
2787         * toplev.c (main_input_basename, main_input_baselength): Define
2788         here.
2789         * toplev.h (main_input_basename, main_input_baselength): Declare
2790         here.
2791
2792 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2793
2794         * common.opt (flag_instrument_functions_exclude_functions,
2795         flag_instrument_functions_exclude_files): New Variable definitions.
2796         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2797         * gimplify.c (char_p): Declare type and vectors.
2798         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2799         * opts.c (flag_instrument_functions_exclude_functions,
2800         flag_instrument_functions_exclude_files): Remove.
2801         (add_comma_separated_to_vector): Take void **.
2802         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2803         (common_handle_option): Use options structure for
2804         -finstrument-functions-exclude- options.
2805
2806 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2807
2808         * doc/options.texi (Var): Document effects of Defer.
2809         (Defer): Document.
2810         * opt-functions.awk (var_type, var_set): Handle deferred options.
2811         * opts-common.c (set_option): Handle CLVC_DEFER.
2812         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2813         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2814         fstack-limit-symbol=): Mark as deferred.
2815         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2816         plugin.h.
2817         (print_filtered_help): Don't report state of CLVC_DEFER options.
2818         (common_handle_option): Move code for OPT_fcall_used_,
2819         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2820         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2821         OPT_fstack_limit_symbol_ to opts-global.c.
2822         (option_enabled, get_option_state): Handle CLVC_DEFER.
2823         * opts.h: Include vec.h.
2824         (enum cl_var_type): Add CLVC_DEFER.
2825         (cl_deferred_option): Define type and vectors.
2826         (handle_common_deferred_options): Declare.
2827         * opts-global.c: New.
2828         * toplev.c (toplev_main): Call handle_common_deferred_options
2829         * Makefile.in (OPTS_H): Include $(VEC_H).
2830         (OBJS-common): Include opts-global.o.
2831         (opts.o): Update dependencies.
2832         (opts-global.o): Add dependencies.
2833
2834 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2835
2836         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2837         to objc_declare_protocols.
2838
2839 2010-11-19  Richard Guenther  <rguenther@suse.de>
2840
2841         PR lto/45789
2842         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2843         IDENTIFIERs do not stream TREE_TYPE.
2844         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2845
2846 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2847
2848         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2849
2850 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2851
2852         PR target/45870
2853         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2854         non-delegitimized TLS UNSPECs.
2855
2856 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2857             Ian Lance Taylor  <iant@google.com>
2858
2859         * config/darwin-c.c (darwin_additional_format_types): Export.
2860
2861 2010-11-18  Paul Koning  <ni1d@arrl.net>
2862
2863         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2864         pointer.
2865
2866 2010-11-18  Paul Koning  <ni1d@arrl.net>
2867
2868         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2869         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2870         * config/pdp11/pdp11.opt (-mabshi): Delete.
2871
2872 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2873
2874         * resource.h (struct resources): Fix typo in the comment.
2875
2876 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2877
2878         PR target/46546
2879         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2880
2881 2010-11-18  Richard Henderson  <rth@redhat.com>
2882
2883         PR middle-end/46515
2884         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2885         maybe_copy_epilogue_insn; handle prologue insns as well.
2886         * rtl.h, cfglayout.c: Update for rename.
2887         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2888         RTX_FRAME_RELATED_P insns.
2889
2890 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2891
2892         PR middle-end/46534
2893         * builtins.c (fold_builtin_printf): Don't copy and modify string
2894         before build_string_literal, instead modify what
2895         build_string_literal returned.
2896
2897 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2898
2899         PR c/33193
2900         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2901         REALPART_EXPR and IMAGPART_EXPR.
2902
2903 2010-11-18  Richard Guenther  <rguenther@suse.de>
2904
2905         PR tree-optimization/46172
2906         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2907         function.
2908         (slpeel_tree_peel_loop_to_edge): Call it.
2909
2910 2010-11-18  Jeff Law  <law@redhat.com>
2911
2912         PR middle-end-optimization/46297
2913         * postreload.c (reload_combine_note_store): Deal with embedded
2914         side effects in MEM expressions.
2915
2916 2010-11-18  Richard Guenther  <rguenther@suse.de>
2917
2918         PR lto/45089
2919         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2920         when checking is not enabled.
2921
2922 2010-11-18  Richard Guenther  <rguenther@suse.de>
2923
2924         PR lto/46525
2925         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2926         type leaders.
2927         (gimple_register_canonical_type): Also cache the canoncial type
2928         for non type leaders.
2929
2930 2010-11-18  Richard Guenther  <rguenther@suse.de>
2931
2932         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2933
2934 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2935
2936         PR middle-end/46518
2937         * sel-sched-ir.c (init_expr): Use the correct type for
2938         target_available.
2939         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2940
2941 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2942
2943         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2944         as well as -mrelocatable at the same time.
2945
2946 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2947
2948         PR target/46422
2949         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2950         Call the clz builtin.
2951
2952 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2953             Steve Ellcey  <sje@cup.hp.com>
2954
2955         PR middle-end/31490
2956         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2957         if section attribute used.
2958
2959 2010-11-17  Jan Hubicka  <jh@suse.cz>
2960
2961         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2962         expand errno setting variant when optimizing for size.
2963
2964 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2965
2966         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2967         Reverse backward loop.  Fix formatting issues.
2968
2969 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2970
2971         * c-parser.c (c_token_is_qualifier,
2972         c_parser_next_token_is_qualifier): New.
2973         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2974         Improve error message on specs->tagdef_seen_p.
2975         (c_parser_struct_or_union_specifier): Improve error recovery.
2976         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2977         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2978         using c_parser_next_token_is_qualifier; extend it to cover
2979         a ctsk_tagdef typespec and !typespec_ok in general.
2980
2981 2010-11-17  Richard Guenther  <rguenther@suse.de>
2982
2983         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2984         (gimple_mod_pow2_value_transform): Likewise.
2985         (gimple_mod_subtract_transform): Likewise.
2986
2987 2010-11-17  Richard Guenther  <rguenther@suse.de>
2988
2989         PR lto/46504
2990         * gimple.c (gimple_register_canonical_type): Make sure to only
2991         make type leaders canonical types.
2992
2993 2010-11-17  Michael Matz  <matz@suse.de>
2994
2995         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
2996         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
2997         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
2998         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
2999         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
3000         (pass_build_ssa): ... but here.
3001         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
3002         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
3003         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
3004         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
3005         * predict.c (rebuild_frequencies): Ditto.
3006         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
3007         * emit-rtl.c (verify_rtl_sharing): Ditto.
3008         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
3009         * tree-ssa-live.c (remove_unused_locals): Ditto.
3010         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
3011         * tree-ssa.c (pass_early_warn_uninitialized,
3012         execute_update_addresses_taken, pass_update_address_taken): Ditto.
3013         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
3014         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
3015         * passes.c (pass_postreload, execute_todo): Ditto.
3016         * tree-ssanames.c (pass_release_ssa_names): Ditto.
3017
3018 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
3019
3020         * doc/invoke.texi (-dy): Remove.
3021         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
3022         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
3023         * langhooks.c (lhd_do_nothing_i): Remove.
3024         * langhooks.h (lang_hooks.parse_file): Take no arguments.
3025         * toplev.c (set_yydebug): Remove.
3026         (compile_file): Update call to lang_hooks.parse_file.
3027         (decode_d_option): Don't handle -dy.
3028
3029 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
3030
3031         PR rtl-optimization/46440
3032         * combine.c (update_cfg_for_uncondjump): When changing
3033         an indirect jump into unconditional jump, remove BARRIERs
3034         from bb's footer.
3035
3036 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
3037
3038         * opts.c (target_handle_option): Do not assert that loc ==
3039         UNKNOWN_LOCATION.
3040
3041 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
3042             Richard Guenther  <rguenther@suse.de>
3043
3044         PR middle-end/45838
3045         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
3046         call_may_clobber_ref_p_1): Return true for __sync_* and some
3047         OpenMP builtins that act as threading barriers.
3048
3049 2010-11-17  Richard Guenther  <rguenther@suse.de>
3050
3051         PR tree-optimization/46498
3052         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
3053
3054 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3055
3056         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
3057         (xtensa_function_arg_boundary): ...this.
3058         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
3059         thinko in declaration.
3060         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
3061         number of parameters to picochip_function_arg_boundary.
3062         (picochip_arg_advance): Likewise.
3063
3064 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3065
3066         PR target/46512
3067         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
3068         under check for type.
3069
3070 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3071
3072         * ifcvt.c (dead_or_predicable): Fix typo.
3073
3074 2010-11-16  Richard Henderson  <rth@redhat.com>
3075
3076         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
3077         * config/s390/s390.opt (mfused-madd): Remove.
3078         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
3079         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3080         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
3081         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
3082
3083 2010-11-16  Richard Henderson  <rth@redhat.com>
3084
3085         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
3086         * config/rs6000/rs6000.opt (mfused-madd): Remove.
3087         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
3088         (*altivec_vmaddfp_1): Remove.
3089         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
3090         (altivec_mulv4sf3): Expand to FMA directly.
3091         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
3092         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
3093         * config/rs6000/paired.md (paired_madds0): Use FMA.
3094         (paired_madds1): Likewise.
3095         (*paired_madd): Rename from paired_madd; use FMA.
3096         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
3097         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
3098         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
3099         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
3100         (rs6000_emit_madd): Use fma_optab.
3101         (rs6000_emit_msub): Use fms_optab.
3102         (rs6000_emit_nmsub): Expand the FMA pattern directly.
3103         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
3104         (*fmasf4_fpr): Rename from fmasf4_fpr.
3105         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
3106         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
3107         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
3108         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
3109         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
3110         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
3111         (*fmadf4_fpr): Rename from fmadf4_fpr.
3112         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
3113         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
3114         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
3115         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
3116         (fmasf4, fmadf4): Macroize into...
3117         (fma<FMA_F>4): ... here.
3118         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
3119         (nfma<FMA_F>4, nfms<FMA_F>4): New.
3120         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
3121         TARGET_FUSED_MADD.
3122         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
3123         (*vsx_fmadd<mode>4_1): Remove.
3124         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
3125         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
3126         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
3127         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
3128         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
3129         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
3130         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
3131
3132 2010-11-16  Richard Henderson  <rth@redhat.com>
3133
3134         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
3135         (fmasf4, fnmadf4, fnmasf4): Likewise.
3136         (unnamed plus+mult insns and splitters): Delete.
3137
3138 2010-11-16  Richard Henderson  <rth@redhat.com>
3139
3140         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
3141         (fnma<VSF>4): Rename from fnms_<VSF>.
3142         (fms<VSF>4): Rename from fms_<VSF>.
3143         (fma<VDF>4): Rename from fma_<VDF>.
3144         (fms<VDF>4): Rename from fms_<VDF>.
3145         (nfma<VDF>4): Rename from fnma_<VDF>.
3146         (nfms<VDF>4): Rename from fnms_<VDF>.
3147         (fnma<VDF>4, fnms<VDF>4): New expanders.
3148         (floatunsdisf2): Update for the renames.
3149         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
3150         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
3151
3152 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3153
3154         PR rtl-optimization/46490
3155         * combine.c (expand_compound_operation): Fix thinko.
3156
3157 2010-11-16  Richard Henderson  <rth@redhat.com>
3158
3159         PR target/46470
3160         * recog.c (peep2_attempt): Convert frame-related info when possible.
3161         (peep2_fill_buffer): Allow frame-related insns into the buffer.
3162         (peephole2_optimize): Allow peep2_attempt to fail.
3163
3164 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3165
3166         PR rtl-optimization/46315
3167         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
3168         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
3169         extracted from...
3170         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
3171         (remove_reg_equal_equiv_notes_for_defs): ...this.
3172         (delete_unmarked_insns): Adjust to above renaming.
3173         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
3174         referring to registers set in the insns being moved, if any.
3175
3176         * df-core.c (df_ref_dump): New function extracted from...
3177         (df_refs_chain_dump): ...here.  Call it.
3178         (df_regs_chain_dump): Likewise.
3179         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
3180         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
3181
3182 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
3183
3184         PR rtl-optimization/46395
3185         * postreload.c (reload_combine): Invalidate register use
3186         information on all control flow insns.
3187
3188         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
3189         LABEL_REF in UNSPEC operand.
3190
3191 2010-11-16  Jan Hubicka  <jh@suse.cz>
3192
3193         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
3194         when !flag_toplevel_reorder do not remove unless variable is
3195         COMDAT or ARTIFICIAL.
3196         * ipa.c (varpool_can_remove_if_no_refs): ... here.
3197         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
3198         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
3199         * varpool.c (decide_is_variable_needed): Do not handle visibility
3200         issues.
3201         (varpool_finalize_decl): Likewise.
3202         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
3203         update outdated comment on DECL_RTL_SET_P check.
3204
3205 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3206
3207         * config/sol2.h (NM_FLAGS): Define.
3208         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
3209         * doc/tm.texi: Update.
3210
3211 2010-11-16  Nick Clifton  <nickc@redhat.com>
3212
3213         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
3214         (msubsf4): Rename to fmssf4, and use fma.
3215         (nmaddsf4): Rename to fnmasf4 and use fma.
3216         (nmsubsf4): Rename to fnmssf4 and use fma.
3217
3218 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
3219
3220         PR target/44762
3221         * config/score/score3.c (score3_return_in_memory): Constify arguments.
3222         (score3_in_small_data_p, score3_function_value): Likewise.
3223         (score3_trampoline_init): Use LCT_NORMAL.
3224         (score3_print_operand): Initialize code as UNKNOWN.
3225         * config/score/predicates.md (score_load_multiple_operation):
3226         Remove unused variable.
3227         (score_store_multiple_operation): Likewise.
3228         * config/score/score7.c (score7_return_in_memory): Constify arguments.
3229         (score7_in_small_data_p, score7_function_value): Likewise.
3230         (score7_trampoline_init): Use LCT_NORMAL.
3231         (score7_print_operand): Initialize code as UNKNOWN.
3232         * config/score/score3.h (score3_return_in_memory): Update prototype.
3233         (score3_in_small_data_p, score3_function_value): Likewise.
3234         * config/score/score-protos.h (score_function_value): Likewise.
3235         * config/score/score7.h (score7_return_in_memory): Update prototype.
3236         (score7_in_small_data_p, score7_function_value): Likewise.
3237         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
3238         (score_return_in_memory, score_pass_by_reference): Constify arguments.
3239         (score_output_mi_thunk, score_function_prologue): Don't return a value.
3240         (score_function_epilogue, score_in_small_data_p): Likewise.
3241         (score_option_override, score_asm_trampoline_template): Likewise.
3242         (score_trampoline_init, score_print_operand): Likewise.
3243         (score_print_operand_address, score_prologue): Likewise.
3244         (score_epilogue, score_call, score_call_value): Likewise.
3245         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
3246         (score_function_arg_advance): Likewise. Make static.
3247         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
3248         (score_function_arg, score_legitimate_address_p): Make static.
3249         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
3250         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
3251         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
3252         Allow (W) == HOST_BITS_PER_WIDE_INT.
3253
3254         PR java/46386
3255         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
3256         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
3257
3258 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3259
3260         * config/arc/arc.c: Delete pasto.
3261         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
3262
3263 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
3264
3265         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
3266         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
3267         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
3268         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3269         (mn10300_preferred_reload_class,
3270         mn10300_preferred_output_reload_class): New functions.
3271
3272 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3273
3274         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
3275         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
3276         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
3277         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
3278
3279 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3280
3281         * builtins.c (std_gimplify_va_arg_expr): Use
3282         targetm.calls.function_arg_boundary.
3283         * function.c (assign_parms, locate_and_pad_parm): Likewise.
3284         * calls.c (struct arg_data): Update comment.
3285         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
3286         * target.def (function_arg_boundary): Define.
3287         * targhooks.h (default_function_arg_boundary): Declare.
3288         * targhooks.c (default_function_arg_boundary): Define.
3289         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
3290         TARGET_FUNCTION_ARG_BOUNDARY.
3291         (FUNCTION_ARG_BOUNDARY): Delete.
3292         (TARGET_FUNCTION_ARG_BOUNDARY): New.
3293         * doc/tm.texi: Regenerate.
3294         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
3295         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
3296         * config/arc/arc.c (arc_function_arg_boundary): Define.
3297         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3298         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
3299         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
3300         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
3301         (arm_function_arg_boundary): Define.
3302         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3303         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
3304         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
3305         * config/frv/frv.c (frv_function_arg_boundary): Make static.
3306         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3307         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
3308         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
3309         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
3310         (ix86_compat_function_arg_boundary): Take and return unsigned int.
3311         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3312         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
3313         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
3314         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
3315         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3316         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
3317         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
3318         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3319         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
3320         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
3321         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
3322         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3323         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
3324         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
3325         * config/mips/mips.c (mips_function_arg_boundary): Make static.
3326         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3327         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
3328         * config/pa/pa.c (pa_function_arg_boundary): Define.
3329         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3330         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
3331         * config/picochip/picochip-protos.h
3332         (picochip_get_function_arg_boundary): Delete.
3333         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
3334         Rename to...
3335         (picochip_function_arg_boundary): ...this.  Make static.
3336         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
3337         (picochip_arg_advance): Adjust.
3338         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3339         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
3340         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
3341         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
3342         (rs6000_function_arg_boundary): ...this.  Make static.
3343         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
3344         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3345         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
3346         * config/rx/rx.c (rx_function_arg_boundary): Define.
3347         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3348         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
3349         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
3350         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3351         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
3352         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
3353         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
3354         (xtensa_function_arg_boundary): ...this.  Make static.
3355         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3356
3357 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3358
3359         * expr.c (alignment_for_piecewise_move): New function.
3360         (widest_int_mode_for_size): New function.
3361         (move_by_pieces, move_by_pieces_ninsns): Call them.
3362         (can_store_by_pieces, store_by_pieces_1): Likewise.
3363
3364 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3365
3366         * gcc.c (char_p): Define.  Define a VEC of it.
3367         (n_linker_options, n_assembler_options, n_preprocessor_options):
3368         Delete.
3369         (linker_options, assembler_options, preprocessor_options): Convert
3370         to a VEC.
3371         (add_preprocessor_option): Adjust.
3372         (add_assembler_option): Adjust.
3373         (add_linker_option): Adjust.
3374         (do_specs_vec): New function.
3375         (do_spec_1): Call it.  Adjust for new types.
3376
3377 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3378
3379         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
3380         (sreal.o, statistics.o, stringpool.o): Likewise.
3381
3382 2010-11-16  Richard Guenther  <rguenther@suse.de>
3383
3384         PR tree-optimization/44545
3385         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
3386         statements are not reassociatable.
3387         (reassociate_bb): Likewise.
3388
3389 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3390
3391         * bitmap.c: Delete unnecessary includes.
3392         * ebitmap.c: Likewise.
3393         * et-forest.c: Likewise.
3394         * sreal.c: Likewise.
3395         * statistics.c: Likewise.
3396         * stringpool.c: Likewise.
3397         * double-int.c: Add comment for inclusion of tm.h.
3398
3399 2010-11-16  Richard Guenther  <rguenther@suse.de>
3400