OSDN Git Service

include/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
2
3         * system.h (ENUM_BITFIELD): Remove.
4
5 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
6             Eric Botcazou <ebotcazou@adacore.com>
7
8         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
9         for STORE_FLAG_VALUE==-1 case.
10
11 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
12
13         PR target/43804
14         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
15         LEGITIMATE_PIC_OPERAND_P.
16
17 2011-04-24  Jan Hubicka  <jh@suse.cz>
18
19         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
20         WPA hack.
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):
23         Fortify array bounds.
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
29         predicate length.
30
31 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
32
33         PR other/48748
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.
37
38 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
39
40         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
41         testsuite and make it version agnostic.
42
43 2011-04-22  Jan Hubicka  <jh@suse.cz>
44
45         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
46
47 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
48
49         PR c/48685
50         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
51         to VOID_TYPE even around MODIFY_EXPR.
52
53 2011-04-22  Mike Stump  <mikestump@comcast.net>
54
55         * gensupport.c (read_md_rtx): Fix typo in comment.
56         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
57         comment.
58
59 2011-04-22  Jan Hubicka  <jh@suse.cz>
60
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
63         update all uses.
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
78         estimated_growth.
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.
130
131 2011-04-22  Richard Guenther  <rguenther@suse.de>
132
133         * tree.c (build_int_cst): Properly create canonicalized integer
134         constants.
135         (build_int_cst_type): Remove scary comments.
136
137 2011-04-22  Xinliang David Li  <davidxl@google.com>
138
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.
143
144 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
145
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.
149
150 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
151
152         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
153         definition where used.
154
155 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
156
157         PR c/48716
158         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
159         TREE_STATIC variables declared inside of some OpenMP construct.
160
161 2011-04-22  Martin Jambor  <mjambor@suse.cz>
162
163         PR middle-end/48585
164         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
165
166 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
167
168         PR c/36750
169         * c-typeck.c (pop_init_level): Do not warn about initializing
170         with ` = {0}'.
171
172 2011-04-22  Alan Modra  <amodra@gmail.com>
173
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
186         operand.
187         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
188         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
189         sibcall_value_symbolic_64): Delete.
190
191 2011-04-21  Xinliang David Li  <davidxl@google.com>
192
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
203         to libgcov function.
204         (tree-profiling): Call node map init and delete function.
205
206 2011-04-21  Ian Lance Taylor  <iant@google.com>
207
208         * godump.c (go_format_type): Use exported Go name for anonymous
209         field name.
210
211 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
212
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.
216
217 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
218
219         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
220         build_function_type_list instead of build_function_type.
221         Delete variable `endlink'.
222
223 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
224
225         * config/s390/s390.c (s390_init_builtins): Call
226         build_function_type_list instead of build_function_type.
227
228 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
229
230         * config/ia64/ia64.c (ia64_init_builtins): Call
231         build_function_type_list instead of builtin_function_type.
232
233 2011-04-21  Easwaran Raman  <eraman@google.com>
234
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.
242
243 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
244             Jeff Law  <law@redhat.com>
245
246         * gengtype-state.c (read_a_state_token): Fix argument to
247         obstack_free.
248         * gengtype.c (matching_file_name_substitute): Likewise.
249
250 2011-04-21  Richard Guenther  <rguenther@suse.de>
251
252         PR lto/48703
253         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
254
255 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
256
257         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
258
259 2011-04-21  Richard Guenther  <rguenther@suse.de>
260
261         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
262         file name.
263
264 2011-04-21  Richard Guenther  <rguenther@suse.de>
265
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.
280
281 2011-04-21  Tristan Gingold  <gingold@adacore.com>
282
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.
286
287 2011-04-21  Tristan Gingold  <gingold@adacore.com>
288
289         * config/ia64/ia64.c (ia64_start_function): Add a guard.
290
291 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
292
293         PR target/48708
294         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
295         vec_extract and vec_concat for non-SSE4_1 targets.
296
297 2011-04-21  Richard Guenther  <rguenther@suse.de>
298
299         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
300         return statements.
301
302 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
303
304         * config/i386/cygming.h (union tree_node, TREE): Don't define or
305         undefine.
306         (FILE): Don't undefine.
307
308 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
309
310         * config/alpha/alpha.c (struct machine_function): Use rtx, not
311         struct rtx_def *.
312         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
313         struct rtx_def *.
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
317         rtx_def *.
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
323         rtx_def *.
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
329         struct rtx_def *.
330         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
331         rtx_def *.
332         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
333
334 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
335
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.
339
340 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
341
342         PR target/46329
343         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
344         for all Neon struct constants.
345
346 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
347
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.
364
365         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
366         mode argument.
367         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
368         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
369         argument.
370         (TARGET_LEGITIMATE_CONSTANT_P): Define.
371         * config/alpha/predicates.md (input_operand): Update call to
372         alpha_legitimate_constant_p.
373
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.
381
382         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
383
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.
390
391         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
392
393         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
394
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.
399
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.
403
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
408         argument.
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.
413
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.
418
419         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
420
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.
425
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.
429
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.
433
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.
442
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.
446
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.
450         Add a mode argument.
451         (mep_legitimate_address): Update accordingly.
452         (TARGET_LEGITIMATE_CONSTANT_P): Define.
453
454         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
455         Delete.
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.
461
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.
467
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
472         a mode argument.
473         (mmix_print_operand_address): Update accordingly.
474
475         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
476         Delete.
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.
481
482         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
483
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.
487
488         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
489
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.
493
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.
497
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.
505
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.
512
513         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
514
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.
518
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
524         argument.
525         (constant_address_p): Update accordingly.
526
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.
534
535         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
536
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.
540
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.
544
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.
548
549 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
550
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
563         argument.
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
574         argument.
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
582         argument.
583         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
584         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
585         to...
586         (xtensa_cannot_force_const_mem): ...this new function.
587
588 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
589
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.
593
594 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
595
596         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
597         instead of build_function_type.
598
599 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
600
601         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
602         instead of build_function_type.
603
604 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
605
606         PR target/48678
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.
616
617 2011-04-20  Easwaran Raman  <eraman@google.com>
618
619         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
620         containing union type only with -fstrict-aliasing.
621
622 2011-04-20  Jim Meyering  <meyering@redhat.com>
623
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.
660
661 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
662
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.
666
667 2011-04-20  Catherine Moore  <clm@codesourcery.com>
668
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
672         fixing 24K errata.
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.
676
677 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
678
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.
681
682 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
683
684         * config/arm/arm.c (arm_gen_constant): Move movw support ....
685         (const_ok_for_op): ... to here.
686
687 2011-04-20  Kai Tietz  <ktietz@redhat.com>
688
689         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
690         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
691
692 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
693
694         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
695
696 2011-04-20  Richard Guenther  <rguenther@suse.de>
697
698         PR tree-optimization/47892
699         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
700         are if-convertible.
701
702 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
703
704         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
705
706 2011-04-20  Tristan Gingold  <gingold@adacore.com>
707
708         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
709
710 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
711
712         PR target/18145
713
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.
719
720         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
721         New prototype.
722
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
731         from here to...
732         (avr_file_end): ...here.
733
734 2011-04-20  Richard Guenther  <rguenther@suse.de>
735
736         PR middle-end/48695
737         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
738         objects and types here.  Adjust for their offset before comparing.
739
740 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
741
742         * tree-vect-stmts.c (vectorizable_store): Only chain one related
743         statement per copy.
744
745 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
746
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
757         internal_fn field.
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
786         functions.
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.
808
809 2011-04-19  Jan Hubicka  <jh@suse.cz>
810
811         * ipa-inline-transform.c (save_inline_function_body): Add comments.
812         * ipa-inline.c (inline_small_functions): Compute summaries first,
813         populate heap later.
814
815 2011-04-19  Jan Hubicka  <jh@suse.cz>
816
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;
821         make global.
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):
832         Declare.
833         * Makefile.in (ipa-inline-transform.o): New file.
834         * cgraphunit.c (save_inline_function_body): Move to
835         ipa-inline-transform.c
836
837 2011-04-19  DJ Delorie  <dj@redhat.com>
838
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
846         int" wchar type.
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
851         the compiler.
852
853 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
854
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.
858
859 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
860
861         * doc/install.texi (Configuration, --enable-threads): Remove mach.
862         Add lynx, mipssde.  Sort table.
863
864 2011-04-19  Xinliang David Li  <davidxl@google.com>
865
866         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
867         not negative.
868
869 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
870
871         PR target/48678
872         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
873         is a SUBREG with non-MODE_INT mode inside of it.
874
875 2011-04-19  Martin Jambor  <mjambor@suse.cz>
876
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.
882
883 2011-04-19  Martin Jambor  <mjambor@suse.cz>
884
885         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
886         non-pointer assignments.
887
888 2011-04-19  Martin Jambor  <mjambor@suse.cz>
889
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.
900
901 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
902
903         PR lto/48148
904         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
905         the types if they have different enumeration identifiers.
906
907 2011-04-19  Jan Hubicka  <jh@suse.cz>
908
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.
913
914 2011-04-19  Richard Guenther  <rguenther@suse.de>
915
916         PR lto/48207
917         * tree.c (free_lang_data): Do not reset the decl-assembler-name
918         langhook.
919
920 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
921
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.
924
925 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
926
927         PR fortran/47976
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.
931
932 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
933
934         * gengtype.h: Updated copyright year.
935         (struct input_file_st): Add inpisplugin field.
936         (type_fileloc): New function.
937         * gengtype.c
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.
943
944 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
945
946         * gengtype-state.c (string_eq): New.
947         (read_state): Use string_eq instead of strcmp when creating the
948         state_ident_tab.
949
950 2011-04-19  Wei Guozhi  <carrot@google.com>
951
952         PR target/47855
953         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
954         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
955         linkage.
956         * config/arm/constraints.md (Uu): New constraint.
957         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
958
959 2011-04-19  Tristan Gingold  <gingold@adacore.com>
960
961         * config.gcc (-*-*-*vms): Added.
962         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
963         definitions moved.
964         * config/vms/vms-ld.c: New file.
965         * config/vms/vms-ar.c: New file.
966         * config/vms/t-vmsnative: New file.
967
968 2011-04-18  Xinliang David Li  <davidxl@google.com>
969
970         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
971
972 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
973
974         PR middle-end/48661
975         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
976         if TREE_TYPE (v) is non-NULL.
977
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
982         callers.
983         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
984
985 2011-04-18  Michael Matz  <matz@suse.de>
986             Steve Ellcey  <sje@cup.hp.com>
987
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.
990
991 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
992
993         * doc/passes.texi: Fill crossref nodes.
994
995 2011-04-18  Jim Meyering  <meyering@redhat.com>
996
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.
1003
1004 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
1005
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
1017         iterator.
1018         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
1019         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
1020         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
1021
1022 2011-04-18  Jan Hubicka  <jh@suse.cz>
1023
1024         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
1025
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
1028         ipa_inline.
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.
1041
1042 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1043
1044         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
1045
1046 2011-04-18  Jie Zhang  <jie@codesourcery.com>
1047             Richard Earnshaw  <rearnsha@arm.com>
1048
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.
1061
1062         * arm.h (enum arm_builtins): Move to ...
1063         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
1064
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.
1074
1075 2011-04-18  Richard Guenther  <rguenther@suse.de>
1076
1077         * tree.c (upper_bound_in_type): Build properly canonicalized
1078         INTEGER_CSTs.
1079         (lower_bound_in_type): Likewise.
1080
1081 2011-04-18  Richard Guenther  <rguenther@suse.de>
1082
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
1086         for direct calls.
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.
1089
1090 2011-04-18  Richard Guenther  <rguenther@suse.de>
1091
1092         PR middle-end/48650
1093         * tree.c (build_string): STRING_CST is now derived from tree_typed.
1094
1095 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1096
1097         PR lto/48492
1098         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
1099         DECL_IN_CONSTANT_POOL without RTL.
1100
1101 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
1102             Ira Rosen  <ira.rosen@linaro.org>
1103
1104         PR target/48252
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.
1110
1111 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
1112
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.
1117
1118 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
1119
1120         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
1121         memory operands.
1122
1123 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
1124
1125         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
1126         registers.
1127
1128 2011-04-17  Jan Hubicka  <jh@suse.cz>
1129
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.
1135
1136 2011-04-17  Jan Hubicka  <jh@suse.cz>
1137
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
1142         method.
1143         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
1144         gimple-fold.c
1145         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
1146
1147 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1148
1149         PR lto/48538
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.
1153
1154 2011-04-17  Revital Eres  <revital.eres@linaro.org>
1155
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.
1159
1160 2011-04-17  Jan Hubicka  <jh@suse.cz>
1161
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.
1165         (MAX_TIME): Remove.
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
1188         valid FIXME.
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.
1228
1229 2011-04-17  Revital Eres  <revital.eres@linaro.org>
1230
1231         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
1232
1233 2011-04-17  Revital Eres  <revital.eres@linaro.org>
1234
1235         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
1236
1237 2011-04-17  Michael Matz  <matz@suse.de>
1238
1239         PR tree-optimization/48622
1240         PR lto/48645
1241         * ipa-inline-analysis.c (inline_read_summary): Read size/time
1242         in same order as they're written.
1243
1244 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1245
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.
1274
1275 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
1276
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.
1292
1293 2011-04-16  Jan Hubicka  <jh@suse.cz>
1294
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):
1306         Update.
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
1343         ipa-inline.h.
1344
1345 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
1346
1347         * config/i386/sse.md (V16): New mode iterator.
1348         (VI1, VI8): Ditto.
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.
1370
1371 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1372
1373         PR target/48629
1374         * haifa-sched.c (prune_ready_list, schedule_block): Use
1375         sched_pressure_p rather than flag_sched_pressure.
1376
1377 2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
1378
1379         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
1380         cgraph_get_node instead of cgraph_get_create_node.
1381
1382 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
1383
1384         * cfgexpand.c (expand_debug_expr): Use
1385         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
1386
1387 2011-04-15  Michael Matz  <matz@suse.de>
1388
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.
1393
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.
1400
1401         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
1402         calls if they were for VLA objects.
1403
1404 2011-04-15  Martin Jambor  <mjambor@suse.cz>
1405
1406         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
1407         of ADR_EXPRs.
1408
1409 2011-04-15  Martin Jambor  <mjambor@suse.cz>
1410
1411         PR middle-end/48601
1412         * tree-emutls.c (lower_emutls_function_body): Call
1413         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
1414         result is non-NULL.
1415
1416 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1417
1418         * c-decl.c (detect_field_duplicates): Call
1419         objc_detect_field_duplicates instead of objc_get_interface_ivars.
1420
1421 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
1422
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.
1427
1428 2011-04-15  Richard Guenther  <rguenther@suse.de>
1429
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.
1435
1436 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1437
1438         PR target/48612
1439         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
1440         (*ieee_smax<mode>3): Likewise.
1441
1442 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1443
1444         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
1445         Replace match_operand with match_dup for the third operand in
1446         these expanders.
1447
1448 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1449
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.
1453
1454 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1455
1456         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
1457         -fsched-pressure.
1458
1459 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
1460
1461         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
1462         instead of match_operand for operand 3.
1463
1464 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
1465
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
1470         op->value.
1471
1472 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1473
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.
1482
1483 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1484
1485         * cfgexpand.c (expand_call_stmt): Convert the function type to the
1486         original one if this is not a builtin function.
1487
1488 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
1489
1490         PR target/48605
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].
1494
1495 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1496
1497         * c-parser.c (c_parser_objc_protocol_definition): Updated for
1498         change from objc_declare_protocols() to objc_declare_protocol().
1499
1500 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
1501
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
1519         VF mode iterator.
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):
1528         New predicate.
1529         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
1530
1531 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
1532
1533         PR middle-end/48608
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.
1538
1539 2011-04-14  Richard Guenther  <rguenther@suse.de>
1540
1541         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
1542         Remove.
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.
1552
1553 2011-04-14  Jan Hubicka  <jh@suse.cz>
1554
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
1561         accesor.
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
1582         calls.
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.
1592
1593 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1594
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.
1612
1613 2011-04-14  Richard Guenther  <rguenther@suse.de>
1614
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.
1622
1623 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1624
1625         * c-parser.c (c_parser_objc_class_declaration): Updated call to
1626         objc_declare_class.
1627
1628 2011-04-14  Richard Guenther  <rguenther@suse.de>
1629
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.
1635
1636 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1637
1638         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
1639         type parameter.
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.
1645
1646 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1647
1648         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
1649         within the per-copy loop.
1650
1651 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1652
1653         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
1654         in the dump file.
1655
1656 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1657
1658         * doc/options.texi (Negative): Explicitly mention that the
1659         Negative chain must be circular.
1660
1661 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
1662
1663         * function.h (block_chainon): Declare.
1664         * function.c (block_chainon): Define.
1665
1666 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
1667             Eric Weddington  <eric.weddington@atmel.com>
1668             Georg-Johann Lay <avr@gjlay.de>
1669
1670         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
1671         New Includes
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.
1679
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
1690
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.
1697
1698         * doc/extend.texi (AVR Built-in Functions): New node
1699         (Target Builtins): Add documentation of AVR
1700         built-in functions.
1701
1702 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
1703
1704         PR target/44643
1705         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
1706         alone. Error if non-const data has attribute progmem.
1707
1708 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1709
1710         * tree.h (struct tree_constructor): Include tree_typed instead of
1711         tree_common.
1712         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
1713         TS_TYPED instead of TS_COMMON.
1714
1715 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
1716
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.
1731
1732 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1733
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
1739         tree_common.
1740         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
1741         TS_TYPED instead of TS_COMMON.
1742
1743 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1744
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.
1765
1766 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
1767
1768         PR rtl-optimization/48455
1769         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
1770         `temp_costs->mem_cost'.
1771
1772 2011-04-13  Jan Hubicka  <jh@suse.cz>
1773
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.
1807
1808 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1809
1810         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
1811         * configure: Regenerate.
1812
1813 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1814
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):
1818         Likewise.
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.
1822
1823 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
1824
1825         PR target/45263
1826         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
1827         r20 around calls of __tablejump_elpm__
1828
1829 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
1830
1831         PR middle-end/48591
1832         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
1833         NULL.
1834         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
1835
1836 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
1837
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
1857         list.
1858         (dwarf2out_begin_prologue): Change initializations to match
1859         new struct members.
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.
1864
1865 2011-04-13  Nick Clifton  <nickc@redhat.com>
1866
1867         * config/rx/rx.md (movmemsi): Do not use this pattern when
1868         volatile pointers are involved.
1869
1870 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
1871
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.
1892
1893 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
1894
1895         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
1896         calling TREE_CHAIN.
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):
1907         ...and these...
1908         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
1909         * tree.h: ...here.
1910         (TREE_CHAIN): Check for a TS_COMMON structure.
1911         (TREE_TYPE): Check for a TS_TYPED structure.
1912
1913 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
1914
1915         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
1916         cgraph_get_create_node instead of cgraph_node.
1917
1918 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1919
1920         * c-parser.c (c_parser_initelt): Updated call to
1921         objc_build_message_expr.
1922         (c_parser_postfix_expression): Likewise.
1923
1924 2011-04-12  Kai Tietz  <ktietz@redhat.com>
1925
1926         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
1927         MASK_MS_BITFIELD_LAYOUT bit.
1928
1929 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
1930
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
1934         moves.
1935
1936 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1937
1938         * c-parser.c (c_lex_one_token): Rewritten conditional used when
1939         compiling Objective-C to be more efficient.
1940
1941 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
1942
1943         * opts-common.c (decode_cmdline_options_to_array): Remove variable
1944         argv_copied.
1945
1946 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1947
1948         * recog.h, genoutput.c, optabs.c: Revert last patch.
1949
1950 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1951
1952         PR target/48090
1953         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
1954
1955 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1956
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
1961         op->value.
1962
1963 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1964
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
1972         argument.
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.
1979
1980 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1981
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.
2011
2012 2011-04-12  Nick Clifton  <nickc@redhat.com>
2013
2014         * config/v850/v850.c (expand_prologue): Do not use the CALLT
2015         instruction for interrupt handlers if the target is the basic V850
2016         architecture.
2017         (expand_epilogue): Likewise.
2018
2019 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
2020
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.
2026
2027 2011-04-12  Richard Guenther  <rguenther@suse.de>
2028
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
2038         function type.
2039         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
2040         function type.
2041         * tree-ssa.c (useless_type_conversion_p): Function pointer
2042         conversions are useless.
2043
2044 2011-04-12  Martin Jambor  <mjambor@suse.cz>
2045
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
2053         of cgraph_node.
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
2071         of cgraph_node.
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
2076         cgraph_node.
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
2080         of cgraph_node.
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.
2085
2086 2011-04-12  Martin Jambor  <mjambor@suse.cz>
2087
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.
2095
2096 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
2097
2098         PR c/48552
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
2101         don't allow memory.
2102
2103 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
2104             Richard Earnshaw  <rearnsha@arm.com>
2105
2106         PR target/48250
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.
2112
2113 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
2114
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.
2125
2126 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
2127
2128         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
2129         (force_nonfallthru): Do not alter the loop nest if no basic block
2130         was created.
2131
2132 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
2133
2134         * config/i386/sse.md (VI): New mode iterator.
2135         (SSEMODEI): Remove.
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.
2148
2149 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2150             Robert Millan  <rmh@gnu.org>
2151
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.
2161
2162 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2163
2164         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
2165         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
2166
2167 2011-04-11  Xinliang David Li  <davidxl@google.com>
2168
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.
2174
2175 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
2176
2177         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
2178         tree-pretty-print.h & realmpfr.h.
2179
2180 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
2181
2182         PR middle-end/48464
2183         * ira.c (setup_pressure_classes): Fix typo in loop condition.
2184         (setup_allocno_and_important_classes): Ditto.
2185
2186 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2187
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.
2292
2293 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2294
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.
2343
2344 2011-04-11  Kai Tietz  <ktietz@redhat.com>
2345
2346         PR target/9601
2347         PR target/11772
2348         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
2349         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
2350         comment.
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
2365         by flag-values.
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):
2371         Likewise.
2372         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
2373         for declaration.
2374
2375 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
2376
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>.
2407
2408 2011-04-11  Richard Guenther  <rguenther@suse.de>
2409
2410         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
2411         before calling tree_low_cst.
2412
2413 2011-04-11  Richard Guenther  <rguenther@suse.de>
2414
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.
2419
2420 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2421
2422         * common.opt (Tbss=, Tdata=, Ttext=): New options.
2423
2424 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2425
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.
2439
2440 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2441
2442         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
2443         of cgraph_node.
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.
2480
2481 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2482
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.
2492
2493 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
2494
2495         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
2496         instead of loop.
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.
2502
2503 2011-04-09  Xinliang David Li  <davidxl@google.com>
2504
2505         PR tree-optimization/PR48484
2506         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
2507         has_valid_pred lazily
2508
2509 2011-04-09  Duncan Sands  <baldrick@free.fr>
2510
2511         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
2512
2513 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2514
2515         * combine.c (combine_validate_cost): Adjust comments.  Set registered
2516         cost of I0 to zero at the end, if any.
2517
2518 2011-04-08  Xinliang David Li  <davidxl@google.com>
2519
2520         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
2521         to insane profile data.
2522
2523 2011-04-08  Xinliang David Li  <davidxl@google.com>
2524
2525         * ipa-cp.c (ipcp_update_profiling): Correct
2526          negative scale factor due to insane profile data.
2527
2528 2011-04-08  Xinliang David Li  <davidxl@google.com>
2529
2530         * final.c (dump_basic_block_info): New function.
2531         (final): Dump basic block.
2532         (final_scan_insn): Remove old dump.
2533
2534 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
2535
2536         PR target/47829
2537         * config.gcc (i386-*-freebsd): Disable unwind table generation for
2538         crtbegin/crtend.
2539
2540 2011-04-08  Michael Matz  <matz@suse.de>
2541
2542         PR middle-end/48389
2543         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
2544         functions.
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.
2549
2550 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
2551
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.
2567
2568 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
2569
2570         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
2571         of header_file.
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.
2575
2576 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
2577
2578         PR inline-asm/48435
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.
2584
2585 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
2586
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.
2590
2591 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2592
2593         PR target/48366
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.
2603
2604 2011-04-08  Richard Guenther  <rguenther@suse.de>
2605
2606         * gimple.c (gimple_call_flags): Remove kludge.
2607
2608 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
2609
2610         * sel-sched.c (sel_region_init): Move call to
2611         sel_setup_region_sched_flags after setup_current_loop_nest.
2612
2613 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
2614
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.
2621
2622 2011-04-08  Richard Guenther  <rguenther@suse.de>
2623
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.
2627
2628 2011-04-08  Richard Guenther  <rguenther@suse.de>
2629
2630         PR lto/48467
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.
2634
2635 2011-04-08  Richard Guenther  <rguenther@suse.de>
2636
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.
2648
2649 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
2650
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.
2656
2657 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
2658
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
2666         sel_init_bbs.
2667
2668 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
2669
2670         PR target/48273
2671         * cfgloop.h (loop_has_exit_edges): New helper.
2672         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
2673         non-clonable.
2674         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
2675         that have no exit edges.
2676
2677 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
2678
2679         PR rtl-optimization/48442
2680         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
2681         all callers.  Adjust assert.
2682
2683 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
2684
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
2688         TYPE_SIZE.
2689
2690 2011-04-08  Richard Guenther  <rguenther@suse.de>
2691
2692         PR bootstrap/48513
2693         * doc/tm.texi: Re-generate.
2694
2695 2011-04-08  Wei Guozhi  <carrot@google.com>
2696
2697         PR target/47855
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
2701         call a C function.
2702
2703 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
2704
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.
2711
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):
2716         Likewise.
2717         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2718         Likewise.
2719         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2720         Likewise.
2721         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
2722
2723 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
2724
2725         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
2726         EnumValue lines.
2727
2728 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
2729
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
2733         OPT_mcpu32.
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.
2746
2747 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
2748
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.
2762
2763 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
2764
2765         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
2766         Remove macros.
2767
2768 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
2769
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.
2797
2798 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
2799
2800         PR debug/48343
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.
2805
2806 2011-04-07  Nick Clifton  <nickc@redhat.com>
2807
2808         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
2809         to handle MDR <-> data register transfers.
2810         (movhi_internal): Likewise.
2811
2812 2011-04-07  Alan Modra  <amodra@gmail.com>
2813
2814         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
2815         previous stack info.
2816
2817 2011-04-07  Tom de Vries  <tom@codesourcery.com>
2818
2819         PR target/43920
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.
2823
2824 2011-04-07  Tom de Vries  <tom@codesourcery.com>
2825
2826         PR target/43920
2827         * cfgcleanup.c (walk_to_nondebug_insn): New function.
2828         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
2829         and bb2.
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.
2833
2834 2011-04-07  Tom de Vries  <tom@codesourcery.com>
2835
2836         PR target/43920
2837         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
2838         function.
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.
2852
2853 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
2854
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.
2886
2887 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
2888
2889         * gcov-io.c: Use GCC Runtime Library Exception.
2890
2891 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
2892
2893         PR debug/48466
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.
2897
2898 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
2899
2900         * doc/tm.texi.in: Document C target hooks as separate from general
2901         target hooks.
2902         * doc/tm.texi: Regenerate.
2903         * genhooks.c (struct hook_desc): Add docname field.
2904         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
2905         docname field.
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
2917         c-family/c-opts.c.
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
2934         declare.
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
2947         c-target.def.
2948         (build/genhooks.o): Update dependencies.
2949
2950 2011-04-06  Richard Guenther  <rguenther@suse.de>
2951
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.
2960
2961 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
2962             Julian Brown  <julian@codesourcery.com>
2963             Mark Shinwell  <shinwell@codesourcery.com>
2964
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.
2969
2970 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2971
2972         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
2973         associated with user returns to be preserved.
2974
2975 2011-04-06  Tristan Gingold  <gingold@adacore.com>
2976
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.
2981
2982 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
2983
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.
2994
2995         * config/i386/sse.md (VF): New mode iterator.
2996         (VF1): Ditto.
2997         (VF2): Ditto.
2998         (VF_128): Ditto.
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
3003         mode iterator.
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
3012         mode iterator.
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
3017         mode iterator.
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
3026         mode iterator.
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
3038         mode iterator.
3039         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
3040         mode iterator.
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
3046         VF mode iterator.
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
3050         mode iterator.
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
3057         compare patterns.
3058         (ix86_expand_args_builtin): Ditto.
3059         (ix86_expand_sse_compare_mask): Ditto.
3060
3061 2011-04-06  Richard Guenther  <rguenther@suse.de>
3062
3063         * tree-inline.c (estimate_num_insns): For calls simply account
3064         for all passed arguments and a used return value.
3065
3066 2011-04-06  Richard Guenther  <rguenther@suse.de>
3067
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
3085         adjust.
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
3101         functions here.
3102         * lto-cgraph.c (lto_output_edge): Output edge call costs.
3103         (input_edge): Input edge call costs.
3104
3105 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3106
3107         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
3108
3109 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
3110
3111         * doc/invoke.texi (Spec Files): Fix typo.
3112
3113 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
3114
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.
3118
3119 2011-04-06  Wei Guozhi  <carrot@google.com>
3120
3121         PR target/47855
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.
3128
3129 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3130
3131         PR bootstrap/48471
3132         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
3133         Move these...
3134         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
3135         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
3136         #ifdef DBX_DEBUGGING_INFO.
3137
3138 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
3139
3140         PR bootstrap/48403
3141         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3142         if old and new states differ.
3143
3144 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
3145
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,
3151         mcfv4e): Use Alias.
3152         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
3153         ColdFire options to -mcpu= options.
3154
3155 2011-04-05  Jeff Law  <law@redhat.com>
3156
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.
3160
3161 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
3162
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.
3169
3170 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3171
3172         PR bootstrap/48469
3173         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
3174         declaration.
3175
3176 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3177
3178         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
3179         as an rtx.
3180         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
3181
3182 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
3183
3184         PR middle-end/48441
3185         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
3186
3187 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3188
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).
3203
3204 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3205
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.
3212
3213 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3214
3215         PR middle-end/48461
3216         * function.c (emit_use_return_register_into_block): Only define if
3217         HAVE_return.
3218
3219 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
3220
3221         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
3222
3223 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
3224
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.
3236
3237 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3238
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):
3242         Move these...
3243         (debug_free_queue, debug_nesting, symbol_queue_index):
3244         ...and these...
3245         * dbxout.c: ...to here.  Make static.
3246
3247 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3248
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.
3256
3257 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3258
3259         PR target/43920
3260         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
3261         for size.
3262
3263 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3264
3265         PR target/43920
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.
3269
3270 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3271
3272         PR target/43920
3273         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
3274         insn.
3275
3276 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3277
3278         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
3279
3280 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
3281
3282         * config/arm/arm.md (define_constants for unspec): Replace with
3283         define_c_enum.
3284         (define_constants for unspecv): Replace with define_c_enum.
3285         * config/arm/neon.md (define_constants for unspec): Replace with
3286         define_c_enum.
3287
3288 2011-04-04  Richard Henderson  <rth@redhat.com>
3289
3290         PR bootstrap/48400
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.
3295
3296 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
3297
3298         PR target/48380
3299         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
3300         not called.
3301
3302         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
3303
3304 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
3305
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
3314         unconditionally.
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.
3319
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
3324         necessary.
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.
3328
3329         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
3330         (gcse_obstack): Renamed to cprop_obstack.
3331         (GNEW, GNEWVEC, GNEWVAR): Remove.
3332         (gmalloc): 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.
3340
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.
3348
3349 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
3350
3351         PR bootstrap/48403
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
3357         we have a dbg_cnt.
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.
3365
3366 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
3367
3368         * optc-gen.awk: Always remove type from Variable entry before
3369         recording in var_seen.
3370
3371 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
3372
3373         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
3374         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
3375         call to tidy_fallthru_edges.
3376
3377 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
3378
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=