OSDN Git Service

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