OSDN Git Service

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