1 2010-06-25 Alan Modra <amodra@gmail.com>
3 * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
4 * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
5 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6 CMODEL_LARGE as default.
7 * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
8 (offsettable_ok_by_alignment): Delete.
9 (rs6000_emit_move): Remove mcmodel=medium optimization.
11 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
13 With large parts from Jim Wilson:
15 * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
16 WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
17 * optabs.c (optab_for_tree_code): Likewise.
18 (expand_widen_pattern_expr): Likewise.
19 * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
20 out of execute_optimize_widening_mul.
21 (convert_plusminus_to_widen): New function.
22 (execute_optimize_widening_mul): Use the two new functions.
23 * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
24 Remove code to generate widening multiply-accumulate. Add support
25 for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
26 * gimple-pretty-print.c (dump_ternary_rhs): New function.
27 (dump_gimple_assign): Call it when appropriate.
28 * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
29 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
30 (expand_gimple_stmt_1): Likewise.
31 (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
32 WIDEN_MULT_MINUS_EXPR.
33 * tree-ssa-operands.c (get_expr_operands): Likewise.
34 * tree-inline.c (estimate_operator_cost): Likewise.
35 * gimple.c (extract_ops_from_tree_1): Renamed from
36 extract_ops_from_tree. Add new arg for a third operand; fill it.
37 (gimple_build_assign_stat): Support operations with three operands.
38 (gimple_build_assign_with_ops_stat): Likewise.
39 (gimple_assign_set_rhs_from_tree): Likewise.
40 (gimple_assign_set_rhs_with_ops_1): Renamed from
41 gimple_assign_set_rhs_with_ops. Add new arg for a third operand.
42 (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
43 (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
44 WIDEN_MULT_MINUS_EXPR.
45 * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
46 (extract_ops_from_tree_1): Adjust declaration.
47 (gimple_assign_set_rhs_with_ops_1): Likewise.
48 (gimple_build_assign_with_ops): Pass NULL for last operand.
49 (gimple_build_assign_with_ops3): New macro.
50 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
51 gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
53 * tree-cfg.c (verify_gimple_assign_ternary): New static function.
54 (verify_gimple_assign): Call it.
55 * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
56 (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
57 functions for dealing with three-operand statements.
58 * tree.c (commutative_ternary_tree_code): New function.
59 * tree.h (commutative_ternary_tree_code): Declare it.
60 * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for ternary
62 (gimple_assign_nonzero_warnv_p): Likewise.
63 * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
64 * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
65 (ccp_fold): Use it. Handle GIMPLE_TERNARY_RHS.
66 * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
67 (struct hashtable_expr): New member ternary in the union.
68 (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
69 (hashable_expr_equal_p): Fix indentation. Handle EXPR_TERNARY.
70 (iterative_hash_hashable_expr): Likewise.
71 (print_expr_hash_elt): Handle EXPR_TERNARY.
72 * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
73 * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
74 statements. Handle GIMPLE_TERNARY_RHS.
76 2010-06-25 Jan Hubicka <jh@suse.cz>
78 * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
80 2010-06-25 Shujing Zhao <pearly.zhao@oracle.com>
83 * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
84 parameters are not good.
85 (c_parser_parameter_declaration): Error unknown type name if the type
86 name can't start declaration specifiers.
88 2010-06-25 Joseph Myers <joseph@codesourcery.com>
90 * gcc.c (translate_options): Don't mention +e in comment.
91 (process_command): Don't handle +e specially.
93 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
95 * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
97 * ira-build.c (merge_hard_reg_conflicts): New function.
98 (create_cap_allocno, copy_info_to_removed_store_destinations,
99 propagate_some_info_from_allocno, propagate_allocno_info): Use it.
100 (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
101 (remove_unnecessary_allocnos, remove_low_level_allocnos)
102 copy_nifo_to_removed_store_destination): Use them.
103 * ira-lives.c (make_hard_regno_born): New function, split out of
105 (make_allocno_born): Likewise.
106 (make_hard_regno_dead): New function, split out of make_regno_dead.
107 (make_allocno_dead): Likewise.
108 (inc_register_pressure): New function, split out of set_allocno_live.
109 (dec_register_pressure): New function, split out of clear_allocno_live.
110 (mark_pseudo_regno_live): New function, split out of mark_reg_live.
111 (mark_hard_reg_live): Likewise. Use inc_register_pressure.
112 (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
113 (mark_hard_reg_dead): Likewise. Use dec_register_pressure.
114 (make_pseudo_conflict): Use mark_pseudo_regno_dead and
115 mark_pseudo_regno_live.
116 (process_bb_node_lives): Use mark_pseudo_regno_live,
117 make_hard_regno_born and make_allocno_dead.
118 (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
119 set_allocno_live, clear_allocno_live): Delete functions.
121 * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
122 * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
124 (ira_flattening): Use ira_parent_allocno.
125 * ira-conflicts.c (process_regs_for_copy, propagate_copies)
126 build_allocno_conflicts): Use ira_parent_or_cap_allocno.
128 * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
131 * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
132 TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
133 minmax_set_iter_cond, minmax_set_iter_next,
134 FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
135 CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
136 ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
137 ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET. All
140 * ira-int.h (struct live_range, live_range_t): Renamed from struct
141 ira_allocno_live_range and allocno_live_range_t; all uses changed.
142 * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
145 2010-06-24 Richard Earnshaw <rearnsha@arm.com>
147 * thumb2.md (thumb2_tlobits_cbranch): Delete.
148 (peephole2 to convert zero_extract/compare of single bit to
149 lshift/compare): New.
151 2010-06-24 Anatoly Sokolov <aesok@post.ru>
153 * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
154 recursive call and call to 'int_const_binop'.
155 (build_range_check, fold_cond_expr_with_comparison, unextend,
156 fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
157 multiple_of_p): Adjust call to const_binop.
159 2010-06-24 Uros Bizjak <ubizjak@gmail.com>
161 * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
162 determine size of XFmode operand.
163 (XFmode extended DFmode push splitter): Ditto.
164 (XFmode extended SFmode push splitter): Ditto.
166 2010-06-24 H.J. Lu <hongjiu.lu@intel.com>
169 * config/i386/i386.md (extract_code): New.
170 (<u>divmodqi4): Likewise.
171 (divmodhiqi3): Likewise.
172 (udivmodhiqi3): Likewise.
173 (<u>divqi3): Remvoved.
175 2010-06-24 Jakub Jelinek <jakub@redhat.com>
178 * recog.h (struct recog_data): Add is_asm field.
179 * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
180 present in constraints of inline-asm operand and memory operand
181 contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
182 (extract_insn): Initialize recog_data.is_asm.
183 * doc/md.texi (Constraints): Document operand side-effect rules.
185 2010-06-24 Andi Kleen <ak@linux.intel.com>
187 * c-parser.c (c_parser_conditional_expression): Call
188 warn_for_omitted_condop.
189 * doc/invoke.texi: Document omitted condop warning.
191 2010-06-24 Nick Clifton<nickc@redhat.com>
193 * loop-unswitch.c (compare_and_jump_seq): Assert that the last
194 insn in the sequence is a jump insn before setting its label.
196 2010-06-24 Alan Modra <amodra@gmail.com>
198 * collect2.c (main): Match exactly --version and --help.
200 2010-06-24 DJ Delorie <dj@redhat.com>
202 * config/m32c/m32c-pragma.c: Don't include rtl.h.
204 2010-06-23 Uros Bizjak <ubizjak@gmail.com>
206 * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
207 using X87MODEF mode iterator.
208 (pushsf splitter): Macroize splitter using P mode iterator.
209 (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
212 (*movxf_internal): Rename from *movxf_integer.
213 (*movxf_internal_nointeger): Rename from *movxf_nointeger.
214 (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
215 (*movdf_internal): Rename from *movdf_integer.
216 (*movdf_internal_nointeger): Rename from *movdf_nointeger.
217 (*movsf_internal): Rename from *movdf_1.
219 2010-06-23 Basile Starynkevitch <basile@starynkevitch.net>
221 * coretypes.h: (gimple_seq_node_d, gimple_seq_node)
222 (const_gimple_seq_node): Removed typedefs.
224 * gimple.h: (gimple_seq_node_d, gimple_seq_node)
225 (const_gimple_seq_node): Added typedefs moved from coretypes.h.
227 2010-06-23 H.J. Lu <hongjiu.lu@intel.com>
229 * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
230 CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
231 CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
232 and CODE_FOR_vec_extract_lo_v4df.
234 * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
235 Changed to define_insn_and_split.
236 (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
237 (vec_extract_lo_v16hi): Likewise.
238 (vec_extract_lo_v32qi): Likewise.
239 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
240 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
242 2010-06-23 Joern Rennecke <joern.rennecke@embecosm.com>
245 * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
246 * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
247 (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
248 (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
249 (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
252 * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
255 * df-core.c (struct df): Rename to df_d.
256 * df.h (struct df): Likewise.
257 * dse.h (struct df): Remove forward declaration.
258 * recog.h (struct insn_data): Rename to:
259 (struct_insn_data_d). Adjusted all users.
261 2010-06-23 Arnaud Charlet <charlet@adacore.com
264 * doc/install.texi: Update requirements to build GNAT.
266 2010-06-22 Andreas Schwab <schwab@linux-m68k.org>
268 * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
270 (m68k_sched_attr_opx_type): Remove unreachable return.
271 (m68k_sched_attr_opy_type): Likewise.
272 (m68k_sched_attr_size): Likewise.
273 (sched_get_opxy_mem_type): Likewise.
274 (m68k_sched_attr_op_mem): Likewise.
276 2010-06-22 Eric Botcazou <ebotcazou@adacore.com>
278 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
279 new statement and adjust VDEF only if necessary. Remove superfluous
280 call to maybe_clean_or_replace_eh_stmt.
281 * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
283 * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
284 * tree-inline.c (copy_bb): ...and not there.
286 2010-06-22 Cary Coutant <ccoutant@google.com>
288 * dwarf2out.c (is_nested_in_subprogram): New function.
289 (should_move_die_to_comdat): Use it.
290 (copy_ancestor_tree): Don't mark DIEs here.
291 (copy_decls_walk): Start walk from root of newly-added tree;
292 mark DIEs here instead.
294 2010-06-22 H.J. Lu <hongjiu.lu@intel.com>
296 * config/i386/i386.md (unit): Also check sseishft1.
298 2010-06-22 Jan Hubicka <jh@suse.cz>
300 * gimple.h (gimple_expr_code): Do checking on when gimple checking is
303 2010-06-22 Jan Hubicka <jh@suse.cz>
305 * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
306 df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
307 Return true if something changed.
308 * df.h (df_confluence_function_n): Return bool.
309 * df-core.c (df_worklist_propagate_forward,
310 df_worklist_propagate_backward): Track changes and ages.
311 (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
313 * dse.c (dse_confluence_n): Return always true.
315 2010-06-22 Jan Hubicka <jh@suse.cz>
317 * bitmap.c (bitmap_clear_bit): Micro optimize.
319 2010-06-22 Uros Bizjak <ubizjak@gmail.com>
321 * config/i386/i386.md (SWI1248x): New mode iterator.
326 (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
327 SWI1248x mode iterator.
328 (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
329 using SWI124 mode iterator.
330 (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
332 (*push<mode>2_prologue): Macroize insn from *pushsi2_prologue and
333 *pushdi2_prologue_rex64 using P mode iterator.
334 (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
335 using SWI48 mode iterator.
336 (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
337 (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
338 using SWI1248x mode iterator.
339 (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
340 (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
342 (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
344 (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
345 (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
347 (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
349 (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
350 (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
352 (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
354 (mov<mode>_insn_1): New expander.
355 (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
356 using SWI48x mode iterator.
358 (*movoi_internal_avx): Rename from *movoi_internal.
359 (*movti_internal_rex64): Rename from *movti_rex64.
360 (*movti_internal_sse): Rename from *movti_sse.
361 (*movdi_internal_rex64): Rename from *movdi_1_rex64.
362 (*movdi_internal): Rename from *movdi_2.
363 (*movsi_internal): Rename from *movsi_1.
364 (*movhi_internal): Rename from *movhi_1.
365 (*movqi_internal): Rename from *movqi_1.
367 (insv): Update the call to gen_movsi_insv_1 for rename.
368 * config/i386/i386.c (promote_duplicated_reg): Ditto.
370 2010-06-22 Jan Hubicka <jh@suse.cz>
372 * passes.c (execute_function_todo): Move call of statistics_fini_pass
374 (execute_todo) ... this one.
376 2010-06-22 Alan Modra <amodra@gmail.com>
379 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
380 * caller-save.c (insert_restore, insert_save): Use non-validate
381 form of adjust_address.
383 2010-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
386 * config/pa/pa.c (override_options): Disable
387 -freorder-blocks-and-partition.
389 2010-06-21 H.J. Lu <hongjiu.lu@intel.com>
392 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
394 * config/i386/i386.md (type): Add sseishft1
396 * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
397 (ppro_insn_load): Likewise.
398 (ppro_insn_store): Likewise.
399 (ppro_insn_both): Likewise.
401 * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
402 (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
404 (*vec_extractv2di_1_avx): Likewise.
405 (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
406 type. Remove atom_unit.
407 (*vec_extractv2di_1_sse2): Likewise.
409 2010-06-21 DJ Delorie <dj@redhat.com>
411 * diagnostic.h (diagnostic_classification_change_t): New.
412 (diagnostic_context): Add history and push/pop list.
413 (diagnostic_push_diagnostics): Declare.
414 (diagnostic_pop_diagnostics): Declare.
415 * diagnostic.c (diagnostic_classify_diagnostic): Store changes
416 from pragmas in a history chain instead of the global table.
417 (diagnostic_push_diagnostics): New.
418 (diagnostic_pop_diagnostics): New.
419 (diagnostic_report_diagnostic): Scan history chain to find state
420 of diagnostics as of the diagnostic location.
421 * opts.c (set_option): Pass UNKNOWN_LOCATION to
422 diagnostic_classify_diagnostic.
423 (enable_warning_as_error): Likewise.
424 * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
425 use in the history chain.
426 * c-family/c-pragma.c (handle_pragma_diagnostic): Add push/pop,
427 allow these pragmas anywhere.
428 * doc/extend.texi: Document pragma GCC diagnostic changes.
430 2010-06-21 Jakub Jelinek <jakub@redhat.com>
432 * dwarf2out.c (add_linkage_name): New function. Don't add
433 anything to DW_TAG_member DIEs.
434 (add_name_and_src_coords_attributes): Use it.
435 (gen_variable_die): Call it for C++ static data members if
436 specification is DW_TAG_member.
438 * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
439 C++ char16_t and char32_t.
441 * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
442 * genattrtab.c: Include vecprim.h.
443 (cached_attrs, cached_attr_count, attrs_seen_once,
444 attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
445 attrs_cached_after): New variables.
446 (find_attrs_to_cache): New function.
447 (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
448 (write_test_expr): Add attrs_cached argument, return it too,
449 attempt to cache non-const attributes used more than once in
450 a single case handling.
451 (write_attr_get): Use find_attrs_to_cache, for caching candidates
452 emit cached_* variables. Adjust write_attr_set callers.
453 (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
454 to find attributes that should be cached in this block. Adjust
455 write_test_expr callers.
456 (write_attr_case): Clear attrs_to_cache. Adjust write_attr_set
458 (make_automaton_attrs): Adjust write_test_expr caller.
460 * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
461 * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
462 (make_automaton_attrs): If find_tune_attr returns non-NULL,
463 write separate internal_dfa_insn_code_* and insn_default_latency_*
464 functions for each attribute's value and emit init_sched_attrs
465 function and function pointers.
466 * genattr.c (const_attrs, reservations): New variables.
467 (gen_attr): Add const attributes to const_attrs vector.
468 (check_tune_attr, find_tune_attr): New functions.
469 (main): Add reservations to reservations vector. If find_tune_attr
470 returns true, add prototype for init_sched_attrs and make
471 internal_dfa_insn_code and insn_default_latency function pointers,
472 otherwise define init_sched_attrs as dummy macro.
473 * cfgexpand.c: Include insn-attr.h.
474 (gimple_expand_cfg): Call init_sched_attrs.
476 * stmt.c (resolve_asm_operand_names): Fix handling of %%.
479 * config/i386/i386.c (ix86_gimplify_va_arg): When copying
480 va_arg from a set of register save slots into a temporary,
481 if the container is bigger than type size, do the copying
482 using smaller mode or using memcpy.
485 * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
487 (sel_print_to_dot): Remove macro.
488 (sel_print): Likewise. New prototype.
489 * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
490 (sel_print): New function.
492 2010-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
494 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
495 __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
497 2010-06-21 Nick Clifton <nickc@redhat.com>
499 * config/rx/rx.h (PTRDIFF_TYPE): Define.
500 (SMALL_REGISTER_CLASS): Define (to zero).
501 (PRINT_OPERAND): Delete.
502 (PRINT_OPERAND_ADDRESS): Delete.
503 * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
504 (rx_print_operand_address): Delete prototype.
505 * config/rx/rx.c (rx_print_operand): Make static.
506 Allow %H and %L to handle CONST_DOUBLEs.
507 (rx_print_operand_address): Make static.
508 (rx_gen_move_template): Rename local variable 'template' to
510 (rx_function_arg): Do not pass unknown sized objects in registers.
511 (TARGET_PRINT_OPERAND): Define.
512 (TARGET_PRINT_OPERAND_ADDRESS): Define.
514 2010-06-21 Jan Kratochvil <jan.kratochvil@redhat.com>
516 * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
518 2010-06-21 Kai Tietz <kai.tietz@onevision.com>
520 * config/i386/i386.c (ix86_compute_frame_layout): Avoid
521 stack-alignment for simple leaf-functions.
523 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
525 * doc/install.texi: Document bootstrap-lto.
527 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
530 * lto-streamer-in.c (input_bb): Leave debug stmts alone.
531 (input_function): Drop them here, if VTA is disabled.
533 2010-06-20 Uros Bizjak <ubizjak@gmail.com>
536 * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
538 * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
539 ix86_swapped_fp_comparsion_operator instead of
540 ix86_fp_comparison_operator.
542 (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
543 (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
544 (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
545 (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
546 (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
547 (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
549 2010-06-20 Joseph Myers <joseph@codesourcery.com>
552 * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
553 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
554 * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
555 (decode_cmdline_option): Update for this return value. Set
556 orig_option_with_args_text field. Set arg field for unknown
557 options. Make static.
558 (decode_cmdline_options_to_array): New.
559 (prune_options): Update handling of find_opt return value.
560 * opts.c (read_cmdline_option): Take decoded option. Return void.
561 (read_cmdline_options): Take decoded options.
562 (decode_options): Add parameters for decoded options. Use
563 decode_cmdline_options_to_array. Use decoded options for -O
564 scan. Use integral_argument for -O parameters. Update call to
565 read_cmdline_options.
566 (enable_warning_as_error): Update handling of find_opt return value.
567 * opts.h: Update comment on unknown options.
568 (struct cl_decoded_option): Update comments on opt_index and arg.
569 Add orig_option_with_args_text.
570 (decode_cmdline_option): Remove.
571 (decode_cmdline_options_to_array): Declare.
572 (decode_options): Update prototype.
573 * toplev.c (save_argv): Remove.
574 (save_decoded_options, save_decoded_options_count): New.
575 (read_integral_parameter): Remove.
576 (print_switch_values): Use decoded options.
577 (toplev_main): Don't set save_argv. Update call to decode_options.
578 * toplev.h (read_integral_parameter): Remove.
579 * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
581 2010-06-19 Richard Earnshaw <rearnsha@arm.com>
584 * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
586 * constraints.md (Pw, Px): New constraints.
587 * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
589 2010-06-19 H.J. Lu <hongjiu.lu@intel.com>
591 * config/i386/sse.md (fma4modesuffixf4): Removed.
592 (ssemodesuffixf2s): Likewise.
593 (ssemodesuffixf4): Likewise.
594 (ssemodesuffixf2c): Likewise.
595 (ssescalarmodesuffix2s): Likewise.
596 (avxmodesuffixf2c): Likewise.
597 (ssemodesuffix): New.
598 (ssescalarmodesuffix): Likewise.
599 Update patterns with ssemodesuffix and ssescalarmodesuffix.
601 2010-06-19 Philip Herron <herron.philip@googlemail.com>
603 * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
605 2010-06-18 H.J. Lu <hongjiu.lu@intel.com>
607 * stor-layout.c (debug_rli): Remove unused local variables.
609 2010-06-18 Eric Botcazou <ebotcazou@adacore.com>
611 PR rtl-optimization/40900
612 * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
613 original expression for later reuse.
614 <expand_decl_rtl>: Use promote_function_mode to compute the signedness
615 of the promoted RTL for a SSA_NAME on the LHS of a call statement.
617 2010-06-18 Anatoly Sokolov <aesok@post.ru>
619 * double-int.h (double_int_to_shwi, double_int_to_uhwi,
620 double_int_fits_in_uhwi_p): Implement as static inline.
621 (double_int_xor): New inline function.
622 (double_int_lrotate, double_int_rrotate, double_int_max,
623 double_int_umax, double_int_smax, double_int_min, double_int_umin,
624 double_int_smin): Declare.
625 (lrotate_double, rrotate_double): Remove declaration.
626 * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
627 double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
628 (double_int_lrotate, double_int_rrotate, double_int_max,
629 double_int_umax, double_int_smax, double_int_min, double_int_umin,
630 double_int_smin): New function.
631 * fold-const.c (int_const_binop): Clean up, use double_int_*
633 * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
634 double_int_* and immed_double_int_const functions.
636 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
638 * function.h (types_used_by_cur_var_decl): Change type to a VEC.
639 * function.c (types_used_by_cur_var_decl): Likewise.
640 (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
642 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
644 * tree.h (record_layout_info): Change type of pending_statics field
646 * stor-layout.c (start_record_layout): Store NULL into
648 (debug_rli): Call debug_vec_tree instead of debug_tree.
649 (place_field): Likewise.
650 (finish_record_layout): Likewise.
652 2010-06-18 Alan Modra <amodra@gmail.com>
654 * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
656 2010-06-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
659 * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
660 for SET source operand from SET destination operand.
662 2010-06-17 Bernd Schmidt <bernds@codesourcery.com>
664 PR rtl-optimization/39871
665 * reload1.c (init_eliminable_invariants): For flag_pic, disable
666 equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
667 (function_invariant_p): Rule out a plus of frame or arg pointer with
669 * ira.c (find_reg_equiv_invariant_const): Likewise.
671 2010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
673 * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
674 print_operand_address and puts to output the operand for CONST.
676 2010-06-17 Jakub Jelinek <jakub@redhat.com>
679 * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
682 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
684 * v850-protos.h (print_operand): Delete.
685 (print_operand_address): Delete.
686 * v850.h (PRINT_OPERAND): Delete.
687 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
688 (PRINT_OPERAND_ADDRESS): Delete.
689 * v850.c (print_operand_address): Rename to...
690 (v850_print_operand_address): ...this. Make static. Call
692 (print_operand): Rename to...
693 (v850_print_operand): ...this. Make static. Call
694 v850_print_operand_address.
695 (v850_print_operand_punct_valid_p): New function.
696 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
697 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
699 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
701 * config/sh/sh-protos.h (print_operand): Delete.
702 (print_operand_address): Delete.
703 * config/sh/sh.h (PRINT_OPERAND): Delete.
704 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
705 (PRINT_OPERAND_ADDRESS): Delete.
706 * config/sh/sh.c (sh_print_operand_address): Make static.
707 (sh_print_operand): Make static. Call sh_print_operand_address
708 and sh_print_operand.
709 (sh_print_operand_punct_valid_p): New function.
710 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
711 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
713 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
715 * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
716 (mcore_print_operand_address): Delete.
717 * config/mcore/mcore.h (PRINT_OPERAND): Delete.
718 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
719 (PRINT_OPERAND_ADDRESS): Delete.
720 * config/mcore/mcore.c (mcore_print_operand_address): Make static.
721 (mcore_print_operand): Make static.
722 (mcore_print_operand_punct_valid_p): New function.
723 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
724 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
726 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
728 * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
729 (print_operand_address): Delete.
730 * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
731 (PRINT_OPERAND_ADDRESS): Delete.
732 * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
734 (m68hc11_print_operand): Make static.
735 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
737 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
739 * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
740 (m32r_print_operand_address): Delete.
741 * config/m32r/m32r.h (m32r_punct_chars): Delete.
742 (PRINT_OPERAND): Delete.
743 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
744 (PRINT_OPERAND_ADDRESS): Delete.
745 * config/m32r/m32r.c (m32r_punct_chars): Make static.
746 (m32r_print_operand_address): Make static.
747 (m32r_print_operand): Make static.
748 (m32r_print_operand_punct_valid_p): New function.
749 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
750 (TARGET_PRINT_OPERAND_ADDRESS): Define.
752 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
754 * config/iq2000/iq2000-protos.h (print_operand): Delete.
755 (print_operand_address): Delete.
756 * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
757 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
758 (PRINT_OPERAND_ADDRESS): Delete.
759 (iq2000_print_operand_punct): Delete.
760 * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
761 (iq2000_print_operand_address): Make static.
762 (iq2000_print_operand): Make static.
763 (iq2000_print_operand_punct_valid_p): New function.
764 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
765 (TARGET_PRINT_OPERAND_ADDRESS): Define.
767 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
769 * config/frv/frv-protos.h (frv_print_operand): Delete.
770 (frv_print_operand_address): Delete.
771 * config/frv/frv.h (PRINT_OPERAND): Delete.
772 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
773 (PRINT_OPERAND_ADDRESS): Delete.
774 * config/frv/frv.c (frv_print_operand_address): Make static.
775 (frv_print_operand): Make static.
776 (frv_print_operand_punct_valid_p): New function.
777 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
778 (TARGET_PRINT_OPERAND_ADDRESS): Define.
780 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
782 * tree.h (vec_member): Declare.
783 * tree.c (vec_member): Define.
785 2010-06-17 Richard Guenther <rguenther@suse.de>
787 * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
788 * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
790 2010-06-17 Richard Guenther <rguenther@suse.de>
792 * tree-inline.c (declare_return_variable): Remove bogus code.
794 2010-06-17 Richard Guenther <rguenther@suse.de>
796 * gimplify.c (gimplify_bind_expr): Always promote complex
797 and vector variables to registers if possible.
799 2010-06-17 Richard Guenther <rguenther@suse.de>
801 * expr.c (get_inner_reference): Use double_int for bit_offset
804 2010-06-16 DJ Delorie <dj@redhat.com>
806 * common.opt (-fstrict-volatile-bitfields): new.
807 * doc/invoke.texi: Document it.
808 * fold-const.c (optimize_bit_field_compare): For volatile
809 bitfields, use the field's type to determine the mode, not the
811 * expr.c (expand_assignment): Likewise.
812 (get_inner_reference): Likewise.
813 (expand_expr_real_1): Likewise.
814 * expmed.c (store_fixed_bit_field): Likewise.
815 (extract_bit_field_1): Likewise.
816 (extract_fixed_bit_field): Likewise.
818 2010-06-16 Richard Guenther <rguenther@suse.de>
820 * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
822 2010-06-16 Douglas B Rupp <rupp@gnat.com>
824 * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
825 (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
826 * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
828 * sdbout.c: Likewise.
829 * vmsdbgout.c: Likewise.
830 * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
831 * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
832 * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
833 (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
834 * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
835 * dwarf2out.c (dw_fde_struct): New fields
836 dw_fde_vms_{end,begin}_prologue.
837 (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
838 (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
839 (dwarf2out_vms_end_prologue): New function.
840 (dwarf2out_vms_begin_epilogue): New function.
841 (dw_val_struct): New value dw_val_class_vms_delta.
842 (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
843 begin_epilogue for VMS.
844 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
845 new static functions.
846 (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
847 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
849 (print_die): New case dw_val_class_vms_delta.
850 (attr_checksum): Likewise.
851 (same_dw_val_p: Likewise.
852 (size_of_die): Likewise.
853 (value_format): Likewise.
854 (output_die): Likewise.
855 (gen_subprogram_die): Call add_AT_vms_delta on VMS.
856 (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
857 * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
858 dwarf2out_cfi_begin_epilogue
859 * final.c (final_scan_insn): Likewise. Call begin_epilogue.
861 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
863 * config/cris/cris-protos.h (cris_print_operand): Delete.
864 (cris_print_operand_address): Delete.
865 * config/cris/cris.h (PRINT_OPERAND): Delete.
866 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
867 (PRINT_OPERAND_ADDRESS): Delete.
868 * config/cris/cris.c (cris_print_operand_address): Make static.
869 (cris_print_operand): Make static.
870 (cris_print_operand_punct_valid_p): New function.
871 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
872 (TARGET_PRINT_OPERAND_ADDRESS): Define.
874 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
876 * config/arm/arm-protos.h (arm_print_operand): Delete.
877 (arm_print_operand_address): Delete.
878 * config/arm/arm.h (PRINT_OPERAND): Delete.
879 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
880 (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
881 (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
882 * config/arm/arm.c (arm_print_operand_address): ...here. New function.
883 (arm_print_operand): Make static.
884 (arm_print_operand_punct_valid_p): New function.
885 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
886 (TARGET_PRINT_OPERAND_ADDRESS): Define.
888 2010-06-16 Nick Clifton <nickc@redhat.com>
890 * config/rx/constraints.md (NEGint4): New constraint.
891 * config/rx/rx.md (attr cc): Add set_zsc.
892 (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
895 (call_internal): Clobber the cc0 register.
896 (call_value_internal): Likewise.
897 (cstoresi4): Likewise.
900 (addsi3): Add alternative to handle small negative constants.
902 (addsi3): Do not set the O bit in the cc0 register.
906 (andsi3): Reorder alternatives to prefer shorter forms.
909 (negsi2): Note that the cc0 flags are set.
910 (rotlsi3): Note that only the Z and S bits are set in cc0.
913 (subsf3): Use %Q for the MEM operand.
914 (fix_truncsfsi2): Likewise.
915 (floatsisf2): Likewise.
916 (bitset): Remove early clobber from destination.
917 (bitset_in_memory): Likewise.
918 (lrintsf2): Clobber the cc0 register.
919 * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
920 (rx_print_operand): Handle %N.
922 2010-06-16 Jan Hubicka <jh@suse.cz>
924 * df-core.c (df_compact_blocks): Free problem_temps vector.
926 2010-06-16 Martin Jambor <mjambor@suse.cz>
928 PR tree-optimization/43905
929 * tree-sra.c: Include tree-inline.h.
930 (create_abstract_origin): Removed.
931 (modify_function): Version the call graph node instead of creating
932 abstract origins and dealing with same_body aliases.
933 * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
934 function is versionable.
935 * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
937 2010-06-16 Maxim Kuvyrkov <maxim@codesourcery.com>
939 * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
940 (CHOOSE_DYNAMIC_LINKER): Update.
942 2010-06-15 Uros Bizjak <ubizjak@gmail.com>
944 * config/i386/i386.c (*prefetch_sse_<mode>): Macroize insn from
945 *prefetch_sse and *prefetch_sse_rex using P mode iterator.
946 (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
949 2010-06-15 Anatoly Sokolov <aesok@post.ru>
951 * target.h (struct asm_out):Add declare_constant_name field.
952 * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
953 (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
954 * output.h (default_asm_declare_constant_name): Declare.
955 (assemble_label): Update prototype.
956 * varasm.c (assemble_constant_contents): Use
957 targetm.asm_out.declare_constant_name target hook.
958 (assemble_label): Add 'file' argument.
959 (default_asm_declare_constant_name): New function.
960 * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
961 * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
962 (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
964 * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
965 * config/darwin.c (darwin_asm_declare_constant_name): New function.
966 (machopic_output_indirection): Update assemble_label argument list.
967 * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
968 (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
970 2010-06-15 Sebastian Pop <sebastian.pop@amd.com>
973 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
974 size_one_node for pointer types. Do not call gmp_cst_to_tree.
976 2010-06-15 Richard Guenther <rguenther@suse.de>
978 * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
980 2010-06-15 Paul Brook <paul@codesourcery.com>
982 * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
985 2010-06-15 Alexandre Oliva <aoliva@redhat.com>
987 * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
988 don't get a vector type for output.
990 2010-06-15 Jakub Jelinek <jakub@redhat.com>
993 * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
994 * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
995 (LANG_HOOKS_DECLS): Add it.
996 * gimplify.c (omp_notice_variable): Call
997 lang_hooks.decls.omp_report_decl.
999 2010-06-15 Martin Jambor <mjambor@suse.cz>
1002 * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
1003 on the newly dead SSA name.
1005 2010-06-15 Alan Modra <amodra@gmail.com>
1007 * doc/invoke.texi: Add mcmodel to powerpc options.
1008 * configure.ac: Add HAVE_LD_LARGE_TOC test.
1009 * configure: Regenerate.
1010 * config.in: Regenerate.
1011 * config/rs6000/linux64.opt (mcmodel): New.
1012 * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
1013 (TARGET_CMODEL, SET_CMODEL): Define.
1014 (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
1015 select CMODEL_MEDIUM default.
1016 * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
1017 (TARGET_CMODEL): Define default.
1018 * config/rs6000/rs6000.c (cmodel): New variable.
1019 (rs6000_explicit_options): Add cmodel field.
1020 (rs6000_handle_option): Handle -mcmodel.
1021 (create_TOC_reference): Add largetoc_reg param. Generate high,
1022 lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
1023 (rs6000_delegitimize_address): Recognise new toc reference rtl
1024 and minimal-toc rtl.
1025 (rs6000_legitimize_reload_address): Handle new toc references.
1026 (print_operand_address): Handle legitimate_constant_pool_address_p
1027 match before lo_sum.
1028 (rs6000_eliminate_indexed_memrefs): Tidy.
1029 (rs6000_emit_move): Tweak threshold for inlining constants.
1030 Keep rs6000_emit_allocate_stack large stack frame offsets
1031 loaded into r0 inline.
1032 (rs6000_generate_compare <cmptf_internal2>): One more clobber.
1033 (tocrel_base, tocrel_offset): New variables.
1034 (toc_relative_expr_p): Set them here.
1035 (print_operand_address): Skip over any offset on constant pool address.
1036 (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
1037 (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
1038 (offsettable_ok_by_alignment): New function.
1039 (rs6000_emit_move): Address suitably aligned local symbol_refs
1040 relative to the toc pointer for -mcmodel=medium.
1041 (legitimate_constant_pool_address_p): Make param const_rtx. Add
1042 strict param. Allow lo_sum version of addressing. Verify reg
1043 used for -mminimal-toc and -mcmodel != small. Update all callers.
1044 * config/rs6000/constraints.md: Update for above change.
1045 * config/rs6000/predicates.md: Likewise.
1046 * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
1048 (tls_gd): Split for -mcmodel=medium/large.
1049 (tls_gd_high, tls_gd_low): New.
1050 (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
1051 (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
1052 (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
1053 (largetoc_high, largetoc_low): New.
1054 (cmptf_internal2): Add clobber.
1055 * config/rs6000/rs6000-protos.h: Update.
1057 2010-06-14 Changpeng Fang <changpeng.fang@amd.com>
1059 * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return
1060 true if no prefetch is going to be generated for a given group.
1061 (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
1062 estimate the prefetch_count.
1063 (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
1064 prefetch count by considering the unroll_factor and prefetch_mod
1065 for is_loop_prefetching_profitable.
1067 2010-06-14 Andreas Schwab <schwab@linux-m68k.org>
1069 * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
1070 anything if the argument is not a MEM.
1072 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
1077 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
1079 (canonicalize_loop_ivs): Likewise.
1081 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
1084 * haifa-sched.c (setup_insn_reg_pressure_info,
1085 update_register_pressure): Reject debug insns.
1086 (ready_sort): Don't setup reg pressure for debug insns.
1087 (schedule_insn): Don't update reg pressure for debug insns.
1089 2010-06-14 Richard Guenther <rguenther@suse.de>
1091 * lto-streamer.c (cached_bp): Remove.
1092 (bitpack_delete): Likewise.
1093 (bitpack_create): Likewise.
1094 (bp_get_next_word): Likewise.
1095 (bp_pack_value, bp_unpack_value): Move ...
1096 * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
1098 (struct bitpack_d): Likewise.
1099 (bitpack_create, lto_output_bitpack, lto_input_bitpack):
1100 New inline functions.
1101 * lto-streamer-out.c (lto_output_bitpack): Remove.
1102 (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
1103 (pack_value_fields): Adjust.
1104 (lto_write_tree): Likewise.
1105 (output_gimple_stmt): Likewise.
1106 (output_function): Likewise.
1107 * lto-streamer-in.c (input_gimple_stmt): Adjust.
1108 (input_function): Likewise.
1109 (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
1110 (lto_input_bitpack): Remove.
1111 (lto_materialize_tree): Adjust.
1112 * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
1113 * lto-cgraph.c (lto_output_edge): Adjust.
1114 (lto_output_node): Likewise.
1115 (lto_output_varpool_node): Likewise.
1116 (lto_output_ref): Likewise.
1117 (input_node): Likewise.
1118 (input_varpool_node): Likewise.
1119 (input_ref): Likewise.
1120 (input_edge): Likewise.
1121 (output_node_opt_summary): Likewise.
1122 (input_node_opt_summary): Likewise.
1123 * ipa-pure-const.c (pure_const_write_summary): Likewise.
1124 (pure_const_read_summary): Likewise.
1125 * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
1126 (ipa_read_indirect_edge_info): Likewise.
1127 (ipa_write_node_info): Likewise.
1128 (ipa_read_node_info): Likewise.
1130 2010-06-14 H.J. Lu <hongjiu.lu@intel.com>
1133 * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
1134 (vec_extract_lo_v16hi): Likewise.
1135 (vec_extract_lo_v32qi): Likewise.
1137 2010-06-14 Jakub Jelinek <jakub@redhat.com>
1140 * tree.h (build_call_expr): Don't define as vararg macro, instead
1142 * builtins.c (build_call_nofold): Remove.
1143 (expand_builtin_int_roundingfn, expand_builtin_pow,
1144 expand_builtin_mempcpy_args, expand_builtin_stpcpy,
1145 expand_builtin_memset_args, expand_builtin_strcmp,
1146 expand_builtin_strncmp, expand_builtin_memory_chk): Use
1147 build_call_nofold_loc instead of build_call_nofold.
1148 (build_call_expr): New function.
1150 PR tree-optimization/44508
1151 * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
1152 * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
1153 don't eliminate trivially dead stmts.
1154 * tree-vrp.c (vrp_finalize): Pass false as last argument
1155 to substitute_and_fold.
1156 * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
1157 to substitute_and_fold.
1158 * tree-ssa-ccp.c (ccp_finalize): Likewise.
1161 * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
1162 * c-family/c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
1163 (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
1164 (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
1165 ggc_strdup instead of xstrdup.
1167 2010-06-14 Ira Rosen <irar@il.ibm.com>
1169 PR tree-optimization/44507
1170 * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
1171 to build initial vector for BIT_AND_EXPR.
1172 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
1174 2010-06-14 Jakub Jelinek <jakub@redhat.com>
1176 * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
1177 adjust z10prop set_attr.
1179 2010-06-13 Jan Hubicka <jh@suse.cz>
1181 * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
1182 bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
1183 bitmap_ior_into, bitmap_xor, bitmap_xor_into,
1184 bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
1185 datastructure checks into checking asserts.
1186 * rtlanal.c (find_reg_note): Use gcc_checking_assert.
1187 * tree-ssa-sccvn.c (VN_INFO): Likewise.
1188 * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
1189 df_ref_create_structure): Likewise.
1190 * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
1191 pool_free): Use gcc_checking_assert.
1192 * alias.c (get_alias_set): Likewise.
1193 * var-tracking.c (variable_htab_free, shared_hash_copy,
1194 canonicalize_values_mark, variable_merge_over_cur): Likewise.
1195 * lto-streamer.c (bp_unpack_value): Likewise.
1197 2010-06-13 Richard Guenther <rguenther@suse.de>
1199 * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
1200 Do not stream but initialize TYPE_CANONICAL to NULL.
1201 (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
1202 * gimple.c (gimple_types_compatible_p): Disregard
1203 TYPE_STRUCTURAL_EQUALITY_P.
1204 (gimple_register_type): Use TYPE_CANONICAL as cache.
1205 * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
1206 before registering common types.
1207 * config/i386/i386.c (ix86_function_arg_boundary): Do not
1208 use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
1209 * tree.h (TYPE_CANONICAL): Clarify documentation.
1211 2010-06-13 Anatoly Sokolov <aesok@post.ru>
1213 * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
1214 LIBCALL_VALUE): Remove macros.
1215 * config/ia64/ia64-protos.h (ia64_function_value): Remove.
1216 * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1217 TARGET_FUNCTION_VALUE_REGNO_P): Define.
1218 (ia64_libcall_value, ia64_function_value_regno_p): New functions.
1219 (ia64_function_value): Make static. Handle receiving the function
1220 type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
1222 2010-06-12 Jan Hubicka <jh@suse.cz>
1224 * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
1227 2010-06-12 Bernd Schmidt <bernds@codesourcery.com>
1229 * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
1231 2010-06-12 Jan Hubicka <jh@suse.cz>
1233 * df-core.c (df_clear_bb_info): New function.
1234 (df_set_blocks): bb_info is always allocated.
1235 (df_get_bb_info): Use block_info_elt_size.
1236 (df_set_bb_info): Likewise.
1237 (df_compact_blocks): Update for new block_info.
1238 (grow_bb_info): New function.
1239 * df-problems.c (df_grow_bb_info): Move to df-core.c
1240 (df_rd_set_bb_info): Remove.
1241 (df_rd_free_bb_info): Do not free block pool.
1242 (df_rd_alloc): Do not create pool, use check for
1243 obstack presence instead of NULL pointer for new blocks.
1244 (df_rd_free): DO not free alloc pool; clear block_info.
1245 (problem_RD): Add size of block info structure.
1246 (df_lr_set_bb_info): Remove.
1247 (df_lr_free_bb_info): Do not free block pool.
1248 (df_lr_alloc): Do not create pool, use check for
1249 obstack presence instead of NULL pointer for new blocks.
1250 (df_lr_free): DO not free alloc pool; clear block_info.
1251 (problem_LR): Add size of block info structure.
1252 (df_live_set_bb_info): Remove.
1253 (df_live_free_bb_info): Do not free block pool.
1254 (df_live_alloc): Do not create pool, use check for
1255 obstack presence instead of NULL pointer for new blocks.
1256 (df_live_free): DO not free alloc pool; clear block_info.
1257 (problem_LIVE): Add size of block info structure.
1258 (problem_CHAIN): Add size of block info structure.
1259 (df_byte_lr_set_bb_info): Remove.
1260 (df_byte_lr_free_bb_info): Do not free block pool.
1261 (df_byte_lr_alloc): Do not create pool, use check for
1262 obstack presence instead of NULL pointer for new blocks.
1263 (df_byte_lr_free): DO not free alloc pool; clear block_info.
1264 (problem_BYTE_LR): Add size of block info structure.
1265 (problem_NOTE): Add size of block info structure.
1266 (df_byte_MD_set_bb_info): Remove.
1267 (df_byte_MD_free_bb_info): Do not free block pool.
1268 (df_byte_MD_alloc): Do not create pool, use check for
1269 obstack presence instead of NULL pointer for new blocks.
1270 (df_byte_MD_free): DO not free alloc pool; clear block_info.
1271 (problem_BD): Add size of block info structure.
1272 * df-scan.c (df_scan_free_internal): Free block pool.
1273 (df_scan_set_bb_info): Remove.
1274 (df_scan_free_bb_info): Check for artificial_defs instead
1275 of bb_info being non-NULL.
1276 (df_scan_alloc): DO not create df_scan_block pool.
1277 (problem_SCAN): Set size of block info.
1278 (df_bb_refs_record): Do not allocate bb_info.
1279 * df.h (df_problem): Add block_info_elt_size.
1280 (struct dataflow): Change block_info to void *.
1281 (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
1282 df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
1285 2010-06-12 Jan Hubicka <jh@suse.cz>
1287 PR tree-optimize/44485
1288 * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
1289 containing use of return value of noreturn function.
1291 2010-06-12 Anatoly Sokolov <aesok@post.ru>
1293 * targhooks.c (default_function_value): Don't use
1294 FUNCTION_OUTGOING_VALUE.
1295 * system.h (FUNCTION_OUTGOING_VALUE): Poison.
1296 * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
1298 2010-06-12 Kazu Hirata <kazu@codesourcery.com>
1300 * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
1301 Add crtfastmath.o to extra_parts.
1302 * config/mips/crtfastmath.c: New.
1303 * config/mips/linux.h (ENDFILE_SPEC): New.
1305 2010-06-12 Sebastian Pop <sebastian.pop@amd.com>
1307 * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
1308 old_type in parameter.
1309 (gcc_type_for_value): Update call to gcc_type_for_interval.
1310 (compute_type_for_level_1): Renamed compute_type_for_level.
1311 Update call to gcc_type_for_interval.
1313 2010-06-11 Joseph Myers <joseph@codesourcery.com>
1315 * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
1316 flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
1318 2010-06-11 Joseph Myers <joseph@codesourcery.com>
1320 * opts-common.c: Include options.h.
1321 (integral_argument): Move from opts.c.
1322 (decode_cmdline_option): New. Based on read_cmdline_option.
1323 * opts.c (integral_argument): Move to opts-common.c.
1324 (read_cmdline_option): Move most contents to
1325 decode_cmdline_option. Use %qs in diagnostics.
1326 * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
1327 CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
1328 decode_cmdline_option): New.
1330 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
1333 * config/i386/i386.md (UNSPEC_PARITY): New unspec.
1334 (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
1335 (partiysi2_cmp): Ditto.
1336 (*partiyhi2_cmp): Ditto.
1337 (*parityqi2_cmp): Remove.
1339 2010-06-11 Jan Hubicka <jh@suse.cz>
1341 * bitmap.h (bmp_iter_next_bit): New.
1342 (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
1344 2010-06-11 Sandra Loosemore <sandra@codesourcery.com>
1345 Eric Botcazou <ebotcazou@adacore.com>
1347 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
1350 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
1352 * config/i386/i386.md (unspec): New define_c_enum.
1355 2010-06-10 Jakub Jelinek <jakub@redhat.com>
1357 * c-family/c-cppbuiltin.c: Include cpp-id-data.h.
1358 (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
1359 (lazy_hex_fp_value): New function.
1360 (builtin_define_with_hex_fp_value): Provide definitions lazily.
1361 * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
1363 2010-06-11 Sebastian Pop <sebastian.pop@amd.com>
1366 * tree-if-conv.c (bb_predicate_s): New struct.
1367 (bb_predicate_p): New.
1368 (bb_has_predicate): New.
1369 (bb_predicate): New.
1370 (set_bb_predicate): New.
1371 (bb_predicate_gimplified_stmts): New.
1372 (set_bb_predicate_gimplified_stmts): New.
1373 (add_bb_predicate_gimplified_stmts): New.
1374 (init_bb_predicate): New.
1375 (free_bb_predicate): New.
1376 (is_predicated): Use bb_predicate.
1377 (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
1378 (predicate_bbs): Same. Gimplify the condition of the basic blocks
1379 before processing their successors.
1380 (clean_predicate_lists): Removed.
1381 (find_phi_replacement_condition): Use bb_predicate.
1382 (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless
1384 (insert_gimplified_predicates): New.
1385 (combine_blocks): Call insert_gimplified_predicates.
1386 (tree_if_conversion): Call free_bb_predicate instead of
1387 clean_predicate_lists.
1389 2010-10-11 Paul Brook <paul@codesourcery.com>
1391 * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
1392 * config/arm/arm.c (all_architectures): Change v7e-m default to
1394 * config/arm/arm-cores.def: Add cortex-m4.
1395 * config/arm/arm-tune.md: Regenerate.
1397 2010-06-11 Jan Hubicka <jh@suse.cz>
1399 * ipa-pure-const.c (special_builtlin_state): New function.
1400 (check_call): Use it instead of special casign BUILT_IN_RETURN.
1401 (propagate_pure_const): Use it.
1403 2010-06-11 Jan Hubicka <jh@suse.cz>
1405 * df-problems.c (df_live_scratch): Convert to bitmap_head.
1406 (df_live_alloc): Initialize df_live_scratch when initializing
1408 (df_live_transfer_function): Update uses of df_live_scratch.
1409 (df_live_free): Free problem_data; clear df_live_scratch before
1410 releasing the obstack.
1411 (df_md_free): Free problem data.
1413 2010-06-11 Jan Hubicka <jh@suse.cz>
1415 * doc/invoke.texi (Wsuggest-attribute): Document.
1416 (Wmissing-noreturn): Remove.
1417 * ipa-pure-const.c (warn_function_noreturn): New function.
1418 * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
1419 warn_missing_noreturn.
1420 * common.opt (Wsuggest-attribute=noreturn): New.
1421 * tree-flow.h (warn_function_noreturn): Declare.
1422 * tree-cfg.c (execute_warn_function_noreturn): Use
1423 warn_function_noreturn.
1424 (gate_warn_function_noreturn): New.
1425 (pass_warn_function_noreturn): Update.
1427 2010-06-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
1429 * c-typeck.c (handle_warn_cast_qual): Add loc
1430 parameter. Improve warning message.
1431 (build_c_cast): Pass location to handle_warn_cast_qual.
1433 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
1435 * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
1436 that operand 0 == operand 1. Use x86_maybe_negate_const_int to output
1438 (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
1440 2010-06-10 Dodji Seketeli <dodji@redhat.com>
1442 Fix bootstap on mips
1443 * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
1446 2010-06-11 Kai Tietz <kai.tietz@onevision.com>
1448 * system.h (helper_const_non_const_cast): New inline for
1450 (CONST_CAST2): For gcc version <= 4.0 use
1451 new helper to do const/non-const casting.
1453 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1455 * doc/md.texi: Document the "unspec" and "unspecv" enum names.
1456 * Makefile.in (OBJS-common): Include insn-enums.o.
1457 (insn-enums.o): New rule.
1458 (simple_generated_c): Add insn-enums.c.
1459 (build/genenums.o): New rule.
1460 (genprogmd): Add "enums".
1461 * genconstants.c (print_enum_type): Declare a C string array
1463 * genenums.c: New file.
1464 * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
1465 for UNSPEC_VOLATILE. If defined, use the "unspec" enum for both
1466 UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
1468 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1470 * doc/md.texi (define_enum_attr): Document.
1471 * rtl.def (DEFINE_ENUM_ATTR): New rtx.
1472 * read-md.h (lookup_enum_type): Declare.
1473 * read-md.c (lookup_enum_type): New function.
1474 * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
1475 * genattrtab.c (attr_desc): Add an enum_name field.
1476 (evaluate_eq_attr): Take the associated attribute as argument.
1477 Get the enum prefix from the enum_name field, if defined.
1478 Use ACONCAT rather than a fixed-length buffer. Update recursive calls.
1479 (simplify_test_exp): Pass attr to evaluate_eq_attr.
1480 (add_attr_value): New function, split out from...
1481 (gen_attr): ...here. Handle DEFINE_ENUM_ATTR.
1482 (write_test_expr): Pass attr to evaluate_eq_attr.
1483 (write_attr_get): Use the enum_name as the enum tag, if defined.
1484 (write_attr_valueq): Use the enum_name as a prefix, if defined.
1485 (find_attr): Initialize enum_name.
1486 (main): Handle DEFINE_ENUM_ATTR.
1487 * gensupport.c (process_rtx): Likewise.
1488 * config/mips/mips.h (mips_tune_attr): Delete.
1489 * config/mips/mips.md (cpu): Use define_attr_enum.
1491 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1493 * doc/md.texi (define_c_enum, define_enum): Document.
1494 * read-md.h (md_constant): Add a parent_enum field.
1495 (enum_value, enum_type): New structures.
1496 (upcase_string, traverse_enum_types): Declare.
1497 * read-md.c (enum_types): New variable.
1498 (upcase_string, add_constant): New functions.
1499 (handle_constants): Don't create the hash table here.
1501 (traverse_md_constants): Don't check for a null md_constants.
1502 (decimal_string, handle_enum, traverse_enum_types): New functions.
1503 (read_md_files): Initialize md_constants and md_enums.
1504 * genconstants.c (print_md_constant): Ignore info argument.
1505 Only print constants that belong to no enum.
1506 (print_enum_type): New function.
1507 (main): Don't pass stdout to print_md_constant. Call print_enum_type
1508 for each defined enum type.
1509 * config/mips/mips.md (processor): New define_enum.
1510 (unspec): New define_c_enum.
1511 (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
1512 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
1513 (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
1514 (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
1515 (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
1516 (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
1517 (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
1518 (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
1519 (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
1520 (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
1521 (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
1522 (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
1523 (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
1524 (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
1525 (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
1526 (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
1527 (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
1528 (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
1529 (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
1530 (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
1531 (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
1532 (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
1533 (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
1534 (UNSPEC_RDDSP): Move to mips-dsp.md.
1535 (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
1536 (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
1537 (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
1538 (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
1539 (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
1540 (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
1541 (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
1542 (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
1543 (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
1544 (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
1545 (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
1546 (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
1547 (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
1548 Moved to mips-dspr2.md.
1549 (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
1550 (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
1551 (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
1552 (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
1553 (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
1554 (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
1555 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
1556 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
1557 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
1558 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
1559 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
1560 UNSPEC_LOONGSON_PSADBH)
1561 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
1562 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
1563 (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
1564 (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1565 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1566 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1567 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
1568 (cpu): Update comment.
1569 * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
1570 (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
1571 (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
1572 (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
1573 * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
1574 UNSPEC_LOONGSON_PCMPEQ)
1575 (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
1576 UNSPEC_LOONGSON_PINSR_0)
1577 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
1578 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
1579 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
1580 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
1581 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
1582 UNSPEC_LOONGSON_PSADBH)
1583 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
1584 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
1585 (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
1586 * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1587 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1588 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1589 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
1590 * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
1591 (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
1592 (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
1593 (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
1594 (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
1595 (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
1596 (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
1597 (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
1598 (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
1599 (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
1600 (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
1601 (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
1602 (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
1603 (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
1604 (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
1605 (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
1606 (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
1607 (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
1608 (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
1609 (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
1610 (UNSPEC_RDDSP): Moved from mips.md.
1611 * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
1612 (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
1613 (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
1614 (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
1615 (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
1616 (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
1617 (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
1618 (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
1619 (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
1620 (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
1621 (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
1622 (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
1623 (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
1624 (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
1625 * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
1626 (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
1627 (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
1628 (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
1629 (UNSPEC_SCC): Moved from mips.md.
1630 * config/mips/mips.c (mips_arch, mips_tune): Change enum from
1631 "processor_type" to "processor".
1632 (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
1633 * config/mips/mips.h (processor_type): Delete.
1634 (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
1635 "processor_type" to "processor".
1637 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1639 * configure.ac (tm_include_list): Add insn-constants.h.
1640 * configure: Regenerate.
1641 * Makefile.in (GTM_H): Move insn-constants.h here from...
1643 * mkconfig.sh: Remove special handling for insn-constants.h.
1645 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1647 * Makefile.in (BUILD_RTL): Move build/read-md.o to...
1648 (BUILD_MD): ...this new variable.
1649 (simple_generated_rtl_h, simple_generated_rtl_c): New variables
1650 that include the old contents of simple_generated_h and
1652 (simple_generated_h, simple_generated_c): Include them. Add
1654 (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
1655 and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
1656 Remove these dependencies from the main rule and include
1657 insn-conditions.md in the command line only if it appears
1658 in the dependency list.
1659 (insn-constants.h, s-constants): Delete.
1660 (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
1662 (build/genmddeps.o): Likewise.
1663 (genprogrtl): New variable that contains everything from genprogmd
1664 except mddeps and constants.
1665 (genprogmd): Redefine in terms of genprogrtl. Make these programs
1666 depend on $(BUILD_MD)
1667 (genprog): New variable. Make these programs depend on
1669 * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
1670 (main): Use read_md_files instead of init_rtx_reader_args.
1671 * genconstants.c: As for genmddeps.c.
1672 * read-md.h (read_skip_construct): Declare.
1673 * read-md.c (read_skip_construct): New function.
1674 (handle_file): Allow a null handle_directive, skipping the
1676 (parse_include): Update the comment accordingly.
1678 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1680 * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
1681 * genmddeps.c: Include read-md.h.
1682 (main): Call init_rtx_reader_args instead of init_md_reader_args.
1683 * genattr.c (main): Likewise.
1684 * genattrtab.c (main): Likewise.
1685 * genautomata.c (main): Likewise.
1686 * gencodes.c (main): Likewise.
1687 * genconditions.c (main): Likewise.
1688 * genconfig.c (main): Likewise.
1689 * genconstants.c (main): Likewise.
1690 * genemit.c (main): Likewise.
1691 * genextract.c (main): Likewise.
1692 * genflags.c (main): Likewise.
1693 * genopinit.c (main): Likewise.
1694 * genoutput.c (main): Likewise.
1695 * genpeep.c (main): Likewise.
1696 * genrecog.c (main): Likewise.
1697 * genpreds.c (main): Likewise.
1698 * gensupport.h (in_fname): Move to read-md.h.
1699 (init_md_reader_args_cb): Rename to...
1700 (init_rtx_reader_args_cb): ...this and return a bool.
1701 (init_md_reader_args): Rename to...
1702 (init_rtx_reader_args): ...this and return a bool.
1703 (include_callback): Move to read-md.h.
1704 * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
1705 (file_name_list, first_dir_md_include): Move to read-md.c
1706 (first_bracket_include): Delete unused variable.
1707 (last_dir_md_include): Move to read-md.c.
1708 (process_include): Delete, moving code to read-md.c:handle_include.
1709 (process_rtx): Don't handle INCLUDE.
1710 (save_string): Delete.
1711 (rtx_handle_directive): New function.
1712 (init_md_reader_args_cb): Rename to...
1713 (init_rtx_reader_args_cb): ...this and return a boolean success value.
1715 (init_md_reader_args): Rename to...
1716 (init_rtx_reader_args): ...this and return a boolean success value.
1717 * rtl.def (INCLUDE): Delete.
1718 * rtl.h (read_rtx): Remove "int *" argument. Add "const char *"
1720 * read-rtl.c (read_conditions): Don't gobble ')' here.
1721 (read_mapping): Likewise.
1722 (read_rtx): Remove LINENO argument. Add RTX_NAME argument.
1723 Handle top-level non-rtx constructs here rather than in read_rtx_1.
1724 Store the whole queue in *X. Remove call to init_md_reader.
1725 (read_rtx_1): Rename to...
1726 (read_rtx_code): ...this. Call read_nested_rtx to read subrtxes.
1727 Don't handle top-level non-rtx constructs here. Don't handle (nil)
1729 (read_nested_rtx): New function. Handle (nil) here rather than
1731 (read_rtx_variadic): Call read_nested_rtx to read subrtxes. Don't
1733 * read-md.h (directive_handler_t): New type.
1734 (in_fname, include_callback): Moved from read-md.h.
1735 (read_constants, init_md_reader): Delete.
1736 (read_md_files): Declare.
1737 * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
1738 (last_dir_md_include_ptr, include_callback, max_include_len): Moved
1740 (read_constants): Rename to...
1741 (handle_constants): ...this. Don't gobble ')' here.
1742 (handle_include, handle_file, handle_toplevel_file)
1743 (parse_include): New functions, mostly taken from gensupport.c.
1744 (init_md_reader): Subsume into...
1745 (read_md_files): ...this new function.
1747 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1749 * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
1750 (unread_char): Decrement read_md_lineno after putting back '\n'.
1751 * read-md.c (fatal_with_file_and_line): Push back any characters
1752 that we decide not to add to the context.
1753 (read_skip_spaces): Don't increment read_md_lineno here. Avoid using
1754 fatal_expected_char in cases where '/' ends a line (for example).
1755 (read_name): Don't increment read_md_lineno here.
1756 (read_escape): Likewise.
1757 (read_quoted_string): Likewise.
1758 (read_braced_string): Likewise.
1760 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1762 * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
1763 (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
1764 * genconstants.c: Include read-md.h.
1765 * read-rtl.c (md_constants): Move to read-md.c.
1766 (md_name): Move to read-md.h.
1767 (initialize_iterators): Use leading_string_hash instead of def_hash
1768 and leading_string_eq_p instead of def_name_eq_p.
1769 (read_name): Move to read-md.c.
1770 (def_hash, def_name_eq_p): Delete.
1771 (read_constants, traverse_md_constants): Move to read-md.c.
1772 * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
1773 * read-md.h: Include hashtab.h.
1774 (md_name): Moved from read-rtl.c.
1775 (md_constant): Moved from read-md.h.
1776 (leading_string_hash, leading_string_eq_p, read_name)
1777 (read_constants, traverse_md_constants): Declare.
1778 * read-md.c (md_constants): Moved from read-rtl.c.
1779 (leading_string_hash, leading_string_eq_p): New functions.
1780 (read_name, read_constants, traverse_md_constants): Moved from
1783 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1785 * read-rtl.c (md_name): New structure.
1786 (read_name): Take an md_name instead of a buffer pointer.
1787 Use the "string" field instead of strcpy when expanding constants.
1788 (read_constants): Remove the tmp_char argument. Update the calls
1789 to read_name, using two local name buffers instead of the tmp_char
1790 argument. Merge the constant-creation code.
1791 (read_conditions): Remove the tmp_char argument. Update the calls
1792 to read_name, using a local name buffer instead of the tmp_char
1794 (read_mapping): Replace tmp_char variable with a local name buffer.
1795 Update the calls to read_name.
1796 (read_rtx_1): Likewise. Update the calls to read_constants and
1799 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1801 * Makefile.in (build/read-md.o): Depend on errors.h.
1802 * read-md.h (error_with_line): Declare.
1803 * read-md.c: Include errors.h.
1804 (message_with_line_1): New function, extracted from...
1805 (message_with_line): ...here.
1806 (error_with_line): New function.
1807 * genattrtab.c: If a call to message_with_line is followed by
1808 "have_error = 1;", replace both statements with a call to
1810 * genoutput.c: Likewise.
1811 * genpreds.c: Likewise.
1812 * genrecog.c: If a call to message_with_line is followed by
1813 "error_count++;", replace both statements with a call to
1815 (errorcount): Delete.
1816 (main): Don't check it.
1817 * gensupport.c: If a call to message_with_line is followed by
1818 "errors = 1;", replace both statements with a call to error_with_line.
1820 (process_define_cond_exec): Check have_error instead of errors.
1821 (init_md_reader_args_cb): Likewise. Don't set errors.
1823 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1825 * read-md.h (read_md_file): Declare.
1826 (read_char, unread_char): New functions.
1827 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
1828 (read_quoted_string, read_string): Remove FILE * argument.
1829 * read-md.c (read_md_file): New variable.
1830 (read_md_filename, read_md_lineno): Update comments and remove
1831 unnecessary initialization.
1832 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
1833 (read_escape, read_quoted_string, read_braced_string, read_string):
1834 Remove FILE * argument. Update calls accordingly, using read_char
1835 and unread_char instead of getc and ungetc.
1836 * rtl.h (read_rtx): Remove FILE * argument.
1837 * read-rtl.c (iterator_group): Remove FILE * argument from
1839 (iterator_traverse_data): Remove "infile" field.
1840 (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
1841 (add_mapping, read_name, read_constants, read_conditions)
1842 (validate_const_int, find_iterator, read_mapping, check_code_iterator)
1843 (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
1844 Remove file arguments from all calls, using read_char and unread_char
1845 instead of getc and ungetc.
1846 * gensupport.c (process_include): Preserve read_md_file around
1847 the include. Set read_md_file to the handle of the included file.
1848 Update call to read_rtx.
1849 (init_md_reader_args_cb): Set read_md_file to the handle of the file
1850 and remove local FILE *. Update calls to read_rtx.
1852 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1854 * read-md.h (read_rtx_lineno): Rename to...
1855 (read_md_lineno): ...this.
1856 (read_rtx_filename): Rename to...
1857 (read_md_filename): ...this.
1858 (copy_rtx_ptr_loc): Rename to...
1859 (copy_md_ptr_loc): ...this.
1860 (print_rtx_ptr_loc): Rename to...
1861 (print_md_ptr_loc): ...this.
1862 * read-md.c: Likewise. Update references after renaming.
1863 (string_obstack): Replace RTL with MD in comment.
1864 (set_rtx_ptr_loc): Rename to...
1865 (set_md_ptr_loc): ...this.
1866 (get_rtx_ptr_loc): Rename to...
1867 (get_md_ptr_loc): ...this.
1868 * genconditions.c: Update references after renaming.
1869 * genemit.c: Likewise.
1870 * genoutput.c: Likewise.
1871 * genpreds.c: Likewise.
1872 * gensupport.c: Likewise.
1873 * read-rtl.c: Likewise.
1875 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
1877 * Makefile.in (READ_MD_H): New variable.
1878 (BUILD_RTL): Add build/read-md.o.
1879 (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
1880 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
1881 (build/genattrtab.o, build/genconditions.o build/genemit.o)
1882 (build/genextract.o, build/genflags.o, build/genoutput.o)
1883 (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
1884 (build/read-md.o): New rule.
1885 * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
1886 (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
1887 * coretypes.h: ...here.
1888 * lto-wrapper.c: Include coretypes.h instead of defaults.h.
1889 * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
1890 * genattr.c: Include read-md.h.
1891 * genattrtab.c: Likewise.
1892 * genconditions.c: Likewise.
1893 * genemit.c: Likewise.
1894 * genextract.c: Likewise.
1895 * genflags.c: Likewise.
1896 * genoutput.c: Likewise.
1897 * genpreds.c: Likewise.
1898 * genrecog.c: Likewise.
1899 * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
1900 (join_c_conditions, print_c_condition, read_rtx_filename)
1901 (read_rtx_lineno): Move to read-md.h.
1902 * read-rtl.c: Include read-md.h.
1903 (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
1904 (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
1905 (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
1906 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
1907 (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
1908 (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
1909 (read_braced_string, read_string): Move to read-md.c.
1910 (read_rtx): Move some initialization to init_md_reader and call
1911 init_md_reader here.
1912 * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
1914 * gensupport.c: Include read-md.h.
1915 (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
1916 * read-md.h, read-md.c: New files.
1918 2010-06-10 Anatoly Sokolov <aesok@post.ru>
1920 * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1921 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1922 * config/moxie/moxie-protos.h (moxie_function_value): Remove.
1923 * config/moxie/moxie.c (moxie_function_value): Make static.
1924 (moxie_libcall_value, moxie_function_value_regno_p): New functions.
1925 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
1927 2010-06-10 Martin Jambor <mjambor@suse.cz>
1929 * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
1930 * dbgcnt.def (tree_sra): New counter.
1931 * tree-sra.c: Include dbgcnt.h.
1932 (gate_intra_sra): Check tree_sra debug counter.
1934 2010-06-10 Martin Jambor <mjambor@suse.cz>
1936 PR tree-optimization/44258
1937 * tree-sra.c (build_access_subtree): Return false iff there is a
1939 (build_access_trees): Likewise.
1940 (analyze_all_variable_accesses): Disqualify candidates if
1941 build_access_trees returns true for them.
1943 2010-06-10 Alexandre Oliva <aoliva@redhat.com>
1946 * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
1947 tail-recurse into canonical node. Fast-forward over
1948 non-canonical VALUEs.
1950 2010-06-10 H.J. Lu <hongjiu.lu@intel.com>
1953 * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
1954 (*addsi_1_zext) <TYPE_LEA>: Likewise.
1955 (add lea splitter): Likewise.
1956 (add_zext lea splitter): Likewise.
1958 2010-06-10 Joseph Myers <joseph@codesourcery.com>
1960 * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
1962 2010-06-10 Jan Hubicka <jh@suse.cz>
1964 * df-problems.c (df_live_problem_data): Add live_bitmaps.
1965 (df_live_alloc): Initialize problem data and live_osbtacks.
1966 (df_live_finalize): Remove obstack, problem data; do not
1968 (df_live_top_dump, df_live_bottom_dump): Do not dump old
1969 data when not allocated.
1970 (df_live_verify_solution_start): Do not allocate problem data.
1971 (df_live_verify_solution_end): Check if out is allocated.
1972 (struct df_md_problem_data): New structure.
1973 (df_md_alloc): Allocate problem data.
1974 (df_md_free): Free problem data; do not clear bitmaps.
1976 2010-06-10 Jan Beulich <jbeulich@novell.com>
1979 * configure.ac: Replace $() with ${} when intending to expand
1980 variables rather than invoking commands.
1981 * configure: Re-generate.
1983 2010-06-10 Jan Hubicka <jh@suse.cz>
1985 PR rtl-optimization/44460
1986 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
1987 TYPE_NEEDS_CONSTRUCTING sanity check.
1989 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
1991 * doc/include/fdl.texi: Move to GFDL version 1.3.
1993 * doc/cpp.texi: Move to GFDL version 1.3.
1994 * doc/gcc.texi: Move to GFDL version 1.3. Fix copyright years.
1995 * doc/gccint.texi: Move to GFDL version 1.3.
1996 * doc/gcov.texi: Move to GFDL version 1.3. Update copyright years.
1997 * doc/install.texi: Move to GFDL version 1.3. Fix copyright years.
1998 * doc/invoke.texi: Move to GFDL version 1.3.
2000 2010-06-09 Jan Hubicka <jh@suse.cz>
2002 * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
2004 (propagate) ... here; swap the order.
2006 2010-06-09 Jan Hubicka <jh@suse.cz>
2008 * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
2009 bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
2010 bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
2011 bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
2013 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
2015 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
2016 Do not the gather memory reference in the outer loop if the step
2019 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
2021 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
2022 Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
2023 8 to 4. Minor change of the related comments.
2025 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
2027 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
2028 the scev analysis when the variable is not used outside the loop
2029 in a close phi node: call compute_overall_effect_of_inner_loop.
2031 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
2033 * graphite-sese-to-poly.c (single_pred_cond): Renamed
2034 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
2035 (build_sese_conditions_before): Renamed call to single_pred_cond.
2036 (build_sese_conditions_after): Same.
2038 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
2040 * graphite-poly.h: Fix comments and indentation.
2041 * graphite-sese-to-poly.c: Same.
2042 (build_sese_conditions_before): Compute stmt and gbb only when needed.
2043 * tree-chrec.c: Fix comments and indentation.
2044 (tree-ssa-loop-niter.c): Same.
2046 2010-06-09 Eric Botcazou <ebotcazou@adacore.com>
2048 PR rtl-optimization/42461
2049 * dce.c (deletable_insn_p): Return true for const or pure calls again.
2050 * except.c (insn_could_throw_p): Return false if !flag_exceptions.
2052 2010-06-09 Jan Hubicka <jh@suse.cz>
2054 * bitmap.c (bitmap_and): Walk array forward.
2055 (bitmap_and_compl_into): Likewise.
2056 (bitmap_xor): Likewise.
2057 (bitmap_xor_into): Likewise.
2058 (bitmap_equal_p): Likewise.
2059 (bitmap_intersect_p): Likewise.
2060 (bitmap_intersect_compl_p): Likewise.
2061 (bitmap_ior_and_into): Likewise.
2062 (bitmap_elt_copy): Likewise.
2063 (bitmap_and_compl): Likewise.
2064 (bitmap_elt_ior): Likewise.
2066 2010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
2068 * opts-common.c (prune_options): Ensure replacement argv array
2069 is correctly terminated by a NULL entry.
2071 2010-06-09 Jan Hubicka <jh@suse.cz>
2073 * cgraph.h (varpool_first_static_initializer,
2074 varpool_next_static_initializer): Make checking only when
2076 * tree-vectorizer.h (vinfo_for_stmt): Remove check.
2077 (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
2078 gcc_assert to gcc_checking_assert.
2079 * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
2080 phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
2081 op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
2082 op_iter_init_phiuse, op_iter_init_phidef,
2083 array_ref_contains_indirect_ref, ref_contains_array_ref): Use
2084 gcc_checking_assert.
2085 * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
2086 * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
2087 partition_is_global, live_on_entry, live_on_exit,
2088 live_merge_and_clear): Likewise.
2089 * system.h (gcc_checking_assert): New macro.
2090 * gimple.h (set_bb_seq): Use gcc_checking_assert.
2092 2010-06-09 Jason Merrill <jason@redhat.com>
2094 * Makefile.in (TAGS): Collect tags info from c-family.
2096 2010-06-09 Jan Hubicka <jh@suse.cz>
2098 * gimple.h (gcc_gimple_checking_assert): New macro.
2099 (gimple_set_def_ops, gimple_set_use_ops,
2100 gimple_set_vuse, gimple_set_vdef,
2101 gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
2102 gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
2103 gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
2104 gimple_asm_output_op, gimple_asm_output_op_ptr,
2105 gimple_asm_set_output_op, gimple_asm_clobber_op,
2106 gimple_asm_set_clobber_op, gimple_asm_label_op,
2107 gimple_asm_set_label_op, gimple_try_set_kind,
2108 gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
2109 gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
2110 gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
2111 gimple_omp_for_index_ptr, gimple_omp_for_set_index,
2112 gimple_omp_for_initial, gimple_omp_for_initial_ptr,
2113 gimple_omp_for_set_initial, gimple_omp_for_final,
2114 gimple_omp_for_final_ptr, gimple_omp_for_set_final,
2115 gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
2116 gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
2117 conditional with ENABLE_GIMPLE_CHECKING.
2118 (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
2120 2010-06-09 Sandra Loosemore <sandra@codesourcery.com>
2122 * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
2123 (get_computation_cost_at): Use it.
2124 (determine_use_iv_cost_condition): Likewise.
2125 (determine_iv_cost): Likewise.
2127 2010-06-09 Richard Guenther <rguenther@suse.de>
2129 * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
2132 2010-06-09 Kai Tietz <kai.tietz@onevision.com>
2134 * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
2136 2010-06-09 Martin Jambor <mjambor@suse.cz>
2138 PR tree-optimization/44423
2139 * tree-sra.c (dump_access): Dump also grp_assignment_read.
2140 (analyze_access_subtree): Pass negative allow_replacements to children
2141 if the current type is scalar.
2143 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
2146 * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
2147 * doc/plugins.texi (Plugin license check): Update information
2148 on type of plugin_is_GPL_compatible.
2149 * Makefile.in (PLUGINCC): Define as $(COMPILER).
2150 (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
2152 2010-06-09 Bernd Schmidt <bernds@codesourcery.com>
2154 * config/arm/arm.c (thumb2_reorg): New function.
2155 (arm_reorg): Call it.
2156 * config/arm/thumb2.md (define_peephole2 for flag clobbering
2157 arithmetic operations): Delete.
2159 2010-06-09 Edmar Wienskoski <edmar@freescale.com>
2162 * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
2165 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
2168 * gcc-plugin.h: Encapsulate all declarations in extern "C".
2170 2010-06-08 Jan Hubicka <jh@suse.cz>
2172 * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
2173 ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
2175 2010-06-08 Sandra Loosemore <sandra@codesourcery.com>
2177 PR tree-optimization/39874
2179 * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
2181 * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
2182 same_bool_result_p): New.
2183 (and_var_with_comparison, and_var_with_comparison_1,
2184 and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
2185 (or_var_with_comparison, or_var_with_comparison_1,
2186 or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
2187 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
2188 maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
2189 of combine_comparisons.
2190 * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
2192 2010-06-08 Anatoly Sokolov <aesok@post.ru>
2194 * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2195 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2196 * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
2197 pdp11_function_value_regno_p): New functions.
2198 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2199 TARGET_FUNCTION_VALUE_REGNO_P): Define.
2201 2010-06-08 Kazu Hirata <kazu@codesourcery.com>
2203 * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
2204 Thumb-2 in the MINUS case.
2206 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2208 * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
2210 * doc/gty.texi (GTY Options): Document typed GC allocation and
2211 variable_size GTY option.
2213 * ggc-internal.h: New.
2215 * ggc.h: Update copyright year.
2216 (digit_string): Move to stringpool.c.
2217 (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
2218 (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
2219 (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
2220 (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
2221 (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
2222 (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
2223 (ggc_force_collect, ggc_get_size, ggc_statistics)
2224 (ggc_print_common_statistics): Move to ggc-internal.h.
2225 (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
2226 (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
2227 (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
2228 (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
2229 (ggc_min_heapsize_heuristic, ggc_alloc_zone)
2230 (ggc_alloc_zone_pass_stat): Remove.
2231 (ggc_internal_alloc_stat, ggc_internal_alloc)
2232 (ggc_internal_cleared_alloc_stat): New.
2233 (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
2234 (ggc_internal_vec_alloc_stat)
2235 (ggc_internal_cleared_vec_alloc_stat)
2236 (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
2237 (ggc_alloc_atomic_stat, ggc_alloc_atomic)
2238 (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
2239 (ggc_cleared_alloc_ptr_array_two_args): New.
2240 (htab_create_ggc, splay_tree_new_ggc): Redefine.
2241 (ggc_splay_alloc): Change the type of the first argument to
2243 (ggc_alloc_string): Make macro.
2244 (ggc_alloc_string_stat): New.
2245 (ggc_strdup): Redefine.
2246 (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
2247 (ggc_alloc_rtvec_sized): New.
2248 (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
2249 (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
2250 (ggc_internal_cleared_alloc_zone_stat)
2251 (ggc_internal_zone_alloc_stat)
2252 (ggc_internal_zone_cleared_alloc_stat)
2253 (ggc_internal_zone_vec_alloc_stat)
2254 (ggc_alloc_zone_rtx_def_stat)
2255 (ggc_alloc_zone_tree_node_stat)
2256 (ggc_alloc_zone_cleared_tree_node_stat)
2257 (ggc_alloc_cleared_gimple_statement_d_stat): New.
2259 * ggc-common.c: Include ggc-internal.h.
2260 (ggc_internal_cleared_alloc_stat): Rename from
2261 ggc_alloc_cleared_stat.
2262 (ggc_realloc_stat): Use ggc_internal_alloc_stat.
2263 (ggc_calloc): Remove.
2264 (ggc_cleared_alloc_htab_ignore_args): New.
2265 (ggc_cleared_alloc_ptr_array_two_args): New.
2266 (ggc_splay_alloc): Add obj_type parameter.
2267 (init_ggc_heuristics): Formatting fixes.
2269 * ggc-none.c: Update copyright year.
2270 (ggc_alloc_stat): Rename to ggc_alloc_stat.
2271 (ggc_alloc_cleared_stat): Rename to
2272 ggc_internal_cleared_alloc_stat.
2273 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
2275 * ggc-page.c: Update copyright year. Include ggc-internal.h.
2276 Remove references to ggc_alloc in comments.
2277 (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
2278 (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
2279 (new_ggc_zone, destroy_ggc_zone): Remove.
2280 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
2282 * ggc-zone.c: Include ggc-internal.h. Remove references to
2283 ggc_alloc in comments.
2284 (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
2285 (ggc_internal_alloc_zone_pass_stat): New.
2286 (ggc_internal_cleared_alloc_zone_stat): New.
2287 (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
2288 (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
2289 (new_ggc_zone, destroy_ggc_zone): Remove.
2291 * stringpool.c: Update copyright year. Include ggc-internal.h
2292 (digit_vector): Make static.
2293 (digit_string): Moved from ggc.h.
2294 (stringpool_ggc_alloc): Use ggc_alloc_atomic.
2295 (ggc_alloc_string): Rename to ggc_alloc_string_stat.
2297 * Makefile.in (GGC_INTERNAL_H): New.
2298 (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
2299 $(GGC_INTERNAL_H) to dependencies.
2301 * gentype.c: Update copyright year.
2302 (walk_type): Accept variable_size GTY option.
2303 (USED_BY_TYPED_GC_P): New macro.
2304 (write_enum_defn): Use USED_BY_TYPED_GC_P. Do not output
2305 whitespace at the end of strings.
2306 (get_type_specifier, variable_size_p): New functions.
2307 (alloc_quantity, alloc_zone): New enums.
2308 (write_typed_alloc_def): New function.
2309 (write_typed_struct_alloc_def): Likewise.
2310 (write_typed_typed_typedef_alloc_def): Likewise.
2311 (write_typed_alloc_defns): Likewise.
2312 (output_typename, write_splay_tree_allocator_def): Likewise.
2313 (write_splay_tree_allocators): Likewise.
2314 (main): Call write_typed_alloc_defns and
2315 write_splay_tree_allocators.
2317 * lto-streamer.h (lto_file_decl_data_ptr): New.
2319 * passes.c (order): Define using cgraph_node_ptr.
2321 * strinpool.c (struct string_pool_data): Declare nested_ptr using
2324 * gimple.h (union gimple_statement_d): Likewise.
2326 * rtl.h (struct rtx_def): Likewise.
2327 (struct rtvec_def): Likewise.
2329 * tree.h (union tree_node): Likewise.
2331 * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
2333 * cfgloop.c (record_loop_exits): Use htab_create_ggc.
2335 * tree-scalar-evolution.c (scev_initialize): Likewise.
2337 * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
2339 * dwarf2asm.c (dw2_force_const_mem): Likewise.
2341 * omp-low.c (lower_omp_critical): Likewise.
2343 * bitmap.h (struct bitmap_head_def): Update comment to not
2344 reference ggc_alloc.
2346 * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
2348 * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
2350 * ipa-prop.c (duplicate_ggc_array): Rename to
2351 duplicate_ipa_jump_func_array. Use typed GC allocation.
2352 (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
2354 * gimple.c (gimple_alloc_stat): Use
2355 ggc_alloc_cleared_gimple_statement_d_stat.
2357 * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
2359 * tree.c (make_node_stat): Use
2360 ggc_alloc_zone_cleared_tree_node_stat.
2361 (make_tree_vec_stat): Likewise.
2362 (build_vl_exp_stat): Likewise.
2363 (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
2364 (make_tree_binfo_stat): Likewise.
2365 (tree_cons_stat): Likewise.
2367 * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
2368 (shallow_copy_rtx_stat): Likewise.
2369 (make_node_stat): Likewise.
2371 * lto-symtab.c: Fix comment.
2373 * tree-cfg.c (create_bb): Update comment to not reference
2375 * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
2377 * varpool.c (varpool_node): Use typed GC allocation.
2378 (varpool_extra_name_alias): Likewise.
2380 * varasm.c (emutls_decl): Likewise.
2381 (get_unnamed_section): Likewise.
2382 (get_noswitch_section): Likewise.
2383 (get_section): Likewise.
2384 (get_block_for_section): Likewise.
2385 (build_constant_desc): Likewise.
2386 (create_constant_pool): Likewise.
2387 (force_const_mem): Likewise.
2389 * tree.c (build_vl_exp_stat): Likewise.
2390 (build_real): Likewise.
2391 (build_string): Likewise.
2392 (decl_debug_expr_insert): Likewise.
2393 (decl_value_expr_insert): Likewise.
2394 (type_hash_add): Likewise.
2395 (build_omp_clause): Likewise.
2397 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
2399 * tree-ssa.c (init_tree_ssa): Likewise.
2401 * tree-ssa-structalias.c (heapvar_insert): Likewise.
2403 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
2405 * tree-ssa-loop-niter.c (record_estimate): Likewise.
2407 * tree-ssa-alias.c (get_ptr_info): Likewise.
2409 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
2411 * tree-phinodes.c (allocate_phi_node): Likewise.
2413 * tree-iterator.c (tsi_link_before): Likewise.
2414 (tsi_link_after): Likewise.
2416 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
2418 * tree-dfa.c (create_var_ann): Likewise.
2420 * tree-cfg.c (create_bb): Likewise.
2422 * toplev.c (alloc_for_identifier_to_locale): Likewise.
2423 (general_init): Likewise.
2425 * stringpool.c (stringpool_ggc_alloc): Likewise.
2426 (gt_pch_save_stringpool): Likewise.
2428 * sese.c (if_region_set_false_region): Likewise.
2430 * passes.c (do_per_function_toporder): Likewise.
2432 * optabs.c (set_optab_libfunc): Likewise.
2433 (set_conv_libfunc): Likewise.
2435 * lto-symtab.c (lto_symtab_register_decl): Likewise.
2437 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
2438 (input_eh_region): Likewise.
2439 (input_eh_lp): Likewise.
2440 (make_new_block): Likewise.
2441 (unpack_ts_real_cst_value_fields): Likewise.
2443 * lto-section-in.c (lto_new_in_decl_state): Likewise.
2445 * lto-cgraph.c (input_node_opt_summary): Likewise.
2447 * loop-init.c (loop_optimizer_init): Likewise.
2449 * lambda.h (lambda_vector_new): Likewise.
2451 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
2453 * ira.c (update_equiv_regs): Likewise.
2455 * ipa.c (cgraph_node_set_new): Likewise.
2456 (cgraph_node_set_add): Likewise.
2457 (varpool_node_set_new): Likewise.
2458 (varpool_node_set_add): Likewise.
2460 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
2461 (duplicate_ipa_jump_func_array): Likewise.
2462 (ipa_read_node_info): Likewise.
2464 * ipa-cp.c (ipcp_create_replace_map): Likewise.
2466 * integrate.c (get_hard_reg_initial_val): Likewise.
2468 * gimple.c (gimple_alloc_stat): Likewise.
2469 (gimple_build_omp_for): Likewise.
2470 (gimple_seq_alloc): Likewise.
2471 (gimple_copy): Likewise.
2473 * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
2474 (gsi_insert_after_without_update): Likewise.
2476 * function.c (add_frame_space): Likewise.
2477 (insert_temp_slot_address): Likewise.
2478 (assign_stack_temp_for_type): Likewise.
2479 (allocate_struct_function): Likewise.
2480 (types_used_by_var_decl_insert): Likewise.
2482 * except.c (init_eh_for_function): Likewise.
2483 (gen_eh_region): Likewise.
2484 (gen_eh_region_catch): Likewise.
2485 (gen_eh_landing_pad): Likewise.
2486 (add_call_site): Likewise.
2488 * emit-rtl.c (get_mem_attrs): Likewise.
2489 (get_reg_attrs): Likewise.
2490 (start_sequence): Likewise.
2491 (init_emit): Likewise.
2493 * dwarf2out.c (new_cfi): Likewise.
2494 (queue_reg_save): Likewise.
2495 (dwarf2out_frame_init): Likewise.
2496 (new_loc_descr): Likewise.
2497 (find_AT_string): Likewise.
2498 (new_die): Likewise.
2499 (add_var_loc_to_decl): Likewise.
2500 (clone_die): Likewise.
2501 (clone_as_declaration): Likewise.
2502 (break_out_comdat_types): Likewise.
2503 (new_loc_list): Likewise.
2504 (loc_descriptor): Likewise.
2505 (add_loc_descr_to_each): Likewise.
2506 (add_const_value_attribute): Likewise.
2507 (tree_add_const_value_attribute): Likewise.
2508 (add_comp_dir_attribute): Likewise.
2509 (add_name_and_src_coords_attributes): Likewise.
2510 (lookup_filename): Likewise.
2511 (store_vcall_insn): Likewise.
2512 (dwarf2out_init): Likewise.
2514 * dbxout.c (dbxout_init): Likewise.
2516 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
2518 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
2520 * config/score/score7.c (score7_output_external): Likewise.
2522 * config/score/score3.c (score3_output_external): Likewise.
2524 * config/s390/s390.c (s390_init_machine_status): Likewise.
2526 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
2527 (rs6000_init_machine_status): Likewise.
2528 (output_toc): Likewise.
2530 * config/pa/pa.c (pa_init_machine_status): Likewise.
2531 (get_deferred_plabel): Likewise.
2533 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
2535 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
2537 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
2539 * config/mep/mep.c (mep_init_machine_status): Likewise.
2540 (mep_note_pragma_flag): Likewise.
2542 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
2544 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
2546 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
2548 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
2549 (i386_pe_maybe_record_exported_symbol): Likewise.
2551 * config/i386/i386.c (get_dllimport_decl): Likewise.
2552 (ix86_init_machine_status): Likewise.
2553 (assign_386_stack_local): Likewise.
2555 * config/frv/frv.c (frv_init_machine_status): Likewise.
2557 * config/darwin.c (machopic_indirection_name): Likewise.
2559 * config/cris/cris.c (cris_init_machine_status): Likewise.
2561 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
2563 * config/avr/avr.c (avr_init_machine_status): Likewise.
2565 * config/arm/arm.c (arm_init_machine_status): Likewise.
2567 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
2568 (alpha_need_linkage): Likewise.
2569 (alpha_use_linkage): Likewise.
2571 * cgraph.c (cgraph_allocate_node): Likewise.
2572 (cgraph_create_edge_1): Likewise.
2573 (cgraph_create_indirect_edge): Likewise.
2574 (cgraph_add_asm_node): Likewise.
2576 * cfgrtl.c (init_rtl_bb_info): Likewise.
2578 * cfgloop.c (alloc_loop): Likewise.
2579 (rescan_loop_exit): Likewise.
2581 * cfg.c (init_flow): Likewise.
2582 (alloc_block): Likewise.
2583 (unchecked_make_edge): Likewise.
2585 * c-parser.c (c_parse_init): Likewise.
2586 (c_parse_file): Likewise.
2588 * c-decl.c (bind): Likewise.
2589 (record_inline_static): Likewise.
2590 (push_scope): Likewise.
2591 (make_label): Likewise.
2592 (lookup_label_for_goto): Likewise.
2593 (finish_struct): Likewise.
2594 (finish_enum): Likewise.
2595 (c_push_function_context): Likewise.
2597 * bitmap.c (bitmap_element_allocate): Likewise.
2598 (bitmap_gc_alloc_stat): Likewise.
2600 * alias.c (record_alias_subset): Likewise.
2601 (init_alias_analysis): Likewise.
2603 2010-06-08 Shujing Zhao <pearly.zhao@oracle.com>
2605 * fold-const.c (fold_comparison): Remove redundant parenthesis.
2606 * tree-inline.c (expand_call_inline): Pass translated return value of
2607 cgraph_inline_failed_string to diagnostic function.
2609 2010-06-08 Andrew Pinski <pinskia@gmail.com>
2610 Shujing Zhao <pearly.zhao@oracle.com>
2613 * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
2614 implicit bad conversions is initialization.
2615 (error_init): Use gmsgid instead of msgid for argument name and change
2617 (pedwarn_init): Use gmsgid instead of msgid for argument name and
2618 change the call for pedwarn.
2619 (warning_init): Use gmsgid instead of msgid for argument name and
2620 change the call for warning.
2622 2010-06-07 Nathan Froyd <froydnj@codesourcery.com>
2624 * config/mips/mips-protos.h (mips_print_operand): Delete.
2625 (mips_print_operand_address): Delete.
2626 * config/mips/mips.h (mips_print_operand_punct): Delete.
2627 (PRINT_OPERAND): Delete.
2628 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2629 (PRINT_OPERAND_ADDRESS): Delete.
2630 * config/mips/mips.c (mips_print_operand_punct): Make static.
2631 (mips_print_operand_address): Make static.
2632 (mips_print_operand): Make static. Call
2633 mips_print_operand_punct_valid_p.
2634 (mips_print_operand_punct_valid_p): New function.
2635 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2636 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2638 2010-06-07 Jan Hubicka <jh@suse.cz>
2641 (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
2644 2010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
2646 * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
2649 2010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2651 * doc/sourcebuild.texi (Effective-Target Keywords, Other
2652 attributes): Document gas.
2654 2010-06-07 Uros Bizjak <ubizjak@gmail.com>
2656 * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
2657 <TYPE_LEA>: Split instruction.
2658 <default>: Remove alternative 2 handling.
2659 (*addsi_1_zext) <TYPE_LEA>: Split instruction.
2660 (add lea splitter): Generate SImode lea for mode sizes <= SImode.
2661 (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
2663 (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
2664 (ashift_zext lea splitter): Use DImode for multiplication.
2666 * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
2667 to generate addition.
2669 2010-06-07 Joseph Myers <joseph@codesourcery.com>
2671 * common.opt (fira-verbose): Use Var.
2672 (fpcc-struct-return): Use Init instead of VarExists.
2673 * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
2675 * flags.h (flag_signed_char, flag_short_enums,
2676 flag_pcc_struct_return, flag_ira_verbose,
2677 flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
2678 * toplev.c (flag_detailed_statistics, flag_signed_char,
2679 flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
2680 (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
2681 * toplev.h (flag_crossjumping, flag_if_conversion,
2682 flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
2683 flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
2684 flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
2685 flag_cprop_registers, time_report, flag_ira_loop_pressure,
2686 flag_ira_coalesce, flag_ira_move_spills,
2687 flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
2689 2010-06-07 Jan Hubicka <jh@suse.cz>
2691 * df-core.c (df_analyze_problem): Do verification after allocation.
2693 * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
2694 (df_lr_alloc): Initialize problem data; move bitmaps to
2696 (df_lr_finalize): Free problem data; do not bother to free bitmaps.
2697 (df_lr_verify_solution_start): Do not initialize problem data;
2698 allocate bitmaps in lr_bitmaps.
2699 (df_lr_verify_solution_end): Do not free problem data.
2701 2010-06-07 Jan Hubicka <jh@suse.cz>
2703 * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
2704 if caller is noreturn.
2705 * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
2706 * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
2707 * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
2708 * ipa-pure-const.c (check_decl): Add IPA parameter.
2709 (state_from_flags): New function.
2710 (better_state, worse_state): New functions.
2711 (check_call): When in IPA mode, do not care about callees.
2712 (check_load, check_store): Update.
2713 (check_ipa_load, check_ipa_store): New.
2714 (check_stmt): When in IPA mode, use IPA checkers.
2715 (analyze_function): Use state_from_flags.
2716 (propagate): Check indirect edges and references.
2718 2010-06-07 Kazu Hirata <kazu@codesourcery.com>
2720 PR rtl-optimization/44404
2721 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
2722 of count_occurrences to see if it's safe to modify mem_insn.
2724 2010-06-07 Richard Guenther <rguenther@suse.de>
2726 * gimplify.c (gimplify_cleanup_point_expr): For empty body
2727 and EH-only cleanup drop the cleanup instead of inserting it
2730 2010-06-07 Ira Rosen <irar@il.ibm.com>
2732 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
2734 * targhooks.c (default_builtin_vectorization_cost): New function.
2735 * targhooks.h (default_builtin_vectorization_cost): Declare.
2736 * target.h (enum vect_cost_for_stmt): Define.
2737 (builtin_vectorization_cost): Change argument and comment.
2738 * tree-vectorizer.h: Remove cost model macros.
2739 * tree-vect-loop.c: Include target.h.
2740 (vect_get_cost): New function.
2741 (vect_estimate_min_profitable_iters): Replace cost model macros with
2742 calls to vect_get_cost.
2743 (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
2744 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
2745 default implementation.
2746 * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
2747 calls to target hook builtin_vectorization_cost.
2748 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
2750 * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
2751 * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
2752 implementation to return costs.
2753 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
2754 * config/spu/spu.h: Remove vectorizer cost model macros.
2755 * config/i386/i386.h: Likewise.
2756 * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
2757 a call to target hook builtin_vectorization_cost.
2759 2010-06-06 Sriraman Tallam <tmsriram@google.com>
2762 * config/i386/i386.c (override_options): Turn zee pass on for level 2
2763 and above and defer till target is known.
2764 (optimization_options): Turn on zee pass if TARGET_64BIT is set and
2767 2010-05-25 Jan Hubicka <jh@suse.cz>
2769 * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
2770 (df_compact_blocks): Likewise.
2771 * df.h (struct df): Turn hardware_regs_used,
2772 regular_block_artificial_uses, eh_block_artificial_uses,
2773 insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
2775 * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
2776 df_byte_lr_alloc, df_simulate_fixup_sets): Update.
2777 * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
2778 df_scan_blocks, df_insn_delete, df_insn_rescan,
2779 df_insn_rescan_debug_internal, df_insn_rescan_all,
2780 df_process_deferred_rescans, df_process_deferred_rescans,
2781 df_notes_rescan, df_get_call_refs, df_get_call_refs,
2782 regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
2783 df_record_entry_block_defs, df_record_exit_block_uses,
2784 df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
2785 df_scan_verify): Update.
2787 2010-05-25 Dodji Seketeli <dodji@redhat.com>
2790 * c-common.c (is_typedef_decl): Move this definition ...
2791 * tree.c (is_typedef_decl): ... here.
2792 (typdef_variant_p): Move definition here from gcc/cp/tree.c.
2793 * c-common.h (is_typedef_decl): Move this declaration ...
2794 * tree.h (is_typedef_decl): ... here.
2795 (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
2796 * dwarf2out.c (is_naming_typedef_decl): New function.
2797 (gen_tagged_type_die): Split out of ...
2798 (gen_type_die_with_usage): ... this function. When an anonymous
2799 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
2800 is emitted for the typedef.
2801 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
2802 anonymous tagged types.
2804 2010-06-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
2807 * c-decl.c (grokdeclarator): Delete warning.
2809 2010-06-06 Eric Botcazou <ebotcazou@adacore.com>
2811 * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
2812 newly built CALL_EXPR.
2813 * tree-profile.c (tree_profiling): Don't profile functions produced
2816 2010-06-06 Segher Boessenkool <segher@kernel.crashing.org>
2820 * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
2821 endianness-independent.
2823 2010-06-05 Steven Bosscher <steven@gcc.gnu.org>
2825 * c-common.c: Move to c-family/.
2826 * c-common.def: Likewise.
2827 * c-common.h: Likewise.
2828 * c-cppbuiltin.c: Likewise.
2829 * c-dump.c: Likewise.
2830 * c-format.c: Likewise.
2831 * c-format.h : Likewise.
2832 * c-gimplify.c: Likewise.
2833 * c-lex.c: Likewise.
2834 * c-omp.c: Likewise.
2836 * c-opts.c: Likewise.
2837 * c-pch.c: Likewise.
2838 * c-ppoutput.c: Likewise.
2839 * c-pragma.c: Likewise.
2840 * c-pragma.h: Likewise.
2841 * c-pretty-print.c: Likewise.
2842 * c-pretty-print.h: Likewise.
2843 * c-semantics.c: Likewise.
2844 * stub-objc.c: Likewise.
2846 * gengtype.c (get_file_langdir): Special-case files in c-family/.
2847 (get_output_file_with_visibility): Fix name for c-common.h.
2848 * c-config-lang.in: Update paths in gtfiles for files in c-family/.
2850 * c-tree.h: Update include path for moved files.
2851 * c-lang.c: Likewise.
2852 * c-lang.h: Likewise.
2853 * c-parser.c: Likewise.
2854 * c-convert.c: Likewise.
2855 * c-decl.c: Likewise.
2856 * c-objc-common.c: Likewise.
2857 * configure.ac: Make sure c-family/ exists in the build directory.
2858 * configure: Regenerate.
2859 * Makefile.in: Update paths for moved files. Regroup files per
2860 location and update dependencies. Move generated_files down after
2863 * config/spu/spu-c.c: Update paths for moved files.
2864 * config/mep/mep-pragma.c: Likewise.
2865 * config/darwin-c.c: Likewise.
2866 * config/i386/msformat-c.c: Likewise.
2867 * config/i386/i386-c.c: Likewise.
2868 * config/avr/avr-c.c: Likewise.
2869 * config/sol2-c.c: Likewise.
2870 * config/ia64/ia64-c.c: Likewise.
2871 * config/rs6000/rs6000-c.c: Likewise.
2872 * config/arm/arm.c: Likewise.
2873 * config/arm/arm-c.c: Likewise.
2874 * config/h8300/h8300.c: Likewise.
2875 * config/v850/v850-c.c: Likewise.
2877 * config/t-darwin: Fix dependencies for moved files.
2878 * config/t-sol2: Fix dependencies for moved files.
2879 * config/mep/t-mep: Fix dependencies for moved files.
2880 * config/ia64/t-ia64: Fix dependencies for moved files.
2881 * config/rs6000/t-rs6000: Fix dependencies for moved files.
2882 * config/v850/t-v850: Fix dependencies for moved files.
2883 * config/v850/t-v850e: Fix dependencies for moved files.
2885 * config/m32c/m32c-pragma.c
2887 * po/exgettext: Look in c-family/ also.
2889 2010-06-05 Eric Botcazou <ebotcazou@adacore.com>
2891 * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
2892 (mark_control_dependent_edges_necessary): Call it instead of marking
2893 the last statement manually.
2894 (propagate_necessity): Likewise.
2896 2010-06-05 Jan Hubicka <jh@suse.cz>
2898 * basic-block.h (compute_dominance_frontiers): Updated.
2899 (compute_idf): Likewise.
2901 * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
2902 for dominance frontiers.
2903 (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
2904 (insert_updated_phi_nodes_for): Likewise.
2905 (update_ssa): Likewise.
2906 * cfganal.c (compute_dominance_frontiers_1): Likewise.
2907 (compute_dominance_frontiers): Likewise.
2908 (compute_idf): Likewise.
2909 * df-problems.c (df_md_local_compute): Likewise.
2911 2010-06-05 Anatoly Sokolov <aesok@post.ru>
2913 * target.h (struct gcc_target): Add memory_move_cost field.
2914 * target-def.h (TARGET_MEMORY_MOVE_COST): New.
2915 (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
2916 * targhooks.c (default_memory_move_cost): New function.
2917 * targhooks.h (default_memory_move_cost): Declare function.
2918 * reload.h (memory_move_cost): Declare.
2919 (memory_move_secondary_cost): Change type of 'in' argument to bool.
2920 * reginfo.c (memory_move_cost): New function.
2921 (memory_move_secondary_cost): Change type of 'in' argument to bool.
2922 * ira.h (ira_memory_move_cost): Update comment.
2923 * ira.c: (ira_memory_move_cost): Update comment.
2924 (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
2925 with memory_move_cost.
2926 * postreload.c (reload_cse_simplify_set): (Ditto.).
2927 * reload1.c (choose_reload_regs): (Ditto.).
2928 * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
2929 (MEMORY_MOVE_COST): Revise documentation.
2931 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
2932 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
2933 * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
2934 type of 'in' argument to bool.
2935 (TARGET_MEMORY_MOVE_COST): Define.
2937 2010-06-05 Jan Hubicka <jh@suse.cz>
2939 * ipa-pure-const.c (propagate): Fix typo in handling of functions
2940 that cannot return. Be more careful when merging the results with
2941 previously known ones.
2943 2010-06-05 Matthias Klose <doko@ubuntu.com>
2945 * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
2946 function to add the -iplugindir option.
2947 (find_plugindir_spec_function): Add new declaration and function.
2948 (static_spec_func): Use it for "find-plugindir".
2950 2010-06-05 Jakub Jelinek <jakub@redhat.com>
2953 * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
2954 * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
2955 statement expression.
2957 2010-06-05 Jan Hubicka <jh@suse.cz>
2959 * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
2960 (df_rd_problem_data): Convert sparse_invalidated_by_call,
2961 dense_invalidated_by_call to bitmap head.
2962 (df_rd_alloc, df_rd_bb_local_compute_process_def,
2963 df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
2964 df_rd_start_dump, df_lr_verify_transfer_functions,
2965 df_live_verify_transfer_functions, df_chain_create_bb,
2966 df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
2967 df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
2968 df_simulate_one_insn_forwards, df_md_alloc,
2969 df_md_bb_local_compute_process_def,
2970 df_md_bb_local_compute_process_def, df_md_local_compute,
2971 df_md_transfer_function df_md_free): Update.
2973 2010-06-05 Joseph Myers <joseph@codesourcery.com>
2976 * c-typeck.c (build_unary_op): Merge qualifiers into pointer
2977 target type for ADDR_EXPR; require no changes to qualifiers except
2979 * c-tree.h (c_build_type_variant): Remove.
2981 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
2983 * genautomata.c (get_excl_set): Do work per element, not per char.
2984 (check_presence_pattern_sets): Similar.
2985 (check_absence_pattern_sets): Similar.
2987 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
2989 * genautomata.c (curr_state_pass_num): Delete.
2990 (min_issue_delay_pass_states): Delete.
2991 (min_issue_delay): Delete.
2992 (initiate_min_issue_delay_pass_states): Delete.
2993 (output_min_issue_delay_table): Compute min_issue_delay_vect
2994 using a breadth-first search variant.
2995 (output_tables): Don't call initiate_min_issue_delay_pass_states.
2997 2010-06-04 H.J. Lu <hongjiu.lu@intel.com>
3000 * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
3001 (df_byte_lr_bb_local_compute): Likewise.
3003 2010-06-03 Jason Merrill <jason@redhat.com>
3005 Implement noexcept operator (5.3.7)
3006 * c-common.c (c_common_reswords): Add noexcept.
3007 * c-common.h (enum rid): Add RID_NOEXCEPT.
3009 2010-06-04 Joseph Myers <joseph@codesourcery.com>
3011 * config/darwin-driver.c (darwin_default_min_version): Use
3012 GCC-specific formats in diagnostics.
3013 * cppspec.c (lang_specific_driver): Use GCC-specific formats in
3015 * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
3016 execute, process_command, end_going_arg, do_self_spec, do_spec_1,
3017 eval_spec_function, handle_braces, process_brace_body, main,
3018 perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
3019 getenv_spec_function, compare_version_strings,
3020 version_compare_spec_function): Use GCC-specific formats in
3023 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
3025 * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
3026 that operand 0 and operand 1 are equal.
3027 (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
3028 (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
3029 and operand 1 are equal.
3030 <default>: Ditto. Remove ??? comment.
3031 (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
3032 and operand 1 are equal.
3033 <default>: Ditto. Remove ??? comment.
3034 (*adddi_4) <default>: Remove assert that operand 0 and operand 1
3036 (*add<mode>_4) <default>: Ditto.
3037 (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
3039 2010-06-04 Nathan Froyd <froydnj@codesourcery.com>
3041 * config/i386/i386-protos.h (ix86_print_operand): Declare.
3042 * config/i386/i386.c (ix86_print_operand): Make non-static.
3043 * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
3044 * output.h (output_operand): Declare.
3045 * final.c (output_operand): Make non-static.
3047 2010-06-04 Alexandre Oliva <aoliva@redhat.com>
3049 PR rtl-optimization/44013
3050 * sched-deps.c (add_dependence_list_and_free): Don't free lists
3051 when processing debug insns.
3054 * var-tracking.c (find_loc_in_1pdv): Mark initial value before
3055 recursing. Check that recursion is bounded. Rename inner var
3056 to avoid hiding incoming argument.
3058 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
3060 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
3065 (*addqi_ext_1_rex64): Ditto.
3066 (*addqi_ext_1): Ditto.
3068 (*addqi_4): Check for incdec_operand in QImode.
3070 (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
3071 using SWI mode iterator.
3072 (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
3073 (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
3075 (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
3076 using SWI mode iterator.
3078 2010-06-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
3081 * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
3082 * c-format.c (gcc_diag_flag_specs): Add hash.
3083 (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
3084 (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
3085 * c-pretty-print.c (pp_c_cv_qualifier): Rename as
3086 pp_c_cv_qualifiers. Handle qualifiers spelling here.
3087 (pp_c_type_qualifier_list): Call the function above.
3088 * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
3089 * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
3090 (WARN_FOR_QUALIFIERS): New macro.
3091 (convert_for_assignment): Use it.
3093 2010-06-04 Kai Tietz <kai.tietz@onevision.com>
3095 * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
3097 2010-06-04 Jan Hubicka <jh@suse.cz>
3099 * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
3100 df_byte_lr_bb_info): Embedd bitmap_head into the structure.
3101 (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
3102 DF_BYTE_LR_OUT): Update for embedded bitmaps.
3103 * fwprop.c (single_def_use_enter_block): Likewise.
3104 * ddg.c (create_ddg_dep_from_intra_loop_link,
3105 add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
3106 * loop-iv.c (latch_dominating_def): Likewise.
3107 * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
3108 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
3109 df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
3110 df_rd_transfer_function, df_rd_top_dump,
3111 df_rd_bottom_dump): Update.
3112 (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
3113 df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
3114 df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
3115 df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
3116 df_lr_verify_solution_start, df_lr_verify_solution_end,
3117 df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
3118 df_live_free_bb_info, df_live_alloc, df_live_reset,
3119 df_live_bb_local_compute, df_live_init, df_live_transfer_function,
3120 df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
3121 df_live_verify_solution_start, df_live_verify_solution_end,
3122 df_live_verify_transfer_functions, df_chain_create_bb,
3123 df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
3124 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
3125 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
3126 df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
3127 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
3128 df_byte_lr_transfer_function, df_byte_lr_top_dump,
3129 df_byte_lr_bottom_dump, df_create_unused_note,
3130 df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
3131 df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
3132 df_md_transfer_function, df_md_init, df_md_confluence_0,
3134 df_md_top_dump, df_md_bottom_dump): Update.
3135 (struct df_lr_problem_data): Embedd bitmap headers.
3137 2010-06-04 Jan Hubicka <jh@suse.cz>
3139 * dce.c (dce_process_block): Do not re-scan already marked
3142 2010-06-04 Bernd Schmidt <bernds@codesourcery.com>
3144 PR rtl-optimization/39871
3145 PR rtl-optimization/40615
3146 PR rtl-optimization/42500
3147 PR rtl-optimization/42502
3148 * ira.c (init_reg_equiv_memory_loc: New function.
3149 (ira): Call it twice.
3150 * reload.h (calculate_elim_costs_all_insns): Declare.
3151 * ira-costs.c: Include "reload.h".
3152 (regno_equiv_gains): New static variable.
3153 (init_costs): Allocate it.
3154 (finish_costs): Free it.
3155 (ira_costs): Call calculate_elim_costs_all_insns.
3156 (find_costs_and_classes): Take estimated elimination costs
3158 (ira_adjust_equiv_reg_cost): New function.
3159 * ira.h (ira_adjust_equiv_reg_cost): Declare it.
3160 * reload1.c (init_eliminable_invariants, free_reg_equiv,
3161 elimination_costs_in_insn, note_reg_elim_costly): New static functions.
3162 (elim_bb): New static variable.
3163 (reload): Move code out of here into init_eliminable_invariants and
3164 free_reg_equiv. Call them.
3165 (calculate_elim_costs_all_insns): New function.
3166 (eliminate_regs_1): Declare. Add extra arg FOR_COSTS;
3167 all callers changed. If FOR_COSTS is true, don't call alter_reg,
3168 but call note_reg_elim_costly if we turned a valid memory address
3169 into an invalid one.
3170 * Makefile.in (ira-costs.o): Depend on reload.h.
3172 2010-06-04 Julian Brown <julian@codesourcery.com>
3174 * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
3177 2010-06-04 Richard Guenther <rguenther@suse.de>
3180 * cgraph.h (struct varpool_node): Add lto_file_data field.
3181 * lto-cgraph.c (input_varpool_node): Initialize it.
3183 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
3185 * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
3186 * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
3187 predicate in "type" attribute calculation.
3188 (*addsi_1_zext): Ditto.
3189 (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
3190 (*addsi_2_zext): Ditto.
3191 (*add<mode>_3): Ditto.
3192 (*addsi_3_zext): Ditto.
3193 (*add<mode>_5): Ditto.
3195 2010-06-03 Jan Hubicka <jh@suse.cz>
3197 * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
3199 * cfganal.c (compute_dominance_frontiers_1): Likewise.
3201 2010-06-03 Jan Hubicka <jh@suse.cz>
3203 * df-problems.c (df_create_unused_note, df_note_bb_compute):
3204 micro-optimize the checks when to add new note.
3206 2010-06-03 Nathan Froyd <froydnj@codesourcery.com>
3208 * final.c (output_asm_insn): Call
3209 targetm.asm_out.print_operand_punct_valid_p. Update comments.
3210 (output_operand): Call targetm.asm_out.print_operand. Update comments.
3211 (output_address): Call targetm.asm_out.print_operand_address.
3213 * target.h (struct gcc_target): Add print_operand,
3214 print_operand_address, and print_operand_punct_valid_p fields.
3215 * targhooks.h (default_print_operand): Declare.
3216 (default_print_operand_address): Declare.
3217 (default_print_operand_punct_valid_p): Declare.
3218 * targhooks.c (default_print_operand): Define.
3219 (default_print_operand_address): Define.
3220 (default_print_operand_punct_valid_p): Define.
3221 * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
3222 (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
3223 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
3224 (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
3225 TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
3226 * vmsdbgout.c (addr_const_to_string): Update comment.
3227 * config/i386/i386.c (print_operand): Rename to...
3228 (ix86_print_operand): ...this. Make static.
3229 (print_operand_address): Rename to...
3230 (ix86_print_operand_address): ...this. Make static. Call
3231 ix86_print_operand instead of PRINT_OPERAND.
3232 (ix86_print_operand_punct_valid_p): New function.
3233 (TARGET_PRINT_OPERAND): Define.
3234 (TARGET_PRINT_OPERAND_ADDRESS): Define.
3235 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3236 * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
3237 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3238 (PRINT_OPERAND): Delete.
3239 (PRINT_OPERAND_ADDRESS): Delete.
3240 * config/i386/i386-protos.h (print_operand): Delete prototype.
3241 (print_operand_address): Delete prototype.
3243 2010-06-03 Richard Guenther <rguenther@suse.de>
3245 PR tree-optimization/44403
3246 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
3247 Preserve pointer qualifiers.
3248 (vect_create_data_ref_ptr): Likewise.
3250 2010-06-03 H.J. Lu <hongjiu.lu@intel.com>
3253 * defaults.h (MAX_FIXED_MODE_SIZE): New.
3255 * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
3257 2010-06-03 Jakub Jelinek <jakub@redhat.com>
3260 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
3261 return false if merging the bbs would lead to goto_locus
3262 location being lost from the IL.
3264 2010-06-03 Jan Hubicka <jh@suse.cz>
3265 Jakub Jelinek <jakub@redhat.com>
3267 * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
3268 set->regs[i] is NULL or has just one entry.
3270 2010-06-03 Jan Hubicka <jh@suse.cz>
3272 * lto-cgraph.c (lto_varpool_encoder_size): Remove.
3273 * lto-streamer.h (lto_varpool_encoder_size): New inline function.
3275 2010-06-03 Paul Brook <paul@codesourcery.com>
3277 * config/arm/arm.c (FL_TUNE): Define.
3278 (arm_default_cpu, arm_cpu_select): Remove.
3279 (all_cores): Populate core field.
3280 (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
3281 (arm_find_cpu): New function.
3282 (arm_handle_option): Lookup cpu/architecture names.
3283 (arm_override_options): Cleanup mcpu/march/mtune handling.
3284 (arm_file_start): Ditto.
3286 2010-06-03 Alan Modra <amodra@gmail.com>
3289 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
3290 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
3291 rtx to gen_load_toc_v4_PIC_1b. Tidy.
3292 (rs6000_emit_load_toc_table): Likewise.
3294 2010-06-02 Jan Hubicka <jh@suse.cz>
3296 * passes.c (init_optimization_passes): Put ipa reference
3297 after ipa pure-const.
3299 2010-06-02 Jan Hubicka <jh@suse.cz>
3301 * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
3302 calls_read_all and calls_write_all.
3303 (get_reference_optimization_summary): Fix formatting.
3304 (is_proper_for_analysis): Check that decl is not readonly.
3305 (propagate_bits): Check CONST/PURE/noreturn flags.
3306 (ipa_init): Move all_module_statics to optimization_summary_obstack.
3307 (analyze_function): Ignore indirect edges.
3308 (copy_global_bitmap): For all module statics, do nothing.
3309 (generate_summary): Do not print calls_read_all/calls_write_all.
3310 (read_write_all_from_decl): Take node as argument; check
3311 cgraph_node_cannot_return.
3312 (propagate): Reorganize read_all/write_all computation;
3313 check indirect edges; check ecf flags; use all_module_statics
3314 in the results; do not free all_module_statics.
3315 (stream_out_bitmap): Handle all_module_statics.
3316 (ipa_reference_write_optimization_summary): Likewise; use
3317 varpool/cgraph encoders to get boundaries.
3318 (ipa_reference_read_optimization_summary): Read in all_module_statics;
3319 use it when possible.
3321 2010-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3324 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
3325 -mswdiv option. Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
3327 * doc/extend.texi (powerpc builtins): Document vec_recip,
3328 vec_rsqrt, vec_rsqrte altivec/vsx builtins.
3330 * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
3331 (rs6000_emit_swrsqrt): Ditto.
3332 (rs6000_emit_swdivsf): Delete.
3333 (rs6000_emit_swdivdf): Ditto.
3334 (rs6000_emit_swrsqrtsf): Ditto.
3336 * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
3337 describe the reciprocal estimate support for each type.
3338 (recip_options): Map -mrecip=<opt> into option bits.
3339 (gen_2arg_fn_t): New typedef for binary rtx gen function.
3340 (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
3341 reciprocal estimate instructions.
3342 (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
3343 debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
3344 Set up rs6000_recip_bits based on the -mrecip* options. Print the
3345 cost information if -mdebug=cost or -mdebug=reg.
3346 (rs6000_override_options): Set -mrecip-precision for power6, and
3347 power7 machines. If -mvsx or -mdfp, enable various options that
3348 came in previous instruction set ISAs, unless the option was
3349 explicitly disabled by the command line option. Parse
3350 -mrecip=<opt> options.
3351 (rs6000_builtin_vectorized_function): Add support for vectorizing
3352 the reciprocal estimate builtins and expansions.
3353 (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
3354 (bdesc_2arg): Add reciprocal estimate builtins.
3355 (bdesc_1arg): Add reciprocal square root estimate builtins.
3356 (rs6000_expand_builtin): Rewrite to use a switch statement,
3357 instead of multiple if/then/elses. Add reciprocal estimate builtins.
3358 (rs6000_init_builtins): Create declarations for reciprocal
3360 (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
3361 sized, prefer traditional floating point registers, if integer
3362 vector types, prefer altivec registers. Don't actually look at
3363 the memory address any more.
3364 (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
3366 (rs6000_load_constant_and_splat): New helper function to load up
3367 the constant for reciprocal estimate instructions.
3368 (rs6000_emit_madd): New helper function for generating
3369 multiply/add type instructions, based on the current switches.
3370 (rs6000_emit_msub): Ditto.
3371 (rs6000_emit_mnsub): Ditto.
3372 (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
3373 replace a divide with a reciprocal estimate and fixup, adding
3374 support for machines with high precision and vectors.
3375 (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
3376 low precision machines.
3377 (rs6000_emit_swdiv): New common function to be called to replace a
3378 division with reciprocal estimate and fixup.
3379 (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf. Add support
3380 for double and vector types. Add support for high precision machines.
3382 * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
3383 the reciprocal estimate instructions can be generated.
3384 (TARGET_FRE): Ditto.
3385 (TARGET_FRSQRTES): Ditto.
3386 (TARGET_FRSQRTE): Ditto.
3387 (RS6000_RECIP_*): New macros for reciprocal estimate support.
3389 * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
3390 square root estimate on vectors.
3391 (re<mode>2): New insn for reciprocal division estimate on vectors.
3393 * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
3395 (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
3396 (ALTIVEC_BUITLIN_VEC_RE): Ditto.
3397 (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
3398 (VSX_BUILTIN_RSQRT_V4SF): Ditto.
3399 (VSX_BUITLIN_RSQRT_V2DF): Ditto.
3400 (RS6000_BUILTIN_RSQRT): Ditto.