1 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
3 * system.h (ENUM_BITFIELD): Remove.
5 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
6 Eric Botcazou <ebotcazou@adacore.com>
8 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
9 for STORE_FLAG_VALUE==-1 case.
11 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
14 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
15 LEGITIMATE_PIC_OPERAND_P.
17 2011-04-24 Jan Hubicka <jh@suse.cz>
19 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
21 * ipa-prop.h (ipa_get_param, ipa_is_param_used, ipa_param_cannot_devirtualize_p,
22 ipa_param_types_vec_empty, ipa_get_ith_jump_func, ipa_get_lattice):
24 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
25 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
26 Sanity check predicate length.
27 (remap_predicate): Likewise; sanity check jump functions.
28 (inline_read_section, inline_write_summary): Sanity check
31 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
34 * doc/extend.texi (Type Traits): Document __is_standard_layout,
35 __is_literal_type, and __is_trivial; update throughout about
36 possibly cv-qualified void types.
38 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
40 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
41 testsuite and make it version agnostic.
43 2011-04-22 Jan Hubicka <jh@suse.cz>
45 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
47 2011-04-23 Jakub Jelinek <jakub@redhat.com>
50 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
51 to VOID_TYPE even around MODIFY_EXPR.
53 2011-04-22 Mike Stump <mikestump@comcast.net>
55 * gensupport.c (read_md_rtx): Fix typo in comment.
56 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
59 2011-04-22 Jan Hubicka <jh@suse.cz>
61 * gengtype.c (open_base_files): Add ipa-inline.h include.
62 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to ipa-prop.c
64 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
65 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to merge
66 summary of inlined function into former caller.
67 * ipa-inline.c (max_benefit): Remove.
68 (edge_badness): Compensate for removal of benefits.
69 (update_caller_keys): Use reset_node_growth_cache/reset_edge_growth_cache.
70 (update_callee_keys): Likewise.
71 (update_all_callee_keys): Likewise.
72 (inline_small_functions): Do not collect max_benefit; do not
73 reset stimated_growth; call free_growth_caches and initialize_growth_caches.
74 * ipa-inline.h (struct condition, type clause_t, struct predicate, struct
75 size_time_entry): New structures.
76 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit and
79 (edge_growth_cache_entry): New structure.
80 (node_growth_cache, edge_growth_cache): New global vars.
81 (estimate_growth): Turn into inline.
82 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
83 initialize_growth_caches, free_growth_caches): Declare.
84 (estimate_edge_growth): Rewrite.
85 (estimate_edge_time): Implement as inline cache lookup.
86 (reset_node_growth_cache, reset_edge_growth_cache): New inline functions.
87 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
88 (NUM_CONDITIONS): New constant.
89 (predicate_conditions): New enum.
90 (IS_NOT_CONSTANT): New constant.
91 (edge_removal_hook_holder): New var.
92 (node_growth_cache, edge_growth_cache): New global vars.
93 (true_predicate, single_cond_predicate, false_predicate, not_inlined_predicate,
94 add_condition, add_clause, and_predicates, or_predicates, predicates_equal_p,
95 evaulate_predicate, dump_condition, dump_clause, dump_predicate, account_size_time,
96 evaulate_conditions_for_edge): New functions.
97 (inline_summary_alloc): Move to heap.
98 (inline_node_removal_hook): Clear condition and entry vectors.
99 (inline_edge_removal_hook): New function.
100 (initialize_growth_caches, free_growth_caches): New function.
101 (dump_inline_summary): Update.
102 (edge_execution_predicate): New function.
103 (will_be_nonconstant_predicate): New function.
104 (estimate_function_body_sizes): Compute BB and constantness predicates.
105 (compute_inline_parameters): Do not clear estimated_growth.
106 (estimate_edge_size_and_time): New function.
107 (estimate_calls_size_and_time): New function.
108 (estimate_callee_size_and_time): New function.
109 (remap_predicate): New function.
110 (inline_merge_summary): New function.
111 (do_estimate_edge_time): New function based on...
112 (estimate_edge_time): ... this one.
113 (do_estimate_edge_growth): New function.
114 (do_estimate_growth): New function based on....
115 (estimate_growth): ... this one.
116 (inline_analyze_function): Analyze after deciding on jump functions.
117 (inline_read_section): New function.
118 (inline_read_summary): Use it.
119 (inline_write_summary): Write all the new data.
120 * ipa-prop.c (ipa_get_param_decl_index): Export.
121 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
122 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc): Declare.
123 (ipa_get_lattice): Move hre from ipa-cp.c
124 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
125 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
126 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
127 cgraph_edge_inlinable_p): Remove.
128 * cgraphunit.c: Include ipainline.h
129 (cgraph_process_new_functions): Update call of compute_inline_parameters.
131 2011-04-22 Richard Guenther <rguenther@suse.de>
133 * tree.c (build_int_cst): Properly create canonicalized integer
135 (build_int_cst_type): Remove scary comments.
137 2011-04-22 Xinliang David Li <davidxl@google.com>
139 * toplev.c (process_options): Enable -Werror=coverage-mismatch
140 by default when -Wno-error is not specified.
141 * opts-global.c (decode_options): Remove call to
142 control_warning_options.
144 2011-04-22 Jakub Jelinek <jakub@redhat.com>
146 PR tree-optimization/48717
147 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
148 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
150 2011-04-22 Joseph Myers <joseph@codesourcery.com>
152 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
153 definition where used.
155 2011-04-22 Jakub Jelinek <jakub@redhat.com>
158 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
159 TREE_STATIC variables declared inside of some OpenMP construct.
161 2011-04-22 Martin Jambor <mjambor@suse.cz>
164 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
166 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
169 * c-typeck.c (pop_init_level): Do not warn about initializing
172 2011-04-22 Alan Modra <amodra@gmail.com>
174 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
175 when returning call_cookie.
176 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
177 pointers, to functions with no more vector args than the current
178 function, and some non-local calls for ABI_V4.
179 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
180 sibcall_nonlocal_aix64): Combine to ..
181 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
182 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
183 (sibcall_value_nonlocal_aix<mode>): ..likewise.
184 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
185 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
187 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
188 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
189 sibcall_value_symbolic_64): Delete.
191 2011-04-21 Xinliang David Li <davidxl@google.com>
193 * cgraph.h: Remove pid.
194 * cgraph.c: Remove pid.
195 * value-prof.c (init_node_map): New function.
196 (del_node_map): New function.
197 (find_func_by_funcdef_no): New function.
198 (gimple_ic_transform): Call new function.
199 * cgraphunit.c (cgraph_finalize_function): Remove pid.
200 * function.c (get_last_funcdef_no): New function.
201 * function.h (get_last_funcdef_no): New function.
202 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
204 (tree-profiling): Call node map init and delete function.
206 2011-04-21 Ian Lance Taylor <iant@google.com>
208 * godump.c (go_format_type): Use exported Go name for anonymous
211 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
213 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
214 Call builtin_function_type_list instead of builtin_function_type.
215 (UNARY, BINARY, TRINARY, QUAD): Likewise.
217 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
219 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
220 build_function_type_list instead of build_function_type.
221 Delete variable `endlink'.
223 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
225 * config/s390/s390.c (s390_init_builtins): Call
226 build_function_type_list instead of build_function_type.
228 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
230 * config/ia64/ia64.c (ia64_init_builtins): Call
231 build_function_type_list instead of builtin_function_type.
233 2011-04-21 Easwaran Raman <eraman@google.com>
235 * cfgexpand.c (stack_var): Remove OFFSET...
236 (add_stack_var): ...and its reference here...
237 (expand_stack_vars): ...and here.
238 (stack_var_cmp): Sort by descending order of size.
239 (partition_stack_vars): Change heuristic.
240 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
241 (dump_stack_var_partition): Add newline after each partition.
243 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
244 Jeff Law <law@redhat.com>
246 * gengtype-state.c (read_a_state_token): Fix argument to
248 * gengtype.c (matching_file_name_substitute): Likewise.
250 2011-04-21 Richard Guenther <rguenther@suse.de>
253 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
255 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
257 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
259 2011-04-21 Richard Guenther <rguenther@suse.de>
261 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
264 2011-04-21 Richard Guenther <rguenther@suse.de>
266 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
267 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
268 Use DECL_P, not SSA_VAR_P.
269 (ptr_derefs_may_alias_p): Likewise.
270 (ptr_deref_may_alias_ref_p_1): Likewise.
271 (decl_refs_may_alias_p): Likewise.
272 (refs_may_alias_p_1): Likewise.
273 (ref_maybe_used_by_call_p_1): Likewise.
274 (call_may_clobber_ref_p_1): Likewise.
275 (indirect_ref_may_alias_decl_p): Assume indirect refrences
276 are either MEM_REF or TARGET_MEM_REF.
277 (indirect_refs_may_alias_p): Likewise.
278 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
279 for MEM_EXPR of indirect calls.
281 2011-04-21 Tristan Gingold <gingold@adacore.com>
283 * vmsdbgout.c (write_srccorr): Compute file length from the string.
284 (dst_file_info_struct): Remove flen field.
285 (lookup_filename): Remove code that set flen field.
287 2011-04-21 Tristan Gingold <gingold@adacore.com>
289 * config/ia64/ia64.c (ia64_start_function): Add a guard.
291 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
294 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
295 vec_extract and vec_concat for non-SSE4_1 targets.
297 2011-04-21 Richard Guenther <rguenther@suse.de>
299 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
302 2011-04-21 Joseph Myers <joseph@codesourcery.com>
304 * config/i386/cygming.h (union tree_node, TREE): Don't define or
306 (FILE): Don't undefine.
308 2011-04-21 Joseph Myers <joseph@codesourcery.com>
310 * config/alpha/alpha.c (struct machine_function): Use rtx, not
312 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
314 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
315 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
316 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
318 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
319 definitions where used.
320 * config/microblaze/microblaze.h (struct microblaze_args): Use
321 rtx, not struct rtx_def *.
322 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
324 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
325 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
326 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
327 not struct rtx_def *.
328 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
330 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
332 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
334 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
336 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
337 operand_equal_p to compare DR_BASE_ADDRESSes.
338 (vect_check_interleaving): Likewise.
340 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
343 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
344 for all Neon struct constants.
346 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
348 * target.def (legitimate_constant_p): New hook.
349 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
350 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
351 * doc/tm.texi: Regenerate.
352 * hooks.h (hook_bool_mode_rtx_true): Declare.
353 * hooks.c (hook_bool_mode_rtx_true): Define.
354 * system.h (LEGITIMATE_CONSTANT_P): Poison.
355 * calls.c (precompute_register_parameters): Replace uses of
356 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
357 (emit_library_call_value_1): Likewise.
358 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
359 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
360 * ira-costs.c (scan_one_insn): Likewise.
361 * recog.c (general_operand, immediate_operand): Likewise.
362 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
363 * reload1.c (init_eliminable_invariants): Likewise.
365 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
367 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
368 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
370 (TARGET_LEGITIMATE_CONSTANT_P): Define.
371 * config/alpha/predicates.md (input_operand): Update call to
372 alpha_legitimate_constant_p.
374 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
375 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
376 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
377 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
378 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
379 (arm_legitimate_constant_p): New functions.
380 (arm_cannot_force_const_mem): Make static.
382 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
384 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
385 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
386 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
387 instead of bfin_legitimate_constant_p.
388 (bfin_legitimate_constant_p): Make static. Add a mode argument.
389 (TARGET_LEGITIMATE_CONSTANT_P): Define.
391 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
393 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
395 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
396 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
397 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
398 (frv_legitimate_constant_p): Make static. Add a mode argument.
400 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
401 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
402 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
404 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
405 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
406 * config/i386/i386.c (legitimate_constant_p): Rename to...
407 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
409 (ix86_cannot_force_const_mem): Update accordingly.
410 (ix86_legitimate_address_p): Likewise.
411 (TARGET_LEGITIMATE_CONSTANT_P): Define.
412 * config/i386/i386.md: Update commentary.
414 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
415 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
416 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
417 (ia64_legitimate_constant_p): Make static. Add a mode argument.
419 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
421 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
422 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
423 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
424 (lm32_legitimate_constant_p): Make static. Add a mode argument.
426 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
427 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
428 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
430 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
431 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
432 (m32r_legitimate_constant_p): New function.
434 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
435 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
436 LEGITIMATE_CONSTANT_P.
437 (LEGITIMATE_CONSTANT_P): Delete.
438 * config/m68k/m68k.c (m68k_expand_prologue): Call
439 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
440 (m68k_legitimate_constant_p): New function.
441 * config/m68k/m68k.md: Update comments.
443 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
444 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
445 (mcore_legitimate_constant_p): New function.
447 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
448 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
449 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
451 (mep_legitimate_address): Update accordingly.
452 (TARGET_LEGITIMATE_CONSTANT_P): Define.
454 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
456 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
457 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
458 static. Check OP's mode for VOIDmode.
459 (microblaze_legitimate_constant_p): New function.
460 (TARGET_LEGITIMATE_CONSTANT_P): Define.
462 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
463 * config/mips/mips.c (mips_legitimate_constant_p): New function.
464 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
465 (TARGET_LEGITIMATE_CONSTANT_P): Define.
466 * config/mips/predicates.md: Update comments.
468 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
469 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
470 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
471 (mmix_legitimate_constant_p): Make static, return a bool, and take
473 (mmix_print_operand_address): Update accordingly.
475 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
477 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
478 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
479 static. Add a mode argument.
480 (TARGET_LEGITIMATE_CONSTANT_P): Define.
482 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
484 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
485 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
486 (pa_legitimate_constant_p): New function.
488 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
490 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
491 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
492 (pdp11_legitimate_constant_p): New function.
494 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
495 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
496 (rs6000_legitimate_constant_p): New function.
498 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
499 (rx_legitimate_constant_p): ...this.
500 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
501 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
502 (rx_legitimate_constant_p): ...this.
503 (TARGET_LEGITIMATE_CONSTANT_P): Define.
504 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
506 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
507 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
508 * config/s390/s390.c (legitimate_constant_p): Rename to...
509 (s390_legitimate_constant_p): ...this. Make static, return a bool,
510 and add a mode argument.
511 (TARGET_LEGITIMATE_CONSTANT_P): Define.
513 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
515 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
516 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
517 (sh_legitimate_constant_p): New function.
519 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
520 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
521 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
522 (legitimate_constant_p): Rename to...
523 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
525 (constant_address_p): Update accordingly.
527 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
528 argument and return a bool.
529 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
530 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
531 (spu_legitimate_constant_p): Add a mode argument and return a bool.
532 (spu_rtx_costs): Update accordingly.
533 * config/spu/predicates.md (vec_imm_operand): Likewise.
535 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
537 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
538 * config/v850/v850.c (v850_legitimate_constant_p): New function.
539 (TARGET_LEGITIMATE_CONSTANT_P): Define.
541 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
542 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
543 * config/vax/vax.c (legitimate_constant_p): Likewise.
545 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
546 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
547 (xtensa_legitimate_constant_p): New function.
549 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
551 * target.def (cannot_force_const_mem): Add a mode argument.
552 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
553 * doc/tm.texi: Regenerate.
554 * hooks.h (hook_bool_mode_rtx_false): Declare.
555 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
556 (hook_bool_mode_const_rtx_true): Likewise.
557 (hook_bool_mode_rtx_false): New function.
558 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
559 to be non-VOID. Update call to cannot_force_const_mem.
560 (find_reloads): Update accordingly.
561 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
562 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
564 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
565 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
566 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
567 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
568 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
569 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
570 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
571 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
572 (m68k_cannot_force_const_mem): ...this new function.
573 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
575 (mips_const_insns, mips_legitimize_const_move): Update calls.
576 (mips_secondary_reload_class): Likewise.
577 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
578 (pa_cannot_force_const_mem): ...this new function.
579 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
580 (rs6000_cannot_force_const_mem): ...this new function.
581 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
583 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
584 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
586 (xtensa_cannot_force_const_mem): ...this new function.
588 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
590 * config/mips/mips.c (mips16_build_function_stub): Call
591 build_function_type_list instead of build_function_type.
592 (mips16_build_call_stub): Likewise.
594 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
596 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
597 instead of build_function_type.
599 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
601 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
602 instead of build_function_type.
604 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
607 * config/i386/i386.md (insv): Change operand 0 constraint to
608 "register_operand". Change operand 1 and 2 constraint to
609 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
610 * config/i386/sse.md (sse4_1_pinsrb): Export.
611 (sse2_pinsrw): Ditto.
612 (sse4_1_pinsrd): Ditto.
613 (sse4_1_pinsrq): Ditto.
614 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
615 * config/i386/i386.c (ix86_expand_pinsr): New.
617 2011-04-20 Easwaran Raman <eraman@google.com>
619 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
620 containing union type only with -fstrict-aliasing.
622 2011-04-20 Jim Meyering <meyering@redhat.com>
624 Remove useless if-before-free tests.
625 * calls.c (expand_call, save_area): Likewise.
626 * cfgcleanup.c (try_forward_edges): Likewise.
627 * collect2.c (collect_execute): Likewise.
628 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
629 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
630 * coverage.c (coverage_checksum_string): Likewise.
631 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
632 * cselib.c (cselib_init): Likewise.
633 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
634 (df_set_clean_cfg): Likewise.
635 * function.c (free_after_compilation): Likewise.
636 * gcc.c (do_spec_1, main): Likewise.
637 * gcov.c (create_file_names): Likewise.
638 * gensupport.c (identify_predicable_attribute): Likewise.
639 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
640 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
641 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
642 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
643 * ipa-pure-const.c (local_pure_const): Likewise.
644 * ipa-reference.c (propagate): Likewise.
645 * ira-costs.c (free_ira_costs): Likewise.
646 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
647 * matrix-reorg.c (mat_free): Likewise.
648 * prefix.c (get_key_value): Likewise.
649 * profile.c (compute_value_histograms): Likewise.
650 * reload1.c (free_reg_equiv): Likewise.
651 * sched-deps.c (free_deps): Likewise.
652 * sel-sched-ir.c (fence_clear): Likewise.
653 * sese.c (set_rename, if_region_set_false_region): Likewise.
654 * tree-data-ref.c (free_rdg): Likewise.
655 * tree-eh.c (lower_try_finally): Likewise.
656 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
657 * tree-ssa-live.c (delete_var_map): Likewise.
658 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
659 * tree-ssa-pre.c (phi_trans_add): Likewise.
661 2011-04-20 Jakub Jelinek <jakub@redhat.com>
663 PR tree-optimization/48611
664 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
665 beyond ERT_MUST_NOT_THROW region.
667 2011-04-20 Catherine Moore <clm@codesourcery.com>
669 * config/mips/mips.opt (mfix-24k): New.
670 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
671 * config/mips/mips.md (length): Increase by 4 for stores if
673 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
674 all noreorder if fixing 24K errata.
675 * doc/invoke.texi: Document mfix-24k.
677 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
679 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
680 quad-word modes, reduce to 9-bit index range when above 1016 limit.
682 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
684 * config/arm/arm.c (arm_gen_constant): Move movw support ....
685 (const_ok_for_op): ... to here.
687 2011-04-20 Kai Tietz <ktietz@redhat.com>
689 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
690 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
692 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
694 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
696 2011-04-20 Richard Guenther <rguenther@suse.de>
698 PR tree-optimization/47892
699 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
702 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
704 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
706 2011-04-20 Tristan Gingold <gingold@adacore.com>
708 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
710 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
714 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
715 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
716 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
717 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
718 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
720 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
723 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
724 (avr_asm_named_section, avr_asm_output_aligned_common,
725 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
726 New functions to update...
727 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
728 (avr_asm_init_sections): Overwrite section callbacks for
729 data_section, bss_section.
730 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
732 (avr_file_end): ...here.
734 2011-04-20 Richard Guenther <rguenther@suse.de>
737 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
738 objects and types here. Adjust for their offset before comparing.
740 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
742 * tree-vect-stmts.c (vectorizable_store): Only chain one related
745 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
747 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
748 (GIMPLE_H): Include $(INTERNAL_FN_H).
749 (OBJS-common): Add internal-fn.o.
750 (internal-fn.o): New rule.
751 * internal-fn.def: New file.
752 * internal-fn.h: Likewise.
753 * internal-fn.c: Likewise.
754 * gimple.h: Include internal-fn.h.
755 (GF_CALL_INTERNAL): New gf_mask.
756 (gimple_statement_call): Put fntype into a union with a new
758 (gimple_build_call_internal): Declare.
759 (gimple_build_call_internal_vec): Likewise.
760 (gimple_call_same_target_p): Likewise.
761 (gimple_call_internal_p): New function.
762 (gimple_call_internal_fn): Likewise.
763 (gimple_call_fntype): Return null for internal calls.
764 (gimple_call_set_fntype): Assert that the function is not internal.
765 (gimple_call_set_fn): Likewise.
766 (gimple_call_set_fndecl): Likewise.
767 (gimple_call_set_internal_fn): New function.
768 (gimple_call_addr_fndecl): Handle null functions.
769 (gimple_call_return_type): Likewise null types.
770 * gimple.c (gimple_build_call_internal_1): New function.
771 (gimple_build_call_internal): Likewise.
772 (gimple_build_call_internal_vec): Likewise.
773 (gimple_call_same_target_p): Likewise.
774 (gimple_call_flags): Handle calls to internal functions.
775 (gimple_call_fnspec): New function.
776 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
777 (gimple_has_side_effects): Handle null functions.
778 (gimple_rhs_has_side_effects): Likewise.
779 (gimple_call_copy_skip_args): Handle calls to internal functions.
780 * cfgexpand.c (expand_call_stmt): Likewise.
781 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
782 * gimple-fold.c (gimple_fold_call): Handle null functions.
783 (gimple_fold_stmt_to_constant_1): Don't fold
784 calls to internal functions.
785 * gimple-low.c (gimple_check_call_args): Handle calls to internal
787 * gimple-pretty-print.c (dump_gimple_call): Likewise.
788 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
789 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
790 (do_warn_unused_result): Likewise.
791 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
792 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
793 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
794 the target of a call.
795 (initialize_hash_element): Update accordingly.
796 (hashable_expr_equal_p): Use gimple_call_same_target_p.
797 (iterative_hash_hashable_expr): Handle calls to internal functions.
798 (print_expr_hash_elt): Likewise.
799 * tree-ssa-pre.c (can_value_number_call): Likewise.
800 (eliminate): Handle null functions.
801 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
802 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
803 (find_func_aliases): Likewise.
804 * value-prof.c (gimple_ic_transform): Likewise.
805 (gimple_indirect_call_to_profile): Likewise.
806 * lto-streamer-in.c (input_gimple_stmt): Likewise.
807 * lto-streamer-out.c (output_gimple_stmt): Likewise.
809 2011-04-19 Jan Hubicka <jh@suse.cz>
811 * ipa-inline-transform.c (save_inline_function_body): Add comments.
812 * ipa-inline.c (inline_small_functions): Compute summaries first,
815 2011-04-19 Jan Hubicka <jh@suse.cz>
817 * cgraph.h (save_inline_function_body): Remove.
818 * ipa-inline-transform.c: New file, broke out of...
819 * ipa-inline.c: ... this one; Update toplevel comment.
820 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
822 (update_noncloned_frequencies): Move to ipa-inline-transform.c
823 (cgraph_mark_inline_edge): Rename to inline_call; move to
824 ipa-inline-transform.c.
825 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
826 move to ipa-inline-transform.c
827 (recursive_inlining, inline_small_functions, flatten_function,
828 ipa_inline, inline_always_inline_functions,
829 early_inline_small_functions): Update.
830 (inline_transform): Move to ipa-inline-transform.c.
831 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
833 * Makefile.in (ipa-inline-transform.o): New file.
834 * cgraphunit.c (save_inline_function_body): Move to
835 ipa-inline-transform.c
837 2011-04-19 DJ Delorie <dj@redhat.com>
839 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
840 registers if we already know there aren't any.
841 (m32c_emit_epilogue): Don't emit a barrier here.
842 (m32c_emit_eh_epilogue): Likewise.
843 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
844 operands at expand time.
845 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
847 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
848 duplicates. Provide aliases instead.
849 * config/m32c/prologue.md (eh_return): Emit a barrier here.
850 (eh_epilogue): Add a "(return)" here as a hint to other parts of
853 2011-04-19 Anatoly Sokolov <aesok@post.ru>
855 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
856 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
857 (general_or_i64_p, sparc_register_move_cost): New function.
859 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
861 * doc/install.texi (Configuration, --enable-threads): Remove mach.
862 Add lynx, mipssde. Sort table.
864 2011-04-19 Xinliang David Li <davidxl@google.com>
866 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
869 2011-04-19 Jakub Jelinek <jakub@redhat.com>
872 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
873 is a SUBREG with non-MODE_INT mode inside of it.
875 2011-04-19 Martin Jambor <mjambor@suse.cz>
877 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
878 also according to actual contants.
879 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
880 (gimple_fold_call): Use it.
881 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
883 2011-04-19 Martin Jambor <mjambor@suse.cz>
885 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
886 non-pointer assignments.
888 2011-04-19 Martin Jambor <mjambor@suse.cz>
890 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
891 account anc_offset and otr_type from the indirect edge info.
892 * ipa-prop.c (get_ancestor_addr_info): New function.
893 (compute_complex_ancestor_jump_func): Assignment analysis moved to
894 get_ancestor_addr_info, call it.
895 (ipa_note_param_call): Do not initialize information about polymorphic
896 calls, return the indirect call graph edge. Remove the last
897 parameter, adjust all callers.
898 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
899 parameters. Initialize polymorphic information in the indirect edge.
901 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
904 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
905 the types if they have different enumeration identifiers.
907 2011-04-19 Jan Hubicka <jh@suse.cz>
909 * cgraph.h (cgraph_optimize_for_size_p): Declare.
910 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
911 * predict.c (cgraph_optimize_for_size_p): Break out from ...
912 (optimize_function_for_size_p) ... here.
914 2011-04-19 Richard Guenther <rguenther@suse.de>
917 * tree.c (free_lang_data): Do not reset the decl-assembler-name
920 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
922 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
923 if DECL_NO_INLINE_WARNING_P is set on the function.
925 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
928 * reload1.c (inc_for_reload): Return void. All callers changed.
929 (emit_input_reload_insns): Don't try to delete previous output
930 reloads to a register, or record spill_reg_store for autoincs.
932 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
934 * gengtype.h: Updated copyright year.
935 (struct input_file_st): Add inpisplugin field.
936 (type_fileloc): New function.
938 (write_typed_struct_alloc_def): Add gcc_assert.
939 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
940 (write_typed_alloc_defns): Don't output for plugin files.
941 (input_file_by_name): Clear inpisplugin field.
942 (main): Set inpisplugin field for plugin files.
944 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
946 * gengtype-state.c (string_eq): New.
947 (read_state): Use string_eq instead of strcmp when creating the
950 2011-04-19 Wei Guozhi <carrot@google.com>
953 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
954 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
956 * config/arm/constraints.md (Uu): New constraint.
957 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
959 2011-04-19 Tristan Gingold <gingold@adacore.com>
961 * config.gcc (-*-*-*vms): Added.
962 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
964 * config/vms/vms-ld.c: New file.
965 * config/vms/vms-ar.c: New file.
966 * config/vms/t-vmsnative: New file.
968 2011-04-18 Xinliang David Li <davidxl@google.com>
970 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
972 2011-04-18 Jakub Jelinek <jakub@redhat.com>
975 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
976 if TREE_TYPE (v) is non-NULL.
978 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
979 gimple_get_virt_mehtod_for_binfo.
980 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
981 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
983 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
985 2011-04-18 Michael Matz <matz@suse.de>
986 Steve Ellcey <sje@cup.hp.com>
988 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
989 use its mode as source mode if it isn't VOIDmode.
991 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
993 * doc/passes.texi: Fill crossref nodes.
995 2011-04-18 Jim Meyering <meyering@redhat.com>
997 Fix doubled-word typos in comments and strings
998 * config/alpha/vms-unwind.h: s/for for/for/
999 * config/arm/unwind-arm.h: Likewise.
1000 * config/microblaze/microblaze.c: Likewise.
1001 * config/sh/constraints.md: s/in in/in/
1002 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
1004 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
1006 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
1007 (AVX_FLOAT_MODE_P): Ditto.
1008 (AVX128_VEC_FLOAT_MODE_P): Ditto.
1009 (AVX256_VEC_FLOAT_MODE_P): Ditto.
1010 (AVX_VEC_FLOAT_MODE_P): Ditto.
1011 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
1012 (UNSPEC_MASKSTORE): Ditto.
1013 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
1014 Merge from <sse>_movmsk<ssemodesuffix> and
1015 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
1016 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
1018 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
1019 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
1020 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
1022 2011-04-18 Jan Hubicka <jh@suse.cz>
1024 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
1026 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
1027 (want_inline_function_called_once_p): Break out the logic from
1029 (edge_badness): Ensure that profile is not misupdated.
1030 (lookup_recursive_calls): Prioritize by call frequencies.
1031 (inline_small_functions): Move program size estimates here;
1032 actually process whole queue even when unit growth has been
1033 met. (to properly compute inline_failed reasons and for the
1034 case unit size decrease.) Revisit comments on recursive inlining.
1035 (ipa_inline): Remove unit summary code; first inline hot calls
1036 of functions called once, cold calls next.
1037 (order, nnodes): Remove unused variables.
1038 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
1039 (GTFILES): Remove ipa-inline.c
1040 * sel-sched.c (fill_insns): Silence uninitialized var warning.
1042 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
1044 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
1046 2011-04-18 Jie Zhang <jie@codesourcery.com>
1047 Richard Earnshaw <rearnsha@arm.com>
1049 * arm.c (neon_builtin_type_bits): Remove.
1050 (typedef enum neon_builtin_mode): New.
1051 (T_MAX): Don't define.
1052 (typedef enum neon_builtin_datum): Remove bits, codes[],
1053 num_vars and base_fcode. Add mode, code and fcode.
1054 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
1055 VAR10): Change accordingly.
1056 (neon_builtin_data[]): Change accordingly
1057 (arm_init_neon_builtins): Change accordingly.
1058 (neon_builtin_compare): Remove.
1059 (locate_neon_builtin_icode): Remove.
1060 (arm_expand_neon_builtin): Change accordingly.
1062 * arm.h (enum arm_builtins): Move to ...
1063 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
1065 * arm.c (arm_builtin_decl): Declare.
1066 (TARGET_BUILTIN_DECL): Define.
1067 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
1068 (arm_builtin_decls[]): New.
1069 (arm_init_neon_builtins): Store builtin declarations in
1070 arm_builtin_decls[].
1071 (arm_init_tls_builtins): Likewise.
1072 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
1073 (arm_builtin_decl): New.
1075 2011-04-18 Richard Guenther <rguenther@suse.de>
1077 * tree.c (upper_bound_in_type): Build properly canonicalized
1079 (lower_bound_in_type): Likewise.
1081 2011-04-18 Richard Guenther <rguenther@suse.de>
1083 * gimple.h (gimple_call_addr_fndecl): New function.
1084 (gimple_call_fndecl): Use it.
1085 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
1087 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
1088 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
1090 2011-04-18 Richard Guenther <rguenther@suse.de>
1093 * tree.c (build_string): STRING_CST is now derived from tree_typed.
1095 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
1098 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
1099 DECL_IN_CONSTANT_POOL without RTL.
1101 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
1102 Ira Rosen <ira.rosen@linaro.org>
1105 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
1106 to match neon_vzip/vuzp/vtrn_internal.
1107 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
1108 outputs explicitly dependent on both inputs.
1109 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
1111 2011-04-18 Jakub Jelinek <jakub@redhat.com>
1113 PR tree-optimization/48616
1114 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
1115 whether the shift is by scalar or vector based on whether all SLP
1116 scalar stmts have the same rhs.
1118 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
1120 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
1123 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
1125 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
1128 2011-04-17 Jan Hubicka <jh@suse.cz>
1130 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
1131 * cgrpahunit.c (cgraph_finalize_function): Do not set
1132 finalized_by_frontend.
1133 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
1134 finalized_by_frontend.
1136 2011-04-17 Jan Hubicka <jh@suse.cz>
1138 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
1139 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
1140 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
1141 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
1143 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
1145 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
1147 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
1150 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
1151 is non-null before accessing it.
1152 (input_cgraph): Remove trailing spaces.
1154 2011-04-17 Revital Eres <revital.eres@linaro.org>
1156 * params.def (sms-min-sc): New param flag.
1157 * modulo-sched.c (sms_schedule): Use it.
1158 * doc/invoke.texi (sms-min-sc): Document it.
1160 2011-04-17 Jan Hubicka <jh@suse.cz>
1162 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
1163 present, also set gimple_call_set_cannot_inline.
1164 * ipa-inline.c: Update toplevel comment.
1166 (cgraph_clone_inlined_nodes): Fix linebreaks.
1167 (cgraph_check_inline_limits): Restructure to ...
1168 (caller_growth_limits): ... this one; be more tolerant
1169 on growth in nested inline chains; add explanatory comment;
1170 fix stack accounting thinko introduced by previous patch.
1171 (cgraph_default_inline_p): Remove.
1172 (report_inline_failed_reason): New function.
1173 (can_inline_edge_p): New function.
1174 (can_early_inline_edge_p): New function.
1175 (leaf_node_p): Move upwards in file.
1176 (want_early_inline_function_p): New function.
1177 (want_inline_small_function_p): New function.
1178 (want_inline_self_recursive_call_p): New function.
1179 (cgraph_edge_badness): Rename to ...
1180 (edge_badness) ... this one; fix linebreaks.
1181 (update_edge_key): Update call of edge_baddness; add
1182 detailed dump about queue updates.
1183 (update_caller_keys): Use can_inline_edge_p and
1184 want_inline_small_function_p.
1185 (cgraph_decide_recursive_inlining): Rename to...
1186 (recursive_inlining): Use can_inline_edge_p and
1187 want_inline_self_recursive_call_p; simplify and remove no longer
1189 (cgraph_set_inline_failed): Remove.
1190 (add_new_edges_to_heap): Use can_inline_edge_p and
1191 want_inline_small_function_p.
1192 (cgraph_decide_inlining_of_small_functions): Rename to ...
1193 (inline_small_functions): ... this one; cleanup; use
1194 can/want predicates; cleanup debug ouput; work edges till fibheap
1195 is exhausted and do not stop once unit growth is reached; remove
1196 later loop processing remaining edges.
1197 (cgraph_flatten): Rename to ...
1198 (flatten_function): ... this one; use can_inline_edge_p
1199 and can_early_inline_edge_p predicates.
1200 (cgraph_decide_inlining): Rename to ...
1201 (ipa_inline): ... this one; remove unreachable nodes before
1202 inlining functions called once; simplify the pass.
1203 (cgraph_perform_always_inlining): Rename to ...
1204 (inline_always_inline_functions): ... this one; use
1205 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
1206 (cgraph_decide_inlining_incrementally): Rename to ...
1207 (early_inline_small_functions): ... this one; simplify
1208 using new predicates; cleanup; make dumps prettier.
1209 (cgraph_early_inlining): Rename to ...
1210 (early_inliner): newer inline regular functions into always-inlines;
1211 fix updating of call stmt summaries.
1212 (pass_early_inline): Update for new names.
1213 (inline_transform): Fix formating.
1214 (gate_cgraph_decide_inlining): Rename to ...
1215 (pass_ipa_inline): ... this one.
1216 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
1217 * ipa-inline-analysis.c (dump_inline_summary): Update.
1218 (compute_inline_parameters): Do not compute disregard_inline_limits;
1219 look for mismatching arguments.
1220 (estimate_growth): Fix handlig of non-trivial self recursion.
1221 (inline_read_summary): Do not read info->disregard_inline_limits.
1222 (inline_write_summary): Do not write info->disregard_inline_limits.
1223 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
1224 and move all checks into can_inline_edge_p predicate; re-enable code
1225 comparing optimization levels.
1226 (expand_call_inline): Do not test inline_forbidden_into_p.
1227 * Makefile.in (ipa-inline.o): Update arguments.
1229 2011-04-17 Revital Eres <revital.eres@linaro.org>
1231 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
1233 2011-04-17 Revital Eres <revital.eres@linaro.org>
1235 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
1237 2011-04-17 Michael Matz <matz@suse.de>
1239 PR tree-optimization/48622
1241 * ipa-inline-analysis.c (inline_read_summary): Read size/time
1242 in same order as they're written.
1244 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1246 * config/pa/predicates.md: Reorganize and simplify predicates.
1247 Eliminate duplicate code checks.
1248 (arith_operand): Rename to arith14_operand
1249 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
1250 * config/pa/pa.md: Use renamed operands.
1251 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
1252 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
1253 arith11_operand, adddi3_operand, indexed_memory_operand,
1254 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
1255 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
1256 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
1257 move_dest_operand, move_src_operand, prefetch_cc_operand,
1258 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
1259 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
1260 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
1261 div_operand, int5_operand, movb_comparison_operator,
1262 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
1263 arith_double_operand, ireg_operand, lhs_lshift_operand,
1264 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
1265 integer_store_memory_operand): Likewise.
1266 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
1267 (integer_store_memory_operand, read_only_operand,
1268 function_label_operand, borx_reg_operand,
1269 non_hard_reg_operand): Likewise.
1270 (eq_neq_comparison_operator): Delete unused operator.
1271 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
1272 function_label_operand.
1273 (emit_move_sequence): Likewise.
1275 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
1277 * config/i386/sse.md (sseunpackmode): New mode attribute.
1278 (ssepackmode): Ditto.
1279 (vec_pack_trunc_<mode>): Macroize expander from
1280 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
1281 (vec_unpacks_lo_<mode>): Macroize expander from
1282 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1283 (vec_unpacks_hi_<mode>): Macroize expander from
1284 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1285 (vec_unpacku_lo_<mode>): Macroize expander from
1286 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1287 (vec_unpacku_hi_<mode>): Macroize expander from
1288 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1289 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
1290 ix86_expand_sse4_unpack.
1291 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
1293 2011-04-16 Jan Hubicka <jh@suse.cz>
1295 * cgraphbuild.c: Include ipa-inline.h.
1296 (reset_inline_failed): Use initialize_inline_failed.
1297 * cgraph.c: Include ipa-inline.h.
1298 (cgraph_create_node_1): Do not initialize estimated_growth.
1299 (initialize_inline_failed): More to ipa-inline-analysis.c
1300 (dump_cgraph_node): Do not dump inline flags.
1301 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
1302 and disregard_inline_limits flags.
1303 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
1304 time, size, estimated_growth.
1305 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
1307 * cgraphunit.c (cgraph_decide_is_function_needed): Use
1308 DECL_DISREGARD_INLINE_LIMITS.
1309 (cgraph_analyze_function): Do not initialize
1310 node->local.disregard_inline_limits.
1311 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
1312 inlinable, versionable and disregard_inline_limits.
1313 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1314 cgraph_check_inline_limits, cgraph_default_inline_p,
1315 cgraph_edge_badness, update_caller_keys, update_callee_keys,
1316 add_new_edges_to_heap): Update.
1317 (cgraph_decide_inlining_of_small_function): Update; set
1318 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
1319 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
1320 cgraph_decide_inlining_incrementally): Update.
1321 * ipa-inline.h (inline_summary): Add inlinable, versionable,
1322 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
1323 time, size and estimated_growth parameters.
1324 (estimate_edge_growth): Update.
1325 (initialize_inline_failed): Declare.
1326 * ipa-split.c: Include ipa-inline.h
1327 (execute_split_functions): Update.
1328 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
1329 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
1330 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
1331 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
1332 estimated_growth to INT_MIN.
1333 (inline_node_duplication_hook): Likewise.
1334 (dump_inline_summary): Dump new fields.
1335 (compute_inline_parameters): Update.
1336 (estimate_edge_time, estimate_time_after_inlining,
1337 estimate_size_after_inlining, estimate_growth, inline_read_summary,
1338 inline_write_summary):
1339 (initialize_inline_failed): Move here from cgraph.c.
1340 * tree-sra.c: Include ipa-inline.h.
1341 (ipa_sra_preliminary_function_checks): Update.
1342 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
1345 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
1347 * config/i386/sse.md (V16): New mode iterator.
1349 (AVXMODEQI, AVXMODEDI): Remove.
1350 (sse2, sse3): New mode attribute.
1351 (mov<mode>): Use V16 mode iterator.
1352 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
1353 (push<mode>1): Use V16 mode iterator.
1354 (movmisalign<mode>): Ditto.
1355 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
1356 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
1357 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
1358 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
1359 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
1360 avx_movdqu<avxmodesuffix>.
1361 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
1362 *avx_movdqu<avxmodesuffix>.
1363 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
1364 avx_lddqu<avxmodesuffix>.
1365 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
1366 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
1367 avx_movnt<AVXMODEDI:mode>.
1368 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
1369 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
1371 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
1374 * haifa-sched.c (prune_ready_list, schedule_block): Use
1375 sched_pressure_p rather than flag_sched_pressure.
1377 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
1379 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
1380 cgraph_get_node instead of cgraph_get_create_node.
1382 2011-04-15 Jakub Jelinek <jakub@redhat.com>
1384 * cfgexpand.c (expand_debug_expr): Use
1385 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
1387 2011-04-15 Michael Matz <matz@suse.de>
1389 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
1390 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
1391 * function.c (gimplify_parameters): Ditto.
1392 * gimplify.c (gimplify_vla_decl): Ditto.
1394 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
1395 (gimple_call_set_alloca_for_var): New inline function.
1396 (gimple_call_alloca_for_var_p): Ditto.
1397 * gimple.c (gimple_build_call_from_tree): Remember
1398 CALL_ALLOCA_FOR_VAR_P state.
1399 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
1401 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
1402 calls if they were for VLA objects.
1404 2011-04-15 Martin Jambor <mjambor@suse.cz>
1406 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
1409 2011-04-15 Martin Jambor <mjambor@suse.cz>
1412 * tree-emutls.c (lower_emutls_function_body): Call
1413 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
1416 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
1418 * c-decl.c (detect_field_duplicates): Call
1419 objc_detect_field_duplicates instead of objc_get_interface_ivars.
1421 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
1423 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
1424 * gimple.c (gimple_asm_clobbers_memory_p): Define.
1425 * ipa-pure-const.c (check_stmt): Call it.
1426 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
1428 2011-04-15 Richard Guenther <rguenther@suse.de>
1430 PR tree-optimization/48290
1431 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
1432 Properly decide inhibiting propagation based on the valueized
1433 operand. Do loop-closed SSA form preserving here ...
1434 (init_copy_prop): ... not here.
1436 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
1439 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
1440 (*ieee_smax<mode>3): Likewise.
1442 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1444 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
1445 Replace match_operand with match_dup for the third operand in
1448 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
1450 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
1451 to track processing of conditionals. Update all callers.
1452 (try_combine, simplify_if_then_else): Update.
1454 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
1456 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
1459 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
1461 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
1462 instead of match_operand for operand 3.
1464 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
1466 * recog.h (insn_operand_data): Add an "allows_mem" field.
1467 * genoutput.c (output_operand_data): Initialize it.
1468 * optabs.c (maybe_legitimize_operand_same_code): New function.
1469 (maybe_legitimize_operand): Use it when matching the original
1472 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
1474 * gimplify.c: Fix issues in comments throughout.
1475 (voidify_wrapper_expr): Fix long line.
1476 (build_stack_save_restore): Likewise.
1477 (gimplify_loop_expr): Likewise.
1478 (gimplify_compound_lval): Likewise.
1479 (gimplify_init_ctor_eval): Likewise.
1480 (gimplify_modify_expr_rhs): Likewise.
1481 (omp_notice_threadprivate_variable): Likewise.
1483 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
1485 * cfgexpand.c (expand_call_stmt): Convert the function type to the
1486 original one if this is not a builtin function.
1488 2011-04-14 Jakub Jelinek <jakub@redhat.com>
1491 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
1492 offset it as needed based on top 2 bits in operands[3], change
1493 MEM mode to SFmode and mask those 2 bits away from operands[3].
1495 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
1497 * c-parser.c (c_parser_objc_protocol_definition): Updated for
1498 change from objc_declare_protocols() to objc_declare_protocol().
1500 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
1502 * config/i386/sse.md (sse4_1): New mode attribute.
1503 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
1504 avx_blend<ssemodesuffix><avxmodesuffix> and
1505 sse4_1_blend<ssemodesuffix> using VF mode iterator.
1506 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
1507 avx_blendv<ssemodesuffix><avxmodesuffix> and
1508 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
1509 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
1510 avx_dp<ssemodesuffix><avxmodesuffix> and
1511 sse4_1_dp<ssemodesuffix> using VF mode iterator.
1512 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
1513 (sse4_1_packusdw): Merge with *avx_packusdw.
1514 (sse4_1_pblendvb): Merge with *avx_pblendvb.
1515 (sse4_1_pblendw): Merge with *avx_pblendw.
1516 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
1517 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
1518 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
1520 (sse4_1_round<ssescalarmodesuffix>): Merge with
1521 *avx_round<ssescalarmodesuffix>.
1522 (aesenc): Merge with *avx_aesenc.
1523 (aesenclast): Merge with *avx_aesenclast.
1524 (aesdec): Merge with *avx_aesdec.
1525 (aesdeclast): Merge with *avx_aesdeclast.
1526 (pclmulqdq): Merge with *pclmulqdq.
1527 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
1529 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
1531 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
1534 * cfgexpand.c (get_decl_align_unit): Renamed to ...
1535 (align_local_variable): This. Update DECL_ALIGN.
1536 (add_stack_var): Updated.
1537 (expand_one_stack_var): Likewise.
1539 2011-04-14 Richard Guenther <rguenther@suse.de>
1541 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
1543 (dse_initialize_block_local_data, dse_leave_block,
1544 record_voperand_set, get_stmt_uid): Likewise.
1545 (dse_possible_dead_store_p): Allow any kind of killing stmt.
1546 (dse_optimize_stmt): Remove voperand set handling code.
1547 Simplify and improve to handle any kind of killing stmt.
1548 (dse_record_phi): Remove.
1549 (dse_enter_block): Simplify.
1550 (tree_ssa_dse): Likewise.
1551 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
1553 2011-04-14 Jan Hubicka <jh@suse.cz>
1555 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
1556 * cgraph.h (struct inline_summary): Move to ipa-inline.h
1557 (cgraph_local_info): Remove inline_summary.
1558 * ipa-cp.c: Include ipa-inline.h.
1559 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
1560 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
1562 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
1563 (input_overwrite_node): Do not set inline summary.
1564 (input_node): Do not stream inline summary.
1565 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
1566 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
1567 growth; we do not have inline parameters computed for that anyway.
1568 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
1569 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
1570 (inline_summary_t): New type and VECtor.
1571 (debug_inline_summary, dump_inline_summaries): Declare.
1572 (inline_summary): Use VOCtor.
1573 (estimate_edge_growth): Kill hack computing call stmt size directly.
1574 * lto-section-in.c (lto_section_name): Add inline section.
1575 * ipa-inline-analysis.c: Include lto-streamer.h
1576 (node_removal_hook_holder, node_duplication_hook_holder): New holders
1577 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
1578 (inline_summary_vec): Define.
1579 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
1580 dump_inline_summaries): New functions.
1581 (estimate_function_body_sizes): Properly compute size/time of outgoing
1583 (compute_inline_parameters): Alloc inline_summary; do not compute
1584 size/time of incomming calls.
1585 (estimate_edge_time): Avoid missing time summary hack.
1586 (inline_read_summary): Read inline summary info.
1587 (inline_write_summary): Write inline summary info.
1588 (inline_free_summary): Free all hooks and inline summary vector.
1589 * lto-streamer.h: Add LTO_section_inline_summary section.
1590 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
1591 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
1593 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
1595 * tree-vectorizer.h (vect_strided_store_supported): Add a
1596 HOST_WIDE_INT argument.
1597 (vect_strided_load_supported): Likewise.
1598 (vect_permute_store_chain): Return void.
1599 (vect_transform_strided_load): Likewise.
1600 (vect_permute_load_chain): Delete.
1601 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
1602 count argument. Check that the count is a power of two.
1603 (vect_strided_load_supported): Likewise.
1604 (vect_permute_store_chain): Return void. Update after above changes.
1605 Assert that the access is supported.
1606 (vect_permute_load_chain): Likewise.
1607 (vect_transform_strided_load): Return void.
1608 * tree-vect-stmts.c (vectorizable_store): Update calls after
1609 above interface changes.
1610 (vectorizable_load): Likewise.
1611 (vect_analyze_stmt): Don't check for strided powers of two here.
1613 2011-04-14 Richard Guenther <rguenther@suse.de>
1615 PR tree-optimization/48590
1616 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
1617 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
1618 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
1619 BUILT_IN_STACK_SAVE.
1620 * tree-ssa-dce.c (propagate_necessity): Handle
1621 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
1623 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
1625 * c-parser.c (c_parser_objc_class_declaration): Updated call to
1628 2011-04-14 Richard Guenther <rguenther@suse.de>
1630 * tree.h (get_object_alignment_1): Declare.
1631 * builtins.c (get_object_alignment_1): Split out worker from ...
1632 (get_object_alignment): ... here.
1633 * fold-const.c (get_pointer_modulus_and_residue): Use
1634 get_object_alignment_1.
1636 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
1638 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
1640 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
1641 parameter. Generalise code to handle arrays as well as vectors.
1642 (vect_setup_realignment): Update accordingly.
1643 * tree-vect-stmts.c (vectorizable_store): Likewise.
1644 (vectorizable_load): Likewise.
1646 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
1648 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
1649 within the per-copy loop.
1651 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
1653 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
1656 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
1658 * doc/options.texi (Negative): Explicitly mention that the
1659 Negative chain must be circular.
1661 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
1663 * function.h (block_chainon): Declare.
1664 * function.c (block_chainon): Define.
1666 2011-04-14 Anatoly Sokolov <aesok@post.ru>
1667 Eric Weddington <eric.weddington@atmel.com>
1668 Georg-Johann Lay <avr@gjlay.de>
1670 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
1672 (avr_init_builtins, avr_expand_builtin,
1673 avr_expand_delay_cycles, avr_expand_unop_builtin,
1674 avr_expand_binop_builtin ): New functions.
1675 (avr_builtin_id): New enum
1676 (struct avr_builtin_description): New struct
1677 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
1678 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
1680 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
1681 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
1682 UNSPECV_DELAY_CYCLES): new enumeration values
1683 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
1684 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
1685 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
1686 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
1687 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
1688 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
1689 "fmulsu"): New insns
1691 * config/avr/avr-c.c: fix line endings
1692 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
1693 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
1694 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
1695 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
1696 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
1698 * doc/extend.texi (AVR Built-in Functions): New node
1699 (Target Builtins): Add documentation of AVR
1702 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
1705 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
1706 alone. Error if non-const data has attribute progmem.
1708 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
1710 * tree.h (struct tree_constructor): Include tree_typed instead of
1712 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
1713 TS_TYPED instead of TS_COMMON.
1715 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
1717 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
1718 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
1719 (sse2_psadbw): Merge with *avx_psadbw.
1720 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
1721 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
1722 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
1723 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
1724 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
1725 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
1726 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
1727 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
1728 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
1729 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
1730 (ssse3_palignrti): Merge with *avx_palignrti.
1732 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
1734 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
1735 * tree-ssanames.c (fini_ssanames): VEC_free it.
1736 (make_ssa_name_fn): Update for VECness of free_ssanames.
1737 (release_ssa_name, release_dead_ssa_names): Likewise.
1738 * tree.h (struct tree_ssa_name): Include tree_typed instead of
1740 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
1741 TS_TYPED instead of TS_COMMON.
1743 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
1745 * postreload-gcse.c (gcse_after_reload_main): Add calls to
1746 statistics_counter_event.
1747 * tree-ssa-copyrename.c (stats): Define.
1748 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
1749 statistics_counter_event.
1750 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
1751 (bswap_stats, widen_mul_stats): Define.
1752 (insert_reciprocals): Increment rdivs_inserted.
1753 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
1754 rfuncs_inserted. Add calls to statistics_counter_event.
1755 (execute_cse_sincos_1): Increment inserted.
1756 (execute_cse_sincos): Zeroize sincos_stats. Add call to
1757 statistics_counter_event.
1758 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
1759 of bswap_stats. Add calls to statistics_counter_event.
1760 (convert_mult_to_widen): Increment widen_mults_inserted.
1761 (convert_plusminus_to_widen): Increment maccs_inserted.
1762 (convert_mult_to_fma): Increment fmas_inserted.
1763 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
1764 calls to statistics_counter_event.
1766 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
1768 PR rtl-optimization/48455
1769 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
1770 `temp_costs->mem_cost'.
1772 2011-04-13 Jan Hubicka <jh@suse.cz>
1774 * ipa-inline.h: New file.
1775 * ipa-inline-analysis.c: New file. Broken out of ...
1776 * ipa-inline.c: ... this file; update toplevel comment;
1777 include ipa-inline.h
1778 (inline_summary): Move to ipa-inline.h
1779 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
1780 ipa-inline-analysis.c.
1781 (cgraph_estimate_time_after_inlining): Rename to
1782 estiamte_time_after_inlining; move to ipa-inline-analysis.c
1783 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
1784 to estimate_edge_growth.
1785 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
1786 rename to estimate_size_after_inlining.
1787 (cgraph_mark_inline_edge): Update for new naming convention.
1788 (cgraph_check_inline_limits): Likewise.
1789 (cgraph_edge_badness): Likewise.
1790 (cgraph_decide_recursive_inlining): Likewise.
1791 (cgraph_decide_inlining_of_small_functions): Likewise.
1792 (cgraph_decide_inlining_incrementally): Likewise.
1793 (cgraph_estimate_growth): Rename to estimate_growth; move to
1794 ipa-inline-analysis.c.
1795 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
1796 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
1797 (compute_inline_parameters): Likewise.
1798 (compute_inline_parameters_for_current): Likewise.
1799 (pass_inline_parameters): Likewise.
1800 (inline_indirect_intraprocedural_analysis): Likewise.
1801 (analyze_function): Rename to inline_analyze_function; likewise.
1802 (add_new_function): Move to ipa-inline-analysis.c.
1803 (inline_generate_summary): Likewise.
1804 (inline_read_summary): Likewise.
1805 (inline_write_summary): Likewise.
1806 * Makefile.in (ipa-inline-analysis.c): New file.
1808 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1810 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
1811 * configure: Regenerate.
1813 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
1815 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
1816 instead of tree_common.
1817 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
1819 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
1820 TS_TYPED rather than TS_COMMON.
1821 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
1823 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
1826 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
1827 r20 around calls of __tablejump_elpm__
1829 2011-04-13 Jakub Jelinek <jakub@redhat.com>
1832 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
1834 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
1836 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
1838 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
1839 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
1840 (cfi_vec): New typedef.
1841 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
1842 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
1843 (cie_cfi_vec): New static variable.
1844 (cie_cfi_head): Delete.
1845 (add_cfi): Accept a cfi_vec * as first argument. All callers and
1846 declaration changed. Use vector rather than list operations.
1847 (new_cfi): Don't initialize the dw_cfi_next field.
1848 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
1849 rather than list operations.
1850 (lookup_cfa): Use vector rather than list operations.
1851 (output_cfis): New argument upto. Accept a cfi_vec rather than
1852 a dw_cfi_ref list head as argument. All callers changed.
1853 Iterate over the vector using upto as a maximum index.
1854 (output_all_cfis): New static function.
1855 (output_fde): Use vector rather than list operations. Use the
1856 new upto argument for output_cfis rather than manipulating a
1858 (dwarf2out_begin_prologue): Change initializations to match
1860 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
1861 from the vector length rather than searching for the end of a list.
1862 Use output_all_cfis.
1863 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
1865 2011-04-13 Nick Clifton <nickc@redhat.com>
1867 * config/rx/rx.md (movmemsi): Do not use this pattern when
1868 volatile pointers are involved.
1870 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
1872 * config/i386/sse.md (pinsrbits): Remove.
1873 (sse2_packsswb): Merge with *avx_packsswb.
1874 (sse2_packssdw): Merge with *avx_packssdw.
1875 (sse2_packuswb): Merge with *avx_packuswb.
1876 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
1877 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
1878 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
1879 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
1880 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
1881 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
1882 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
1883 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
1884 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
1885 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
1886 (sse2_loadld): Merge with *avx_loadld.
1887 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
1888 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
1889 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
1890 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
1891 (vec_concatv2di): Merge with *vec_concatv2di_avx.
1893 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
1895 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
1897 * print-tree.c (print_node): Likewise.
1898 * tree-inline.c (copy_tree_r): Likewise.
1899 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
1900 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
1901 instead of TS_COMMON.
1902 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
1903 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
1904 (copy_node_stat): Zero TREE_CHAIN only if necessary.
1905 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
1906 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
1908 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
1910 (TREE_CHAIN): Check for a TS_COMMON structure.
1911 (TREE_TYPE): Check for a TS_TYPED structure.
1913 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
1915 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
1916 cgraph_get_create_node instead of cgraph_node.
1918 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
1920 * c-parser.c (c_parser_initelt): Updated call to
1921 objc_build_message_expr.
1922 (c_parser_postfix_expression): Likewise.
1924 2011-04-12 Kai Tietz <ktietz@redhat.com>
1926 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
1927 MASK_MS_BITFIELD_LAYOUT bit.
1929 2011-04-12 Jakub Jelinek <jakub@redhat.com>
1931 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
1932 assert it is always true.
1933 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
1936 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
1938 * c-parser.c (c_lex_one_token): Rewritten conditional used when
1939 compiling Objective-C to be more efficient.
1941 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
1943 * opts-common.c (decode_cmdline_options_to_array): Remove variable
1946 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
1948 * recog.h, genoutput.c, optabs.c: Revert last patch.
1950 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1953 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
1955 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
1957 * recog.h (insn_operand_data): Add an "allows_mem" field.
1958 * genoutput.c (output_operand_data): Initialize it.
1959 * optabs.c (maybe_legitimize_operand_same_code): New function.
1960 (maybe_legitimize_operand): Use it when matching the original
1963 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
1965 * genpreds.c (process_define_predicate): Move most processing
1966 to gensupport.c. Continue to validate the expression.
1967 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
1968 (process_define_predicate): Move processing to gensupport.c.
1969 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
1970 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
1971 (compute_predicate_codes): Moved from genrecog.c. Add lineno
1973 (valid_predicate_name_p): New function, split out from old
1974 genpreds.c:process_define_predicate.
1975 (process_define_predicate): New function, combining code from
1976 old genpreds.c and genrecog.c functions.
1977 (process_rtx): Call it for DEFINE_PREDICATE and
1978 DEFINE_SPECIAL_PREDICATE.
1980 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
1982 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
1983 size of a '%A' memory reference.
1984 (T_DREG, T_QREG): New neon_builtin_type_bits.
1985 (arm_init_neon_builtins): Assert that the load and store operands
1986 are neon_struct_operands.
1987 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
1988 (NEON_ARG_MEMORY): New builtin_arg.
1989 (neon_dereference_pointer): New function.
1990 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
1991 Handle NEON_ARG_MEMORY.
1992 (arm_expand_neon_builtin): Update after above interface changes.
1993 Use NEON_ARG_MEMORY for loads and stores.
1994 * config/arm/predicates.md (neon_struct_operand): New predicate.
1995 * config/arm/iterators.md (V_two_elem): Tweak formatting.
1996 (V_three_elem): Use BLKmode for accesses that have no associated mode.
1997 (V_four_elem): Tweak formatting.
1998 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
1999 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
2000 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
2001 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
2002 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
2003 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
2004 (neon_vst4<mode>): Replace pointer operand with a memory operand.
2005 Use %A in the output template.
2006 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
2007 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
2008 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
2009 the width of the memory access. Remove post-increment.
2010 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
2012 2011-04-12 Nick Clifton <nickc@redhat.com>
2014 * config/v850/v850.c (expand_prologue): Do not use the CALLT
2015 instruction for interrupt handlers if the target is the basic V850
2017 (expand_epilogue): Likewise.
2019 2011-04-12 Jakub Jelinek <jakub@redhat.com>
2021 PR rtl-optimization/48549
2022 * combine.c (propagate_for_debug): Also stop after BB_END of
2023 this_basic_block. Process LAST and just stop processing after it.
2024 (combine_instructions): If last_combined_insn has been deleted,
2025 set last_combined_insn to its PREV_INSN.
2027 2011-04-12 Richard Guenther <rguenther@suse.de>
2029 PR tree-optimization/46076
2030 * gimple.h (struct gimple_statement_call): Add fntype field.
2031 (gimple_call_fntype): Adjust.
2032 (gimple_call_set_fntype): New function.
2033 * gimple.c (gimple_build_call_1): Set the call function type.
2034 * gimplify.c (gimplify_call_expr): Preserve the function
2035 type the frontend used for the call.
2036 (gimplify_modify_expr): Likewise.
2037 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
2039 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
2041 * tree-ssa.c (useless_type_conversion_p): Function pointer
2042 conversions are useless.
2044 2011-04-12 Martin Jambor <mjambor@suse.cz>
2046 * cgraph.h (cgraph_node): Remove function declaration.
2047 (cgraph_create_node): Declare.
2048 (cgraph_get_create_node): Likewise.
2049 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
2050 Updated all callers.
2051 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
2052 the decl does not already exist. Call cgraph_get_create_node instead
2054 (cgraph_get_create_node): New function.
2055 (cgraph_same_body_alias): Update comment.
2056 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
2057 assert it does not return NULL.
2058 (cgraph_update_edges_for_call_stmt): Likewise.
2059 (cgraph_clone_edge): Likewise.
2060 (cgraph_create_virtual_clone): Likewise.
2061 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
2062 instead of cgraph_node.
2063 (cgraph_add_new_function): Call cgraph_create_node or
2064 cgraph_get_create_node instead of cgraph_node.
2065 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
2066 instead of cgraph_node.
2067 (record_eh_tables): Likewise.
2068 (mark_address): Likewise.
2069 (mark_load): Likewise.
2070 (build_cgraph_edges): Call cgraph_get_create_node instead
2072 (rebuild_cgraph_edges): Likewise.
2073 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
2074 instead of cgraph_node.
2075 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
2077 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
2078 cgraph_create_node instead of cgraph_node.
2079 * c-decl.c (finish_function): Call cgraph_get_create_node instead
2081 * lto-cgraph.c (input_node): Likewise.
2082 * lto-streamer-in.c (input_function): Likewise.
2083 * varasm.c (mark_decl_referenced): Likewise.
2084 (assemble_alias): Likewise.
2086 2011-04-12 Martin Jambor <mjambor@suse.cz>
2088 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
2089 instead of cgraph_node and assert it does not return NULL.
2090 * lto-streamer-in.c (lto_read_body): Likewise.
2091 * omp-low.c (new_omp_context): Likewise.
2092 (create_task_copyfn): Likewise.
2093 * tree-emutls.c (lower_emutls_function_body): Likewise.
2094 * matrix-reorg.c (transform_allocation_sites): Likewise.
2096 2011-04-12 Jakub Jelinek <jakub@redhat.com>
2099 * c-typeck.c (build_asm_expr): Error out on attempts to use
2100 void type outputs or inputs for constraints that allow reg or
2103 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
2104 Richard Earnshaw <rearnsha@arm.com>
2107 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
2108 to use sign-magnitude offsets. Reject unsupported unaligned
2109 cases. Add detailed description in comments.
2110 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
2111 condition from TARGET_32BIT to TARGET_ARM.
2113 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
2115 * tree.h (struct typed_tree): New.
2116 (struct tree_common): Include it instead of tree_base.
2117 (TREE_TYPE): Update for new location of type field.
2118 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
2119 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
2120 (union tree_node): Add typed field.
2121 * treestruct.def (TS_TYPED): New.
2122 * lto-streamer.c (check_handled_ts_structures): Handle it.
2123 * tree.c (MARK_TS_TYPED): New macro.
2124 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
2126 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
2128 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
2129 (force_nonfallthru): Do not alter the loop nest if no basic block
2132 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
2134 * config/i386/sse.md (VI): New mode iterator.
2136 (AVX256MODEI): Ditto.
2137 (AVXMODEF4P): Ditto.
2138 (avxvecpsmode): Ditto.
2139 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
2140 (sse2_andnot<mode>3): New expander.
2141 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
2142 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
2143 (<any_logic:code><mode>3): Use VI mode iterator.
2144 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
2145 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
2146 (*andnottf3): Handle AVX three-operand constraints.
2147 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
2149 2011-04-11 Joseph Myers <joseph@codesourcery.com>
2150 Robert Millan <rmh@gnu.org>
2152 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
2153 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
2154 GNU_USER_DYNAMIC_LINKER64): Define.
2155 (REG_NAME): Don't undefine.
2156 (MD_UNWIND_SUPPORT): Undefine.
2157 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
2158 (REG_NAME): Don't undefine.
2159 (MD_UNWIND_SUPPORT): Undefine.
2160 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
2162 2011-04-11 Joseph Myers <joseph@codesourcery.com>
2164 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
2165 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
2167 2011-04-11 Xinliang David Li <davidxl@google.com>
2169 * value-profile.c (check_ic_target): New function.
2170 (gimple_ic_transform): Sanity check indirect call target.
2171 * gimple-low.c (gimple_check_call_args): Interface change.
2172 (gimple_check_call_matching_types): New function.
2173 * tree-inline.c (tree_can_inline_p): Call new function.
2175 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
2177 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
2178 tree-pretty-print.h & realmpfr.h.
2180 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
2183 * ira.c (setup_pressure_classes): Fix typo in loop condition.
2184 (setup_allocno_and_important_classes): Ditto.
2186 2011-04-11 Joseph Myers <joseph@codesourcery.com>
2188 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
2189 GNU_USER_DYNAMIC_LINKER.
2190 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
2191 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2192 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
2193 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2194 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2195 GNU_USER_TARGET_OS_CPP_BUILTINS.
2196 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
2197 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2198 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2199 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2200 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
2201 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2202 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2203 GNU_USER_TARGET_OS_CPP_BUILTINS.
2204 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2205 GNU_USER_DYNAMIC_LINKER.
2206 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2207 GNU_USER_TARGET_OS_CPP_BUILTINS.
2208 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
2209 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2210 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
2211 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2212 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
2213 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
2214 GNU_USER_DYNAMIC_LINKER64): Remove.
2215 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
2216 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2217 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2218 GNU_USER_DYNAMIC_LINKER.
2219 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2220 GNU_USER_TARGET_OS_CPP_BUILTINS.
2221 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2222 GNU_USER_TARGET_OS_CPP_BUILTINS.
2223 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
2224 to GNU_USER_TARGET_OS_CPP_BUILTINS.
2225 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2226 GNU_USER_TARGET_OS_CPP_BUILTINS.
2227 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
2228 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
2229 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
2230 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
2231 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2232 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2233 GNU_USER_DYNAMIC_LINKER.
2234 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2235 GNU_USER_TARGET_OS_CPP_BUILTINS.
2236 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
2237 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2238 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2239 GNU_USER_DYNAMIC_LINKER.
2240 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2241 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2242 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
2243 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2244 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2245 GNU_USER_DYNAMIC_LINKER.
2246 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
2247 GNU_USER_DYNAMIC_LINKERN32.
2248 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
2249 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
2250 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
2251 GNU_USER_DYNAMIC_LINKER32.
2252 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
2253 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2254 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2255 GNU_USER_DYNAMIC_LINKER.
2256 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2257 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2258 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
2259 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2260 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2261 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
2262 GNU_USER_DYNAMIC_LINKER32.
2263 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
2264 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
2265 GNU_USER_DYNAMIC_LINKER.
2266 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
2267 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2268 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
2269 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
2270 GNU_USER_DYNAMIC_LINKER64.
2271 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
2272 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2273 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2274 GNU_USER_DYNAMIC_LINKER.
2275 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
2276 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2277 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2278 GNU_USER_DYNAMIC_LINKER.
2279 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
2280 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2281 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
2282 GNU_USER_DYNAMIC_LINKER32.
2283 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
2284 GNU_USER_DYNAMIC_LINKER64.
2285 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
2286 GNU_USER_DYNAMIC_LINKER64.
2287 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
2288 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2289 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
2290 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2291 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2293 2011-04-11 Joseph Myers <joseph@codesourcery.com>
2295 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
2296 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
2297 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
2298 GNU_USER_DYNAMIC_LINKER.
2299 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
2300 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
2301 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
2302 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
2303 GNU_USER_DYNAMIC_LINKER64.
2304 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
2305 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
2306 GNU_USER_LINK_EMULATION.
2307 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
2308 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
2309 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
2310 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
2311 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
2312 CPP_SPEC, CC1_SPEC): Remove.
2313 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
2314 (GNU_USER_DYNAMIC_LINKER): Define.
2315 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
2316 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
2317 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
2318 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
2319 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
2320 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
2321 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
2322 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
2323 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
2324 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
2325 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
2326 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
2327 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
2328 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
2329 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
2330 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
2331 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2332 GNU_USER_DYNAMIC_LINKER.
2333 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2334 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
2335 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2336 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
2337 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2338 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
2339 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
2340 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
2341 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
2342 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
2344 2011-04-11 Kai Tietz <ktietz@redhat.com>
2348 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
2349 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
2351 (ix86_is_msabi_thiscall): Removed.
2352 (ix86_is_type_thiscall): Likewise.
2353 (ix86_get_callcvt): New function.
2354 (ix86_comp_type_attributes): Simplify check.
2355 (ix86_function_regparm): Use ix86_get_callcvt for calling
2356 convention attribute checks.
2357 (ix86_return_pops_args): Likewise.
2358 (ix86_static_chain): Likewise.
2359 (x86_this_parameter): Likewise.
2360 (x86_output_mi_thunk): Likewise.
2361 (ix86_function_type_abi): Optimize check for types without attributes.
2362 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
2363 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
2364 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
2366 (IX86_BASE_CALLCVT): Helper macro.
2367 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2368 Use ix86_get_callcvt for calling convention attribute checks and avoid
2369 symbol-decoration for stdcall in TARGET_RTD case.
2370 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
2372 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
2375 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
2377 * config/i386/sse.md (VI_128): New mode iterator.
2378 (VI12_128): Rename from SSEMODE12.
2379 (VI14_128): Rename from SSEMODE14.
2380 (VI124_128): New mode iterator.
2381 (VI24_128): Rename from SSEMODE248.
2382 (VI248_128): Rename from SSEMODE248.
2383 (SSEMODE124C8): Remove.
2384 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
2385 (*sse2_<plusminus_insn><mode>3): Merge with
2386 *avx_<plusminus_insn><mode>3.
2387 (*mulv8hi3): Merge with *avx_mulv8hi3.
2388 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
2389 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
2390 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
2391 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
2392 (ashr<mode>3): Merge with *avx_ashr<mode>3.
2393 (lshr<mode>3): Merge with *avx_lshr<mode>3.
2394 (ashl<mode>3): Merge with *avx_ashl<mode>3.
2395 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
2396 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
2397 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2398 (*<smaxmin:code>v8hi3): Ditto.
2399 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
2400 (*<smaxmin:code>v16qi3): Ditto.
2401 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
2402 (*sse2_eq<mode>3): Ditto.
2403 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
2404 (*sse2_gt<mode>3): Ditto.
2405 (vcondv2di): Split out of vcond<mode>.
2406 (vconduv2di): Split out of vcondu<mode>.
2408 2011-04-11 Richard Guenther <rguenther@suse.de>
2410 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
2411 before calling tree_low_cst.
2413 2011-04-11 Richard Guenther <rguenther@suse.de>
2415 * stor-layout.c (layout_type): Compute all array index size operations
2416 in the original type.
2417 (initialize_sizetypes): Add comment.
2418 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
2420 2011-04-11 Joseph Myers <joseph@codesourcery.com>
2422 * common.opt (Tbss=, Tdata=, Ttext=): New options.
2424 2011-04-11 Martin Jambor <mjambor@suse.cz>
2426 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
2427 of cgraph_node, handle NULL return value.
2428 (cgraph_global_info): Likewise.
2429 (cgraph_rtl_info): Likewise.
2430 * tree-inline.c (estimate_num_insns): Likewise.
2431 * gimplify.c (unshare_body): Likewise.
2432 (unvisit_body): Likewise.
2433 (gimplify_body): Likewise.
2434 * predict.c (optimize_function_for_size_p): Likewise.
2435 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
2436 (call_may_clobber_ref_p_1): Likewise.
2437 * varasm.c (function_section_1): Likewise.
2438 (assemble_start_function): Likewise.
2440 2011-04-11 Martin Jambor <mjambor@suse.cz>
2442 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
2444 * final.c (rest_of_clean_state): Likewise.
2445 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
2446 * passes.c (pass_init_dump_file): Likewise.
2447 (execute_all_ipa_transforms): Likewise.
2448 (function_called_by_processed_nodes_p): Likewise.
2449 * predict.c (maybe_hot_frequency_p): Likewise.
2450 (probably_never_executed_bb_p): Likewise.
2451 (compute_function_frequency): Likewise.
2452 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
2453 (unnest_nesting_tree_1): Likewise.
2454 (lower_nested_functions): Likewise.
2455 * tree-optimize.c (execute_fixup_cfg): Likewise.
2456 (tree_rest_of_compilation): Likewise.
2457 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
2458 * tree-sra.c (ipa_early_sra): Likewise.
2459 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2460 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
2461 * ipa.c (record_cdtor_fn): Likewise.
2462 * ipa-inline.c (cgraph_early_inlining): Likewise.
2463 (compute_inline_parameters_for_current): Likewise.
2464 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
2465 * ipa-pure-const.c (local_pure_const): Likewise.
2466 * ipa-split.c (split_function): Likewise.
2467 (execute_split_functions): Likewise.
2468 * cgraphbuild.c (build_cgraph_edges): Likewise.
2469 (rebuild_cgraph_edges): Likewise.
2470 (cgraph_rebuild_references): Likewise.
2471 (remove_cgraph_callee_edges): Likewise.
2472 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
2473 (verify_cgraph_node): Likewise.
2474 (cgraph_analyze_functions): Likewise.
2475 (cgraph_preserve_function_body_p): Likewise.
2476 (save_inline_function_body): Likewise.
2477 (save_inline_function_body): Likewise.
2478 * tree-inline.c (copy_bb): Likewise.
2479 (optimize_inline_calls): Likewise.
2481 2011-04-11 Martin Jambor <mjambor@suse.cz>
2483 PR tree-optimization/48195
2484 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
2485 ipa_check_create_edge_args.
2486 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
2487 ipa_check_create_edge_args.
2488 * ipa-inline.c (inline_generate_summary): Do not call
2489 ipa_check_create_node_params and ipa_check_create_edge_args.
2490 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
2491 ipa_check_create_edge_args.
2493 2011-04-09 Anatoly Sokolov <aesok@post.ru>
2495 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
2497 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2498 * function.c (record_hard_reg_sets): Likewise.
2499 * ira.c (compute_regs_asm_clobbered): Likewise.
2500 * sched-deps.c (sched_analyze_1): Likewise.
2501 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
2503 2011-04-09 Xinliang David Li <davidxl@google.com>
2505 PR tree-optimization/PR48484
2506 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
2507 has_valid_pred lazily
2509 2011-04-09 Duncan Sands <baldrick@free.fr>
2511 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
2513 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
2515 * combine.c (combine_validate_cost): Adjust comments. Set registered
2516 cost of I0 to zero at the end, if any.
2518 2011-04-08 Xinliang David Li <davidxl@google.com>
2520 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
2521 to insane profile data.
2523 2011-04-08 Xinliang David Li <davidxl@google.com>
2525 * ipa-cp.c (ipcp_update_profiling): Correct
2526 negative scale factor due to insane profile data.
2528 2011-04-08 Xinliang David Li <davidxl@google.com>
2530 * final.c (dump_basic_block_info): New function.
2531 (final): Dump basic block.
2532 (final_scan_insn): Remove old dump.
2534 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
2537 * config.gcc (i386-*-freebsd): Disable unwind table generation for
2540 2011-04-08 Michael Matz <matz@suse.de>
2543 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
2545 (rebuild_jump_labels): Call rebuild_jump_labels_1.
2546 * rtl.h (rebuild_jump_labels_chain): Declare.
2547 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
2548 insns inserted on edges.
2550 2011-04-08 Joseph Myers <joseph@codesourcery.com>
2552 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
2553 * config/arm/arm-arches.def: New.
2554 * config/arm/arm-opts.h: New.
2555 * config/arm/genopt.sh: New.
2556 * config/arm/arm-tables.opt: New (generated).
2557 * config/arm/arm.c (arm_handle_option, arm_target_help,
2558 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
2559 (all_architectures): Get most table contents from arm-arches.def.
2560 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
2561 arm_selected_tune here.
2562 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
2563 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
2564 (march=, mcpu=, mtune=): Use Enum and Var.
2565 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
2566 (arm.o): Update dependencies.
2568 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
2570 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
2572 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
2573 (write_typed_alloc_defns): Likewise.
2574 (main): Calls write_typed_alloc_defns with output_header.
2576 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
2579 * ira-color.c (setup_profitable_hard_regs): Add comments.
2580 Don't take prohibited hard regs into account.
2581 (setup_conflict_profitable_regs): Rename to
2582 get_conflict_profitable_regs.
2583 (check_hard_reg_p): Check prohibited hard regs.
2585 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
2587 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
2588 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
2589 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
2591 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2594 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
2595 move from floating point to shift amount register.
2596 (emit_move_sequence): Remove secondary reload support for floating
2597 point to shift amount amount register copies.
2598 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
2599 amount register copies.
2600 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
2601 register, return false if mode isn't a scalar integer mode.
2602 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
2604 2011-04-08 Richard Guenther <rguenther@suse.de>
2606 * gimple.c (gimple_call_flags): Remove kludge.
2608 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
2610 * sel-sched.c (sel_region_init): Move call to
2611 sel_setup_region_sched_flags after setup_current_loop_nest.
2613 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
2615 PR rtl-optimization/48272
2616 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
2617 init_insn_reg_pressure_info. Adjust a caller.
2618 * sched-int.h (init_insn_reg_pressure_info): Declare.
2619 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
2620 when sched-pressure is enabled.
2622 2011-04-08 Richard Guenther <rguenther@suse.de>
2624 * gimple.c (gimple_set_modified): Do not queue calls to
2625 MODIFIED_NORETURN_CALLS here ...
2626 * tree-ssa-operands.c (update_stmt_operands): ... but here.
2628 2011-04-08 Richard Guenther <rguenther@suse.de>
2631 * toplev.c (lang_dependent_init): Do not open asm_out_file
2632 in WPA mode, nor perform debug machinery initialization.
2633 (finalize): Do not unlink asm_out_file in WPA mode.
2635 2011-04-08 Richard Guenther <rguenther@suse.de>
2637 * gimple.h (gimple_call_fntype): New function.
2638 (gimple_call_return_type): Use it.
2639 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
2640 * gimple-low.c (gimple_check_call_args): Likewise.
2641 * gimple.c (gimple_call_flags): Likewise.
2642 (gimple_call_arg_flags): Likewise.
2643 (gimple_call_return_flags): Likewise.
2644 * tree-cfg.c (verify_gimple_call): Likewise.
2645 (do_warn_unused_result): Likewise.
2646 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
2647 * value-prof.c (gimple_ic_transform): Fix fndecl check.
2649 2011-04-08 Dmitry Melnik <dm@ispras.ru>
2651 PR rtl-optimization/48235
2652 * sel-sched.c (code_motion_process_successors): Recompute the last
2653 insn in basic block if control flow changed.
2654 (code_motion_path_driver): Ditto. Recompute the first insn as well.
2655 Update condition for ilist_remove.
2657 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
2659 PR rtl-optimization/48302
2660 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
2661 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
2662 it to record added preheader blocks.
2663 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
2664 on to sel_add_loop_preheaders.
2665 (sel_region_init): Move call to setup_current_loop_nest after
2668 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
2671 * cfgloop.h (loop_has_exit_edges): New helper.
2672 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
2674 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
2675 that have no exit edges.
2677 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
2679 PR rtl-optimization/48442
2680 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
2681 all callers. Adjust assert.
2683 2011-04-08 Jakub Jelinek <jakub@redhat.com>
2685 PR tree-optimization/48377
2686 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
2687 is_packed to true even for types with smaller TYPE_ALIGN than
2690 2011-04-08 Richard Guenther <rguenther@suse.de>
2693 * doc/tm.texi: Re-generate.
2695 2011-04-08 Wei Guozhi <carrot@google.com>
2698 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
2699 * config/arm/arm.c (arm_attr_length_push_multi): New function.
2700 * config/arm/arm.md (*push_multi): Change the length computation to
2703 2011-04-08 Anatoly Sokolov <aesok@post.ru>
2705 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
2706 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
2707 * doc/tm.texi: Regenerate.
2708 * system.h (ASM_OUTPUT_BSS): Poison.
2709 * varasm.c (asm_output_bss): Remove function.
2710 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
2712 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
2713 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
2714 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
2715 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2717 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2719 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2721 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
2723 2011-04-07 Joseph Myers <joseph@codesourcery.com>
2725 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
2728 2011-04-07 Joseph Myers <joseph@codesourcery.com>
2730 * config/m68k/m68k.c (m68k_handle_option): Don't handle
2731 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
2732 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
2734 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
2735 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
2736 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
2737 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
2738 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
2739 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
2740 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
2741 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
2742 options. Don't map other m68k options manually. Don't handle
2743 old-style options as canonical.
2744 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
2745 * doc/install.texi (m68k-*-*): Document binutils version requirement.
2747 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
2749 * basic-block.h (force_nonfallthru): Move to...
2750 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
2751 (force_nonfallthru): ...here.
2752 * cfghooks.c (force_nonfallthru): New function.
2753 * cfgrtl.c (force_nonfallthru): Rename into...
2754 (rtl_force_nonfallthru): ...this.
2755 (commit_one_edge_insertion): Do not set AUX field.
2756 (commit_edge_insertions): Do not discover new basic blocks.
2757 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
2758 (cfg_layout_rtl_cfg_hooks): Likewise.
2759 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
2760 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
2761 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
2763 2011-04-07 Anatoly Sokolov <aesok@post.ru>
2765 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
2768 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
2770 * config/i386/sse.md: Update copyright year.
2771 (avxcvtvecmode): Remove.
2772 (sse_movhlps): Merge with *avx_movhlps.
2773 (sse_movlhps): Merge with *avx_movlhps.
2774 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
2775 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
2776 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
2777 (sse_loadhps): Merge with *avx_loadhps.
2778 (sse_storelps): Merge with *avx_storelps.
2779 (sse_loadlps): Merge with *avx_loadlps.
2780 (sse_movss): Merge with *avx_movss.
2781 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
2782 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
2783 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
2784 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
2785 (vec_set<mode>_0): Ditto.
2786 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
2787 (sse4_1_insertps): Merge with *avx_insertps.
2788 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
2789 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
2790 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
2791 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
2792 (sse2_storehpd): Merge with *avx_storehpd.
2793 (sse2_loadhpd): Merge with *avx_loadhpd.
2794 (sse2_loadlpd): Merge with *avx_loadlpd.
2795 (sse2_movsd): Merge with *avx_movsd.
2796 (*vec_concatv2df): Merge with *vec_concatv2df.
2798 2011-04-07 Jakub Jelinek <jakub@redhat.com>
2801 * combine.c (combine_instructions): Add last_combined_insn,
2802 update it if insn is after it, pass it to all try_combine calls.
2803 (try_combine): Add last_combined_insn parameter, pass it instead of
2804 i3 to propagate_for_debug.
2806 2011-04-07 Nick Clifton <nickc@redhat.com>
2808 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
2809 to handle MDR <-> data register transfers.
2810 (movhi_internal): Likewise.
2812 2011-04-07 Alan Modra <amodra@gmail.com>
2814 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
2815 previous stack info.
2817 2011-04-07 Tom de Vries <tom@codesourcery.com>
2820 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
2821 flow_find_cross_jump. Swap variables to implement backward replacement.
2822 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
2824 2011-04-07 Tom de Vries <tom@codesourcery.com>
2827 * cfgcleanup.c (walk_to_nondebug_insn): New function.
2828 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
2830 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
2831 src1 or src2. Redirect edges to the last basic block. Update
2832 frequency and count on multiple basic blocks in case of fallthru.
2834 2011-04-07 Tom de Vries <tom@codesourcery.com>
2837 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
2839 (old_insns_match_p): Change return type. Replace return false/true
2840 with return dir_none/dir_both. Use can_replace_by.
2841 (flow_find_cross_jump): Add dir_p parameter. Init replacement
2842 direction from dir_p. Register replacement direction in dir, last_dir
2843 and afterlast_dir. Handle new return type of old_insns_match_p using
2844 merge_dir. Return replacement direction in dir_p.
2845 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
2846 return type of old_insns_match_p.
2847 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
2848 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
2849 flow_find_cross_jump.
2850 * basic-block.h (enum replace_direction): New type.
2851 (flow_find_cross_jump): Add parameter to declaration.
2853 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
2855 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
2856 (AVXMODEDCVTPS2DQ): Ditto.
2857 (VEC_FLOAT_MODE): Ditto.
2858 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
2859 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
2860 (<any_logic:code><mode>3): Use VF mode iterator.
2861 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
2862 Use VF mode iterator.
2863 (copysign<mode>3): Use VF mode iterator.
2864 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
2865 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
2866 (*<any_logic:code><MODEF:mode>3): Merge with
2867 *avx_<any_logic:code><MODEF:mode>3.
2868 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
2869 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
2870 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
2871 (avx_cvtdq2ps<avxmodesuffix>): Remove.
2872 (sse2_cvtdq2ps): Use %v modifier.
2873 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
2874 (avx_cvtps2dq<avxmodesuffix>): Remove.
2875 (sse2_cvtps2dq): Use %v modifier.
2876 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
2877 (avx_cvttps2dq<avxmodesuffix>): Remove.
2878 (sse2_cvttps2dq): Use %v modifier.
2879 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
2880 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
2881 (sse2_cvtsd2siq): Fix insn template.
2882 (sse2_cvtsd2siq_2): Ditto.
2883 (sse2_cvttsd2siq): Ditto.
2884 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
2885 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
2887 2011-04-06 Joseph Myers <joseph@codesourcery.com>
2889 * gcov-io.c: Use GCC Runtime Library Exception.
2891 2011-04-06 Jakub Jelinek <jakub@redhat.com>
2894 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
2895 as base_reg whatever register reg has been eliminated to, instead
2896 of hardcoding STACK_POINTER_REGNUM.
2898 2011-04-06 Joseph Myers <joseph@codesourcery.com>
2900 * doc/tm.texi.in: Document C target hooks as separate from general
2902 * doc/tm.texi: Regenerate.
2903 * genhooks.c (struct hook_desc): Add docname field.
2904 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
2906 (hook_array): Include c-target.def.
2907 (emit_documentation): Use docname field in output.
2908 (emit_init_macros): Take docname argument. Only emit definitions
2909 for hooks matching docname.
2910 (main): Expect additional arguments in all cases. Pass argument
2911 to emit_init_macros.
2912 * target.def: Move initial macro definitions and comments to
2913 target-hooks-macros.h.
2914 (gcc_targetcm): Move to c-family/c-target.def.
2915 * target.h (targetcm): Move declaration to c-family/c-target.h.
2916 * targhooks.c (default_handle_c_option): Move to
2918 * targhooks.h (default_handle_c_option): Move declaration to
2919 c-family/c-common.h.
2920 * target-hooks-macros.h: New file.
2921 * config.gcc (target_has_targetcm): Define and use to add to
2922 c_target_objs and cxx_target_objs.
2923 * config/default-c.c: New file.
2924 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
2925 of target.h and target-def.h.
2926 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
2927 (darwin_objc_construct_string, darwin_cfstring_ref_p,
2928 darwin_check_cfstring_format_arg): Make static.
2929 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
2930 TARGET_STRING_OBJECT_REF_TYPE_P,
2931 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
2932 * config/darwin-protos.h (darwin_objc_construct_string,
2933 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
2935 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
2936 TARGET_STRING_OBJECT_REF_TYPE_P,
2937 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
2938 * config/t-darwin (darwin-c.o): Update dependencies.
2939 * system.h (TARGET_HAS_TARGETCM): Poison.
2940 * Makefile.in (TARGET_H): Update.
2941 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
2942 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
2943 (default-c.o): New target.
2944 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
2945 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
2946 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
2948 (build/genhooks.o): Update dependencies.
2950 2011-04-06 Richard Guenther <rguenther@suse.de>
2952 * ipa-inline.c (enum inlining_mode): Remove.
2953 (cgraph_flatten): Use some other token.
2954 (cgraph_edge_early_inlinable_p): New function, split out from ...
2955 (cgraph_perform_always_inlining): New function, split out from ...
2956 (cgraph_decide_inlining_incrementally): ... here.
2957 (cgraph_mark_inline_edge): Adjust.
2958 (cgraph_early_inlining): Re-structure.
2959 (pass_early_inline): Require SSA form.
2961 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
2962 Julian Brown <julian@codesourcery.com>
2963 Mark Shinwell <shinwell@codesourcery.com>
2965 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
2966 LO_REGS only for Thumb-1.
2967 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
2968 be used in short instructions when optimising for size on Thumb-2.
2970 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
2972 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
2973 associated with user returns to be preserved.
2975 2011-04-06 Tristan Gingold <gingold@adacore.com>
2977 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
2978 symbol_queue_size, DBXOUT_DECR_NESTING,
2979 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
2980 if XCOFF_DEBUGGING_INFO.
2982 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
2984 * config/i386/i386.md (attribute isa): New.
2985 (attribute enabled): New.
2986 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
2987 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
2988 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
2989 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
2990 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
2991 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2992 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
2993 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
2995 * config/i386/sse.md (VF): New mode iterator.
2999 (SSEMODEF4): Remove.
3000 (attribute sse): Handle V8SF and V4DF modes.
3001 (<absneg:code><mode>2): Use VF mode iterator.
3002 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
3004 (<plusminus_insn><mode>3): Use VF mode iterator.
3005 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
3006 Use VF mode iterator.
3007 (<sse>_vm<plusminus_insn><mode>3): Merge with
3008 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
3009 (mul<mode>3): Use VF mode iterator.
3010 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
3011 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
3013 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
3014 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
3015 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
3016 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
3018 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
3019 Use VF1 mode iterator.
3020 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
3021 (sqrt<VF2:mode>2): New expander.
3022 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
3023 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
3024 and sqrtv2df2. Use VF mode iterator.
3025 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
3027 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
3028 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
3029 Use VF1 mode iterator.
3030 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
3031 (<smaxmin:code><mode>3): Use VF mode iterator.
3032 (*<smaxmin:code><mode>3_finite): Merge with
3033 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
3034 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
3035 (<sse>_vm<smaxmin:code><mode>2): Merge with
3036 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
3037 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
3039 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
3041 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
3042 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
3043 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
3044 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
3045 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
3047 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
3048 Use VF_128 mode iterator.
3049 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
3051 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
3052 VF_128 mode iterator.
3053 (vcond<mode>): Use VF mode iterator.
3054 * config/i386/predicates.md (sse_comparison_operator): Merge with
3055 avx_comparison_float_operator. Do not declare as special_predicate.
3056 * config/i386/i386.c (struct builtin_description): Update for renamed
3058 (ix86_expand_args_builtin): Ditto.
3059 (ix86_expand_sse_compare_mask): Ditto.
3061 2011-04-06 Richard Guenther <rguenther@suse.de>
3063 * tree-inline.c (estimate_num_insns): For calls simply account
3064 for all passed arguments and a used return value.
3066 2011-04-06 Richard Guenther <rguenther@suse.de>
3068 PR tree-optimization/47663
3069 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
3070 call_stmt_time fields.
3071 (cgraph_edge_inlinable_p): Declare.
3072 (cgraph_edge_recursive_p): New inline function.
3073 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
3074 (cgraph_clone_edge): Copy it.
3075 * ipa-inline.c (cgraph_estimate_edge_time): New function.
3076 Account for call stmt time.
3077 (cgraph_estimate_time_after_inlining): Take edge argument.
3078 (cgraph_estimate_edge_growth): Account call stmt size.
3079 (cgraph_estimate_size_after_inlining): Take edge argument.
3080 (cgraph_mark_inline_edge): Adjust.
3081 (cgraph_check_inline_limits): Likewise.
3082 (cgraph_recursive_inlining_p): Remove.
3083 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
3084 (cgraph_decide_recursive_inlining): Take edge argument and
3086 (cgraph_decide_inlining_of_small_functions): Do not avoid
3087 diags for recursive inlining here.
3088 (cgraph_flatten): Adjust.
3089 (cgraph_decide_inlining_incrementally): Likewise.
3090 (estimate_function_body_sizes): Remove call cost handling.
3091 (compute_inline_parameters): Initialize caller edge call costs.
3092 (cgraph_estimate_edge_growth): New function.
3093 (cgraph_estimate_growth): Use it.
3094 (cgraph_edge_badness): Likewise.
3095 (cgraph_check_inline_limits): Take an edge argument.
3096 (cgraph_decide_inlining_of_small_functions): Adjust.
3097 (cgraph_decide_inlining): Likewise.
3098 * tree-inline.c (estimate_num_insns): Only account for call
3099 return value if it is used.
3100 (expand_call_inline): Avoid diagnostics on recursive inline
3102 * lto-cgraph.c (lto_output_edge): Output edge call costs.
3103 (input_edge): Input edge call costs.
3105 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3107 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
3109 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
3111 * doc/invoke.texi (Spec Files): Fix typo.
3113 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
3115 * profile.c (branch_prob): Move declaration of local variable. Remove
3116 obsolete ??? comment. Expand the location explicitly instead of using
3117 the LOCATION_FILE and LOCATION_LINE macros.
3119 2011-04-06 Wei Guozhi <carrot@google.com>
3122 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
3123 (arm_cond_branch): Likewise.
3124 (arm_cond_branch_reversed): Likewise.
3125 (arm_jump): Likewise.
3126 (push_multi): Likewise.
3127 * config/arm/constraints.md (Py): New constraint.
3129 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3132 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
3134 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
3135 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
3136 #ifdef DBX_DEBUGGING_INFO.
3138 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
3141 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3142 if old and new states differ.
3144 2011-04-05 Joseph Myers <joseph@codesourcery.com>
3146 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
3147 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
3148 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
3149 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
3150 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
3152 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
3153 ColdFire options to -mcpu= options.
3155 2011-04-05 Jeff Law <law@redhat.com>
3157 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
3158 check if BB is a successor of LOOP->header and return
3159 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
3161 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
3163 * cprop.c (struct reg_use): Remove.
3164 (reg_use_table): Make an array of RTX.
3165 (find_used_regs, constprop_register, local_cprop_pass,
3166 bypass_block): Simplify users of reg_use_table.
3167 (cprop_insn): Likewise. Iterate if copy propagation succeeded
3168 on one of the uses found by find_used_regs.
3170 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3173 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
3176 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3178 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
3180 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
3182 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
3185 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
3187 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3189 * combine.c: Include obstack.h.
3190 (struct insn_link): Define.
3191 (uid_log_links): Adjust type.
3192 (FOR_EACH_LOG_LINK): New macro.
3193 (insn_link_obstack): Declare.
3194 (alloc_insn_link): Define.
3195 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
3196 type of link variables.
3197 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
3198 (try_combine, record_promoted_values, distribute_notes): Likewise.
3199 (distribute_links): Likewise. Tweak prototype.
3200 (clear_log_links): Delete.
3201 (adjust_for_new_dest): Call alloc_insn_link.
3202 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
3204 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3206 * gcse.c (modify_mem_list): Convert to an array of VECs.
3207 (canon_modify_mem_list, compute_transp): Tweak formatting.
3208 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
3209 (load_killed_in_block_p): Likewise.
3210 (record_last_mem_set_info): Likewise.
3211 (clear_modify_mem_tables): Likewise.
3213 2011-04-05 Tom de Vries <tom@codesourcery.com>
3216 * function.c (emit_use_return_register_into_block): Only define if
3219 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
3221 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
3223 2011-04-05 Joseph Myers <joseph@codesourcery.com>
3225 * config/rx/rx-opts.h: New.
3226 * config/rx/rx.c (rx_cpu_type): Remove.
3227 (rx_handle_option): Don't assert that global structures are in
3228 use. Access variables via opts pointer. Defer most handling of
3229 OPT_mint_register_. Use error_at.
3230 (rx_option_override): Handle deferred OPT_mint_register_ here.
3231 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
3232 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
3233 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
3234 (rx_cpu_types): New Enum and EnumValue entries.
3235 (mint-register=): Use Defer and use Var accordingly.
3237 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3239 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
3240 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
3241 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
3243 (debug_free_queue, debug_nesting, symbol_queue_index):
3245 * dbxout.c: ...to here. Make static.
3247 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3249 * gcse.c (modify_pair): Define. Define a VEC of it.
3250 (canon_modify_mem_list): Convert to an array of VECs.
3251 (free_insn_expr_list_list): Delete.
3252 (clear_modify_mem_tables): Call VEC_free instead.
3253 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
3254 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
3255 (canon_list_insert, compute_transp): Likewise.
3257 2011-04-05 Tom de Vries <tom@codesourcery.com>
3260 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
3263 2011-04-05 Tom de Vries <tom@codesourcery.com>
3266 * function.c (emit_use_return_register_into_block): New function.
3267 (thread_prologue_and_epilogue_insns): Use
3268 emit_use_return_register_into_block.
3270 2011-04-05 Tom de Vries <tom@codesourcery.com>
3273 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
3276 2011-04-05 Tom de Vries <tom@codesourcery.com>
3278 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
3280 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
3282 * config/arm/arm.md (define_constants for unspec): Replace with
3284 (define_constants for unspecv): Replace with define_c_enum.
3285 * config/arm/neon.md (define_constants for unspec): Replace with
3288 2011-04-04 Richard Henderson <rth@redhat.com>
3291 * dwarf2out.c (output_line_info): Always emit line info from
3292 at least one section.
3293 (dwarf2out_init): Create text_section_line_info here ...
3294 (set_cur_line_info_table): ... not here.
3296 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
3299 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
3302 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
3304 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
3306 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
3307 (expr_equiv_p): Remove.
3308 (insert_set_in_table): Look at <dest, src> pair instead of expr.
3309 (hash_scan_set): Update call to insert_set_in_table.
3310 (dump_hash_table): Dump <dest, src> pair.
3311 (lookup_set): Simplify. Lookup <dest, src> pair.
3312 (compute_transp): Remove, fold heavily simplified code into...
3313 (compute_local_properties): ...here. Expect COMP and TRANSP
3315 (find_avail_set): Take set directly from struct expr.
3316 (find_bypass-set): Likewise.
3317 (bypass_block): Likewise.
3318 (cprop_insn): Likewise. Remove redundant INSN_P test.
3320 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
3321 checks on form of COND from find_implicit_sets to here.
3322 (find_implicit_sets): Cleanup control flow. Split critical edges
3323 if it exposes implicit sets. Allocate/resize implicit_sets as
3325 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
3326 changed something. Run df_analyze after find_implicit_sets if any
3327 edges were split. Do not allocate implicit_sets here.
3329 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
3330 (gcse_obstack): Renamed to cprop_obstack.
3331 (GNEW, GNEWVEC, GNEWVAR): Remove.
3333 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
3334 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
3335 (gcse_alloc): Likewise, and rename to cprop_alloc.
3336 (alloc_gcse_men, free_gcse_mem): Remove.
3337 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
3338 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
3339 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
3341 * cprop.c (oprs_not_set_p): Remove.
3342 (mark_set, mark_clobber): Remove.
3343 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
3344 (reg_not_set_p): New function.
3345 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
3346 (cprop_insn): Likewise.
3347 (cprop_jump): Use FOR_EACH_EDGE.
3349 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
3352 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
3353 (rank_for_schedule): Use scheduled_insns vector instead of
3354 last_scheduled_insn.
3355 (ok_for_early_queue_removal): Likewise.
3356 (queue_to_ready): Search forward in nonscheduled_insns_begin if
3358 (choose_ready): Likewise.
3359 (commit_schedule): Use VEC_iterate.
3360 (schedule_block): Initialize nonscheduled_insns_begin. If we have
3361 a dbg_cnt, use it and ensure the first insn is in the ready list.
3362 (haifa_sched_init): Allocate scheduled_insns.
3363 (sched_extend_ready_list): Don't allocate it; reserve space.
3364 (haifa_sched_finish): Free it.
3366 2011-04-04 Joseph Myers <joseph@codesourcery.com>
3368 * optc-gen.awk: Always remove type from Variable entry before
3369 recording in var_seen.
3371 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
3373 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
3374 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
3375 call to tidy_fallthru_edges.
3377 2011-04-04 Joseph Myers <joseph@codesourcery.com>
3379 * doc/options.texi (ToLower): Document.
3380 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
3381 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
3382 * opts.h (cl_option): Add cl_tolower field.
3383 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=