OSDN Git Service

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