OSDN Git Service

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