OSDN Git Service

include/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
2
3         * system.h (ENUM_BITFIELD): Remove.
4
5 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
6             Eric Botcazou <ebotcazou@adacore.com>
7
8         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
9         for STORE_FLAG_VALUE==-1 case.
10
11 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
12
13         PR target/43804
14         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
15         LEGITIMATE_PIC_OPERAND_P.
16
17 2011-04-24  Jan Hubicka  <jh@suse.cz>
18
19         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
20         WPA hack.
21         * ipa-prop.h (ipa_get_param, ipa_is_param_used, ipa_param_cannot_devirtualize_p,
22         ipa_param_types_vec_empty, ipa_get_ith_jump_func, ipa_get_lattice):
23         Fortify array bounds.
24         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
25         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
26         Sanity check predicate length.
27         (remap_predicate): Likewise; sanity check jump functions.
28         (inline_read_section, inline_write_summary): Sanity check
29         predicate length.
30
31 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
32
33         PR other/48748
34         * doc/extend.texi (Type Traits): Document __is_standard_layout,
35         __is_literal_type, and __is_trivial; update throughout about
36         possibly cv-qualified void types.
37
38 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
39
40         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
41         testsuite and make it version agnostic.
42
43 2011-04-22  Jan Hubicka  <jh@suse.cz>
44
45         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
46
47 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
48
49         PR c/48685
50         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
51         to VOID_TYPE even around MODIFY_EXPR.
52
53 2011-04-22  Mike Stump  <mikestump@comcast.net>
54
55         * gensupport.c (read_md_rtx): Fix typo in comment.
56         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
57         comment.
58
59 2011-04-22  Jan Hubicka  <jh@suse.cz>
60
61         * gengtype.c (open_base_files): Add ipa-inline.h include.
62         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to ipa-prop.c
63         update all uses.
64         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
65         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to merge
66         summary of inlined function into former caller.
67         * ipa-inline.c (max_benefit): Remove.
68         (edge_badness): Compensate for removal of benefits.
69         (update_caller_keys): Use reset_node_growth_cache/reset_edge_growth_cache.
70         (update_callee_keys): Likewise.
71         (update_all_callee_keys): Likewise.
72         (inline_small_functions): Do not collect max_benefit; do not
73         reset stimated_growth; call free_growth_caches and initialize_growth_caches.
74         * ipa-inline.h (struct condition, type clause_t, struct predicate, struct
75         size_time_entry): New structures.
76         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit and
78         estimated_growth.
79         (edge_growth_cache_entry): New structure.
80         (node_growth_cache, edge_growth_cache): New global vars.
81         (estimate_growth): Turn into inline.
82         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
83         initialize_growth_caches, free_growth_caches): Declare.
84         (estimate_edge_growth): Rewrite.
85         (estimate_edge_time): Implement as inline cache lookup.
86         (reset_node_growth_cache, reset_edge_growth_cache): New inline functions.
87         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
88         (NUM_CONDITIONS): New constant.
89         (predicate_conditions): New enum.
90         (IS_NOT_CONSTANT): New constant.
91         (edge_removal_hook_holder): New var.
92         (node_growth_cache, edge_growth_cache): New global vars.
93         (true_predicate, single_cond_predicate, false_predicate, not_inlined_predicate,
94         add_condition, add_clause, and_predicates, or_predicates, predicates_equal_p,
95         evaulate_predicate, dump_condition, dump_clause, dump_predicate, account_size_time,
96         evaulate_conditions_for_edge): New functions.
97         (inline_summary_alloc): Move to heap.
98         (inline_node_removal_hook): Clear condition and entry vectors.
99         (inline_edge_removal_hook): New function.
100         (initialize_growth_caches, free_growth_caches): New function.
101         (dump_inline_summary): Update.
102         (edge_execution_predicate): New function.
103         (will_be_nonconstant_predicate): New function.
104         (estimate_function_body_sizes): Compute BB and constantness predicates.
105         (compute_inline_parameters): Do not clear estimated_growth.
106         (estimate_edge_size_and_time): New function.
107         (estimate_calls_size_and_time): New function.
108         (estimate_callee_size_and_time): New function.
109         (remap_predicate): New function.
110         (inline_merge_summary): New function.
111         (do_estimate_edge_time): New function based on...
112         (estimate_edge_time): ... this one.
113         (do_estimate_edge_growth): New function.
114         (do_estimate_growth): New function based on....
115         (estimate_growth): ... this one.
116         (inline_analyze_function): Analyze after deciding on jump functions.
117         (inline_read_section): New function.
118         (inline_read_summary): Use it.
119         (inline_write_summary): Write all the new data.
120         * ipa-prop.c (ipa_get_param_decl_index): Export.
121         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
122         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc): Declare.
123         (ipa_get_lattice): Move hre from ipa-cp.c
124         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
125         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
126         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
127         cgraph_edge_inlinable_p): Remove.
128         * cgraphunit.c: Include ipainline.h
129         (cgraph_process_new_functions): Update call of compute_inline_parameters.
130
131 2011-04-22  Richard Guenther  <rguenther@suse.de>
132
133         * tree.c (build_int_cst): Properly create canonicalized integer
134         constants.
135         (build_int_cst_type): Remove scary comments.
136
137 2011-04-22  Xinliang David Li  <davidxl@google.com>
138
139         * toplev.c (process_options): Enable -Werror=coverage-mismatch
140         by default when -Wno-error is not specified.
141         * opts-global.c (decode_options): Remove call to
142         control_warning_options.
143
144 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
145
146         PR tree-optimization/48717
147         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
148         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
149
150 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
151
152         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
153         definition where used.
154
155 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
156
157         PR c/48716
158         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
159         TREE_STATIC variables declared inside of some OpenMP construct.
160
161 2011-04-22  Martin Jambor  <mjambor@suse.cz>
162
163         PR middle-end/48585
164         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
165
166 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
167
168         PR c/36750
169         * c-typeck.c (pop_init_level): Do not warn about initializing
170         with ` = {0}'.
171
172 2011-04-22  Alan Modra  <amodra@gmail.com>
173
174         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
175         when returning call_cookie.
176         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
177         pointers, to functions with no more vector args than the current
178         function, and some non-local calls for ABI_V4.
179         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
180         sibcall_nonlocal_aix64): Combine to ..
181         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
182         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
183         (sibcall_value_nonlocal_aix<mode>): ..likewise.
184         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
185         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
186         operand.
187         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
188         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
189         sibcall_value_symbolic_64): Delete.
190
191 2011-04-21  Xinliang David Li  <davidxl@google.com>
192
193         * cgraph.h: Remove pid.
194         * cgraph.c: Remove pid.
195         * value-prof.c (init_node_map): New function.
196         (del_node_map): New function.
197         (find_func_by_funcdef_no): New function.
198         (gimple_ic_transform): Call new function.
199         * cgraphunit.c (cgraph_finalize_function): Remove pid.
200         * function.c (get_last_funcdef_no): New function.
201         * function.h (get_last_funcdef_no): New function.
202         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
203         to libgcov function.
204         (tree-profiling): Call node map init and delete function.
205
206 2011-04-21  Ian Lance Taylor  <iant@google.com>
207
208         * godump.c (go_format_type): Use exported Go name for anonymous
209         field name.
210
211 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
212
213         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
214         Call builtin_function_type_list instead of builtin_function_type.
215         (UNARY, BINARY, TRINARY, QUAD): Likewise.
216
217 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
218
219         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
220         build_function_type_list instead of build_function_type.
221         Delete variable `endlink'.
222
223 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
224
225         * config/s390/s390.c (s390_init_builtins): Call
226         build_function_type_list instead of build_function_type.
227
228 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
229
230         * config/ia64/ia64.c (ia64_init_builtins): Call
231         build_function_type_list instead of builtin_function_type.
232
233 2011-04-21  Easwaran Raman  <eraman@google.com>
234
235         * cfgexpand.c (stack_var): Remove OFFSET...
236         (add_stack_var): ...and its reference here...
237         (expand_stack_vars): ...and here.
238         (stack_var_cmp): Sort by descending order of size.
239         (partition_stack_vars): Change heuristic.
240         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
241         (dump_stack_var_partition): Add newline after each partition.
242
243 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
244             Jeff Law  <law@redhat.com>
245
246         * gengtype-state.c (read_a_state_token): Fix argument to
247         obstack_free.
248         * gengtype.c (matching_file_name_substitute): Likewise.
249
250 2011-04-21  Richard Guenther  <rguenther@suse.de>
251
252         PR lto/48703
253         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
254
255 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
256
257         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
258
259 2011-04-21  Richard Guenther  <rguenther@suse.de>
260
261         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
262         file name.
263
264 2011-04-21  Richard Guenther  <rguenther@suse.de>
265
266         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
267         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
268         Use DECL_P, not SSA_VAR_P.
269         (ptr_derefs_may_alias_p): Likewise.
270         (ptr_deref_may_alias_ref_p_1): Likewise.
271         (decl_refs_may_alias_p): Likewise.
272         (refs_may_alias_p_1): Likewise.
273         (ref_maybe_used_by_call_p_1): Likewise.
274         (call_may_clobber_ref_p_1): Likewise.
275         (indirect_ref_may_alias_decl_p): Assume indirect refrences
276         are either MEM_REF or TARGET_MEM_REF.
277         (indirect_refs_may_alias_p): Likewise.
278         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
279         for MEM_EXPR of indirect calls.
280
281 2011-04-21  Tristan Gingold  <gingold@adacore.com>
282
283         * vmsdbgout.c (write_srccorr): Compute file length from the string.
284         (dst_file_info_struct): Remove flen field.
285         (lookup_filename): Remove code that set flen field.
286
287 2011-04-21  Tristan Gingold  <gingold@adacore.com>
288
289         * config/ia64/ia64.c (ia64_start_function): Add a guard.
290
291 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
292
293         PR target/48708
294         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
295         vec_extract and vec_concat for non-SSE4_1 targets.
296
297 2011-04-21  Richard Guenther  <rguenther@suse.de>
298
299         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
300         return statements.
301
302 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
303
304         * config/i386/cygming.h (union tree_node, TREE): Don't define or
305         undefine.
306         (FILE): Don't undefine.
307
308 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
309
310         * config/alpha/alpha.c (struct machine_function): Use rtx, not
311         struct rtx_def *.
312         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
313         struct rtx_def *.
314         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
315         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
316         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
317         rtx_def *.
318         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
319         definitions where used.
320         * config/microblaze/microblaze.h (struct microblaze_args): Use
321         rtx, not struct rtx_def *.
322         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
323         rtx_def *.
324         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
325         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
326         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
327         not struct rtx_def *.
328         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
329         struct rtx_def *.
330         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
331         rtx_def *.
332         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
333
334 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
335
336         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
337         operand_equal_p to compare DR_BASE_ADDRESSes.
338         (vect_check_interleaving): Likewise.
339
340 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
341
342         PR target/46329
343         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
344         for all Neon struct constants.
345
346 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
347
348         * target.def (legitimate_constant_p): New hook.
349         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
350         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
351         * doc/tm.texi: Regenerate.
352         * hooks.h (hook_bool_mode_rtx_true): Declare.
353         * hooks.c (hook_bool_mode_rtx_true): Define.
354         * system.h (LEGITIMATE_CONSTANT_P): Poison.
355         * calls.c (precompute_register_parameters): Replace uses of
356         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
357         (emit_library_call_value_1): Likewise.
358         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
359         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
360         * ira-costs.c (scan_one_insn): Likewise.
361         * recog.c (general_operand, immediate_operand): Likewise.
362         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
363         * reload1.c (init_eliminable_invariants): Likewise.
364
365         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
366         mode argument.
367         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
368         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
369         argument.
370         (TARGET_LEGITIMATE_CONSTANT_P): Define.
371         * config/alpha/predicates.md (input_operand): Update call to
372         alpha_legitimate_constant_p.
373
374         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
375         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
376         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
377         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
378         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
379         (arm_legitimate_constant_p): New functions.
380         (arm_cannot_force_const_mem): Make static.
381
382         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
383
384         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
385         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
386         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
387         instead of bfin_legitimate_constant_p.
388         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
389         (TARGET_LEGITIMATE_CONSTANT_P): Define.
390
391         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
392
393         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
394
395         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
396         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
397         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
398         (frv_legitimate_constant_p): Make static.  Add a mode argument.
399
400         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
401         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
402         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
403
404         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
405         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
406         * config/i386/i386.c (legitimate_constant_p): Rename to...
407         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
408         argument.
409         (ix86_cannot_force_const_mem): Update accordingly.
410         (ix86_legitimate_address_p): Likewise.
411         (TARGET_LEGITIMATE_CONSTANT_P): Define.
412         * config/i386/i386.md: Update commentary.
413
414         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
415         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
416         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
417         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
418
419         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
420
421         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
422         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
423         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
424         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
425
426         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
427         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
428         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
429
430         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
431         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
432         (m32r_legitimate_constant_p): New function.
433
434         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
435         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
436         LEGITIMATE_CONSTANT_P.
437         (LEGITIMATE_CONSTANT_P): Delete.
438         * config/m68k/m68k.c (m68k_expand_prologue): Call
439         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
440         (m68k_legitimate_constant_p): New function.
441         * config/m68k/m68k.md: Update comments.
442
443         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
444         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
445         (mcore_legitimate_constant_p): New function.
446
447         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
448         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
449         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
450         Add a mode argument.
451         (mep_legitimate_address): Update accordingly.
452         (TARGET_LEGITIMATE_CONSTANT_P): Define.
453
454         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
455         Delete.
456         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
457         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
458         static.  Check OP's mode for VOIDmode.
459         (microblaze_legitimate_constant_p): New function.
460         (TARGET_LEGITIMATE_CONSTANT_P): Define.
461
462         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
463         * config/mips/mips.c (mips_legitimate_constant_p): New function.
464         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
465         (TARGET_LEGITIMATE_CONSTANT_P): Define.
466         * config/mips/predicates.md: Update comments.
467
468         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
469         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
470         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
471         (mmix_legitimate_constant_p): Make static, return a bool, and take
472         a mode argument.
473         (mmix_print_operand_address): Update accordingly.
474
475         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
476         Delete.
477         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
478         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
479         static.  Add a mode argument.
480         (TARGET_LEGITIMATE_CONSTANT_P): Define.
481
482         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
483
484         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
485         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
486         (pa_legitimate_constant_p): New function.
487
488         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
489
490         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
491         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
492         (pdp11_legitimate_constant_p): New function.
493
494         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
495         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
496         (rs6000_legitimate_constant_p): New function.
497
498         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
499         (rx_legitimate_constant_p): ...this.
500         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
501         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
502         (rx_legitimate_constant_p): ...this.
503         (TARGET_LEGITIMATE_CONSTANT_P): Define.
504         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
505
506         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
507         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
508         * config/s390/s390.c (legitimate_constant_p): Rename to...
509         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
510         and add a mode argument.
511         (TARGET_LEGITIMATE_CONSTANT_P): Define.
512
513         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
514
515         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
516         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
517         (sh_legitimate_constant_p): New function.
518
519         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
520         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
521         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
522         (legitimate_constant_p): Rename to...
523         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
524         argument.
525         (constant_address_p): Update accordingly.
526
527         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
528         argument and return a bool.
529         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
530         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
531         (spu_legitimate_constant_p): Add a mode argument and return a bool.
532         (spu_rtx_costs): Update accordingly.
533         * config/spu/predicates.md (vec_imm_operand): Likewise.
534
535         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
536
537         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
538         * config/v850/v850.c (v850_legitimate_constant_p): New function.
539         (TARGET_LEGITIMATE_CONSTANT_P): Define.
540
541         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
542         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
543         * config/vax/vax.c (legitimate_constant_p): Likewise.
544
545         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
546         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
547         (xtensa_legitimate_constant_p): New function.
548
549 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
550
551         * target.def (cannot_force_const_mem): Add a mode argument.
552         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
553         * doc/tm.texi: Regenerate.
554         * hooks.h (hook_bool_mode_rtx_false): Declare.
555         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
556         (hook_bool_mode_const_rtx_true): Likewise.
557         (hook_bool_mode_rtx_false): New function.
558         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
559         to be non-VOID.  Update call to cannot_force_const_mem.
560         (find_reloads): Update accordingly.
561         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
562         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
563         argument.
564         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
565         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
566         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
567         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
568         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
569         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
570         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
571         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
572         (m68k_cannot_force_const_mem): ...this new function.
573         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
574         argument.
575         (mips_const_insns, mips_legitimize_const_move): Update calls.
576         (mips_secondary_reload_class): Likewise.
577         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
578         (pa_cannot_force_const_mem): ...this new function.
579         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
580         (rs6000_cannot_force_const_mem): ...this new function.
581         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
582         argument.
583         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
584         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
585         to...
586         (xtensa_cannot_force_const_mem): ...this new function.
587
588 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
589
590         * config/mips/mips.c (mips16_build_function_stub): Call
591         build_function_type_list instead of build_function_type.
592         (mips16_build_call_stub): Likewise.
593
594 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
595
596         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
597         instead of build_function_type.
598
599 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
600
601         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
602         instead of build_function_type.
603
604 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
605
606         PR target/48678
607         * config/i386/i386.md (insv): Change operand 0 constraint to
608         "register_operand".  Change operand 1 and 2 constraint to
609         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
610         * config/i386/sse.md (sse4_1_pinsrb): Export.
611         (sse2_pinsrw): Ditto.
612         (sse4_1_pinsrd): Ditto.
613         (sse4_1_pinsrq): Ditto.
614         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
615         * config/i386/i386.c (ix86_expand_pinsr): New.
616
617 2011-04-20  Easwaran Raman  <eraman@google.com>
618
619         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
620         containing union type only with -fstrict-aliasing.
621
622 2011-04-20  Jim Meyering  <meyering@redhat.com>
623
624         Remove useless if-before-free tests.
625         * calls.c (expand_call, save_area): Likewise.
626         * cfgcleanup.c (try_forward_edges): Likewise.
627         * collect2.c (collect_execute): Likewise.
628         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
629         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
630         * coverage.c (coverage_checksum_string): Likewise.
631         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
632         * cselib.c (cselib_init): Likewise.
633         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
634         (df_set_clean_cfg): Likewise.
635         * function.c (free_after_compilation): Likewise.
636         * gcc.c (do_spec_1, main): Likewise.
637         * gcov.c (create_file_names): Likewise.
638         * gensupport.c (identify_predicable_attribute): Likewise.
639         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
640         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
641         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
642         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
643         * ipa-pure-const.c (local_pure_const): Likewise.
644         * ipa-reference.c (propagate): Likewise.
645         * ira-costs.c (free_ira_costs): Likewise.
646         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
647         * matrix-reorg.c (mat_free): Likewise.
648         * prefix.c (get_key_value): Likewise.
649         * profile.c (compute_value_histograms): Likewise.
650         * reload1.c (free_reg_equiv): Likewise.
651         * sched-deps.c (free_deps): Likewise.
652         * sel-sched-ir.c (fence_clear): Likewise.
653         * sese.c (set_rename, if_region_set_false_region): Likewise.
654         * tree-data-ref.c (free_rdg): Likewise.
655         * tree-eh.c (lower_try_finally): Likewise.
656         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
657         * tree-ssa-live.c (delete_var_map): Likewise.
658         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
659         * tree-ssa-pre.c (phi_trans_add): Likewise.
660
661 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
662
663         PR tree-optimization/48611
664         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
665         beyond ERT_MUST_NOT_THROW region.
666
667 2011-04-20  Catherine Moore  <clm@codesourcery.com>
668
669         * config/mips/mips.opt (mfix-24k): New.
670         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
671         * config/mips/mips.md (length): Increase by 4 for stores if
672         fixing 24K errata.
673         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
674         all noreorder if fixing 24K errata.
675         * doc/invoke.texi: Document mfix-24k.
676
677 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
678
679         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
680         quad-word modes, reduce to 9-bit index range when above 1016 limit.
681
682 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
683
684         * config/arm/arm.c (arm_gen_constant): Move movw support ....
685         (const_ok_for_op): ... to here.
686
687 2011-04-20  Kai Tietz  <ktietz@redhat.com>
688
689         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
690         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
691
692 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
693
694         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
695
696 2011-04-20  Richard Guenther  <rguenther@suse.de>
697
698         PR tree-optimization/47892
699         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
700         are if-convertible.
701
702 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
703
704         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
705
706 2011-04-20  Tristan Gingold  <gingold@adacore.com>
707
708         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
709
710 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
711
712         PR target/18145
713
714         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
715         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
716         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
717         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
718         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
719
720         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
721         New prototype.
722
723         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
724         (avr_asm_named_section, avr_asm_output_aligned_common,
725         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
726         New functions to update...
727         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
728         (avr_asm_init_sections): Overwrite section callbacks for
729         data_section, bss_section.
730         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
731         from here to...
732         (avr_file_end): ...here.
733
734 2011-04-20  Richard Guenther  <rguenther@suse.de>
735
736         PR middle-end/48695
737         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
738         objects and types here.  Adjust for their offset before comparing.
739
740 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
741
742         * tree-vect-stmts.c (vectorizable_store): Only chain one related
743         statement per copy.
744
745 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
746
747         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
748         (GIMPLE_H): Include $(INTERNAL_FN_H).
749         (OBJS-common): Add internal-fn.o.
750         (internal-fn.o): New rule.
751         * internal-fn.def: New file.
752         * internal-fn.h: Likewise.
753         * internal-fn.c: Likewise.
754         * gimple.h: Include internal-fn.h.
755         (GF_CALL_INTERNAL): New gf_mask.
756         (gimple_statement_call): Put fntype into a union with a new
757         internal_fn field.
758         (gimple_build_call_internal): Declare.
759         (gimple_build_call_internal_vec): Likewise.
760         (gimple_call_same_target_p): Likewise.
761         (gimple_call_internal_p): New function.
762         (gimple_call_internal_fn): Likewise.
763         (gimple_call_fntype): Return null for internal calls.
764         (gimple_call_set_fntype): Assert that the function is not internal.
765         (gimple_call_set_fn): Likewise.
766         (gimple_call_set_fndecl): Likewise.
767         (gimple_call_set_internal_fn): New function.
768         (gimple_call_addr_fndecl): Handle null functions.
769         (gimple_call_return_type): Likewise null types.
770         * gimple.c (gimple_build_call_internal_1): New function.
771         (gimple_build_call_internal): Likewise.
772         (gimple_build_call_internal_vec): Likewise.
773         (gimple_call_same_target_p): Likewise.
774         (gimple_call_flags): Handle calls to internal functions.
775         (gimple_call_fnspec): New function.
776         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
777         (gimple_has_side_effects): Handle null functions.
778         (gimple_rhs_has_side_effects): Likewise.
779         (gimple_call_copy_skip_args): Handle calls to internal functions.
780         * cfgexpand.c (expand_call_stmt): Likewise.
781         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
782         * gimple-fold.c (gimple_fold_call): Handle null functions.
783         (gimple_fold_stmt_to_constant_1): Don't fold
784         calls to internal functions.
785         * gimple-low.c (gimple_check_call_args): Handle calls to internal
786         functions.
787         * gimple-pretty-print.c (dump_gimple_call): Likewise.
788         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
789         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
790         (do_warn_unused_result): Likewise.
791         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
792         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
793         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
794         the target of a call.
795         (initialize_hash_element): Update accordingly.
796         (hashable_expr_equal_p): Use gimple_call_same_target_p.
797         (iterative_hash_hashable_expr): Handle calls to internal functions.
798         (print_expr_hash_elt): Likewise.
799         * tree-ssa-pre.c (can_value_number_call): Likewise.
800         (eliminate): Handle null functions.
801         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
802         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
803         (find_func_aliases): Likewise.
804         * value-prof.c (gimple_ic_transform): Likewise.
805         (gimple_indirect_call_to_profile): Likewise.
806         * lto-streamer-in.c (input_gimple_stmt): Likewise.
807         * lto-streamer-out.c (output_gimple_stmt): Likewise.
808
809 2011-04-19  Jan Hubicka  <jh@suse.cz>
810
811         * ipa-inline-transform.c (save_inline_function_body): Add comments.
812         * ipa-inline.c (inline_small_functions): Compute summaries first,
813         populate heap later.
814
815 2011-04-19  Jan Hubicka  <jh@suse.cz>
816
817         * cgraph.h (save_inline_function_body): Remove.
818         * ipa-inline-transform.c: New file, broke out of...
819         * ipa-inline.c: ... this one; Update toplevel comment.
820         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
821         make global.
822         (update_noncloned_frequencies): Move to ipa-inline-transform.c
823         (cgraph_mark_inline_edge): Rename to inline_call; move to
824         ipa-inline-transform.c.
825         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
826         move to ipa-inline-transform.c
827         (recursive_inlining, inline_small_functions, flatten_function,
828         ipa_inline, inline_always_inline_functions,
829         early_inline_small_functions): Update.
830         (inline_transform): Move to ipa-inline-transform.c.
831         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
832         Declare.
833         * Makefile.in (ipa-inline-transform.o): New file.
834         * cgraphunit.c (save_inline_function_body): Move to
835         ipa-inline-transform.c
836
837 2011-04-19  DJ Delorie  <dj@redhat.com>
838
839         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
840         registers if we already know there aren't any.
841         (m32c_emit_epilogue): Don't emit a barrier here.
842         (m32c_emit_eh_epilogue): Likewise.
843         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
844         operands at expand time.
845         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
846         int" wchar type.
847         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
848         duplicates.  Provide aliases instead.
849         * config/m32c/prologue.md (eh_return): Emit a barrier here.
850         (eh_epilogue): Add a "(return)" here as a hint to other parts of
851         the compiler.
852
853 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
854
855         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
856         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
857         (general_or_i64_p, sparc_register_move_cost): New function.
858
859 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
860
861         * doc/install.texi (Configuration, --enable-threads): Remove mach.
862         Add lynx, mipssde.  Sort table.
863
864 2011-04-19  Xinliang David Li  <davidxl@google.com>
865
866         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
867         not negative.
868
869 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
870
871         PR target/48678
872         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
873         is a SUBREG with non-MODE_INT mode inside of it.
874
875 2011-04-19  Martin Jambor  <mjambor@suse.cz>
876
877         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
878         also according to actual contants.
879         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
880         (gimple_fold_call): Use it.
881         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
882
883 2011-04-19  Martin Jambor  <mjambor@suse.cz>
884
885         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
886         non-pointer assignments.
887
888 2011-04-19  Martin Jambor  <mjambor@suse.cz>
889
890         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
891         account anc_offset and otr_type from the indirect edge info.
892         * ipa-prop.c (get_ancestor_addr_info): New function.
893         (compute_complex_ancestor_jump_func): Assignment analysis moved to
894         get_ancestor_addr_info, call it.
895         (ipa_note_param_call): Do not initialize information about polymorphic
896         calls, return the indirect call graph edge.  Remove the last
897         parameter, adjust all callers.
898         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
899         parameters.  Initialize polymorphic information in the indirect edge.
900
901 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
902
903         PR lto/48148
904         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
905         the types if they have different enumeration identifiers.
906
907 2011-04-19  Jan Hubicka  <jh@suse.cz>
908
909         * cgraph.h (cgraph_optimize_for_size_p): Declare.
910         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
911         * predict.c (cgraph_optimize_for_size_p): Break out from ...
912         (optimize_function_for_size_p) ... here.
913
914 2011-04-19  Richard Guenther  <rguenther@suse.de>
915
916         PR lto/48207
917         * tree.c (free_lang_data): Do not reset the decl-assembler-name
918         langhook.
919
920 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
921
922         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
923         if DECL_NO_INLINE_WARNING_P is set on the function.
924
925 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
926
927         PR fortran/47976
928         * reload1.c (inc_for_reload): Return void. All callers changed.
929         (emit_input_reload_insns): Don't try to delete previous output
930         reloads to a register, or record spill_reg_store for autoincs.
931
932 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
933
934         * gengtype.h: Updated copyright year.
935         (struct input_file_st): Add inpisplugin field.
936         (type_fileloc): New function.
937         * gengtype.c
938         (write_typed_struct_alloc_def): Add gcc_assert.
939         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
940         (write_typed_alloc_defns): Don't output for plugin files.
941         (input_file_by_name): Clear inpisplugin field.
942         (main): Set inpisplugin field for plugin files.
943
944 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
945
946         * gengtype-state.c (string_eq): New.
947         (read_state): Use string_eq instead of strcmp when creating the
948         state_ident_tab.
949
950 2011-04-19  Wei Guozhi  <carrot@google.com>
951
952         PR target/47855
953         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
954         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
955         linkage.
956         * config/arm/constraints.md (Uu): New constraint.
957         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
958
959 2011-04-19  Tristan Gingold  <gingold@adacore.com>
960
961         * config.gcc (-*-*-*vms): Added.
962         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
963         definitions moved.
964         * config/vms/vms-ld.c: New file.
965         * config/vms/vms-ar.c: New file.
966         * config/vms/t-vmsnative: New file.
967
968 2011-04-18  Xinliang David Li  <davidxl@google.com>
969
970         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
971
972 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
973
974         PR middle-end/48661
975         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
976         if TREE_TYPE (v) is non-NULL.
977
978         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
979         gimple_get_virt_mehtod_for_binfo.
980         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
981         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
982         callers.
983         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
984
985 2011-04-18  Michael Matz  <matz@suse.de>
986             Steve Ellcey  <sje@cup.hp.com>
987
988         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
989         use its mode as source mode if it isn't VOIDmode.
990
991 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
992
993         * doc/passes.texi: Fill crossref nodes.
994
995 2011-04-18  Jim Meyering  <meyering@redhat.com>
996
997         Fix doubled-word typos in comments and strings
998         * config/alpha/vms-unwind.h: s/for for/for/
999         * config/arm/unwind-arm.h: Likewise.
1000         * config/microblaze/microblaze.c: Likewise.
1001         * config/sh/constraints.md: s/in in/in/
1002         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
1003
1004 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
1005
1006         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
1007         (AVX_FLOAT_MODE_P): Ditto.
1008         (AVX128_VEC_FLOAT_MODE_P): Ditto.
1009         (AVX256_VEC_FLOAT_MODE_P): Ditto.
1010         (AVX_VEC_FLOAT_MODE_P): Ditto.
1011         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
1012         (UNSPEC_MASKSTORE): Ditto.
1013         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
1014         Merge from <sse>_movmsk<ssemodesuffix> and
1015         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
1016         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
1017         iterator.
1018         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
1019         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
1020         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
1021
1022 2011-04-18  Jan Hubicka  <jh@suse.cz>
1023
1024         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
1025
1026         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
1027         (want_inline_function_called_once_p): Break out the logic from
1028         ipa_inline.
1029         (edge_badness): Ensure that profile is not misupdated.
1030         (lookup_recursive_calls): Prioritize by call frequencies.
1031         (inline_small_functions): Move program size estimates here;
1032         actually process whole queue even when unit growth has been
1033         met. (to properly compute inline_failed reasons and for the
1034         case unit size decrease.) Revisit comments on recursive inlining.
1035         (ipa_inline): Remove unit summary code; first inline hot calls
1036         of functions called once, cold calls next.
1037         (order, nnodes): Remove unused variables.
1038         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
1039         (GTFILES): Remove ipa-inline.c
1040         * sel-sched.c (fill_insns): Silence uninitialized var warning.
1041
1042 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1043
1044         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
1045
1046 2011-04-18  Jie Zhang  <jie@codesourcery.com>
1047             Richard Earnshaw  <rearnsha@arm.com>
1048
1049         * arm.c (neon_builtin_type_bits): Remove.
1050         (typedef enum neon_builtin_mode): New.
1051         (T_MAX): Don't define.
1052         (typedef enum neon_builtin_datum): Remove bits, codes[],
1053         num_vars and base_fcode.  Add mode, code and fcode.
1054         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
1055         VAR10): Change accordingly.
1056         (neon_builtin_data[]): Change accordingly
1057         (arm_init_neon_builtins): Change accordingly.
1058         (neon_builtin_compare): Remove.
1059         (locate_neon_builtin_icode): Remove.
1060         (arm_expand_neon_builtin): Change accordingly.
1061
1062         * arm.h (enum arm_builtins): Move to ...
1063         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
1064
1065         * arm.c (arm_builtin_decl): Declare.
1066         (TARGET_BUILTIN_DECL): Define.
1067         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
1068         (arm_builtin_decls[]): New.
1069         (arm_init_neon_builtins): Store builtin declarations in
1070         arm_builtin_decls[].
1071         (arm_init_tls_builtins): Likewise.
1072         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
1073         (arm_builtin_decl): New.
1074
1075 2011-04-18  Richard Guenther  <rguenther@suse.de>
1076
1077         * tree.c (upper_bound_in_type): Build properly canonicalized
1078         INTEGER_CSTs.
1079         (lower_bound_in_type): Likewise.
1080
1081 2011-04-18  Richard Guenther  <rguenther@suse.de>
1082
1083         * gimple.h (gimple_call_addr_fndecl): New function.
1084         (gimple_call_fndecl): Use it.
1085         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
1086         for direct calls.
1087         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
1088         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
1089
1090 2011-04-18  Richard Guenther  <rguenther@suse.de>
1091
1092         PR middle-end/48650
1093         * tree.c (build_string): STRING_CST is now derived from tree_typed.
1094
1095 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1096
1097         PR lto/48492
1098         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
1099         DECL_IN_CONSTANT_POOL without RTL.
1100
1101 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
1102             Ira Rosen  <ira.rosen@linaro.org>
1103
1104         PR target/48252
1105         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
1106         to match neon_vzip/vuzp/vtrn_internal.
1107         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
1108         outputs explicitly dependent on both inputs.
1109         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
1110
1111 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
1112
1113         PR tree-optimization/48616
1114         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
1115         whether the shift is by scalar or vector based on whether all SLP
1116         scalar stmts have the same rhs.
1117
1118 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
1119
1120         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
1121         memory operands.
1122
1123 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
1124
1125         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
1126         registers.
1127
1128 2011-04-17  Jan Hubicka  <jh@suse.cz>
1129
1130         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
1131         * cgrpahunit.c (cgraph_finalize_function): Do not set
1132         finalized_by_frontend.
1133         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
1134         finalized_by_frontend.
1135
1136 2011-04-17  Jan Hubicka  <jh@suse.cz>
1137
1138         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
1139         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
1140         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
1141         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
1142         method.
1143         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
1144         gimple-fold.c
1145         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
1146
1147 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1148
1149         PR lto/48538
1150         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
1151         is non-null before accessing it.
1152         (input_cgraph): Remove trailing spaces.
1153
1154 2011-04-17  Revital Eres  <revital.eres@linaro.org>
1155
1156         * params.def (sms-min-sc): New param flag.
1157         * modulo-sched.c (sms_schedule): Use it.
1158         * doc/invoke.texi (sms-min-sc): Document it.
1159
1160 2011-04-17  Jan Hubicka  <jh@suse.cz>
1161
1162         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
1163         present, also set gimple_call_set_cannot_inline.
1164         * ipa-inline.c: Update toplevel comment.
1165         (MAX_TIME): Remove.
1166         (cgraph_clone_inlined_nodes): Fix linebreaks.
1167         (cgraph_check_inline_limits): Restructure to ...
1168         (caller_growth_limits): ... this one; be more tolerant
1169         on growth in nested inline chains; add explanatory comment;
1170         fix stack accounting thinko introduced by previous patch.
1171         (cgraph_default_inline_p): Remove.
1172         (report_inline_failed_reason): New function.
1173         (can_inline_edge_p): New function.
1174         (can_early_inline_edge_p): New function.
1175         (leaf_node_p): Move upwards in file.
1176         (want_early_inline_function_p): New function.
1177         (want_inline_small_function_p): New function.
1178         (want_inline_self_recursive_call_p): New function.
1179         (cgraph_edge_badness): Rename to ...
1180         (edge_badness) ... this one; fix linebreaks.
1181         (update_edge_key): Update call of edge_baddness; add
1182         detailed dump about queue updates.
1183         (update_caller_keys): Use can_inline_edge_p and
1184         want_inline_small_function_p.
1185         (cgraph_decide_recursive_inlining): Rename to...
1186         (recursive_inlining): Use can_inline_edge_p and
1187         want_inline_self_recursive_call_p; simplify and remove no longer
1188         valid FIXME.
1189         (cgraph_set_inline_failed): Remove.
1190         (add_new_edges_to_heap): Use can_inline_edge_p and
1191         want_inline_small_function_p.
1192         (cgraph_decide_inlining_of_small_functions): Rename to ...
1193         (inline_small_functions): ... this one; cleanup; use
1194         can/want predicates; cleanup debug ouput; work edges till fibheap
1195         is exhausted and do not stop once unit growth is reached; remove
1196         later loop processing remaining edges.
1197         (cgraph_flatten): Rename to ...
1198         (flatten_function): ... this one; use can_inline_edge_p
1199         and can_early_inline_edge_p predicates.
1200         (cgraph_decide_inlining): Rename to ...
1201         (ipa_inline): ... this one; remove unreachable nodes before
1202         inlining functions called once; simplify the pass.
1203         (cgraph_perform_always_inlining): Rename to ...
1204         (inline_always_inline_functions): ... this one; use
1205         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
1206         (cgraph_decide_inlining_incrementally): Rename to ...
1207         (early_inline_small_functions): ... this one; simplify
1208         using new predicates; cleanup; make dumps prettier.
1209         (cgraph_early_inlining): Rename to ...
1210         (early_inliner): newer inline regular functions into always-inlines;
1211         fix updating of call stmt summaries.
1212         (pass_early_inline): Update for new names.
1213         (inline_transform): Fix formating.
1214         (gate_cgraph_decide_inlining): Rename to ...
1215         (pass_ipa_inline): ... this one.
1216         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
1217         * ipa-inline-analysis.c (dump_inline_summary): Update.
1218         (compute_inline_parameters): Do not compute disregard_inline_limits;
1219         look for mismatching arguments.
1220         (estimate_growth): Fix handlig of non-trivial self recursion.
1221         (inline_read_summary): Do not read info->disregard_inline_limits.
1222         (inline_write_summary): Do not write info->disregard_inline_limits.
1223         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
1224         and move all checks into can_inline_edge_p predicate; re-enable code
1225         comparing optimization levels.
1226         (expand_call_inline): Do not test inline_forbidden_into_p.
1227         * Makefile.in (ipa-inline.o): Update arguments.
1228
1229 2011-04-17  Revital Eres  <revital.eres@linaro.org>
1230
1231         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
1232
1233 2011-04-17  Revital Eres  <revital.eres@linaro.org>
1234
1235         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
1236
1237 2011-04-17  Michael Matz  <matz@suse.de>
1238
1239         PR tree-optimization/48622
1240         PR lto/48645
1241         * ipa-inline-analysis.c (inline_read_summary): Read size/time
1242         in same order as they're written.
1243
1244 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1245
1246         * config/pa/predicates.md: Reorganize and simplify predicates.
1247         Eliminate duplicate code checks.
1248         (arith_operand): Rename to arith14_operand
1249         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
1250         * config/pa/pa.md: Use renamed operands.
1251         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
1252         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
1253         arith11_operand, adddi3_operand, indexed_memory_operand,
1254         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
1255         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
1256         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
1257         move_dest_operand, move_src_operand, prefetch_cc_operand,
1258         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
1259         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
1260         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
1261         div_operand, int5_operand, movb_comparison_operator,
1262         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
1263         arith_double_operand, ireg_operand, lhs_lshift_operand,
1264         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
1265         integer_store_memory_operand): Likewise.
1266         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
1267         (integer_store_memory_operand, read_only_operand,
1268         function_label_operand, borx_reg_operand,
1269         non_hard_reg_operand): Likewise.
1270         (eq_neq_comparison_operator): Delete unused operator.
1271         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
1272         function_label_operand.
1273         (emit_move_sequence): Likewise.
1274
1275 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
1276
1277         * config/i386/sse.md (sseunpackmode): New mode attribute.
1278         (ssepackmode): Ditto.
1279         (vec_pack_trunc_<mode>): Macroize expander from
1280         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
1281         (vec_unpacks_lo_<mode>): Macroize expander from
1282         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1283         (vec_unpacks_hi_<mode>): Macroize expander from
1284         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1285         (vec_unpacku_lo_<mode>): Macroize expander from
1286         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1287         (vec_unpacku_hi_<mode>): Macroize expander from
1288         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1289         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
1290         ix86_expand_sse4_unpack.
1291         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
1292
1293 2011-04-16  Jan Hubicka  <jh@suse.cz>
1294
1295         * cgraphbuild.c: Include ipa-inline.h.
1296         (reset_inline_failed): Use initialize_inline_failed.
1297         * cgraph.c: Include ipa-inline.h.
1298         (cgraph_create_node_1): Do not initialize estimated_growth.
1299         (initialize_inline_failed): More to ipa-inline-analysis.c
1300         (dump_cgraph_node): Do not dump inline flags.
1301         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
1302         and disregard_inline_limits flags.
1303         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
1304         time, size, estimated_growth.
1305         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
1306         Update.
1307         * cgraphunit.c (cgraph_decide_is_function_needed): Use
1308         DECL_DISREGARD_INLINE_LIMITS.
1309         (cgraph_analyze_function): Do not initialize
1310         node->local.disregard_inline_limits.
1311         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
1312         inlinable, versionable and disregard_inline_limits.
1313         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1314         cgraph_check_inline_limits, cgraph_default_inline_p,
1315         cgraph_edge_badness, update_caller_keys, update_callee_keys,
1316         add_new_edges_to_heap): Update.
1317         (cgraph_decide_inlining_of_small_function): Update; set
1318         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
1319         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
1320         cgraph_decide_inlining_incrementally): Update.
1321         * ipa-inline.h (inline_summary): Add inlinable, versionable,
1322         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
1323         time, size and estimated_growth parameters.
1324         (estimate_edge_growth): Update.
1325         (initialize_inline_failed): Declare.
1326         * ipa-split.c: Include ipa-inline.h
1327         (execute_split_functions): Update.
1328         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
1329         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
1330         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
1331         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
1332         estimated_growth to INT_MIN.
1333         (inline_node_duplication_hook): Likewise.
1334         (dump_inline_summary): Dump new fields.
1335         (compute_inline_parameters): Update.
1336         (estimate_edge_time, estimate_time_after_inlining,
1337         estimate_size_after_inlining, estimate_growth, inline_read_summary,
1338         inline_write_summary):
1339         (initialize_inline_failed): Move here from cgraph.c.
1340         * tree-sra.c: Include ipa-inline.h.
1341         (ipa_sra_preliminary_function_checks): Update.
1342         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
1343         ipa-inline.h.
1344
1345 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
1346
1347         * config/i386/sse.md (V16): New mode iterator.
1348         (VI1, VI8): Ditto.
1349         (AVXMODEQI, AVXMODEDI): Remove.
1350         (sse2, sse3): New mode attribute.
1351         (mov<mode>): Use V16 mode iterator.
1352         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
1353         (push<mode>1): Use V16 mode iterator.
1354         (movmisalign<mode>): Ditto.
1355         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
1356         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
1357         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
1358         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
1359         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
1360         avx_movdqu<avxmodesuffix>.
1361         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
1362         *avx_movdqu<avxmodesuffix>.
1363         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
1364         avx_lddqu<avxmodesuffix>.
1365         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
1366         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
1367         avx_movnt<AVXMODEDI:mode>.
1368         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
1369         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
1370
1371 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1372
1373         PR target/48629
1374         * haifa-sched.c (prune_ready_list, schedule_block): Use
1375         sched_pressure_p rather than flag_sched_pressure.
1376
1377 2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
1378
1379         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
1380         cgraph_get_node instead of cgraph_get_create_node.
1381
1382 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
1383
1384         * cfgexpand.c (expand_debug_expr): Use
1385         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
1386
1387 2011-04-15  Michael Matz  <matz@suse.de>
1388
1389         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
1390         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
1391         * function.c (gimplify_parameters): Ditto.
1392         * gimplify.c (gimplify_vla_decl): Ditto.
1393
1394         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
1395         (gimple_call_set_alloca_for_var): New inline function.
1396         (gimple_call_alloca_for_var_p): Ditto.
1397         * gimple.c (gimple_build_call_from_tree): Remember
1398         CALL_ALLOCA_FOR_VAR_P state.
1399         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
1400
1401         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
1402         calls if they were for VLA objects.
1403
1404 2011-04-15  Martin Jambor  <mjambor@suse.cz>
1405
1406         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
1407         of ADR_EXPRs.
1408
1409 2011-04-15  Martin Jambor  <mjambor@suse.cz>
1410
1411         PR middle-end/48601
1412         * tree-emutls.c (lower_emutls_function_body): Call
1413         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
1414         result is non-NULL.
1415
1416 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1417
1418         * c-decl.c (detect_field_duplicates): Call
1419         objc_detect_field_duplicates instead of objc_get_interface_ivars.
1420
1421 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
1422
1423         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
1424         * gimple.c (gimple_asm_clobbers_memory_p): Define.
1425         * ipa-pure-const.c (check_stmt): Call it.
1426         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
1427
1428 2011-04-15  Richard Guenther  <rguenther@suse.de>
1429
1430         PR tree-optimization/48290
1431         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
1432         Properly decide inhibiting propagation based on the valueized
1433         operand.  Do loop-closed SSA form preserving here ...
1434         (init_copy_prop): ... not here.
1435
1436 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1437
1438         PR target/48612
1439         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
1440         (*ieee_smax<mode>3): Likewise.
1441
1442 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1443
1444         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
1445         Replace match_operand with match_dup for the third operand in
1446         these expanders.
1447
1448 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1449
1450         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
1451         to track processing of conditionals.  Update all callers.
1452         (try_combine, simplify_if_then_else): Update.
1453
1454 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1455
1456         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
1457         -fsched-pressure.
1458
1459 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
1460
1461         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
1462         instead of match_operand for operand 3.
1463
1464 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
1465
1466         * recog.h (insn_operand_data): Add an "allows_mem" field.
1467         * genoutput.c (output_operand_data): Initialize it.
1468         * optabs.c (maybe_legitimize_operand_same_code): New function.
1469         (maybe_legitimize_operand): Use it when matching the original
1470         op->value.
1471
1472 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1473
1474         * gimplify.c: Fix issues in comments throughout.
1475         (voidify_wrapper_expr): Fix long line.
1476         (build_stack_save_restore): Likewise.
1477         (gimplify_loop_expr): Likewise.
1478         (gimplify_compound_lval): Likewise.
1479         (gimplify_init_ctor_eval): Likewise.
1480         (gimplify_modify_expr_rhs): Likewise.
1481         (omp_notice_threadprivate_variable): Likewise.
1482
1483 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1484
1485         * cfgexpand.c (expand_call_stmt): Convert the function type to the
1486         original one if this is not a builtin function.
1487
1488 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
1489
1490         PR target/48605
1491         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
1492         offset it as needed based on top 2 bits in operands[3], change
1493         MEM mode to SFmode and mask those 2 bits away from operands[3].
1494
1495 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1496
1497         * c-parser.c (c_parser_objc_protocol_definition): Updated for
1498         change from objc_declare_protocols() to objc_declare_protocol().
1499
1500 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
1501
1502         * config/i386/sse.md (sse4_1): New mode attribute.
1503         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
1504         avx_blend<ssemodesuffix><avxmodesuffix> and
1505         sse4_1_blend<ssemodesuffix> using VF mode iterator.
1506         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
1507         avx_blendv<ssemodesuffix><avxmodesuffix> and
1508         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
1509         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
1510         avx_dp<ssemodesuffix><avxmodesuffix> and
1511         sse4_1_dp<ssemodesuffix> using VF mode iterator.
1512         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
1513         (sse4_1_packusdw): Merge with *avx_packusdw.
1514         (sse4_1_pblendvb): Merge with *avx_pblendvb.
1515         (sse4_1_pblendw): Merge with *avx_pblendw.
1516         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
1517         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
1518         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
1519         VF mode iterator.
1520         (sse4_1_round<ssescalarmodesuffix>): Merge with
1521         *avx_round<ssescalarmodesuffix>.
1522         (aesenc): Merge with *avx_aesenc.
1523         (aesenclast): Merge with *avx_aesenclast.
1524         (aesdec): Merge with *avx_aesdec.
1525         (aesdeclast): Merge with *avx_aesdeclast.
1526         (pclmulqdq): Merge with *pclmulqdq.
1527         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
1528         New predicate.
1529         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
1530
1531 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
1532
1533         PR middle-end/48608
1534         * cfgexpand.c (get_decl_align_unit): Renamed to ...
1535         (align_local_variable): This.  Update DECL_ALIGN.
1536         (add_stack_var): Updated.
1537         (expand_one_stack_var): Likewise.
1538
1539 2011-04-14  Richard Guenther  <rguenther@suse.de>
1540
1541         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
1542         Remove.
1543         (dse_initialize_block_local_data, dse_leave_block,
1544         record_voperand_set, get_stmt_uid): Likewise.
1545         (dse_possible_dead_store_p): Allow any kind of killing stmt.
1546         (dse_optimize_stmt): Remove voperand set handling code.
1547         Simplify and improve to handle any kind of killing stmt.
1548         (dse_record_phi): Remove.
1549         (dse_enter_block): Simplify.
1550         (tree_ssa_dse): Likewise.
1551         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
1552
1553 2011-04-14  Jan Hubicka  <jh@suse.cz>
1554
1555         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
1556         * cgraph.h (struct inline_summary): Move to ipa-inline.h
1557         (cgraph_local_info): Remove inline_summary.
1558         * ipa-cp.c: Include ipa-inline.h.
1559         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
1560         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
1561         accesor.
1562         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
1563         (input_overwrite_node): Do not set inline summary.
1564         (input_node): Do not stream inline summary.
1565         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
1566         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
1567         growth; we do not have inline parameters computed for that anyway.
1568         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
1569         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
1570         (inline_summary_t): New type and VECtor.
1571         (debug_inline_summary, dump_inline_summaries): Declare.
1572         (inline_summary): Use VOCtor.
1573         (estimate_edge_growth): Kill hack computing call stmt size directly.
1574         * lto-section-in.c (lto_section_name): Add inline section.
1575         * ipa-inline-analysis.c: Include lto-streamer.h
1576         (node_removal_hook_holder, node_duplication_hook_holder): New holders
1577         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
1578         (inline_summary_vec): Define.
1579         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
1580         dump_inline_summaries): New functions.
1581         (estimate_function_body_sizes): Properly compute size/time of outgoing
1582         calls.
1583         (compute_inline_parameters): Alloc inline_summary; do not compute
1584         size/time of incomming calls.
1585         (estimate_edge_time): Avoid missing time summary hack.
1586         (inline_read_summary): Read inline summary info.
1587         (inline_write_summary): Write inline summary info.
1588         (inline_free_summary): Free all hooks and inline summary vector.
1589         * lto-streamer.h: Add LTO_section_inline_summary section.
1590         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
1591         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
1592
1593 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1594
1595         * tree-vectorizer.h (vect_strided_store_supported): Add a
1596         HOST_WIDE_INT argument.
1597         (vect_strided_load_supported): Likewise.
1598         (vect_permute_store_chain): Return void.
1599         (vect_transform_strided_load): Likewise.
1600         (vect_permute_load_chain): Delete.
1601         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
1602         count argument.  Check that the count is a power of two.
1603         (vect_strided_load_supported): Likewise.
1604         (vect_permute_store_chain): Return void.  Update after above changes.
1605         Assert that the access is supported.
1606         (vect_permute_load_chain): Likewise.
1607         (vect_transform_strided_load): Return void.
1608         * tree-vect-stmts.c (vectorizable_store): Update calls after
1609         above interface changes.
1610         (vectorizable_load): Likewise.
1611         (vect_analyze_stmt): Don't check for strided powers of two here.
1612
1613 2011-04-14  Richard Guenther  <rguenther@suse.de>
1614
1615         PR tree-optimization/48590
1616         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
1617         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
1618         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
1619         BUILT_IN_STACK_SAVE.
1620         * tree-ssa-dce.c (propagate_necessity): Handle
1621         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
1622
1623 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1624
1625         * c-parser.c (c_parser_objc_class_declaration): Updated call to
1626         objc_declare_class.
1627
1628 2011-04-14  Richard Guenther  <rguenther@suse.de>
1629
1630         * tree.h (get_object_alignment_1): Declare.
1631         * builtins.c (get_object_alignment_1): Split out worker from ...
1632         (get_object_alignment): ... here.
1633         * fold-const.c (get_pointer_modulus_and_residue): Use
1634         get_object_alignment_1.
1635
1636 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1637
1638         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
1639         type parameter.
1640         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
1641         parameter.  Generalise code to handle arrays as well as vectors.
1642         (vect_setup_realignment): Update accordingly.
1643         * tree-vect-stmts.c (vectorizable_store): Likewise.
1644         (vectorizable_load): Likewise.
1645
1646 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1647
1648         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
1649         within the per-copy loop.
1650
1651 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1652
1653         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
1654         in the dump file.
1655
1656 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1657
1658         * doc/options.texi (Negative): Explicitly mention that the
1659         Negative chain must be circular.
1660
1661 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
1662
1663         * function.h (block_chainon): Declare.
1664         * function.c (block_chainon): Define.
1665
1666 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
1667             Eric Weddington  <eric.weddington@atmel.com>
1668             Georg-Johann Lay <avr@gjlay.de>
1669
1670         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
1671         New Includes
1672         (avr_init_builtins, avr_expand_builtin,
1673         avr_expand_delay_cycles, avr_expand_unop_builtin,
1674         avr_expand_binop_builtin ): New functions.
1675         (avr_builtin_id): New enum
1676         (struct avr_builtin_description): New struct
1677         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
1678         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
1679
1680         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
1681         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
1682         UNSPECV_DELAY_CYCLES): new enumeration values
1683         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
1684         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
1685         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
1686         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
1687         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
1688         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
1689         "fmulsu"): New insns
1690
1691         * config/avr/avr-c.c: fix line endings
1692         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
1693         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
1694         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
1695         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
1696         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
1697
1698         * doc/extend.texi (AVR Built-in Functions): New node
1699         (Target Builtins): Add documentation of AVR
1700         built-in functions.
1701
1702 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
1703
1704         PR target/44643
1705         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
1706         alone. Error if non-const data has attribute progmem.
1707
1708 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1709
1710         * tree.h (struct tree_constructor): Include tree_typed instead of
1711         tree_common.
1712         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
1713         TS_TYPED instead of TS_COMMON.
1714
1715 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
1716
1717         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
1718         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
1719         (sse2_psadbw): Merge with *avx_psadbw.
1720         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
1721         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
1722         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
1723         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
1724         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
1725         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
1726         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
1727         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
1728         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
1729         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
1730         (ssse3_palignrti): Merge with *avx_palignrti.
1731
1732 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1733
1734         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
1735         * tree-ssanames.c (fini_ssanames): VEC_free it.
1736         (make_ssa_name_fn): Update for VECness of free_ssanames.
1737         (release_ssa_name, release_dead_ssa_names): Likewise.
1738         * tree.h (struct tree_ssa_name): Include tree_typed instead of
1739         tree_common.
1740         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
1741         TS_TYPED instead of TS_COMMON.
1742
1743 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1744
1745         * postreload-gcse.c (gcse_after_reload_main): Add calls to
1746         statistics_counter_event.
1747         * tree-ssa-copyrename.c (stats): Define.
1748         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
1749         statistics_counter_event.
1750         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
1751         (bswap_stats, widen_mul_stats): Define.
1752         (insert_reciprocals): Increment rdivs_inserted.
1753         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
1754         rfuncs_inserted.  Add calls to statistics_counter_event.
1755         (execute_cse_sincos_1): Increment inserted.
1756         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
1757         statistics_counter_event.
1758         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
1759         of bswap_stats.  Add calls to statistics_counter_event.
1760         (convert_mult_to_widen): Increment widen_mults_inserted.
1761         (convert_plusminus_to_widen): Increment maccs_inserted.
1762         (convert_mult_to_fma): Increment fmas_inserted.
1763         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
1764         calls to statistics_counter_event.
1765
1766 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
1767
1768         PR rtl-optimization/48455
1769         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
1770         `temp_costs->mem_cost'.
1771
1772 2011-04-13  Jan Hubicka  <jh@suse.cz>
1773
1774         * ipa-inline.h: New file.
1775         * ipa-inline-analysis.c: New file. Broken out of ...
1776         * ipa-inline.c: ... this file; update toplevel comment;
1777         include ipa-inline.h
1778         (inline_summary): Move to ipa-inline.h
1779         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
1780         ipa-inline-analysis.c.
1781         (cgraph_estimate_time_after_inlining): Rename to
1782         estiamte_time_after_inlining; move to ipa-inline-analysis.c
1783         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
1784         to estimate_edge_growth.
1785         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
1786         rename to estimate_size_after_inlining.
1787         (cgraph_mark_inline_edge): Update for new naming convention.
1788         (cgraph_check_inline_limits): Likewise.
1789         (cgraph_edge_badness): Likewise.
1790         (cgraph_decide_recursive_inlining): Likewise.
1791         (cgraph_decide_inlining_of_small_functions): Likewise.
1792         (cgraph_decide_inlining_incrementally): Likewise.
1793         (cgraph_estimate_growth): Rename to estimate_growth; move to
1794         ipa-inline-analysis.c.
1795         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
1796         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
1797         (compute_inline_parameters): Likewise.
1798         (compute_inline_parameters_for_current): Likewise.
1799         (pass_inline_parameters): Likewise.
1800         (inline_indirect_intraprocedural_analysis): Likewise.
1801         (analyze_function): Rename to inline_analyze_function; likewise.
1802         (add_new_function): Move to ipa-inline-analysis.c.
1803         (inline_generate_summary): Likewise.
1804         (inline_read_summary): Likewise.
1805         (inline_write_summary): Likewise.
1806         * Makefile.in (ipa-inline-analysis.c): New file.
1807
1808 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1809
1810         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
1811         * configure: Regenerate.
1812
1813 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1814
1815         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
1816         instead of tree_common.
1817         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
1818         Likewise.
1819         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
1820         TS_TYPED rather than TS_COMMON.
1821         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
1822
1823 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
1824
1825         PR target/45263
1826         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
1827         r20 around calls of __tablejump_elpm__
1828
1829 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
1830
1831         PR middle-end/48591
1832         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
1833         NULL.
1834         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
1835
1836 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
1837
1838         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
1839         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
1840         (cfi_vec): New typedef.
1841         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
1842         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
1843         (cie_cfi_vec): New static variable.
1844         (cie_cfi_head): Delete.
1845         (add_cfi): Accept a cfi_vec * as first argument. All callers and
1846         declaration changed. Use vector rather than list operations.
1847         (new_cfi): Don't initialize the dw_cfi_next field.
1848         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
1849         rather than list operations.
1850         (lookup_cfa): Use vector rather than list operations.
1851         (output_cfis): New argument upto. Accept a cfi_vec rather than
1852         a dw_cfi_ref list head as argument. All callers changed.
1853         Iterate over the vector using upto as a maximum index.
1854         (output_all_cfis): New static function.
1855         (output_fde): Use vector rather than list operations. Use the
1856         new upto argument for output_cfis rather than manipulating a
1857         list.
1858         (dwarf2out_begin_prologue): Change initializations to match
1859         new struct members.
1860         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
1861         from the vector length rather than searching for the end of a list.
1862         Use output_all_cfis.
1863         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
1864
1865 2011-04-13  Nick Clifton  <nickc@redhat.com>
1866
1867         * config/rx/rx.md (movmemsi): Do not use this pattern when
1868         volatile pointers are involved.
1869
1870 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
1871
1872         * config/i386/sse.md (pinsrbits): Remove.
1873         (sse2_packsswb): Merge with *avx_packsswb.
1874         (sse2_packssdw): Merge with *avx_packssdw.
1875         (sse2_packuswb): Merge with *avx_packuswb.
1876         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
1877         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
1878         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
1879         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
1880         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
1881         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
1882         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
1883         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
1884         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
1885         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
1886         (sse2_loadld): Merge with *avx_loadld.
1887         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
1888         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
1889         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
1890         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
1891         (vec_concatv2di): Merge with *vec_concatv2di_avx.
1892
1893 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
1894
1895         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
1896         calling TREE_CHAIN.
1897         * print-tree.c (print_node): Likewise.
1898         * tree-inline.c (copy_tree_r): Likewise.
1899         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
1900         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
1901         instead of TS_COMMON.
1902         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
1903         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
1904         (copy_node_stat): Zero TREE_CHAIN only if necessary.
1905         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
1906         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
1907         ...and these...
1908         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
1909         * tree.h: ...here.
1910         (TREE_CHAIN): Check for a TS_COMMON structure.
1911         (TREE_TYPE): Check for a TS_TYPED structure.
1912
1913 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
1914
1915         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
1916         cgraph_get_create_node instead of cgraph_node.
1917
1918 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1919
1920         * c-parser.c (c_parser_initelt): Updated call to
1921         objc_build_message_expr.
1922         (c_parser_postfix_expression): Likewise.
1923
1924 2011-04-12  Kai Tietz  <ktietz@redhat.com>
1925
1926         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
1927         MASK_MS_BITFIELD_LAYOUT bit.
1928
1929 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
1930
1931         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
1932         assert it is always true.
1933         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
1934         moves.
1935
1936 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1937
1938         * c-parser.c (c_lex_one_token): Rewritten conditional used when
1939         compiling Objective-C to be more efficient.
1940
1941 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
1942
1943         * opts-common.c (decode_cmdline_options_to_array): Remove variable
1944         argv_copied.
1945
1946 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1947
1948         * recog.h, genoutput.c, optabs.c: Revert last patch.
1949
1950 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1951
1952         PR target/48090
1953         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
1954
1955 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1956
1957         * recog.h (insn_operand_data): Add an "allows_mem" field.
1958         * genoutput.c (output_operand_data): Initialize it.
1959         * optabs.c (maybe_legitimize_operand_same_code): New function.
1960         (maybe_legitimize_operand): Use it when matching the original
1961         op->value.
1962
1963 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1964
1965         * genpreds.c (process_define_predicate): Move most processing
1966         to gensupport.c.  Continue to validate the expression.
1967         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
1968         (process_define_predicate): Move processing to gensupport.c.
1969         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
1970         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
1971         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
1972         argument.
1973         (valid_predicate_name_p): New function, split out from old
1974         genpreds.c:process_define_predicate.
1975         (process_define_predicate): New function, combining code from
1976         old genpreds.c and genrecog.c functions.
1977         (process_rtx): Call it for DEFINE_PREDICATE and
1978         DEFINE_SPECIAL_PREDICATE.
1979
1980 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1981
1982         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
1983         size of a '%A' memory reference.
1984         (T_DREG, T_QREG): New neon_builtin_type_bits.
1985         (arm_init_neon_builtins): Assert that the load and store operands
1986         are neon_struct_operands.
1987         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
1988         (NEON_ARG_MEMORY): New builtin_arg.
1989         (neon_dereference_pointer): New function.
1990         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
1991         Handle NEON_ARG_MEMORY.
1992         (arm_expand_neon_builtin): Update after above interface changes.
1993         Use NEON_ARG_MEMORY for loads and stores.
1994         * config/arm/predicates.md (neon_struct_operand): New predicate.
1995         * config/arm/iterators.md (V_two_elem): Tweak formatting.
1996         (V_three_elem): Use BLKmode for accesses that have no associated mode.
1997         (V_four_elem): Tweak formatting.
1998         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
1999         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
2000         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
2001         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
2002         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
2003         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
2004         (neon_vst4<mode>): Replace pointer operand with a memory operand.
2005         Use %A in the output template.
2006         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
2007         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
2008         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
2009         the width of the memory access.  Remove post-increment.
2010         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
2011
2012 2011-04-12  Nick Clifton  <nickc@redhat.com>
2013
2014         * config/v850/v850.c (expand_prologue): Do not use the CALLT
2015         instruction for interrupt handlers if the target is the basic V850
2016         architecture.
2017         (expand_epilogue): Likewise.
2018
2019 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
2020
2021         PR rtl-optimization/48549
2022         * combine.c (propagate_for_debug): Also stop after BB_END of
2023         this_basic_block.  Process LAST and just stop processing after it.
2024         (combine_instructions): If last_combined_insn has been deleted,
2025         set last_combined_insn to its PREV_INSN.
2026
2027 2011-04-12  Richard Guenther  <rguenther@suse.de>
2028
2029         PR tree-optimization/46076
2030         * gimple.h (struct gimple_statement_call): Add fntype field.
2031         (gimple_call_fntype): Adjust.
2032         (gimple_call_set_fntype): New function.
2033         * gimple.c (gimple_build_call_1): Set the call function type.
2034         * gimplify.c (gimplify_call_expr): Preserve the function
2035         type the frontend used for the call.
2036         (gimplify_modify_expr): Likewise.
2037         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
2038         function type.
2039         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
2040         function type.
2041         * tree-ssa.c (useless_type_conversion_p): Function pointer
2042         conversions are useless.
2043
2044 2011-04-12  Martin Jambor  <mjambor@suse.cz>
2045
2046         * cgraph.h (cgraph_node): Remove function declaration.
2047         (cgraph_create_node): Declare.
2048         (cgraph_get_create_node): Likewise.
2049         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
2050         Updated all callers.
2051         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
2052         the decl does not already exist.  Call cgraph_get_create_node instead
2053         of cgraph_node.
2054         (cgraph_get_create_node): New function.
2055         (cgraph_same_body_alias): Update comment.
2056         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
2057         assert it does not return NULL.
2058         (cgraph_update_edges_for_call_stmt): Likewise.
2059         (cgraph_clone_edge): Likewise.
2060         (cgraph_create_virtual_clone): Likewise.
2061         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
2062         instead of cgraph_node.
2063         (cgraph_add_new_function): Call cgraph_create_node or
2064         cgraph_get_create_node instead of cgraph_node.
2065         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
2066         instead of cgraph_node.
2067         (record_eh_tables): Likewise.
2068         (mark_address): Likewise.
2069         (mark_load): Likewise.
2070         (build_cgraph_edges): Call cgraph_get_create_node instead
2071         of cgraph_node.
2072         (rebuild_cgraph_edges): Likewise.
2073         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
2074         instead of cgraph_node.
2075         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
2076         cgraph_node.
2077         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
2078         cgraph_create_node instead of cgraph_node.
2079         * c-decl.c (finish_function): Call cgraph_get_create_node instead
2080         of cgraph_node.
2081         * lto-cgraph.c (input_node): Likewise.
2082         * lto-streamer-in.c (input_function): Likewise.
2083         * varasm.c (mark_decl_referenced): Likewise.
2084         (assemble_alias): Likewise.
2085
2086 2011-04-12  Martin Jambor  <mjambor@suse.cz>
2087
2088         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
2089         instead of cgraph_node and assert it does not return NULL.
2090         * lto-streamer-in.c (lto_read_body): Likewise.
2091         * omp-low.c (new_omp_context): Likewise.
2092         (create_task_copyfn): Likewise.
2093         * tree-emutls.c (lower_emutls_function_body): Likewise.
2094         * matrix-reorg.c (transform_allocation_sites): Likewise.
2095
2096 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
2097
2098         PR c/48552
2099         * c-typeck.c (build_asm_expr): Error out on attempts to use
2100         void type outputs or inputs for constraints that allow reg or
2101         don't allow memory.
2102
2103 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
2104             Richard Earnshaw  <rearnsha@arm.com>
2105
2106         PR target/48250
2107         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
2108         to use sign-magnitude offsets. Reject unsupported unaligned
2109         cases. Add detailed description in comments.
2110         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
2111         condition from TARGET_32BIT to TARGET_ARM.
2112
2113 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
2114
2115         * tree.h (struct typed_tree): New.
2116         (struct tree_common): Include it instead of tree_base.
2117         (TREE_TYPE): Update for new location of type field.
2118         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
2119         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
2120         (union tree_node): Add typed field.
2121         * treestruct.def (TS_TYPED): New.
2122         * lto-streamer.c (check_handled_ts_structures): Handle it.
2123         * tree.c (MARK_TS_TYPED): New macro.
2124         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
2125
2126 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
2127
2128         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
2129         (force_nonfallthru): Do not alter the loop nest if no basic block
2130         was created.
2131
2132 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
2133
2134         * config/i386/sse.md (VI): New mode iterator.
2135         (SSEMODEI): Remove.
2136         (AVX256MODEI): Ditto.
2137         (AVXMODEF4P): Ditto.
2138         (avxvecpsmode): Ditto.
2139         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
2140         (sse2_andnot<mode>3): New expander.
2141         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
2142         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
2143         (<any_logic:code><mode>3): Use VI mode iterator.
2144         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
2145         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
2146         (*andnottf3): Handle AVX three-operand constraints.
2147         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
2148
2149 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2150             Robert Millan  <rmh@gnu.org>
2151
2152         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
2153         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
2154         GNU_USER_DYNAMIC_LINKER64): Define.
2155         (REG_NAME): Don't undefine.
2156         (MD_UNWIND_SUPPORT): Undefine.
2157         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
2158         (REG_NAME): Don't undefine.
2159         (MD_UNWIND_SUPPORT): Undefine.
2160         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
2161
2162 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2163
2164         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
2165         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
2166
2167 2011-04-11  Xinliang David Li  <davidxl@google.com>
2168
2169         * value-profile.c (check_ic_target): New function.
2170         (gimple_ic_transform): Sanity check indirect call target.
2171         * gimple-low.c (gimple_check_call_args): Interface change.
2172         (gimple_check_call_matching_types): New function.
2173         * tree-inline.c (tree_can_inline_p): Call new function.
2174
2175 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
2176
2177         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
2178         tree-pretty-print.h & realmpfr.h.
2179
2180 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
2181
2182         PR middle-end/48464
2183         * ira.c (setup_pressure_classes): Fix typo in loop condition.
2184         (setup_allocno_and_important_classes): Ditto.
2185
2186 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2187
2188         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
2189         GNU_USER_DYNAMIC_LINKER.
2190         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
2191         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2192         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
2193         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2194         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2195         GNU_USER_TARGET_OS_CPP_BUILTINS.
2196         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
2197         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2198         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2199         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2200         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
2201         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2202         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2203         GNU_USER_TARGET_OS_CPP_BUILTINS.
2204         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2205         GNU_USER_DYNAMIC_LINKER.
2206         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2207         GNU_USER_TARGET_OS_CPP_BUILTINS.
2208         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
2209         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2210         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
2211         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2212         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
2213         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
2214         GNU_USER_DYNAMIC_LINKER64): Remove.
2215         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
2216         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2217         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2218         GNU_USER_DYNAMIC_LINKER.
2219         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2220         GNU_USER_TARGET_OS_CPP_BUILTINS.
2221         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2222         GNU_USER_TARGET_OS_CPP_BUILTINS.
2223         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
2224         to GNU_USER_TARGET_OS_CPP_BUILTINS.
2225         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2226         GNU_USER_TARGET_OS_CPP_BUILTINS.
2227         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
2228         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
2229         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
2230         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
2231         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2232         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2233         GNU_USER_DYNAMIC_LINKER.
2234         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2235         GNU_USER_TARGET_OS_CPP_BUILTINS.
2236         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
2237         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2238         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2239         GNU_USER_DYNAMIC_LINKER.
2240         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2241         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2242         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
2243         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2244         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2245         GNU_USER_DYNAMIC_LINKER.
2246         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
2247         GNU_USER_DYNAMIC_LINKERN32.
2248         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
2249         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
2250         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
2251         GNU_USER_DYNAMIC_LINKER32.
2252         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
2253         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2254         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2255         GNU_USER_DYNAMIC_LINKER.
2256         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2257         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2258         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
2259         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2260         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2261         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
2262         GNU_USER_DYNAMIC_LINKER32.
2263         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
2264         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
2265         GNU_USER_DYNAMIC_LINKER.
2266         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
2267         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2268         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
2269         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
2270         GNU_USER_DYNAMIC_LINKER64.
2271         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
2272         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2273         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2274         GNU_USER_DYNAMIC_LINKER.
2275         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
2276         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2277         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2278         GNU_USER_DYNAMIC_LINKER.
2279         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
2280         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2281         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
2282         GNU_USER_DYNAMIC_LINKER32.
2283         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
2284         GNU_USER_DYNAMIC_LINKER64.
2285         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
2286         GNU_USER_DYNAMIC_LINKER64.
2287         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
2288         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2289         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
2290         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2291         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2292
2293 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2294
2295         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
2296         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
2297         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
2298         GNU_USER_DYNAMIC_LINKER.
2299         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
2300         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
2301         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
2302         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
2303         GNU_USER_DYNAMIC_LINKER64.
2304         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
2305         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
2306         GNU_USER_LINK_EMULATION.
2307         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
2308         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
2309         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
2310         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
2311         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
2312         CPP_SPEC, CC1_SPEC): Remove.
2313         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
2314         (GNU_USER_DYNAMIC_LINKER): Define.
2315         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
2316         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
2317         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
2318         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
2319         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
2320         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
2321         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
2322         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
2323         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
2324         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
2325         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
2326         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
2327         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
2328         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
2329         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
2330         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
2331         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2332         GNU_USER_DYNAMIC_LINKER.
2333         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2334         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
2335         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2336         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
2337         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2338         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
2339         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
2340         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
2341         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
2342         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
2343
2344 2011-04-11  Kai Tietz  <ktietz@redhat.com>
2345
2346         PR target/9601
2347         PR target/11772
2348         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
2349         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
2350         comment.
2351         (ix86_is_msabi_thiscall): Removed.
2352         (ix86_is_type_thiscall): Likewise.
2353         (ix86_get_callcvt): New function.
2354         (ix86_comp_type_attributes): Simplify check.
2355         (ix86_function_regparm): Use ix86_get_callcvt for calling
2356         convention attribute checks.
2357         (ix86_return_pops_args): Likewise.
2358         (ix86_static_chain): Likewise.
2359         (x86_this_parameter): Likewise.
2360         (x86_output_mi_thunk): Likewise.
2361         (ix86_function_type_abi): Optimize check for types without attributes.
2362         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
2363         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
2364         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
2365         by flag-values.
2366         (IX86_BASE_CALLCVT): Helper macro.
2367         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2368         Use ix86_get_callcvt for calling convention attribute checks and avoid
2369         symbol-decoration for stdcall in TARGET_RTD case.
2370         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
2371         Likewise.
2372         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
2373         for declaration.
2374
2375 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
2376
2377         * config/i386/sse.md (VI_128): New mode iterator.
2378         (VI12_128): Rename from SSEMODE12.
2379         (VI14_128): Rename from SSEMODE14.
2380         (VI124_128): New mode iterator.
2381         (VI24_128): Rename from SSEMODE248.
2382         (VI248_128): Rename from SSEMODE248.
2383         (SSEMODE124C8): Remove.
2384         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
2385         (*sse2_<plusminus_insn><mode>3): Merge with
2386         *avx_<plusminus_insn><mode>3.
2387         (*mulv8hi3): Merge with *avx_mulv8hi3.
2388         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
2389         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
2390         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
2391         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
2392         (ashr<mode>3): Merge with *avx_ashr<mode>3.
2393         (lshr<mode>3): Merge with *avx_lshr<mode>3.
2394         (ashl<mode>3): Merge with *avx_ashl<mode>3.
2395         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
2396         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
2397         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2398         (*<smaxmin:code>v8hi3): Ditto.
2399         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
2400         (*<smaxmin:code>v16qi3): Ditto.
2401         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
2402         (*sse2_eq<mode>3): Ditto.
2403         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
2404         (*sse2_gt<mode>3): Ditto.
2405         (vcondv2di): Split out of vcond<mode>.
2406         (vconduv2di): Split out of vcondu<mode>.
2407
2408 2011-04-11  Richard Guenther  <rguenther@suse.de>
2409
2410         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
2411         before calling tree_low_cst.
2412
2413 2011-04-11  Richard Guenther  <rguenther@suse.de>
2414
2415         * stor-layout.c (layout_type): Compute all array index size operations
2416         in the original type.
2417         (initialize_sizetypes): Add comment.
2418         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
2419
2420 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2421
2422         * common.opt (Tbss=, Tdata=, Ttext=): New options.
2423
2424 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2425
2426         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
2427         of cgraph_node, handle NULL return value.
2428         (cgraph_global_info): Likewise.
2429         (cgraph_rtl_info): Likewise.
2430         * tree-inline.c (estimate_num_insns): Likewise.
2431         * gimplify.c (unshare_body): Likewise.
2432         (unvisit_body): Likewise.
2433         (gimplify_body): Likewise.
2434         * predict.c (optimize_function_for_size_p): Likewise.
2435         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
2436         (call_may_clobber_ref_p_1): Likewise.
2437         * varasm.c (function_section_1): Likewise.
2438         (assemble_start_function): Likewise.
2439
2440 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2441
2442         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
2443         of cgraph_node.
2444         * final.c (rest_of_clean_state): Likewise.
2445         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
2446         * passes.c (pass_init_dump_file): Likewise.
2447         (execute_all_ipa_transforms): Likewise.
2448         (function_called_by_processed_nodes_p): Likewise.
2449         * predict.c (maybe_hot_frequency_p): Likewise.
2450         (probably_never_executed_bb_p): Likewise.
2451         (compute_function_frequency): Likewise.
2452         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
2453         (unnest_nesting_tree_1): Likewise.
2454         (lower_nested_functions): Likewise.
2455         * tree-optimize.c (execute_fixup_cfg): Likewise.
2456         (tree_rest_of_compilation): Likewise.
2457         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
2458         * tree-sra.c (ipa_early_sra): Likewise.
2459         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2460         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
2461         * ipa.c (record_cdtor_fn): Likewise.
2462         * ipa-inline.c (cgraph_early_inlining): Likewise.
2463         (compute_inline_parameters_for_current): Likewise.
2464         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
2465         * ipa-pure-const.c (local_pure_const): Likewise.
2466         * ipa-split.c (split_function): Likewise.
2467         (execute_split_functions): Likewise.
2468         * cgraphbuild.c (build_cgraph_edges): Likewise.
2469         (rebuild_cgraph_edges): Likewise.
2470         (cgraph_rebuild_references): Likewise.
2471         (remove_cgraph_callee_edges): Likewise.
2472         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
2473         (verify_cgraph_node): Likewise.
2474         (cgraph_analyze_functions): Likewise.
2475         (cgraph_preserve_function_body_p): Likewise.
2476         (save_inline_function_body): Likewise.
2477         (save_inline_function_body): Likewise.
2478         * tree-inline.c (copy_bb): Likewise.
2479         (optimize_inline_calls): Likewise.
2480
2481 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2482
2483         PR tree-optimization/48195
2484         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
2485         ipa_check_create_edge_args.
2486         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
2487         ipa_check_create_edge_args.
2488         * ipa-inline.c (inline_generate_summary): Do not call
2489         ipa_check_create_node_params and ipa_check_create_edge_args.
2490         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
2491         ipa_check_create_edge_args.
2492
2493 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
2494
2495         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
2496         instead of loop.
2497         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2498         * function.c (record_hard_reg_sets): Likewise.
2499         * ira.c (compute_regs_asm_clobbered): Likewise.
2500         * sched-deps.c (sched_analyze_1): Likewise.
2501         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
2502
2503 2011-04-09  Xinliang David Li  <davidxl@google.com>
2504
2505         PR tree-optimization/PR48484
2506         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
2507         has_valid_pred lazily
2508
2509 2011-04-09  Duncan Sands  <baldrick@free.fr>
2510
2511         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
2512
2513 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2514
2515         * combine.c (combine_validate_cost): Adjust comments.  Set registered
2516         cost of I0 to zero at the end, if any.
2517
2518 2011-04-08  Xinliang David Li  <davidxl@google.com>
2519
2520         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
2521         to insane profile data.
2522
2523 2011-04-08  Xinliang David Li  <davidxl@google.com>
2524
2525         * ipa-cp.c (ipcp_update_profiling): Correct
2526          negative scale factor due to insane profile data.
2527
2528 2011-04-08  Xinliang David Li  <davidxl@google.com>
2529
2530         * final.c (dump_basic_block_info): New function.
2531         (final): Dump basic block.
2532         (final_scan_insn): Remove old dump.
2533
2534 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
2535
2536         PR target/47829
2537         * config.gcc (i386-*-freebsd): Disable unwind table generation for
2538         crtbegin/crtend.
2539
2540 2011-04-08  Michael Matz  <matz@suse.de>
2541
2542         PR middle-end/48389
2543         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
2544         functions.
2545         (rebuild_jump_labels): Call rebuild_jump_labels_1.
2546         * rtl.h (rebuild_jump_labels_chain): Declare.
2547         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
2548         insns inserted on edges.
2549
2550 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
2551
2552         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
2553         * config/arm/arm-arches.def: New.
2554         * config/arm/arm-opts.h: New.
2555         * config/arm/genopt.sh: New.
2556         * config/arm/arm-tables.opt: New (generated).
2557         * config/arm/arm.c (arm_handle_option, arm_target_help,
2558         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
2559         (all_architectures): Get most table contents from arm-arches.def.
2560         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
2561         arm_selected_tune here.
2562         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
2563         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
2564         (march=, mcpu=, mtune=): Use Enum and Var.
2565         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
2566         (arm.o): Update dependencies.
2567
2568 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
2569
2570         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
2571         of header_file.
2572         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
2573         (write_typed_alloc_defns): Likewise.
2574         (main): Calls write_typed_alloc_defns with output_header.
2575
2576 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
2577
2578         PR inline-asm/48435
2579         * ira-color.c (setup_profitable_hard_regs): Add comments.
2580         Don't take prohibited hard regs into account.
2581         (setup_conflict_profitable_regs): Rename to
2582         get_conflict_profitable_regs.
2583         (check_hard_reg_p): Check prohibited hard regs.
2584
2585 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
2586
2587         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
2588         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
2589         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
2590
2591 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2592
2593         PR target/48366
2594         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
2595         move from floating point to shift amount register.
2596         (emit_move_sequence): Remove secondary reload support for floating
2597         point to shift amount amount register copies.
2598         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
2599         amount register copies.
2600         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
2601         register, return false if mode isn't a scalar integer mode.
2602         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
2603
2604 2011-04-08  Richard Guenther  <rguenther@suse.de>
2605
2606         * gimple.c (gimple_call_flags): Remove kludge.
2607
2608 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
2609
2610         * sel-sched.c (sel_region_init): Move call to
2611         sel_setup_region_sched_flags after setup_current_loop_nest.
2612
2613 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
2614
2615         PR rtl-optimization/48272
2616         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
2617         init_insn_reg_pressure_info.  Adjust a caller.
2618         * sched-int.h (init_insn_reg_pressure_info): Declare.
2619         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
2620         when sched-pressure is enabled.
2621
2622 2011-04-08  Richard Guenther  <rguenther@suse.de>
2623
2624         * gimple.c (gimple_set_modified): Do not queue calls to
2625         MODIFIED_NORETURN_CALLS here ...
2626         * tree-ssa-operands.c (update_stmt_operands): ... but here.
2627
2628 2011-04-08  Richard Guenther  <rguenther@suse.de>
2629
2630         PR lto/48467
2631         * toplev.c (lang_dependent_init): Do not open asm_out_file
2632         in WPA mode, nor perform debug machinery initialization.
2633         (finalize): Do not unlink asm_out_file in WPA mode.
2634
2635 2011-04-08  Richard Guenther  <rguenther@suse.de>
2636
2637         * gimple.h (gimple_call_fntype): New function.
2638         (gimple_call_return_type): Use it.
2639         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
2640         * gimple-low.c (gimple_check_call_args): Likewise.
2641         * gimple.c (gimple_call_flags): Likewise.
2642         (gimple_call_arg_flags): Likewise.
2643         (gimple_call_return_flags): Likewise.
2644         * tree-cfg.c (verify_gimple_call): Likewise.
2645         (do_warn_unused_result): Likewise.
2646         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
2647         * value-prof.c (gimple_ic_transform): Fix fndecl check.
2648
2649 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
2650
2651         PR rtl-optimization/48235
2652         * sel-sched.c (code_motion_process_successors): Recompute the last
2653         insn in basic block if control flow changed.
2654         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
2655         Update condition for ilist_remove.
2656
2657 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
2658
2659         PR rtl-optimization/48302
2660         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
2661         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
2662         it to record added preheader blocks.
2663         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
2664         on to sel_add_loop_preheaders.
2665         (sel_region_init): Move call to setup_current_loop_nest after
2666         sel_init_bbs.
2667
2668 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
2669
2670         PR target/48273
2671         * cfgloop.h (loop_has_exit_edges): New helper.
2672         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
2673         non-clonable.
2674         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
2675         that have no exit edges.
2676
2677 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
2678
2679         PR rtl-optimization/48442
2680         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
2681         all callers.  Adjust assert.
2682
2683 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
2684
2685         PR tree-optimization/48377
2686         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
2687         is_packed to true even for types with smaller TYPE_ALIGN than
2688         TYPE_SIZE.
2689
2690 2011-04-08  Richard Guenther  <rguenther@suse.de>
2691
2692         PR bootstrap/48513
2693         * doc/tm.texi: Re-generate.
2694
2695 2011-04-08  Wei Guozhi  <carrot@google.com>
2696
2697         PR target/47855
2698         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
2699         * config/arm/arm.c (arm_attr_length_push_multi): New function.
2700         * config/arm/arm.md (*push_multi): Change the length computation to
2701         call a C function.
2702
2703 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
2704
2705         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
2706         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
2707         * doc/tm.texi: Regenerate.
2708         * system.h (ASM_OUTPUT_BSS): Poison.
2709         * varasm.c (asm_output_bss): Remove function.
2710         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
2711
2712         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
2713         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
2714         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
2715         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2716         Likewise.
2717         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2718         Likewise.
2719         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2720         Likewise.
2721         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
2722
2723 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
2724
2725         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
2726         EnumValue lines.
2727
2728 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
2729
2730         * config/m68k/m68k.c (m68k_handle_option): Don't handle
2731         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
2732         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
2733         OPT_mcpu32.
2734         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
2735         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
2736         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
2737         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
2738         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
2739         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
2740         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
2741         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
2742         options.  Don't map other m68k options manually.  Don't handle
2743         old-style options as canonical.
2744         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
2745         * doc/install.texi (m68k-*-*): Document binutils version requirement.
2746
2747 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
2748
2749         * basic-block.h (force_nonfallthru): Move to...
2750         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
2751         (force_nonfallthru): ...here.
2752         * cfghooks.c (force_nonfallthru): New function.
2753         * cfgrtl.c (force_nonfallthru): Rename into...
2754         (rtl_force_nonfallthru): ...this.
2755         (commit_one_edge_insertion): Do not set AUX field.
2756         (commit_edge_insertions): Do not discover new basic blocks.
2757         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
2758         (cfg_layout_rtl_cfg_hooks): Likewise.
2759         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
2760         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
2761         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
2762
2763 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
2764
2765         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
2766         Remove macros.
2767
2768 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
2769
2770         * config/i386/sse.md: Update copyright year.
2771         (avxcvtvecmode): Remove.
2772         (sse_movhlps): Merge with *avx_movhlps.
2773         (sse_movlhps): Merge with *avx_movlhps.
2774         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
2775         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
2776         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
2777         (sse_loadhps): Merge with *avx_loadhps.
2778         (sse_storelps): Merge with *avx_storelps.
2779         (sse_loadlps): Merge with *avx_loadlps.
2780         (sse_movss): Merge with *avx_movss.
2781         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
2782         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
2783         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
2784         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
2785         (vec_set<mode>_0): Ditto.
2786         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
2787         (sse4_1_insertps): Merge with *avx_insertps.
2788         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
2789         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
2790         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
2791         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
2792         (sse2_storehpd): Merge with *avx_storehpd.
2793         (sse2_loadhpd): Merge with *avx_loadhpd.
2794         (sse2_loadlpd): Merge with *avx_loadlpd.
2795         (sse2_movsd): Merge with *avx_movsd.
2796         (*vec_concatv2df): Merge with *vec_concatv2df.
2797
2798 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
2799
2800         PR debug/48343
2801         * combine.c (combine_instructions): Add last_combined_insn,
2802         update it if insn is after it, pass it to all try_combine calls.
2803         (try_combine): Add last_combined_insn parameter, pass it instead of
2804         i3 to propagate_for_debug.
2805
2806 2011-04-07  Nick Clifton  <nickc@redhat.com>
2807
2808         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
2809         to handle MDR <-> data register transfers.
2810         (movhi_internal): Likewise.
2811
2812 2011-04-07  Alan Modra  <amodra@gmail.com>
2813
2814         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
2815         previous stack info.
2816
2817 2011-04-07  Tom de Vries  <tom@codesourcery.com>
2818
2819         PR target/43920
2820         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
2821         flow_find_cross_jump.  Swap variables to implement backward replacement.
2822         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
2823
2824 2011-04-07  Tom de Vries  <tom@codesourcery.com>
2825
2826         PR target/43920
2827         * cfgcleanup.c (walk_to_nondebug_insn): New function.
2828         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
2829         and bb2.
2830         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
2831         src1 or src2.  Redirect edges to the last basic block.  Update
2832         frequency and count on multiple basic blocks in case of fallthru.
2833
2834 2011-04-07  Tom de Vries  <tom@codesourcery.com>
2835
2836         PR target/43920
2837         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
2838         function.
2839         (old_insns_match_p): Change return type.  Replace return false/true
2840         with return dir_none/dir_both.  Use can_replace_by.
2841         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
2842         direction from dir_p.  Register replacement direction in dir, last_dir
2843         and afterlast_dir.  Handle new return type of old_insns_match_p using
2844         merge_dir.  Return replacement direction in dir_p.
2845         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
2846         return type of old_insns_match_p.
2847         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
2848         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
2849         flow_find_cross_jump.
2850         * basic-block.h (enum replace_direction): New type.
2851         (flow_find_cross_jump): Add parameter to declaration.
2852
2853 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
2854
2855         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
2856         (AVXMODEDCVTPS2DQ): Ditto.
2857         (VEC_FLOAT_MODE): Ditto.
2858         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
2859         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
2860         (<any_logic:code><mode>3): Use VF mode iterator.
2861         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
2862         Use VF mode iterator.
2863         (copysign<mode>3): Use VF mode iterator.
2864         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
2865         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
2866         (*<any_logic:code><MODEF:mode>3): Merge with
2867         *avx_<any_logic:code><MODEF:mode>3.
2868         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
2869         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
2870         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
2871         (avx_cvtdq2ps<avxmodesuffix>): Remove.
2872         (sse2_cvtdq2ps): Use %v modifier.
2873         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
2874         (avx_cvtps2dq<avxmodesuffix>): Remove.
2875         (sse2_cvtps2dq): Use %v modifier.
2876         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
2877         (avx_cvttps2dq<avxmodesuffix>): Remove.
2878         (sse2_cvttps2dq): Use %v modifier.
2879         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
2880         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
2881         (sse2_cvtsd2siq): Fix insn template.
2882         (sse2_cvtsd2siq_2): Ditto.
2883         (sse2_cvttsd2siq): Ditto.
2884         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
2885         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
2886
2887 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
2888
2889         * gcov-io.c: Use GCC Runtime Library Exception.
2890
2891 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
2892
2893         PR debug/48466
2894         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
2895         as base_reg whatever register reg has been eliminated to, instead
2896         of hardcoding STACK_POINTER_REGNUM.
2897
2898 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
2899
2900         * doc/tm.texi.in: Document C target hooks as separate from general
2901         target hooks.
2902         * doc/tm.texi: Regenerate.
2903         * genhooks.c (struct hook_desc): Add docname field.
2904         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
2905         docname field.
2906         (hook_array): Include c-target.def.
2907         (emit_documentation): Use docname field in output.
2908         (emit_init_macros): Take docname argument.  Only emit definitions
2909         for hooks matching docname.
2910         (main): Expect additional arguments in all cases.  Pass argument
2911         to emit_init_macros.
2912         * target.def: Move initial macro definitions and comments to
2913         target-hooks-macros.h.
2914         (gcc_targetcm): Move to c-family/c-target.def.
2915         * target.h (targetcm): Move declaration to c-family/c-target.h.
2916         * targhooks.c (default_handle_c_option): Move to
2917         c-family/c-opts.c.
2918         * targhooks.h (default_handle_c_option): Move declaration to
2919         c-family/c-common.h.
2920         * target-hooks-macros.h: New file.
2921         * config.gcc (target_has_targetcm): Define and use to add to
2922         c_target_objs and cxx_target_objs.
2923         * config/default-c.c: New file.
2924         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
2925         of target.h and target-def.h.
2926         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
2927         (darwin_objc_construct_string, darwin_cfstring_ref_p,
2928         darwin_check_cfstring_format_arg): Make static.
2929         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
2930         TARGET_STRING_OBJECT_REF_TYPE_P,
2931         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
2932         * config/darwin-protos.h (darwin_objc_construct_string,
2933         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
2934         declare.
2935         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
2936         TARGET_STRING_OBJECT_REF_TYPE_P,
2937         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
2938         * config/t-darwin (darwin-c.o): Update dependencies.
2939         * system.h (TARGET_HAS_TARGETCM): Poison.
2940         * Makefile.in (TARGET_H): Update.
2941         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
2942         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
2943         (default-c.o): New target.
2944         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
2945         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
2946         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
2947         c-target.def.
2948         (build/genhooks.o): Update dependencies.
2949
2950 2011-04-06  Richard Guenther  <rguenther@suse.de>
2951
2952         * ipa-inline.c (enum inlining_mode): Remove.
2953         (cgraph_flatten): Use some other token.
2954         (cgraph_edge_early_inlinable_p): New function, split out from ...
2955         (cgraph_perform_always_inlining): New function, split out from ...
2956         (cgraph_decide_inlining_incrementally): ... here.
2957         (cgraph_mark_inline_edge): Adjust.
2958         (cgraph_early_inlining): Re-structure.
2959         (pass_early_inline): Require SSA form.
2960
2961 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
2962             Julian Brown  <julian@codesourcery.com>
2963             Mark Shinwell  <shinwell@codesourcery.com>
2964
2965         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
2966         LO_REGS only for Thumb-1.
2967         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
2968         be used in short instructions when optimising for size on Thumb-2.
2969
2970 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2971
2972         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
2973         associated with user returns to be preserved.
2974
2975 2011-04-06  Tristan Gingold  <gingold@adacore.com>
2976
2977         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
2978         symbol_queue_size, DBXOUT_DECR_NESTING,
2979         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
2980         if XCOFF_DEBUGGING_INFO.
2981
2982 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
2983
2984         * config/i386/i386.md (attribute isa): New.
2985         (attribute enabled): New.
2986         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
2987         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
2988         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
2989         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
2990         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
2991         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2992         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
2993         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
2994
2995         * config/i386/sse.md (VF): New mode iterator.
2996         (VF1): Ditto.
2997         (VF2): Ditto.
2998         (VF_128): Ditto.
2999         (SSEMODEF4): Remove.
3000         (attribute sse): Handle V8SF and V4DF modes.
3001         (<absneg:code><mode>2): Use VF mode iterator.
3002         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
3003         mode iterator.
3004         (<plusminus_insn><mode>3): Use VF mode iterator.
3005         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
3006         Use VF mode iterator.
3007         (<sse>_vm<plusminus_insn><mode>3): Merge with
3008         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
3009         (mul<mode>3): Use VF mode iterator.
3010         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
3011         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
3012         mode iterator.
3013         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
3014         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
3015         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
3016         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
3017         mode iterator.
3018         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
3019         Use VF1 mode iterator.
3020         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
3021         (sqrt<VF2:mode>2): New expander.
3022         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
3023         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
3024         and sqrtv2df2.  Use VF mode iterator.
3025         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
3026         mode iterator.
3027         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
3028         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
3029         Use VF1 mode iterator.
3030         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
3031         (<smaxmin:code><mode>3): Use VF mode iterator.
3032         (*<smaxmin:code><mode>3_finite): Merge with
3033         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
3034         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
3035         (<sse>_vm<smaxmin:code><mode>2): Merge with
3036         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
3037         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
3038         mode iterator.
3039         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
3040         mode iterator.
3041         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
3042         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
3043         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
3044         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
3045         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
3046         VF mode iterator.
3047         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
3048         Use VF_128 mode iterator.
3049         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
3050         mode iterator.
3051         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
3052         VF_128 mode iterator.
3053         (vcond<mode>): Use VF mode iterator.
3054         * config/i386/predicates.md (sse_comparison_operator): Merge with
3055         avx_comparison_float_operator.  Do not declare as special_predicate.
3056         * config/i386/i386.c (struct builtin_description): Update for renamed
3057         compare patterns.
3058         (ix86_expand_args_builtin): Ditto.
3059         (ix86_expand_sse_compare_mask): Ditto.
3060
3061 2011-04-06  Richard Guenther  <rguenther@suse.de>
3062
3063         * tree-inline.c (estimate_num_insns): For calls simply account
3064         for all passed arguments and a used return value.
3065
3066 2011-04-06  Richard Guenther  <rguenther@suse.de>
3067
3068         PR tree-optimization/47663
3069         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
3070         call_stmt_time fields.
3071         (cgraph_edge_inlinable_p): Declare.
3072         (cgraph_edge_recursive_p): New inline function.
3073         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
3074         (cgraph_clone_edge): Copy it.
3075         * ipa-inline.c (cgraph_estimate_edge_time): New function.
3076         Account for call stmt time.
3077         (cgraph_estimate_time_after_inlining): Take edge argument.
3078         (cgraph_estimate_edge_growth): Account call stmt size.
3079         (cgraph_estimate_size_after_inlining): Take edge argument.
3080         (cgraph_mark_inline_edge): Adjust.
3081         (cgraph_check_inline_limits): Likewise.
3082         (cgraph_recursive_inlining_p): Remove.
3083         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
3084         (cgraph_decide_recursive_inlining): Take edge argument and
3085         adjust.
3086         (cgraph_decide_inlining_of_small_functions): Do not avoid
3087         diags for recursive inlining here.
3088         (cgraph_flatten): Adjust.
3089         (cgraph_decide_inlining_incrementally): Likewise.
3090         (estimate_function_body_sizes): Remove call cost handling.
3091         (compute_inline_parameters): Initialize caller edge call costs.
3092         (cgraph_estimate_edge_growth): New function.
3093         (cgraph_estimate_growth): Use it.
3094         (cgraph_edge_badness): Likewise.
3095         (cgraph_check_inline_limits): Take an edge argument.
3096         (cgraph_decide_inlining_of_small_functions): Adjust.
3097         (cgraph_decide_inlining): Likewise.
3098         * tree-inline.c (estimate_num_insns): Only account for call
3099         return value if it is used.
3100         (expand_call_inline): Avoid diagnostics on recursive inline
3101         functions here.
3102         * lto-cgraph.c (lto_output_edge): Output edge call costs.
3103         (input_edge): Input edge call costs.
3104
3105 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3106
3107         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
3108
3109 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
3110
3111         * doc/invoke.texi (Spec Files): Fix typo.
3112
3113 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
3114
3115         * profile.c (branch_prob): Move declaration of local variable.  Remove
3116         obsolete ??? comment.  Expand the location explicitly instead of using
3117         the LOCATION_FILE and LOCATION_LINE macros.
3118
3119 2011-04-06  Wei Guozhi  <carrot@google.com>
3120
3121         PR target/47855
3122         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
3123         (arm_cond_branch): Likewise.
3124         (arm_cond_branch_reversed): Likewise.
3125         (arm_jump): Likewise.
3126         (push_multi): Likewise.
3127         * config/arm/constraints.md (Py): New constraint.
3128
3129 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3130
3131         PR bootstrap/48471
3132         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
3133         Move these...
3134         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
3135         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
3136         #ifdef DBX_DEBUGGING_INFO.
3137
3138 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
3139
3140         PR bootstrap/48403
3141         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3142         if old and new states differ.
3143
3144 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
3145
3146         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
3147         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
3148         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
3149         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
3150         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
3151         mcfv4e): Use Alias.
3152         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
3153         ColdFire options to -mcpu= options.
3154
3155 2011-04-05  Jeff Law  <law@redhat.com>
3156
3157         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
3158         check if BB is a successor of LOOP->header and return
3159         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
3160
3161 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
3162
3163         * cprop.c (struct reg_use): Remove.
3164         (reg_use_table): Make an array of RTX.
3165         (find_used_regs, constprop_register, local_cprop_pass,
3166         bypass_block): Simplify users of reg_use_table.
3167         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
3168         on one of the uses found by find_used_regs.
3169
3170 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3171
3172         PR bootstrap/48469
3173         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
3174         declaration.
3175
3176 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3177
3178         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
3179         as an rtx.
3180         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
3181
3182 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
3183
3184         PR middle-end/48441
3185         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
3186
3187 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3188
3189         * combine.c: Include obstack.h.
3190         (struct insn_link): Define.
3191         (uid_log_links): Adjust type.
3192         (FOR_EACH_LOG_LINK): New macro.
3193         (insn_link_obstack): Declare.
3194         (alloc_insn_link): Define.
3195         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
3196         type of link variables.
3197         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
3198         (try_combine, record_promoted_values, distribute_notes): Likewise.
3199         (distribute_links): Likewise.  Tweak prototype.
3200         (clear_log_links): Delete.
3201         (adjust_for_new_dest): Call alloc_insn_link.
3202         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
3203
3204 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3205
3206         * gcse.c (modify_mem_list): Convert to an array of VECs.
3207         (canon_modify_mem_list, compute_transp): Tweak formatting.
3208         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
3209         (load_killed_in_block_p): Likewise.
3210         (record_last_mem_set_info): Likewise.
3211         (clear_modify_mem_tables): Likewise.
3212
3213 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3214
3215         PR middle-end/48461
3216         * function.c (emit_use_return_register_into_block): Only define if
3217         HAVE_return.
3218
3219 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
3220
3221         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
3222
3223 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
3224
3225         * config/rx/rx-opts.h: New.
3226         * config/rx/rx.c (rx_cpu_type): Remove.
3227         (rx_handle_option): Don't assert that global structures are in
3228         use.  Access variables via opts pointer.  Defer most handling of
3229         OPT_mint_register_.  Use error_at.
3230         (rx_option_override): Handle deferred OPT_mint_register_ here.
3231         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
3232         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
3233         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
3234         (rx_cpu_types): New Enum and EnumValue entries.
3235         (mint-register=): Use Defer and use Var accordingly.
3236
3237 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3238
3239         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
3240         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
3241         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
3242         Move these...
3243         (debug_free_queue, debug_nesting, symbol_queue_index):
3244         ...and these...
3245         * dbxout.c: ...to here.  Make static.
3246
3247 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3248
3249         * gcse.c (modify_pair): Define.  Define a VEC of it.
3250         (canon_modify_mem_list): Convert to an array of VECs.
3251         (free_insn_expr_list_list): Delete.
3252         (clear_modify_mem_tables): Call VEC_free instead.
3253         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
3254         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
3255         (canon_list_insert, compute_transp): Likewise.
3256
3257 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3258
3259         PR target/43920
3260         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
3261         for size.
3262
3263 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3264
3265         PR target/43920
3266         * function.c (emit_use_return_register_into_block): New function.
3267         (thread_prologue_and_epilogue_insns): Use
3268         emit_use_return_register_into_block.
3269
3270 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3271
3272         PR target/43920
3273         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
3274         insn.
3275
3276 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3277
3278         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
3279
3280 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
3281
3282         * config/arm/arm.md (define_constants for unspec): Replace with
3283         define_c_enum.
3284         (define_constants for unspecv): Replace with define_c_enum.
3285         * config/arm/neon.md (define_constants for unspec): Replace with
3286         define_c_enum.
3287
3288 2011-04-04  Richard Henderson  <rth@redhat.com>
3289
3290         PR bootstrap/48400
3291         * dwarf2out.c (output_line_info): Always emit line info from
3292         at least one section.
3293         (dwarf2out_init): Create text_section_line_info here ...
3294         (set_cur_line_info_table): ... not here.
3295
3296 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
3297
3298         PR target/48380
3299         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
3300         not called.
3301
3302         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
3303
3304 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
3305
3306         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
3307         (expr_equiv_p): Remove.
3308         (insert_set_in_table): Look at <dest, src> pair instead of expr.
3309         (hash_scan_set): Update call to insert_set_in_table.
3310         (dump_hash_table): Dump <dest, src> pair.
3311         (lookup_set): Simplify.  Lookup <dest, src> pair.
3312         (compute_transp): Remove, fold heavily simplified code into...
3313         (compute_local_properties): ...here.  Expect COMP and TRANSP
3314         unconditionally.
3315         (find_avail_set): Take set directly from struct expr.
3316         (find_bypass-set): Likewise.
3317         (bypass_block): Likewise.
3318         (cprop_insn): Likewise.  Remove redundant INSN_P test.
3319
3320         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
3321         checks on form of COND from find_implicit_sets to here.
3322         (find_implicit_sets): Cleanup control flow. Split critical edges
3323         if it exposes implicit sets.  Allocate/resize implicit_sets as
3324         necessary.
3325         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
3326         changed something.  Run df_analyze after find_implicit_sets if any
3327         edges were split.  Do not allocate implicit_sets here.
3328
3329         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
3330         (gcse_obstack): Renamed to cprop_obstack.
3331         (GNEW, GNEWVEC, GNEWVAR): Remove.
3332         (gmalloc): Remove.
3333         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
3334         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
3335         (gcse_alloc): Likewise, and rename to cprop_alloc.
3336         (alloc_gcse_men, free_gcse_mem): Remove.
3337         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
3338         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
3339         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
3340
3341         * cprop.c (oprs_not_set_p): Remove.
3342         (mark_set, mark_clobber): Remove.
3343         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
3344         (reg_not_set_p): New function.
3345         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
3346         (cprop_insn): Likewise.
3347         (cprop_jump): Use FOR_EACH_EDGE.
3348
3349 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
3350
3351         PR bootstrap/48403
3352         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
3353         (rank_for_schedule): Use scheduled_insns vector instead of
3354         last_scheduled_insn.
3355         (ok_for_early_queue_removal): Likewise.
3356         (queue_to_ready): Search forward in nonscheduled_insns_begin if
3357         we have a dbg_cnt.
3358         (choose_ready): Likewise.
3359         (commit_schedule): Use VEC_iterate.
3360         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
3361         a dbg_cnt, use it and ensure the first insn is in the ready list.
3362         (haifa_sched_init): Allocate scheduled_insns.
3363         (sched_extend_ready_list): Don't allocate it; reserve space.
3364         (haifa_sched_finish): Free it.
3365
3366 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
3367
3368         * optc-gen.awk: Always remove type from Variable entry before
3369         recording in var_seen.
3370
3371 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
3372
3373         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
3374         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
3375         call to tidy_fallthru_edges.
3376
3377 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
3378
3379         * doc/options.texi (ToLower): Document.
3380         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
3381         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
3382         * opts.h (cl_option): Add cl_tolower field.
3383         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
3384         arguments with lowercase strings.
3385         * config/rx/rx.opt (mcpu=): Add ToLower.
3386         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
3387         argument.
3388
3389 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
3390
3391         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
3392
3393 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
3394
3395         * config/vax/vax.c: Include reload.h.
3396
3397 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
3398
3399         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
3400         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
3401         (sparc_preferred_reload_class): New function.
3402
3403 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
3404
3405         PR debug/48401
3406         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
3407         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
3408
3409 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
3410
3411         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
3412         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
3413
3414 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
3415
3416         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
3417         (ASM_OUTPUT_ALIGNED_BSS): Define.
3418
3419 2011-04-03  Michael Matz  <matz@suse.de>
3420
3421         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
3422         and next_slot members.
3423         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
3424         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
3425         (lto_streamer_cache_append): Declare.
3426         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
3427         unsigned index, remove offset parameter, ensure that we append
3428         or update existing entries.
3429         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
3430         parameter, update next_slot for append.
3431         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
3432         parameter.
3433         (lto_streamer_cache_insert_at): Likewise.
3434         (lto_streamer_cache_append): New function.
3435         (lto_streamer_cache_lookup): Use unsigned index.
3436         (lto_streamer_cache_get): Likewise.
3437         (lto_record_common_node): Don't test tree_node_can_be_shared.
3438         (preload_common_node): Adjust call to lto_streamer_cache_insert.
3439         (lto_streamer_cache_delete): Don't free offsets member.
3440         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
3441         (lto_output_string_with_length): Use lto_output_data_stream.
3442         (lto_output_tree_header): Remove ix parameter, don't write it.
3443         (lto_output_builtin_tree): Likewise.
3444         (lto_write_tree): Adjust callers to above, don't track and write
3445         offset, write unsigned index.
3446         (output_unreferenced_globals): Don't emit all global vars.
3447         (write_global_references): Use unsigned indices.
3448         (lto_output_decl_state_refs): Likewise.
3449         (write_symbol): Likewise.
3450         * lto-streamer-in.c (lto_input_chain): Move earlier.
3451         (input_function): Use unsigned index.
3452         (input_alias_pairs): Don't read and then ignore all global vars.
3453         (lto_materialize_tree): Remove ix_p parameter, don't read index,
3454         don't pass it back, use lto_streamer_cache_append.
3455         (lto_register_var_decl_in_symtab): Use unsigned index.
3456         (lto_register_function_decl_in_symtab): Likewise.
3457         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
3458         index.
3459         (lto_get_builtin_tree): Don't read index, use
3460         lto_streamer_cache_append.
3461         (lto_read_tree): Adjust call to lto_materialize_tree.
3462
3463         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
3464         don't use function calls in arguments to MIN.
3465
3466         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
3467         twice.
3468
3469         * gimple.c (gimple_type_leader_entry): Mark deletable.
3470
3471 2011-04-03  Alan Modra  <amodra@gmail.com>
3472
3473         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
3474
3475 2011-04-03  Michael Matz  <matz@suse.de>
3476
3477         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
3478         an integer.
3479         * tree.h (tree_decl_non_common.vindex): Adjust comment.
3480
3481 2011-04-03  Michael Matz  <matz@suse.de>
3482
3483         * cgraphbuild.c (record_reference): Canonicalize constructor values.
3484         * gimple-fold.c (canonicalize_constructor_val): Accept being called
3485         without function context.
3486         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
3487         current_function_decl and cfun.
3488
3489 2011-04-03  Michael Matz  <matz@suse.de>
3490
3491         * tree.c (decl_init_priority_insert): Don't create entry for
3492         default priority.
3493         (decl_fini_priority_insert): Ditto.
3494         (fields_compatible_p, find_compatible_field): Remove.
3495         * tree.h (fields_compatible_p, find_compatible_field): Remove.
3496         * gimple.c (gimple_compare_field_offset): Adjust block comment.
3497
3498 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
3499
3500         * combine.c (try_combine): Remove useless local variable.
3501
3502 2011-04-03  Richard Guenther  <rguenther@suse.de>
3503             Ira Rosen  <ira.rosen@linaro.org>
3504
3505         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
3506         non-variable offsets and compare the remaining bases of the two
3507         accesses instead of looking for exact same data-ref.
3508
3509 2011-04-02  Kai Tietz  <ktietz@redhat.com>
3510
3511         PR target/48416
3512         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
3513
3514         * i386.c (ix86_is_msabi_thiscall): New helper function.
3515         (ix86_is_type_thiscall): New helper function.
3516         (ix86_comp_type_attributes): Handle thiscall for method-functions
3517         special.
3518         (init_cumulative_args): Likewise.
3519         (find_drap_reg): Likewise.
3520         (ix86_static_chain): Likewise.
3521         (x86_this_parameter): Likewise.
3522         (x86_output_mi_thunk): Likewise.
3523
3524 2011-04-01  Olivier Hainque  <hainque@adacore.com>
3525             Nicolas Setton  <setton@adacore.com>
3526             Eric Botcazou  <ebotcazou@adacore.com>
3527
3528         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
3529         (add_gnat_descriptive_type_attribute): New function.
3530         (gen_array_type_die): Call it.
3531         (gen_enumeration_type_die): Likewise.
3532         (gen_struct_or_union_type_die): Likewise.
3533         (modified_type_die): Likewise.
3534         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
3535         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
3536         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
3537
3538 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
3539
3540         PR bootstrap/48148
3541         * dwarf2out.c (resolve_addr): Don't call force_decl_die
3542         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
3543
3544         Revert:
3545         2011-03-17  Richard Guenther  <rguenther@suse.de>
3546
3547         PR bootstrap/48148
3548         * lto-cgraph.c (input_overwrite_node): Clear the abstract
3549         origin for decls in other ltrans units.
3550         (input_varpool_node): Likewise.
3551
3552 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
3553
3554         PR middle-end/48335
3555         * expr.c (expand_assignment): Handle all possibilities
3556         if TO_RTX is CONCAT.
3557         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
3558         (store_split_bit_field): If SUBREG_REG (op0) or
3559         op0 itself has smaller mode than word, return it
3560         for offset 0 and const0_rtx for out-of-bounds stores.
3561         If word is const0_rtx, skip it.
3562
3563 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
3564
3565         * config/h8300/h8300.c (print_operand_address): Rename to...
3566         (h8300_print_operand_address): ...this. Make static. Adjust comments.
3567         Call h8300_print_operand and h8300_print_operand_address instead of
3568         print_operand and print_operand_address. Declare.
3569         (print_operand): Renake to...
3570         (h8300_print_operand): ...this. Make static. Adjust comments.
3571         Call h8300_print_operand instead of print_operand. Declare.
3572         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
3573         (h8300_register_move_cost): Likewise.
3574         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
3575         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
3576         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
3577         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
3578         * config/h8300/h8300-protos.h (print_operand): Delete.
3579         (print_operand_address): Delete.
3580
3581 2011-04-01  Richard Henderson  <rth@redhat.com>
3582
3583         PR 48400
3584         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
3585         in strict mode before dwarf4.  Re-order tests to early out
3586         before switching sections.
3587
3588 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
3589
3590         * config/h8300/constraints.md: New file.
3591         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
3592         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
3593         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
3594         * config/h8300/predicates.md (bit_operand): Likewise.
3595         (incdec_operand): Use satisfies_constraint_M and
3596         satisfies_constraint_O.  Don't use C code block.
3597         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
3598         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
3599         (compute_mov_length): Use satisfies_constraint_G.
3600         (fix_bit_operand): Use satisfies_constraint_U.
3601         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
3602         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
3603         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
3604         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
3605         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
3606         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
3607         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
3608         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
3609         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
3610         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
3611         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
3612         (EXTRA_MEMORY_CONSTRAINT): Delete.
3613
3614 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
3615             Michael Meissner  <meissner@linux.vnet.ibm.com>
3616
3617         PR target/48262
3618         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
3619         operands, as per the specifications.
3620
3621         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
3622         (vec_extract_evenv4sf): Ditto.
3623         (vec_extract_evenv8hi): Ditto.
3624         (vec_extract_evenv16qi): Ditto.
3625         (vec_extract_oddv4si): Ditto.
3626
3627 2011-03-31  Mark Wielaard  <mjw@redhat.com>
3628
3629         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
3630         high_pc attribute if the CU has no associated code. Only output
3631         DW_AT_entry_pc for CU if not generating strict dwarf and
3632         dwarf_version < 4.
3633
3634 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
3635
3636         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
3637         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
3638         out of ...
3639         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
3640         * final.c (final_start_function): Call the new function rather
3641         than using a NULL argument for dwarf2out_frame_debug.
3642
3643         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
3644         that contains the prologue.
3645
3646         * haifa-sched.c (queue_insn): New arg REASON.  All callers
3647         changed.  Print it in debugging output.
3648
3649         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
3650
3651         * sched-ebb.c (begin_schedule_ready): Remove second argument.
3652         Split most of the code into...
3653         (begin_move_insn): ... here.  New function.
3654         (ebb_sched_info): Add a pointer to it.
3655         * haifa-sched.c (scheduled_insns): New static variable.
3656         (sched_extend_ready_list): Allocate it.
3657         (schedule_block): Use it to record the order of scheduled insns.
3658         Perform RTL changes to move insns only after all scheduling
3659         decisions have been made.
3660         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
3661         begin_move_insn field.
3662         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
3663         * sched-int.h (struct haifa_sched_info): Remove second argument
3664         from begin_schedule_ready hook.  Add new member begin_move_insn.
3665         * sched-rgn.c (begin_schedule_ready): Remove second argument.
3666         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
3667
3668         * haifa-sched.c (prune_ready_list): New function, broken out of
3669         schedule_block.
3670         (schedule_block): Use it.
3671
3672 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3673
3674         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
3675
3676 2011-04-01  Kai Tietz  <ktietz@redhat.com>
3677
3678         * config.gcc (*-*-mingw*): Allow as option the
3679         posix threading model.
3680         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
3681         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
3682         definition.
3683         (CPP_SPEC): Add pthread/no-pthread handling.
3684         (LIB_SPEC): Likewise.
3685         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
3686         (LIB_SPEC): Likewise.
3687         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
3688         flag to pass -pthread option for shared libgcc build.
3689         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
3690         for shared libgcc build.
3691         * config/i386/t-mingw-pthread: New file.
3692         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
3693         New define to enable use of library pthread by default.
3694         * config/i386/mingw.opt (pthread): New driver option.
3695         (no-pthread): New driver option.
3696         * config/i386/cygming.opt: Make sure trailing empty line is retained.
3697         * config/i386/mingw-w64.opt: Likewise.
3698
3699 2011-04-01  Gary Funck <gary@intrepid.com>
3700
3701         * c-decl.c (grokdeclarator): Fix formatting.
3702
3703 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
3704
3705         * expr.c (emit_block_move_via_movmem): Use n_generator_args
3706         instead of n_operands.
3707         (set_storage_via_setmem): Likewise.
3708         * optabs.c (maybe_gen_insn): Likewise.
3709         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
3710         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
3711         (mips_expand_builtin_direct): Likewise.
3712         * config/spu/spu.c (expand_builtin_args): Likewise.
3713
3714 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
3715
3716         * recog.h (insn_data_d): Add n_generator_args.
3717         * genoutput.c (data): Likewise.
3718         (output_insn_data): Print it.
3719         (max_opno, num_dups): Delete.
3720         (scan_operands): Just fill in "d->operand[...]".
3721         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
3722
3723 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
3724
3725         * gensupport.h (pattern_stats): New structure.
3726         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
3727         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
3728         (max_operand_1, max_operand_vec): Delete.
3729         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
3730
3731 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
3732
3733         * emit-rtl.c (emit_pattern_after_setloc): New function.
3734         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
3735         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
3736         (emit_pattern_after): New function.
3737         (emit_insn_after, emit_jump_insn_after): Call it.
3738         (emit_call_insn_after, emit_debug_insn_after): Likewise.
3739         (emit_pattern_before_setloc): New function.
3740         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
3741         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
3742         Likewise.
3743         (emit_pattern_before): New function.
3744         (emit_insn_before, emit_jump_insn_before): Call it.
3745         (emit_call_insn_before, emit_debug_insn_before): Likewise.
3746
3747 2011-03-31  Richard Henderson  <rth@redhat.com>
3748
3749         * dwarf2out.c (dw_separate_line_info_ref): Remove.
3750         (dw_separate_line_info_entry): Remove.
3751         (enum dw_line_info_opcode): New.
3752         (dw_line_info_entry): Use it.
3753         (dw_line_info_table, dw_line_info_table_p): New.
3754         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
3755         (line_info_table, line_info_label_num): Remove.
3756         (line_info_table_in_use): Remove.
3757         (separate_line_info_table): Remove.
3758         (separate_line_info_table_allocated): Remove.
3759         (separate_line_info_table_in_use): Remove.
3760         (LINE_INFO_TABLE_INCREMENT): Remove.
3761         (line_info_label_num): New.
3762         (cur_line_info_table): New.
3763         (text_section_line_info, cold_text_section_line_info): New.
3764         (separate_line_info): New.
3765         (SEPARATE_LINE_CODE_LABEL): Remove.
3766         (print_dwarf_line_table): Remove.
3767         (debug_dwarf): Don't dump it.
3768         (output_one_line_info_table): New.
3769         (output_line_info): Use it.
3770         (new_line_info_table): New.
3771         (set_cur_line_info_table): New.
3772         (dwarf2out_switch_text_section): Use it.
3773         (dwarf2out_begin_function): Likewise.
3774         (push_dw_line_info_entry): New.
3775         (dwarf2out_source_line): Rewrite for new line info tables.
3776         (dwarf2out_init): Remove dead initailizations.
3777
3778 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
3779
3780         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
3781         various flags.
3782         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
3783         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
3784         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
3785         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
3786         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
3787         * opt-functions.awk (flag_init, switch_bit_fields): New.
3788         (switch_flags): Don't handle flags moved to bit-fields.  Don't
3789         generate CL_MISSING_OK or CL_SAVE.
3790         * optc-gen.awk: Update to generate bit-field output as well as
3791         flags field.
3792         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
3793         bit-field instead of CL_REJECT_DRIVER flag.
3794         * opts-common.c (generate_canonical_option,
3795         decode_cmdline_option): Use bit-fields instead of CL_* flags.
3796         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
3797         instead of CL_REJECT_NEGATIVE flag.
3798         * toplev.c (print_switch_values): Use cl_report bit-field instead
3799         of CL_REPORT flag.
3800
3801 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
3802
3803         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
3804         a zero minimum index only if it is redundant.
3805
3806 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
3807
3808         PR rtl-optimization/48381
3809         * ira-color.c (assign_hard_reg): Use hard reg set intersection
3810         instead of ira_class_hard_reg_index for calculating conflicting
3811         hard registers.
3812
3813 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
3814
3815         * cprop.c: Clean up hash table building.
3816         (reg_avail_info): Remove.
3817         (oprs_available_p): Remove.
3818         (record_last_reg_set_info): Remove.
3819         (record_last_set_info): Remove.
3820         (reg_available_p): New function.
3821         (gcse_constant_p): Do not treat unfolded conditions as constants.
3822         (make_set_regs_unavailable): New function.
3823         (hash_scan_set): Simplify with new reg_available_p.
3824         (compute_hash_table_work): Traverse insns stream only once.
3825         Do not compute reg_avail_info. Traverse insns in reverse order.
3826         Record implicit sets after recording explicit sets from the block.
3827
3828 2011-03-31  Michael Matz  <matz@suse.de>
3829
3830         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
3831
3832 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
3833
3834         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
3835         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
3836         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3837         (h8300_mode_dependent_address_p): New function.
3838         (h8300_get_index): Make static.
3839
3840 2011-03-31  Jeff Law  <law@redhat.com>
3841
3842         * reload1.c (elimination_effects): Fix typo in recent change.
3843
3844         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
3845         typo potentially leading to null pointer dereference.
3846
3847         * caller-save.c (new_saved_hard_reg): Eliminate return value.
3848         (setup_save_areas): Corresponding changes to avoid useless
3849         assignments.
3850
3851         * jump.c (reversed_comparison_code_parts): Avoid successive return
3852         statements when REVERSE_CONDITION is defined.
3853
3854         * expr.c (expand_assignment): Avoid useless assignments.
3855         (expand_expr_real_1): Likewise.
3856         (expand_expr_real_2): Avoid useless statements.
3857
3858         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
3859
3860         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
3861
3862         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
3863         statements.
3864
3865         * stmt.c (expand_expr_stmt): Avoid useless assignment.
3866
3867 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
3868
3869         PR target/47109
3870         * doc/tm.texi.in (TARGET_VERSION): Remove.
3871         * doc/tm.texi: Regenerate.
3872         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
3873         * collect2.c (main): Don't use TARGET_VERSION.
3874         * mips-tdump.c (main): Don't use TARGET_VERSION.
3875         * mips-tfile.c (main): Don't use TARGET_VERSION.
3876         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
3877         * config/rs6000/vxworksae.h: Remove.
3878         * config/alpha/alpha.h (TARGET_VERSION): Remove.
3879         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
3880         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
3881         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
3882         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
3883         * config/arm/arm.h (TARGET_VERSION): Remove.
3884         * config/arm/coff.h (TARGET_VERSION): Remove.
3885         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
3886         * config/arm/elf.h (TARGET_VERSION): Remove.
3887         * config/arm/freebsd.h (TARGET_VERSION): Remove.
3888         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
3889         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
3890         * config/arm/pe.h (TARGET_VERSION): Remove.
3891         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
3892         * config/arm/semi.h (TARGET_VERSION): Remove.
3893         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
3894         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
3895         * config/arm/vxworks.h (TARGET_VERSION): Remove.
3896         * config/avr/avr.h (TARGET_VERSION): Remove.
3897         * config/bfin/bfin.h (TARGET_VERSION): Remove.
3898         * config/fr30/fr30.h (TARGET_VERSION): Remove.
3899         * config/frv/frv.h (TARGET_VERSION): Remove.
3900         * config/h8300/h8300.h (TARGET_VERSION): Remove.
3901         * config/i386/cygwin.h (TARGET_VERSION): Remove.
3902         * config/i386/darwin.h (TARGET_VERSION): Remove.
3903         * config/i386/darwin64.h (TARGET_VERSION): Remove.
3904         * config/i386/djgpp.h (TARGET_VERSION): Remove.
3905         * config/i386/freebsd.h (TARGET_VERSION): Remove.
3906         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
3907         * config/i386/gnu.h (TARGET_VERSION): Remove.
3908         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
3909         * config/i386/i386elf.h (TARGET_VERSION): Remove.
3910         * config/i386/linux.h (TARGET_VERSION): Remove.
3911         * config/i386/linux64.h (TARGET_VERSION): Remove.
3912         * config/i386/lynx.h (TARGET_VERSION): Remove.
3913         * config/i386/mingw32.h (TARGET_VERSION): Remove.
3914         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
3915         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
3916         * config/i386/netware.h (TARGET_VERSION): Remove.
3917         * config/i386/nto.h (TARGET_VERSION): Remove.
3918         * config/i386/openbsd.h (TARGET_VERSION): Remove.
3919         * config/i386/vxworks.h (TARGET_VERSION): Remove.
3920         * config/ia64/elf.h (TARGET_VERSION): Remove.
3921         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
3922         * config/ia64/hpux.h (TARGET_VERSION): Remove.
3923         * config/ia64/linux.h (TARGET_VERSION): Remove.
3924         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
3925         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
3926         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
3927         * config/lm32/lm32.h (TARGET_VERSION): Remove.
3928         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
3929         * config/m32c/m32c.h (TARGET_VERSION): Remove.
3930         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
3931         * config/m32r/m32r.h (TARGET_VERSION): Remove.
3932         * config/m68k/linux.h (TARGET_VERSION): Remove.
3933         * config/m68k/m68k.h (TARGET_VERSION): Remove.
3934         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
3935         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
3936         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
3937         * config/mep/mep.h (TARGET_VERSION): Remove.
3938         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
3939         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
3940         * config/mips/iris6.h (MACHINE_TYPE): Remove.
3941         * config/mips/linux.h (TARGET_VERSION): Remove.
3942         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
3943         * config/mips/vxworks.h (TARGET_VERSION): Remove.
3944         * config/mmix/mmix.h (TARGET_VERSION): Remove.
3945         * config/mn10300/linux.h (TARGET_VERSION): Remove.
3946         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
3947         * config/pa/pa.h (TARGET_VERSION): Remove.
3948         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
3949         * config/picochip/picochip.h (TARGET_VERSION): Remove.
3950         * config/rs6000/aix.h (TARGET_VERSION): Remove.
3951         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
3952         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
3953         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
3954         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
3955         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
3956         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
3957         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
3958         * config/rs6000/linux.h (TARGET_VERSION): Remove.
3959         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
3960         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
3961         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
3962         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
3963         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
3964         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
3965         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
3966         * config/s390/linux.h (TARGET_VERSION): Remove.
3967         * config/s390/s390.h (TARGET_VERSION): Remove.
3968         * config/s390/tpf.h (TARGET_VERSION): Remove.
3969         * config/score/score.h (TARGET_VERSION): Remove.
3970         * config/sh/linux.h (TARGET_VERSION): Remove.
3971         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
3972         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
3973         * config/sh/sh.h (TARGET_VERSION): Remove.
3974         * config/sh/sh64.h (TARGET_VERSION): Remove.
3975         * config/sh/superh.h (TARGET_VERSION): Remove.
3976         * config/sh/vxworks.h (TARGET_VERSION): Remove.
3977         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
3978         * config/sparc/linux.h (TARGET_VERSION): Remove.
3979         * config/sparc/linux64.h (TARGET_VERSION): Remove.
3980         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
3981         TARGET_NAME32, TARGET_NAME): Remove.
3982         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
3983         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
3984         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
3985         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
3986         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
3987         * config/spu/spu.h (TARGET_VERSION): Remove.
3988         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
3989         * config/v850/v850.h (TARGET_VERSION): Remove.
3990         * config/vax/linux.h (TARGET_VERSION): Remove.
3991         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
3992         * config/xtensa/elf.h (TARGET_VERSION): Remove.
3993         * config/xtensa/linux.h (TARGET_VERSION): Remove.
3994
3995 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
3996
3997         PR target/48142
3998         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
3999         frame-related from frame-unrelated adjustments to the stack pointer.
4000
4001 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
4002
4003         * common.opt (fdebug-types-section): Move earlier.
4004         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
4005
4006 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
4007
4008         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
4009         var.
4010
4011 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
4012
4013         * tree.h (CASE_CHAIN): Define.
4014         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
4015         (gimple_redirect_edge_and_branch): Likewise.
4016
4017 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4018
4019         PR middle-end/48367
4020         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
4021         calculation.
4022
4023 2011-03-30  Jeff Law  <law@redhat.com>
4024
4025         * PR bootstrap/48371
4026         * reload1.c (reload): Fix botch in last change.
4027
4028         * reload.h (struct reload): Fix typo introduced in last change.
4029
4030 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
4031
4032         * config/arm/arm.opt (mhard-float, msoft-float): Mark
4033         Undocumented.  Remove help text.
4034         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
4035         -mhard-float.
4036
4037 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
4038
4039         * doc/options.texi (NegativeAlias): Document.
4040         (Alias): Mention NegativeAlias.
4041         * opt-functions.awk: Handle NegativeAlias.
4042         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
4043         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
4044         * opts.h (CL_NEGATIVE_ALIAS): Define.
4045         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
4046         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
4047         OPT_mspe_.
4048         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
4049         Alias entries.
4050         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
4051         mno-spe and mno-isel instead of mspe=no and -misel=no.
4052
4053 2011-03-29  Mark Wielaard  <mjw@redhat.com>
4054
4055         * common.opt (fdebug-types-section): New flag.
4056         * doc/invoke.texi: Document new -fno-debug-types-section flag.
4057         * dwarf2out.c (use_debug_types): New define.
4058         (struct die_struct): Mark die_id with GTY desc use_debug_types.
4059         (print_die): Guard output of type unit signatures using
4060         use_debug_types.
4061         (build_abbrev_table): Replace assert of dwarf_version >= 4
4062         with assert on use_debug_types.
4063         (size_of_die): Likewise.
4064         (unmark_dies): Likewise.
4065         (value_format): Decide AT_ref_external form on use_debug_types.
4066         (output_die): Replace dwarf_version version check guard with
4067         use_debug_types where appropriate.
4068         (modified_type_die): Likewise.
4069         (gen_reference_type_die): Likewise.
4070         (dwarf2out_start_source_file): Likewise.
4071         (dwarf2out_end_source_file): Likewise.
4072         (prune_unused_types_walk_attribs): Likewise.
4073         (dwarf2out_finish): Likewise.
4074
4075 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4076
4077         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
4078
4079 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
4080
4081         PR rtl-optimization/48332
4082         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
4083         mode of input operand N and modeN to its actual mode.
4084
4085 2011-03-30  Jeff Law  <law@redhat.com>
4086
4087         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
4088         define accessor macro.
4089         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
4090         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
4091         (reg_equiv_init): Likewise.
4092         (reg_equivs_size): New variable.
4093         (reg_equiv_init_size): Remove.
4094         (allocate_initial_values): Move prototype to here from....
4095         * integrate.h (allocate_initial_values): Remove prototype.
4096         * integrate.c: Include reload.h.
4097         (allocate_initial_values): Corresponding changes.
4098         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
4099         (fix_reg_equiv_init, no_equiv): Corresponding changes.
4100         (update_equiv_regs): Corresponding changes.
4101         (ira): Corresponding changes.
4102         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
4103         (push_secondary_reload): Corresponding changes.
4104         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
4105         (make_memloc, find_reloads_address): Corresponding changes.
4106         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
4107         (find_reloads_address_1): Corresponding changes.
4108         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
4109         (refers_to_regno_for_reload_p): Corresponding changes.
4110         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
4111         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
4112         * reload1.c: Include ggc.h.
4113         (grow_reg_equivs): New function.
4114         (replace_pseudos_in, reload): Corresponding changes.
4115         (calculate_needs_all_insns, alter_regs): Corresponding changes.
4116         (eliminate_regs_1, elimination_effects): Corresponding changes.
4117         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
4118         (delete_output_reload): Likewise.
4119         * caller-save.c (mark_referenced_regs): Corresponding changes.
4120         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
4121         * frv/predicates.md (frv_load_operand): Corresponding changes.
4122         * microblaze/microblaze.c (double_memory_operand): Corresponding
4123         changes.
4124         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
4125         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
4126         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
4127         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
4128         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
4129         changes.
4130         * pa/pa.c (emit_move_sequence): Corresponding changes.
4131         * vax/vax.c (nonindexed_address_p): Corresponding changes.
4132
4133 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
4134
4135         PR target/47551
4136         * config/arm/arm.c (coproc_secondary_reload_class): Handle
4137         structure modes.  Don't check neon_vector_mem_operand for
4138         vector or structure modes.
4139
4140 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
4141             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4142
4143         PR target/43590
4144         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
4145         operand 1 and reshuffle the operands to match.
4146         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
4147
4148 2011-03-30  Christian Schüler  <cschueler@gmx.de>
4149
4150         PR driver/48208
4151         * config/c.opt (F): Added 'Driver' to -F option.
4152
4153         PR driver/48260
4154         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
4155           handler function.
4156         * config/darwin.opt: Added '-arch' option.
4157
4158 2011-03-30  Nick Clifton  <nickc@redhat.com>
4159
4160         * config/rx/rx.md: Add peepholes and patterns to combine
4161         extending loads and simple arithmetic instructions.
4162         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
4163         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
4164         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
4165         modes to use pre-decrement and post-increment addressing.
4166         (rx_is_restricted_memory_address): Add range checking of REG+INT
4167         addresses.
4168         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
4169         (rx_memory_move_cost): Adjust cost of stores.
4170         (rx_adjust_insn_length): New function.
4171
4172 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
4173
4174         PR c/48305
4175         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
4176         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
4177         matching arg00/arg01 types.
4178
4179 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
4180
4181         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
4182         last_location to UNKNOWN_LOCATION.
4183
4184 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
4185
4186         PR target/48349
4187         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
4188         FLOAT_SSE_REGS.
4189
4190 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
4191             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4192
4193         PR bootstrap/48337
4194         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
4195         Init(PROCESSOR_V7).
4196         (sparc_cpu): Likewise.
4197         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
4198         PROCESSOR_V7.
4199
4200 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
4201
4202         PR target/48336
4203         PR middle-end/48342
4204         PR rtl-optimization/48345
4205         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
4206         hard regs for given mode from profitable regs when doing secondary
4207         allocation.
4208
4209 2011-03-29  Jeff Law  <law@redhat.com>
4210
4211         PR bootstrap/48327
4212         * tree-ssa-threadupdate.c (struct redirection_data): Remove
4213         do_not_duplicate field.
4214         (lookup_redirection_data): Corresponding changes.
4215         (create_duplicates): Always create a template block.
4216         (redirect_edges): Remove code which reused the original block
4217         when it was going to become unreachable code.
4218         (thread_block): Don't set do_not_duplicate field.
4219
4220 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
4221
4222         * lto-opts.c (register_user_option_p, lto_register_user_option):
4223         Make type argument unsigned.
4224         * lto-streamer.h (lto_register_user_option): Make type argument
4225         unsigned.
4226         * opth-gen.awk: Make CL_* macros unsigned.
4227         * opts-common.c (find_opt): Make lang_mask argument unsigned.
4228         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
4229         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
4230         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
4231         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
4232         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
4233         (find_opt): Make lang_mask argument unsigned.
4234
4235 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
4236
4237         PR rtl-optimization/48331
4238         PR rtl-optimization/48334
4239         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
4240         for any used algorithm.
4241
4242 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
4243
4244         * ira-conflicts.c (build_object_conflicts): Add unused attribute
4245         to parent_max.
4246
4247 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
4248
4249         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
4250         (alpha_option_override): Don't set alpha_sr_alias_set.
4251         (emit_frame_store_1): Use gen_frame_mem rather than calling
4252         set_mem_alias_set.
4253         (alpha_expand_epilogue): Ditto.
4254
4255 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
4256
4257         PR tree-optimization/48290
4258         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
4259         vectorization, check that relevant phis in the basic block after
4260         the inner loop are really inner loop's exit phis.
4261
4262 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
4263
4264         PR debug/48190
4265         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
4266         (cached_dw_loc_list_def): New structure.
4267         (cached_dw_loc_list): New typedef.
4268         (cached_dw_loc_list_table): New variable.
4269         (cached_dw_loc_list_table_hash): New function.
4270         (cached_dw_loc_list_table_eq): Likewise.
4271         (add_location_or_const_value_attribute): Take a bool cache_p.
4272         Cache the list when the parameter is true.
4273         (gen_formal_parameter_die): Update caller.
4274         (gen_variable_die): Likewise.
4275         (dwarf2out_finish): Likewise.
4276         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
4277         while generating debug info for the decl.
4278         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
4279         (dwarf2out_init): Initialize cached_dw_loc_list_table.
4280         (resolve_addr): Cache the result of resolving a chain of
4281         location lists.
4282
4283 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
4284
4285         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
4286         conflict object hard regset nodes have intersecting hard reg sets.
4287
4288         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
4289         after regstat_init_n_sets_and_refs.
4290
4291         * ira.c: Add more comments at the top.
4292         (setup_stack_reg_pressure_class, setup_pressure_classes):
4293         Add comments how we compute the register pressure classes.
4294         (setup_allocno_and_important_classes): Add more comments.
4295         (setup_class_translate_array, reorder_important_classes)
4296         (setup_reg_class_relations): Add comments.
4297
4298         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
4299         start of the file.
4300
4301         * ira-color.c: Add 2011 to the Copyright line.
4302         (assign_hard_reg):  Add more comments.
4303         (improve_allocation): Ditto.
4304
4305         * ira-costs.c: Add 2011 to the Copyright line.
4306         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
4307         comments.
4308         (setup_regno_cost_classes_by_mode): Ditto.
4309
4310         Initial patches from ira-improv branch:
4311
4312         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
4313
4314         * ira-build.c (ira_create_object): Remove initialization of
4315         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
4316         (ira_create_allocno): Remove initialization of
4317         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
4318         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
4319         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
4320         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
4321         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
4322         Initialize ALLOCNO_ADD_DATA.
4323         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
4324         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
4325         ALLOCNO_REG.
4326         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
4327         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
4328
4329         * ira.c (ira_reallocate): Remove.
4330         (setup_pressure_classes): Call
4331         ira_init_register_move_cost_if_necessary.  Use
4332         ira_register_move_cost instead of ira_get_register_move_cost.
4333         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
4334         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
4335
4336         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
4337         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
4338         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
4339         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
4340         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
4341         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
4342         Fix formatting.
4343         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
4344         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
4345         (struct allocno_color_data): New.
4346         (allocno_color_data_t): New typedef.
4347         (allocno_color_data): New definition.
4348         (ALLOCNO_COLOR_DATA): New macro.
4349         (struct object_color_data): New.
4350         (object_color_data_t): New typedef.
4351         (object_color_data): New definition.
4352         (OBJECT_COLOR_DATA): New macro.
4353         (update_copy_costs, calculate_allocno_spill_cost): Call
4354         ira_init_register_move_cost_if_necessary.  Use
4355         ira_register_move_cost instead of ira_get_register_move_cost.
4356         (move_spill_restore, update_curr_costs): Ditto.
4357         (allocno_spill_priority): Make it inline.
4358         (color_pass): Allocate and free allocno_color_dat and object_color_data.
4359         (struct coalesce_data, coalesce_data_t): New.
4360         (allocno_coalesce_data): New definition.
4361         (ALLOCNO_COALESCE_DATA): New macro.
4362         (merge_allocnos, coalesced_allocno_conflict_p): Use
4363         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
4364         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
4365         (coalesce_allocnos): Ditto.
4366         (setup_coalesced_allocno_costs_and_nums): Ditto.
4367         (collect_spilled_coalesced_allocnos): Ditto.
4368         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
4369         (setup_slot_coalesced_allocno_live_ranges): Ditto.
4370         (coalesce_spill_slots): Ditto.
4371         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
4372         free allocno_coalesce_data.
4373
4374         * ira-conflicts.c: Fix formatting.
4375         (process_regs_for_copy): Call
4376         ira_init_register_move_cost_if_necessary.  Use
4377         ira_register_move_cost instead of ira_get_register_move_cost.
4378         (build_object_conflicts): Optimize.
4379
4380         * ira-costs.c (record_reg_classes): Optimize.  Call
4381         ira_init_register_move_cost_if_necessary.  Use
4382         ira_register_move_cost, ira_may_move_in_cost, and
4383         ira_may_move_out_cost instead of ira_get_register_move_cost and
4384         ira_get_may_move_cost.
4385         (record_address_regs): Ditto.
4386         (scan_one_insn): Optimize.
4387         (find_costs_and_classes): Optimize.
4388         (process_bb_node_for_hard_reg_moves): Call
4389         ira_init_register_move_cost_if_necessary.  Use
4390         ira_register_move_cost instead of ira_get_register_move_cost.
4391
4392         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
4393         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
4394         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
4395         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
4396         definitions.
4397         (ira_initiate_emit_data, ira_finish_emit_data)
4398         (create_new_allocno): New functions.
4399         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
4400         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
4401         Use ira_register_move_cost instead of ira_get_register_move_cost.
4402
4403         * ira-int.h: Fix some comments.
4404         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
4405         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
4406         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
4407         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
4408         add_data.
4409         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
4410         bitfield after mode.  Make hard_regno a short int.  Make
4411         hard_regno short.  Remove first_coalesced_allocno and
4412         next_coalesced_allocno.  Move mem_optimized_dest_p,
4413         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
4414         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
4415         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
4416         temp, colorable_p.  Add new member add_data.
4417         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
4418         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
4419         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
4420         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
4421         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
4422         (ALLOCNO_ADD_DATA): New macro.
4423         (ira_emit_data_t): New typedef.
4424         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
4425         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
4426         from struct ira_allocno.
4427         (ALLOCNO_EMIT_DATA): New macro.
4428         (ira_allocno_emit_data, allocno_emit_reg): New.
4429         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
4430         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
4431         (OBJECT_ADD_DATA): New macro.
4432         (ira_reallocate): Remove.
4433         (ira_initiate_emit_data, ira_finish_emit_data): New.
4434         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
4435         (ira_init_register_move_cost_if_necessary): New.
4436         (ira_object_conflict_iter_next): Merge into
4437         ira_object_conflict_iter_cond.
4438         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
4439
4440         * ira-live.c (process_single_reg_class_operands): Call
4441         ira_init_register_move_cost_if_necessary.  Use
4442         ira_register_move_cost instead of ira_get_register_move_cost.
4443
4444         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
4445
4446         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
4447
4448         * ira-costs.c: Fix formatting.
4449         (cost_classes, cost_classes_num): Remove.
4450         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
4451         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
4452         (cost_classes_del, cost_classes_htab): New.
4453         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
4454         (initiate_regno_cost_classes, setup_cost_classes): New.
4455         (setup_regno_cost_classes_by_aclass): New.
4456         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
4457         (record_reg_classes): Use regno_cost_classes instead of
4458         cost_classes.  Move checking opposite operand up.
4459         (record_address_regs): Use regno_cost_classes
4460         instead of cost_classes.
4461         (scan_one_insn): Ditto.  Use always general register.
4462         (print_allocno_costs): Use regno_cost_classes instead of
4463         cost_classes.
4464         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
4465         (find_costs_and_classes): Set up cost classes for each registers.
4466         Use also their mode for this.  Use regno_cost_classes instead of
4467         cost_classes.
4468         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
4469         cost_classes.
4470         (free_ira_costs, ira_init_costs): Don't use cost_classes.
4471         (ira_costs, ira_set_pseudo_classes): Call
4472         initiate_regno_cost_classes and finish_regno_cost_classes.
4473
4474         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
4475
4476         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
4477
4478         * target.def (ira_cover_classes): Remove.
4479
4480         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
4481
4482         * doc/tm.texi.in: Ditto.
4483
4484         * ira-conflicts.c: Remove mentioning cover classes from the file.
4485         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
4486         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
4487
4488         * targhooks.c (default_ira_cover_classes): Remove.
4489
4490         * targhooks.h (default_ira_cover_classes): Ditto.
4491
4492         * haifa-sched.c: Remove mentioning cover classes from the file.
4493         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
4494         ira_pressure_classes and ira_pressure_classes_num instead of
4495         ira_reg_class_cover_size and ira_reg_class_cover.  Use
4496         sched_regno_pressure_class instead of sched_regno_cover_class.
4497         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
4498         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
4499
4500         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
4501         classes from the file.
4502         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
4503         (struct object_hard_regs, struct object_hard_regs_node): New.
4504         (struct ira_object): New members profitable_hard_regs,
4505         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
4506         (struct ira_allocno): Rename cover_class to aclass.  Rename
4507         cover_class_cost and updated_cover_class_cost to class_cost and
4508         updated_class_cost.  Remove splay_removed_p and
4509         left_conflict_size.  Add new members colorable_p.
4510         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
4511         (ALLOCNO_COLORABLE_P): New macro.
4512         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
4513         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
4514         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
4515         (OBJECT_...): Rename parameter C to O.
4516         (OBJECT_PROFITABLE_HARD_REGS): New macro.
4517         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
4518         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
4519         (struct target_ira_int): New members x_ira_max_memory_move_cost,
4520         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
4521         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
4522         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
4523         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
4524         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
4525         x_ira_reg_class_subunion.
4526         (ira_max_memory_move_cost, ira_max_register_move_cost)
4527         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
4528         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
4529         (ira_important_class_nums, ira_reg_class_superunion): New macros.
4530         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
4531         (ira_reg_class_union): Rename to ira_reg_class_subunion.
4532         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
4533         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
4534         (ira_tune_allocno_costs_and_cover_classes): Rename to
4535         ira_tune_allocno_costs.
4536         (ira_debug_hard_regs_forest): New.
4537         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
4538         (ira_object_conflict_iter_next): Fix comments.
4539         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
4540         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
4541         cover_class to aclass.
4542         (ira_allocate_and_accumulate_costs): Ditto.
4543         (ira_allocate_and_set_or_copy_costs): Ditto.
4544
4545         * opts.c (decode_options): Remove ira_cover_class check.
4546
4547         * ira-color.c: Remove mentioning cover classes from the file.  Use
4548         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
4549         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
4550         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
4551         (splay-tree.h): Remove include.
4552         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
4553         before copy_freq_compare_func.
4554         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
4555         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
4556         New definitions.
4557         (hard_regs_roots, hard_regs_node_vec): Ditto.
4558         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
4559         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
4560         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
4561         (create_new_object_hard_regs_node): Ditto.
4562         (add_new_object_hard_regs_node_to_forest): Ditto.
4563         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
4564         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
4565         Ditto.
4566         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
4567         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
4568         (remove_unused_object_hard_regs_nodes): Ditto.
4569         (enumerate_object_hard_regs_nodes): Ditto.
4570         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
4571         (object_hard_regs_subnode_t): Ditto.
4572         (struct object_hard_regs_subnode): Ditto.
4573         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
4574         (setup_object_hard_regs_subnode_index): Ditto.
4575         (get_object_hard_regs_subnodes_num): Ditto.
4576         (form_object_hard_regs_nodes_forest): Ditto.
4577         (finish_object_hard_regs_nodes_tree): Ditto.
4578         (finish_object_hard_regs_nodes_forest): Ditto.
4579         (allocnos_have_intersected_live_ranges_p): Rename to
4580         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
4581         (pseudos_have_intersected_live_ranges_p): Rename to
4582         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
4583         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
4584         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
4585         (update_copy_costs): Remove assert.  Skip cost update if the hard
4586         reg does not belong the class.
4587         (assign_hard_reg): Process only profitable hard regs.
4588         (uncolorable_allocnos_num): Make it scalar.
4589         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
4590         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
4591         and ira_reg_class_max_nregs.
4592         (bucket_allocno_compare_func): Check frequency first.
4593         (sort_bucket): Add compare function as a parameter.
4594         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
4595         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
4596         (push_allocno_to_stack): Rewrite for checking new allocno
4597         colorability.
4598         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
4599         (push_only_colorable): Pass new parameter to sort_bucket.
4600         (push_allocno_to_spill): Remove.
4601         (allocno_spill_priority_compare): Make it inline and rewrite.
4602         (splay_tree_allocate, splay_tree_free): Remove.
4603         (allocno_spill_sort_compare): New function.
4604         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
4605         build and use splay tree.  Choose first allocno in uncolorable
4606         allocno bucket to spill.  Remove setting spill cost.
4607         (all_conflicting_hard_regs): Remove.
4608         (setup_allocno_available_regs_num): Check only profitable hard
4609         regs.  Print info about hard regs nodes.
4610         (setup_allocno_left_conflicts_size): Remove.
4611         (put_allocno_into_bucket): Don't call
4612         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
4613         (improve_allocation): New.
4614         (color_allocnos): Call setup_profitable_hard_regs,
4615         form_object_hard_regs_nodes_forest, improve_allocation,
4616         finish_object_hard_regs_nodes_forest.  Setup spill cost.
4617         (print_loop_title): Use pressure classes.
4618         (color_allocnso): Ditto.
4619         (do_coloring): Remove allocation and freeing splay_tree_node_pool
4620         and allocnos_for_spilling.
4621         (ira_sort_regnos_for_alter_reg): Don't setup members
4622         {first,next}_coalesced_allocno.
4623         (color): Remove allocating and freeing removed_splay_allocno_vec.
4624         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
4625         prohibited_class_mode_regs.
4626
4627         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
4628         formatting.
4629         (update_allocno_pressure_excess_length): Use pressure classes.
4630         (inc_register_pressure, dec_register_pressure): Check for pressure
4631         class.
4632         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
4633         pressure class.  Use ira_reg_class_nregs instead of
4634         ira_reg_class_max_nregs.
4635         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
4636         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
4637         (single_reg_class): Use ira_reg_class_nregs instead of
4638         ira_reg_class_max_nregs.
4639         (process_bb_node_lives): Use pressure classes.
4640
4641         * ira-emit.c: Remove mentioning cover classes from the file.  Use
4642         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
4643         (change_loop): Use pressure classes.
4644         (modify_move_list): Call ira_set_allocno_class instead of
4645         ira_set_allocno_cover_class.
4646
4647         * ira-build.c: Remove mentioning cover classes from the file.  Use
4648         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
4649         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
4650         ALLOCNO_UPDATED_CLASS_COST instead of
4651         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
4652         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
4653         (ira_create_allocno): Remove initialization of
4654         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
4655         ALLOCNO_COLORABLE_P.
4656         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
4657         Update conflict regs for the objects.
4658         (create_cap_allocno): Remove assert.  Don't propagate
4659         ALLOCNO_AVAILABLE_REGS_NUM.
4660         (ira_free_allocno_costs): New function.
4661         (finish_allocno): Change a part of code into call of
4662         ira_free_allocno_costs.
4663         (low_pressure_loop_node_p): Use pressure classes.
4664         (object_range_compare_func): Don't compare classes.
4665         (setup_min_max_conflict_allocno_ids): Ditto.
4666
4667         * loop-invariant.c: Remove mentioning cover classes from the file.
4668         Use ira_pressure_classes and ira_pressure_classes_num instead of
4669         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
4670         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
4671         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
4672         Use reg_allocno_class instead of reg_cover_class.
4673         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
4674         STACK_REG_COVER_CLASS.
4675         (get_regno_cover_class): Rename to get_regno_pressure_class.
4676         (move_loop_invariants): Initialize and finalize regstat.
4677
4678         * ira.c: Remove mentioning cover classes from the file.  Add
4679         comments about coloring without cover classes.  Use ALLOCNO_CLASS
4680         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
4681         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
4682         setup_class_subset_and_memory_move_costs.
4683         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
4684         (setup_cover_and_important_classes): Rename to
4685         setup_allocno_and_important_classes.
4686         (setup_class_translate_array): New.
4687         (setup_class_translate): Call it for allocno and pressure classes.
4688         (cover_class_order): Rename to allocno_class_order.
4689         (comp_reg_classes_func): Use ira_allocno_class_translate instead
4690         of ira_class_translate.
4691         (reorder_important_classes): Set up ira_important_class_nums.
4692         (setup_reg_class_relations): Set up ira_reg_class_superunion.
4693         (print_class_cover): Rename to print_classes.  Add parameter.
4694         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
4695         Print pressure classes too.
4696         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
4697         setup_reg_subclasses.
4698         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
4699         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
4700         (setup_prohibited_class_mode_regs): Use
4701         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
4702         (clarify_prohibited_class_mode_regs): New function.
4703         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
4704         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
4705         (ira_init_once): Initialize them.
4706         (free_register_move_costs): Process them.
4707         (ira_init): Move calls of find_reg_classes and
4708         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
4709         Call clarify_prohibited_class_mode_regs.
4710         (ira_no_alloc_reg): Remove.
4711         (too_high_register_pressure_p): Use pressure classes.
4712
4713         * sched-deps.c: Remove mentioning cover classes from the file.
4714         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
4715         ira_pressure_classes and ira_pressure_classes_num instead of
4716         ira_reg_class_cover_size and ira_reg_class_cover.
4717         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
4718         sched_regno_pressure_class instead of sched_regno_cover_class.
4719         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
4720         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
4721
4722         * ira.h: Add 2010 to Copyright.
4723         (ira_no_alloc_reg): Remove external.
4724         (struct target_ira): Rename x_ira_hard_regno_cover_class,
4725         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
4726         x_ira_class_translate to x_ira_hard_regno_allocno_class,
4727         x_ira_allocno_classes_num, x_ira_allocno_classes, and
4728         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
4729         x_ira_pressure_classes, x_ira_pressure_class_translate, and
4730         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
4731         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
4732         x_ira_no_alloc_regs.
4733         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
4734         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
4735         ira_allocno_classes_num and ira_allocno_classes.
4736         (ira_class_translate): Rename to ira_allocno_class_translate.
4737         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
4738         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
4739         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
4740         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
4741         (ira_no_alloc_regs): New.
4742
4743         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
4744         classes from the file.  Use ALLOCNO_CLASS instead of
4745         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
4746         ALLOCNO_COVER_CLASS_COST.
4747         (regno_cover_class): Rename to regno_aclass.
4748         (record_reg_classes): Use ira_reg_class_subunion instead of
4749         ira_reg_class_union.
4750         (record_address_regs): Check overflow.
4751         (scan_one_insn): Ditto.
4752         (print_allocno_costs): Print total mem cost fore regional allocation.
4753         (print_pseudo_costs): Use REG_N_REFS.
4754         (find_costs_and_classes): Use classes intersected with them on the
4755         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
4756         ira_reg_class_union.  Use ira_allocno_class_translate and
4757         regno_aclass instead of ira_class_translate and regno_cover_class.
4758         Modify code for finding regno_aclass.  Setup preferred classes for
4759         the next pass.
4760         (setup_allocno_cover_class_and_costs): Rename to
4761         setup_allocno_class_and_costs.  Use regno_aclass instead of
4762         regno_cover_class.  Use ira_set_allocno_class instead of
4763         ira_set_allocno_cover_class.
4764         (init_costs, finish_costs): Use regno_aclass instead of
4765         regno_cover_class.
4766         (ira_costs): Use setup_allocno_class_and_costs instead of
4767         setup_allocno_cover_class_and_costs.
4768         (ira_tune_allocno_costs_and_cover_classes): Rename to
4769         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
4770         by processing objects.  Use ira_reg_class_max_nregs instead of
4771         ira_reg_class_nregs.
4772
4773         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
4774
4775         * sched-int.h: Remove mentioning cover classes from the file.
4776         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
4777
4778         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
4779         classes from the file.
4780         (struct reg_pref): Rename coverclass into allocnoclass.
4781         (reg_cover_class): Rename to reg_allocno_class.
4782
4783         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
4784
4785         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
4786
4787         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
4788
4789         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
4790
4791         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
4792
4793         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
4794
4795         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
4796
4797         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
4798
4799         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
4800
4801         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
4802
4803         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
4804         (i386_ira_cover_classes): Ditto.
4805
4806         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
4807
4808         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
4809
4810         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
4811
4812         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
4813
4814         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
4815
4816         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
4817
4818         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
4819         (mips_ira_cover_classes): Ditto.
4820
4821         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
4822
4823         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
4824
4825         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
4826
4827         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
4828
4829         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
4830
4831         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
4832         (IRA_COVER_CLASSES_VSX): Ditto.
4833
4834         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
4835         (rs6000_ira_cover_classes): Ditto.
4836
4837         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
4838
4839         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
4840
4841         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
4842
4843         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
4844
4845         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
4846
4847         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
4848
4849         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
4850
4851         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
4852
4853         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
4854
4855         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
4856
4857 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
4858
4859         PR debug/48253
4860         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
4861         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
4862         dw_fde_unlikely_section_end_label, cold_in_std_section,
4863         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
4864         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
4865         fields.
4866         (output_fde): Use dw_fde_second_{begin,end} if second is
4867         true, otherwise dw_fde_{begin,end}.
4868         (output_call_frame_info): Test dw_fde_second_begin != NULL
4869         instead of dw_fde_switched_sections.
4870         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
4871         fields, initialize new fields.  Initialize in_std_section
4872         unconditionally from the first partition.
4873         (dwarf2out_end_epilogue): Don't override dw_fde_end when
4874         dw_fde_second_begin is non-NULL.
4875         (dwarf2out_switch_text_section): Stop initializing removed
4876         dw_fde_struct fields, initialize new fields, initialize
4877         also dw_fde_end here.  Set dw_fde_switch_cfi even when
4878         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
4879         (struct var_loc_list_def): Add last_before_switch field.
4880         (arange_table, arange_table_allocated, arange_table_in_use,
4881         ARANGE_TABLE_INCREMENT, add_arange): Removed.
4882         (size_of_aranges): Count !in_std_section and !second_in_std_section
4883         hunks in fdes, instead of looking at arange_table_in_use.
4884         (output_aranges): Add aranges_length argument, don't call
4885         size_of_aranges here.  Instead of using aranges_table*
4886         emit ranges for fdes when !in_std_section resp.
4887         !second_in_std_section.
4888         (dw_loc_list): Break ranges crossing section switch.
4889         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
4890         use dw_fde_second_end instead of dw_fde_end as end of last range.
4891         (gen_subprogram_die): Don't call add_arange.  Use
4892         dw_fde_{begin,end} for first partition and if switched
4893         section dw_fde_second_{begin,end} for the second.
4894         (var_location_switch_text_section_1,
4895         var_location_switch_text_section): New functions.
4896         (dwarf2out_begin_function): Initialize cold_text_section even
4897         when function_section () isn't text_section.
4898         (prune_unused_types): Don't walk arange_table.
4899         (dwarf2out_finish): Don't needlessly test
4900         flag_reorder_blocks_and_partition when testing cold_text_section_used.
4901         If info_section_emitted, call size_of_aranges and if it indicates
4902         non-empty .debug_aranges, call output_aranges with the computed
4903         size.  Stop using removed dw_fde_struct fields, use
4904         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
4905         for second.
4906
4907         PR debug/48203
4908         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
4909         create ENTRY_VALUE if incoming or address of incoming's MEM
4910         is a hard REG.
4911         * dwarf2out.c (mem_loc_descriptor): Don't emit
4912         DW_OP_GNU_entry_value of DW_OP_fbreg.
4913         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
4914         on ENTRY_VALUE is able to find the canonical parameter VALUE.
4915         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
4916         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
4917         ENTRY_VALUE_EXPs.
4918         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
4919         is a REG_P or MEM_P with REG_P address, compute hash directly
4920         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
4921         (preserve_only_constants): Don't clear VALUES forwaring
4922         ENTRY_VALUE to some other VALUE.
4923
4924 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
4925
4926         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
4927         instead of GEN_INT.
4928
4929 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
4930
4931         * cfgexpand.c (expand_gimple_cond): Always set the source location and
4932         block before expanding the statement.
4933         (expand_gimple_stmt_1): Likewise.  Set them here...
4934         (expand_gimple_stmt): ...and not here.  Tidy.
4935         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
4936         unknown.
4937
4938 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
4939
4940         * Makefile.in: New rule for cprop.o.
4941         * gcse.c: Move constant/copy propagation to cprop.c.
4942         (compute_local_properties): Only handle expression tables.
4943         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
4944         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
4945         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
4946         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
4947         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
4948         compute_cprop_data, find_used_regs, try_replace_reg,
4949         find_avail_set, cprop_jump, constprop_register, cprop_insn,
4950         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
4951         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
4952         find_bypass_set, reg_killed_on_edge, bypass_block,
4953         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
4954         execute_rtl_cprop, pass_rtl_cprop): Move to...
4955         * cprop.c: ...here.  New file, constant/copy propagation for RTL
4956         moved from gcse.c to here with minor cleanups in duplicated code.
4957
4958 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
4959
4960         * config/i386/i386.c (flag_opts): Fix a typo in
4961         -mavx256-split-unaligned-store.
4962
4963 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
4964
4965         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4966         LIBCALL_VALUE): Remove macros.
4967         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4968         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4969         (h8300_function_value, h8300_libcall_value,
4970         h8300_function_value_regno_p): New functions.
4971
4972 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
4973
4974         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
4975
4976 2011-03-28  Jeff Law  <law@redhat.com>
4977
4978         * tree-ssa-threadupdate.c (redirect_edges): Call
4979         create_edge_and_update_destination_phis as needed.
4980         (create_edge_and_update_destination_phis): Accept new BB argument.
4981         All callers updated.
4982         (thread_block): Do not update the profile when threading around
4983         intermediate blocks.
4984         (thread_single_edge): Likewise.
4985         (determine_bb_domination_status): If BB is not a successor of the
4986         loop header, return NONDOMINATING.
4987         (register_jump_thread): Note when we register a jump thread around
4988         an intermediate block.
4989         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
4990         (thread_across_edge): Use it.
4991
4992 2011-03-28  Tristan Gingold  <gingold@adacore.com>
4993
4994         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
4995         when for_return is 2.
4996
4997 2011-03-28  Jeff Law  <law@redhat.com>
4998
4999         * var-tracking.c (canonicalize_values_mark): Delete unused
5000         lhs assignment.
5001         (canonicalize_values_star, set_variable_part): Likewise.
5002         (clobber_variable_part, delete_variable_part): Likewise.
5003
5004 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
5005
5006         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
5007
5008 2011-03-28  Martin Jambor  <mjambor@suse.cz>
5009
5010         * tree-inline.c (expand_call_inline): Do not check that destination
5011         node is analyzed.
5012         (optimize_inline_calls): Assert that destination node is analyzed.
5013         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
5014         not call tree_lowering_passes.
5015         * cgraph.h (cgraph_analyze_function): Declare.
5016         * cgraphunit.c (cgraph_analyze_function): Make public.
5017
5018 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
5019
5020         * config/sparc/sparc-opts.h: New.
5021         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
5022         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
5023         (sparc_option_override): Store processor_type enumeration rather
5024         than string in cpu_default.  Remove name and enumeration from
5025         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
5026         without using sparc_select.  Use target_flags_explicit instead of
5027         fpu_option_set.
5028         * config/sparc/sparc.h (enum processor_type): Move to
5029         sparc-opts.h.
5030         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
5031         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
5032         HeaderInclude entry.
5033         (mcpu=, mtune=): Use Var and Enum.
5034         (sparc_processor_type): New Enum and EnumValue entries.
5035
5036 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5037             Iain Sandoe  <iains@gcc.gnu.org>
5038
5039         PR target/48245
5040         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
5041
5042 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
5043
5044         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
5045         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
5046         Insert new statements at it in lieu of STMT.
5047         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
5048         * tree-vect-stmts.c (vectorizable_store): Likewise.
5049         (vectorizable_load): Likewise.
5050
5051 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
5052
5053         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
5054         (divtf3): Ditto.
5055         (multf3): Ditto.
5056         (subtf3): Ditto.
5057
5058 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5059
5060         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
5061         unaligned 256bit load/store.
5062         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
5063         (*avx_movdqu<avxmodesuffix>): Likewise.
5064
5065 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5066
5067         PR target/48288
5068         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
5069         * config/pa/pa.md (iordi3): Use new predicate in expander.
5070         (iorsi3): Likewise.
5071
5072 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
5073
5074         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
5075         FUNCTION_VALUE_REGNO_P): Remove macros.
5076         * config/mips/mips-protos.h (mips_function_value): Remove.
5077         * config/mips/mips.c (mips_function_value): Rename to...
5078         (mips_function_value_1): ... this. Make static.  Handle receiving
5079         the function type in 'fn_decl_or_type' argument.
5080         (mips_function_value, mips_libcall_value,
5081         mips_function_value_regno_p): New function.
5082         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5083         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5084
5085 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5086
5087         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
5088         and -mavx256-split-unaligned-store.
5089         (ix86_option_override_internal): Split 32-byte AVX unaligned
5090         load/store by default.
5091         (ix86_avx256_split_vector_move_misalign): New.
5092         (ix86_expand_vector_move_misalign): Use it.
5093
5094         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
5095         -mavx256-split-unaligned-store.
5096
5097         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
5098         256bit load/store.  Generate unaligned store on misaligned memory
5099         operand.
5100         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
5101         256bit load/store.
5102         (*avx_movdqu<avxmodesuffix>): Likewise.
5103
5104         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
5105         -mavx256-split-unaligned-store.
5106
5107 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
5108
5109         PR target/38598
5110         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
5111         Update commentary.
5112
5113 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
5114
5115         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
5116         opno arguments with an expand_operand.  Use create_input_operand.
5117         (mips_prepare_builtin_target): Delete.
5118         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
5119         functions.
5120         (mips_expand_builtin_direct): Use create_output_operand and
5121         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
5122         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
5123         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
5124
5125 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
5126
5127         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
5128         function.
5129         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
5130
5131 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5132
5133         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
5134         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
5135         basic blocks and call commit_edge_insertions directly.
5136         (fixup_abnormal_edges): Move from here to...
5137         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
5138         on the edges and return whether some have actually been inserted.
5139         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
5140         compensation code.
5141
5142 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
5143
5144         PR rtl-optimization/48144
5145         * sel-sched-ir.c (merge_history_vect): Factor out from ...
5146         (merge_expr_data): ... here.
5147         (av_set_intersect): Rename to av_set_code_motion_filter.
5148         Update all callers.  Call merge_history_vect when an expression
5149         is found in both sets.
5150         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
5151
5152 2011-03-26  Alan Modra  <amodra@gmail.com>
5153
5154         * config/rs6000/predicates.md (word_offset_memref_op): Handle
5155         cmodel medium addresses.
5156         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
5157         64-bit gpr loads and stores.
5158         (rs6000_secondary_reload_ppc64): New function.
5159         * config/rs6000/rs6000-protos.h: Declare it.
5160         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
5161
5162 2011-03-26  Alan Modra  <amodra@gmail.com>
5163
5164         PR target/47487
5165         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
5166         GNU Go in traceback table.
5167
5168 2011-03-25  Richard Henderson  <rth@redhat.com>
5169
5170         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
5171         if there are exactly 6 operands.
5172         (set_storage_via_setmem): Similarly.
5173
5174 2011-03-25  Kai Tietz  <ktietz@redhat.com>
5175
5176         * collect2.c (write_c_file_stat): Handle backslash
5177         as right-hand directory separator.
5178         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
5179         checking just for slash.
5180         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
5181         instead of checking for trailing slash.
5182         * gcc.c (record_temp_file): Use filename_cmp instead
5183         of strcmp.
5184         (do_spec_1): Likewise.
5185         (replace_outfile_spec_function): Likewise.
5186         (is_directory): Use filename_ncmp instead of strncmp.
5187         (print_multilib_info): Likewise.
5188         * gcov.c (find_source): Use filename_cmp instead
5189         instead of strcmp.
5190         (make_gcov_file_name): Fix order of slash/backslash
5191         checks.
5192         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
5193         (add_standard_paths): Likewise.
5194         * mips-tfile.c (saber_stop): Handle backslash.
5195         * prefix.c (update_path): Use filename_ncmp instead of
5196         strncmp.
5197         * profile.c (output_location): Use filename_cmp instead
5198         of strcmp.
5199         * read-md.c (handle_toplevel_file): Handle backslash.
5200         * tlink.c (frob_extension):  Likewise.
5201         * tree-cfg.c (same_line_p): Use filename_cmp instead of
5202         strcmp.
5203         * tree-dump.c (dequeue_and_dump): Handle backslash.
5204         * tree.c (get_file_function_name): Likewise.
5205         * gengtype.c (read_input_list): Likewise.
5206         (get_file_realbasename): Likewise.
5207         (get_output_file_with_visibility): Use filename_cmp
5208         instead of strcmp.
5209
5210 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
5211
5212         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
5213         case to VFPv1.
5214
5215 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
5216
5217         * fold-const.c (expr_location_or): New function.
5218         (fold_truth_not_expr): Call it.
5219
5220 2011-03-25  Jeff Law  <law@redhat.com>
5221
5222         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
5223         va_end.
5224         * c-family/c-common.c (def_fn_type): Likewise.
5225         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
5226         * emit-rtl.c (gen_rtvec): Likewise.
5227         * lto/lto-lang.c (def_fn_type): Likewise.
5228
5229 2011-03-25  Richard Guenther  <rguenther@suse.de>
5230
5231         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
5232         also generate copies.
5233         (fini_copy_prop): Handle constant values properly.
5234
5235 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
5236
5237         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
5238         mode size instead of bitsize with DWARF2_ADDR_SIZE.
5239         (hash_loc_operands, compare_loc_operands): Handle
5240         DW_OP_GNU_entry_value.
5241
5242 2011-03-25  Kai Tietz  <ktietz@redhat.com>
5243
5244         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
5245         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
5246         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
5247         comment and use macro TARGET_64BIT_MS_ABI instead.
5248         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
5249         and change default behavior for 32-bit MS_ABI.
5250         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
5251         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
5252         32-bit, too.
5253         (ix86_cfun_abi): Likewise.
5254         (ix86_maybe_switch_abi): Adjust comment.
5255         (init_cumulative_args): Check for bit-ness in MS_ABI case.
5256         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
5257         instead of checking for SYSV_ABI.
5258         (ix86_nsaved_sseregs): Likewise.
5259         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
5260         to 16 bytes.
5261         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
5262         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
5263         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
5264         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
5265         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
5266
5267 2011-03-25  Richard Guenther  <rguenther@suse.de>
5268
5269         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
5270         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
5271         (verify_gimple): Remove.
5272         * tree-cfg.c (verify_gimple_call): Merge verification
5273         from verify_stmts.
5274         (verify_gimple_phi): Merge verification from verify_stmts.
5275         (verify_gimple_label): New function.
5276         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
5277         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
5278         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
5279         (verify_stmts): Rename to verify_gimple_in_cfg.
5280         (verify_gimple_in_cfg): New function.
5281         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
5282         * tree-ssa.c (verify_ssa): Likewise.
5283         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
5284
5285 2011-03-25  Richard Guenther  <rguenther@suse.de>
5286
5287         * passes.c (init_optimization_passes): Add FRE pass after
5288         early SRA.
5289
5290 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
5291             Andrew Stubbs  <ams@codesourcery.com>
5292
5293         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
5294         for Cortex-A8.
5295         (arm_movdi_vfp_cortexa8): New pattern.
5296         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
5297         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
5298         instructions when tuning for Cortex-A8.  Set attribute "arch".
5299         * config/arm/arm.md: Move include arm-tune.md up a bit.
5300         (define_attr "arch"): Add "onlya8" and "nota8" values.
5301         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
5302
5303 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
5304
5305         PR bootstrap/48282
5306         Revert:
5307         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
5308
5309         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
5310         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
5311         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
5312         * passes.c (init_optimization_passes): Move
5313         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
5314
5315 2011-03-25  Kai Tietz  <ktietz@redhat.com>
5316
5317         * c-typeck.c (comptypes_internal): Replace target
5318         hook call of comp_type_attributes by version in tree.c file.
5319         * gimple.c (gimple_types_compatible_p_1): Likewise.
5320         * tree-ssa.c (useless_type_conversion_p): Likewise.
5321         * tree.c (build_type_attribute_qual_variant): Likewise.
5322         (attribute_value_equal): New static helper function.
5323         (comp_type_attributes): New function.
5324         (merge_attributes): Use attribute_value_equal for comparison.
5325         (attribute_list_contained): Likewise.
5326         * tree.h (comp_type_attributes): New prototype.
5327
5328 2011-03-25  Richard Guenther  <rguenther@suse.de>
5329
5330         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
5331         of complex types at -O0.
5332         (verify_gimple_assign_binary): Likewise.
5333         (verify_gimple_assign_ternary): Likewise.
5334
5335 2011-03-24  Mark Wielaard  <mjw@redhat.com>
5336
5337         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
5338         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
5339
5340 2011-03-24  Mark Wielaard  <mjw@redhat.com>
5341
5342         PR debug/48041
5343         * dwarf2out.c (output_abbrev_section): Only write table when
5344         abbrev_die_table_in_use > 1.
5345
5346 2011-02-24  Richard Henderson  <rth@redhat.com>
5347
5348         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
5349         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
5350         (alpha_expand_unaligned_load_words): Use extql.
5351         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
5352         (emit_insxl): Handle all modes for consistency.
5353
5354 2011-02-24  Richard Henderson  <rth@redhat.com>
5355
5356         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
5357         (alpha_expand_unaligned_load): Likewise.
5358         (alpha_expand_unaligned_store): Likewise.
5359         (alpha_expand_unaligned_load_words): Likewise.
5360         (alpha_expand_unaligned_store_words): Likewise.
5361         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
5362         (alpha_split_lock_test_and_set_12): Likewise.
5363         (print_operand, alpha_fold_builtin_extxx): Likewise.
5364         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
5365         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
5366         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
5367         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
5368         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
5369         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
5370         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
5371         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
5372         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
5373         (extwl, extll, extql): Similarly.
5374         (inswh, inslh, insqh): Similarly.
5375         (mskbl, mskwl, mskll, mskql): Similarly.
5376         (mskwh, msklh, mskqh): Similarly.
5377
5378 2011-02-24  Richard Henderson  <rth@redhat.com>
5379
5380         * config/alpha/alpha.md (attribute isa): Add er, ner.
5381         (attribute enabled): Handle them.
5382         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
5383
5384 2011-02-24  Richard Henderson  <rth@redhat.com>
5385
5386         * config/alpha/alpha.md (attribute isa): Add vms.
5387         (attribute enabled): Handle it.
5388         (*movsf): Merge *movsf_{nofix,fix,nofp}.
5389         (*movdf): Merge *movdf_{nofix,fix,nofp}.
5390         (*movtf): Rename from *movtf_internal for consistency.
5391         (*movsi): Merge with *movsi_nt_vms.
5392         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
5393         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
5394         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
5395         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
5396
5397 2011-02-24  Richard Henderson  <rth@redhat.com>
5398
5399         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
5400         (extendqisi2, extendhisi2): Likewise.
5401         (extendqidi2): Simplify BWX/non-BWX expansions.
5402         (extendhidi2): Similarly.
5403
5404 2011-02-24  Richard Henderson  <rth@redhat.com>
5405
5406         * config/alpha/alpha.md (attribute isa): New.
5407         (attribute enabled): New.
5408         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
5409         (zero_extendqisi2, zero_extendqidi2): Similarly.
5410         (zero_extendhisi2, zero_extendhidi2): Similarly.
5411         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
5412
5413 2011-02-24  Richard Henderson  <rth@redhat.com>
5414
5415         * config/alpha/predicates.md (input_operand): Revert last change;
5416         update comment to mention 32-bit VMS rather than Windows.
5417
5418 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
5419
5420         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
5421         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
5422         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
5423         * passes.c (init_optimization_passes): Move
5424         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
5425
5426 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
5427
5428         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
5429
5430 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
5431
5432         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
5433         correctly.
5434
5435 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
5436
5437         PR debug/48204
5438         * simplify-rtx.c (simplify_const_unary_operation): Call
5439         real_convert when changing mode class with FLOAT_EXTEND.
5440
5441 2011-03-24  Nick Clifton  <nickc@redhat.com>
5442
5443         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
5444         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
5445         * config/rx/rx.c (rx_option_override): Set align_jumps,
5446         align_loops and align_labels if not set by the user.
5447         (rx_align_for_label): New function.
5448         (rx_max_skip_for_label): New function.
5449         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
5450         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
5451         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
5452         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
5453         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
5454
5455 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
5456
5457         PR rtl-optimization/48263
5458         * optabs.c (expand_binop_directly): Reinstate convert_modes code
5459         and original commutative_p handling.  Use maybe_gen_insn.
5460
5461 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5462
5463         * reload.c (find_reloads_subreg_address): Add address_reloaded
5464         parameter and return true there if the full address has been
5465         reloaded.
5466         (find_reloads_toplev): Pass address_reloaded flag.
5467         (find_reloads_address_1): Don't use address_reloaded parameter.
5468
5469 2011-03-24  Jeff Law  <law@redhat.com>
5470
5471         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
5472         unused variable "ann".
5473         (remove_unused_locals): Likewise.
5474
5475         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
5476         statement.
5477
5478         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
5479         after it is freed.
5480
5481 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5482
5483         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
5484         for invalid symbolic addresses.
5485         (s390_secondary_reload): Don't use s390_check_symref_alignment for
5486         larl operands.
5487
5488 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
5489
5490         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
5491         the argument in calls to fold_truth_not_expr.
5492
5493 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
5494
5495         * tree.c (record_node_allocation_statistics): New function.
5496         (make_node_stat, copy_node_stat, build_string): Call it.
5497         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
5498         (build1_stat, build_omp_clause): Likewise.
5499
5500 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
5501
5502         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
5503         last commit.
5504
5505 2011-03-24  Richard Guenther  <rguenther@suse.de>
5506
5507         PR tree-optimization/48271
5508         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
5509         blocks that still exist.
5510
5511 2011-03-24  Richard Guenther  <rguenther@suse.de>
5512
5513         PR tree-optimization/48270
5514         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
5515         not free datarefs before ddrs.
5516
5517 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
5518
5519         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
5520         from the address built for a reference with variable offset.
5521
5522 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
5523
5524         PR target/48237
5525         * config/i386/i386.md (*movdf_internal_rex64): Do not split
5526         alternatives that can be handled with movq or movabsq insn.
5527         (*movdf_internal): Disable for !TARGET_64BIT.
5528         (*movdf_internal_nointeger): Ditto.
5529         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
5530
5531 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
5532
5533         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
5534         (FUNCTION_ARG_ADVANCE): Likewise.
5535         * tm.texi.in: Change references to them to hook references.
5536         * tm.texi: Regenerate.
5537         * targhooks.c (default_function_arg): Eliminate check for target macro.
5538         (default_function_incoming_arg): Likewise.
5539         (default_function_arg_advance): Likewise.
5540         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
5541         (function_arg_advance): Likewise.
5542         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
5543
5544 2011-03-24  Richard Guenther  <rguenther@suse.de>
5545
5546         PR middle-end/48269
5547         * tree-object-size.c (addr_object_size): Do not double-account
5548         for MEM_REF offsets.
5549
5550 2011-03-24  Diego Novillo  <dnovillo@google.com>
5551
5552         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
5553         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
5554         (lto_input_data_block): Move from lto-opts.c.  Make extern.
5555         Update all users.
5556         (lto_input_string): Rename from input_string.  Make extern.
5557         Update all users.
5558         * lto-streamer-out.c (lto_output_string_with_length): Rename from
5559         output_string_with_length.
5560         Output 0 to indicate a non-NULL string.  Update all callers to
5561         not emit 0.
5562         (lto_output_string): Rename from output_string.  Make extern.
5563         Update all users.
5564         (lto_output_decl_state_streams): Make extern.
5565         (lto_output_decl_state_refs): Make extern.
5566         * lto-streamer.h (lto_input_string): Declare.
5567         (lto_input_data_block): Declare.
5568         (lto_output_string): Declare.
5569         (lto_output_string_with_length): Declare.
5570         (lto_output_decl_state_streams): Declare.
5571         (lto_output_decl_state_refs): Declare.
5572
5573 2011-03-24  Richard Guenther  <rguenther@suse.de>
5574
5575         PR tree-optimization/46562
5576         * tree.c (build_invariant_address): New function.
5577         * tree.h (build_invariant_address): Declare.
5578         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
5579         a renamed function moved ...
5580         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
5581         Take valueization callback parameter.
5582         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
5583         * gimple-fold.h: New file.
5584         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
5585         (ccp_fold, fold_const_aggregate_ref,
5586         fold_ctor_reference, fold_nonarray_ctor_reference,
5587         fold_array_ctor_reference, fold_string_cst_ctor_reference,
5588         get_base_constructor): Move ...
5589         * gimple-fold.c: ... here.
5590         (gimple_fold_stmt_to_constant_1): New function
5591         split out from ccp_fold.  Take a valueization callback parameter.
5592         Valueize all operands.
5593         (gimple_fold_stmt_to_constant): New wrapper function.
5594         (fold_const_aggregate_ref_1): New function split out from
5595         fold_const_aggregate_ref.  Take a valueization callback parameter.
5596         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
5597         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
5598         invariant POINTER_PLUS_EXPRs to invariant form.
5599         (vn_valueize): New function.
5600         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
5601         * tree-vrp.c (vrp_valueize): New function.
5602         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
5603         to fold statements to constants.
5604         * tree-ssa-pre.c (eliminate): Properly guard propagation of
5605         function declarations.
5606         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
5607         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
5608
5609 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
5610
5611         * config/h8300/predicates.md (jump_address_operand): Fix register
5612         mode check.
5613
5614 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
5615
5616         * doc/invoke.texi (max-stores-to-sink): Document.
5617         * params.h (MAX_STORES_TO_SINK): Define.
5618         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
5619         if either vectorization or if-conversion is disabled.
5620         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
5621         tree-vect-data-refs.c vect_equal_offsets.
5622         (dr_equal_offsets_p): New function.
5623         (find_data_references_in_bb): Remove static.
5624         * tree-data-ref.h (find_data_references_in_bb): Declare.
5625         (dr_equal_offsets_p): Likewise.
5626         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
5627         (vect_drs_dependent_in_basic_block): Update calls to
5628         vect_equal_offsets.
5629         (vect_check_interleaving): Likewise.
5630         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
5631         (cond_if_else_store_replacement): Rename to...
5632         (cond_if_else_store_replacement_1): ... this.  Change arguments and
5633         documentation.
5634         (cond_if_else_store_replacement): New function.
5635         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
5636         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
5637
5638 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
5639
5640         PR target/46934
5641         * config/arm/arm.md (casesi): Use the gen_int_mode() function
5642         to subtract lower bound instead of GEN_INT().
5643
5644 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
5645
5646         PR other/48179
5647         PR other/48221
5648         PR other/48234
5649         * doc/extend.texi (Alignment): Move section to match order in TOC.
5650         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
5651         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
5652
5653 2011-03-23  Jeff Law  <law@redhat.com>
5654
5655         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
5656         before removing the edge.
5657
5658         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
5659         it may have been freed by redirect_branch_edge or
5660         redirect_edge_succ_nodup.
5661
5662 2011-03-23  Richard Guenther  <rguenther@suse.de>
5663
5664         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
5665         (check_va_list_escapes): Likewise.
5666         (check_all_va_list_escapes): Likewise.
5667
5668 2011-03-23  Richard Guenther  <rguenther@suse.de>
5669
5670         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
5671         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
5672         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
5673         (alias.o): Likewise.
5674         (ipa-type-escape.o): Remove.
5675         (ipa-struct-reorg.o): Likewise.
5676         (GTFILES): Remove ipa-struct-reorg.c.
5677         * alias.c: Do not include ipa-type-escape.h.
5678         * tree-ssa-alias.c: Likewise.
5679         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
5680         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
5681         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
5682         and ipa-type-escape passes.
5683         * tree-pass.h (pass_ipa_type_escape): Remove.
5684         (pass_ipa_struct_reorg): Likewise.
5685         * ipa-struct-reorg.h: Remove.
5686         * ipa-struct-reorg.c: Likewise.
5687         * ipa-type-escape.h: Likewise.
5688         * ipa-type-escape.c: Likewise.
5689         * doc/invoke.texi (-fipa-struct-reorg): Remove.
5690         (--param struct-reorg-cold-struct-ratio): Likewise.
5691         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
5692         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
5693         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
5694
5695 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5696
5697         * config/s390/2084.md: Enable all insn reservations also for z9_ec
5698         cpu attribute value.
5699         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
5700         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
5701         * config/s390/s390.c (processor_flags_table): New constant array.
5702         (s390_handle_arch_option): Remove.
5703         (s390_handle_option): Remove s390_handle_arch_option invocations
5704         and OPT_mwarn_framesize_ handling.
5705         (s390_option_override): Remove s390_handle_arch_option invocation.
5706         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
5707         warnings.
5708         * config/s390/s390.md (cpu attribute): Add z9_ec value.
5709         * config/s390/s390.opt (s390_tune, s390_arch)
5710         (march=): Replace s390_arch_option enum and values with
5711         processor_type.  Set variable name to s390_arch.  Set
5712         initialization value.
5713         (mtune=): Replace s390_arch_option with processor_type.  Set
5714         variable name to s390_tune.  Set initialization value.
5715
5716 2011-03-23  Julian Brown  <julian@codesourcery.com>
5717
5718         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
5719         accesses which are not naturally aligned.
5720
5721 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
5722
5723         PR target/47553
5724         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
5725
5726 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
5727
5728         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
5729         parameter from "int" to "enum insn_code".
5730         (expand_operand_type): New enum.
5731         (expand_operand): New structure.
5732         (create_expand_operand): New function.
5733         (create_fixed_operand, create_output_operand): Likewise
5734         (create_input_operand, create_convert_operand_to): Likewise.
5735         (create_convert_operand_from, create_address_operand): Likewise.
5736         (create_integer_operand): Likewise.
5737         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
5738         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
5739         (expand_insn, expand_jump_insn): Likewise.
5740         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
5741         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
5742         (expand_movstr, expand_builtin___clear_cache): Likewise.
5743         (expand_builtin_lock_release): Likewise.
5744         * explow.c (allocate_dynamic_stack_space): Likewise.
5745         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
5746         and use the default handling in that case.
5747         * expmed.c (check_predicate_volatile_ok): Delete.
5748         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
5749         (emit_cstore): Likewise.
5750         * expr.c (emit_block_move_via_movmem): Likewise.
5751         (set_storage_via_setmem, expand_assignment): Likewise.
5752         (emit_storent_insn, try_casesi): Likewise.
5753         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
5754         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
5755         (expand_vec_shift_expr, expand_binop_directly): Likewise.
5756         (expand_twoval_unop, expand_twoval_binop): Likewise.
5757         (expand_unop_direct, emit_indirect_jump): Likewise.
5758         (emit_conditional_move, vector_compare_rtx): Likewise.
5759         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
5760         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
5761         (expand_sync_lock_test_and_set): Likewise.
5762         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
5763         (emit_unop_insn): Likewise.
5764         (expand_copysign_absneg): Change icode to an insn_code.
5765         (create_convert_operand_from_type): New function.
5766         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
5767         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
5768         (expand_insn, expand_jump_insn): Likewise.
5769         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
5770         than const_int_operand for operand 2.
5771
5772 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5773
5774         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
5775         if possible.
5776
5777 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
5778
5779         * emit-rtl.c (emit_pattern_before_noloc): New function.
5780         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
5781         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
5782         (emit_pattern_after_noloc): New function.
5783         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
5784         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
5785
5786 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
5787
5788         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
5789         (__ffsDI2): Likewise.
5790
5791 2011-03-22  Richard Henderson  <rth@redhat.com>
5792
5793         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
5794         of !TARGET_ABI_OPEN_VMS.
5795         (alpha_trampoline_init, alpha_start_function): Likewise.
5796         (alpha_expand_epilogue, alpha_file_start): Likewise.
5797         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
5798         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
5799         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
5800         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
5801         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
5802
5803 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5804
5805         * config/s390/s390-opts.h: New.
5806         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
5807         s390_arch_flags, s390_warn_framesize, s390_stack_size,
5808         s390_stack_guard): Remove.
5809         (s390_handle_arch_option): Return void.  Take enum
5810         s390_arch_option value instead of string and searching array.
5811         (s390_handle_option): Don't assert that global structures are in
5812         use.  Access variables via opts pointer.  Use error_at.  Don't use
5813         sscanf for -mstack-guard= or -mstack-size=.  Update call to
5814         s390_handle_arch_option.
5815         (s390_option_override): Update call to s390_handle_arch_option.
5816         (s390_emit_prologue): Use %d format for s390_stack_size in
5817         diagnostic.  Use %wd for HOST_WIDE_INT.
5818         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
5819         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
5820         * config/s390/s390.opt (config/s390/s390-opts.h): New
5821         HeaderInclude entry.
5822         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
5823         s390_arch_flags, s390_warn_framesize): New Variable entries.
5824         (s390_arch_option): New Enum and EnumValue entries.
5825         (march=): Use Enum instead of Var.
5826         (mstack-guard=, mstack-size=): Use UInteger and Var.
5827         (mtune=): Use Enum.
5828
5829 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5830
5831         * config/score/score.c (score_handle_option): Don't assert that
5832         global structures are in use.  Access target_flags via opts
5833         pointer.  Use value of -march= option to determine target_flags
5834         settings.
5835         * config/score/score.opt (march=): Use Enum.
5836         (score_arch): New Enum and EnumValue entries.
5837
5838 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5839
5840         * config/mep/mep.c (option_mtiny_specified): Remove.
5841         (mep_option_override): Move register handling for -mivc2 from
5842         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
5843         instead of option_mtiny_specified.
5844         (mep_handle_option): Access target_flags via opts pointer.  Don't
5845         assert that global structures are in use.  Defer part of -mivc2
5846         handling and move it to mep_option_override.
5847         * config/mep/mep.opt (IVC2): New Mask entry.
5848         (mivc2): Use Var and Defer instead of Mask.
5849
5850 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5851
5852         * config/v850/v850-opts.h: New.
5853         * config/v850/v850.c (small_memory): Replace with
5854         small_memory_physical_max array.  Make that array static const.
5855         (v850_handle_memory_option): Take integer value of argument.  Take
5856         gcc_options pointer, option text and location.  Return void.
5857         Update for changes to small memory structures.
5858         (v850_handle_option): Access target_flags via opts pointer.  Don't
5859         assert that global structures are in use.  Update calls to
5860         v850_handle_memory_option.
5861         (v850_encode_data_area): Update references to small memory settings.
5862         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
5863         (enum small_memory_type): Move to v850-opts.h.
5864         * config/v850/v850.opt (config/v850/v850-opts.h): New
5865         HeaderInclude entry.
5866         (small_memory_max): New Variable entry.
5867         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
5868         (mtda, mzda): Likewise.
5869
5870 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5871
5872         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
5873         pointer.  Don't assert that global structures are in use.
5874
5875 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5876
5877         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
5878         via opts pointer.  Don't assert that global structures are in use.
5879
5880 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5881
5882         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
5883         (munix=93): Use Var.
5884         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
5885         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
5886         * config/pa/pa-opts.h: New.
5887         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
5888         (pa_handle_option): Don't assert that global structures are in
5889         use.  Access target_flags via opts pointer.  Don't handle
5890         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
5891         OPT_munix_98 here.
5892         (pa_option_override): Handle deferred OPT_mfixed_range_.
5893
5894 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5895
5896         * config/mn10300/mn10300-opts.h: New.
5897         * config/mn10300/mn10300.c (mn10300_processor,
5898         mn10300_tune_string): Remove.
5899         (mn10300_handle_option): Don't assert that global structures are
5900         in use.  Access mn10300_processor via opts pointer.  Don't handle
5901         OPT_mtune_ here.
5902         * config/mn10300/mn10300.h (enum processor_type): Move to
5903         mn10300-opts.h.
5904         (mn10300_processor): Remove.
5905         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
5906         HeaderInclude entry.
5907         (mn10300_processor): New Variable entry.
5908         (mtune=): Use Var.
5909
5910 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5911
5912         * config/microblaze/microblaze.c: Don't include opts.h.
5913         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
5914         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
5915         (mno-clearbss): Use Var and Warn.
5916
5917 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5918
5919         * config/m32r/m32r-opts.h: New.
5920         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
5921         (m32r_handle_option): Don't assert that global structures are in
5922         use.  Access target_flags and m32r_cache_flush_func via opts
5923         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
5924         OPT_mno_flush_trap here.
5925         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
5926         include of m32r-opts.h.
5927         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
5928         HeaderInclude entry.
5929         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
5930         (mmodel=): Use Enum and Var.
5931         (m32r_model): New Enum and EnumValue entries.
5932         (mno-flush-trap): Use Var.
5933         (msdata=): Use Enum and Var.
5934         (m32r_sdata): New Enum and EnumValue entries.
5935
5936 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5937
5938         * config/m32c/m32c.c: Don't include opts.h.
5939         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
5940         m32c_handle_option): Remove.
5941         (m32c_option_override): Check global_options_set.x_target_memregs
5942         instead of target_memregs_set.
5943         * config/m32c/m32c.h (target_memregs): Remove.
5944         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
5945         variable.
5946
5947 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5948
5949         * config/iq2000/iq2000-opts.h: New.
5950         * config/iq2000/iq2000.c: Don't include opts.h.
5951         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
5952         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
5953         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
5954         HeaderInclude entry.
5955         (iq2000_tune): New Variable entry.
5956         (march=): Add comment.  Use Enum.
5957         (iq2000_arch): New Enum and EnumValue entries.
5958         (mcpu=): Use Enum and Var.
5959         (iq2000_tune): New Enum and EnumValue entries.
5960
5961 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5962
5963         * config/ia64/ia64-opts.h: New.
5964         * config/ia64/ia64.c (ia64_tune): Remove.
5965         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
5966         here.  Use error_at.
5967         (ia64_option_override): Handle deferred OPT_mfixed_range_.
5968         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
5969         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
5970         HeaderInclude entry.
5971         (ia64_tune): New Variable entry.
5972         (mfixed-range=): Use Defer and Var.
5973         (mtune=): Use Enum and Var.
5974         (ia64_tune): New Enum and EnumValue entries.
5975
5976 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5977
5978         * config/frv/frv-opts.h: New.
5979         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
5980         frv-opts.h.
5981         (frv_cpu_type): Remove.
5982         * config/frv/frv.c: Don't include opts.h.
5983         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
5984         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
5985         (frv_cpu_type): New Variable entry.
5986         (frv_cpu): New Enum and EnumValue entries.
5987
5988 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5989
5990         * config/cris/cris.c (cris_handle_option): Access target_flags via
5991         opts pointer.  Don't assert that global structures are in use.
5992         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
5993         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
5994
5995 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5996
5997         * config/bfin/bfin-opts.h: New.
5998         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
5999         bfin_si_revision, bfin_workarounds): Remove.
6000         (bfin_cpus): Make static const.
6001         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
6002         not bfin_lib_id_given.
6003         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
6004         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
6005         pointer. Use error_at.  Don't assert that global structures are in use.
6006         * config/bfin/bfin.h: Include bfin-opts.h.
6007         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
6008         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
6009         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
6010         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
6011         entries.
6012
6013 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6014
6015         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
6016         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
6017         or -msoft-float here.
6018         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
6019         -msoft-float and -mhard-float.
6020         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
6021         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
6022         msoft-float.
6023         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
6024         -msoft-float.
6025         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
6026         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
6027         not mhard-float.
6028         (LIBGCC_SPEC): Don't handle -msoft-float.
6029         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
6030         -mhard-float.
6031         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
6032         msoft-float.
6033         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
6034         -mfloat-abi=*, not -msoft-float and -mhard-float.
6035         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
6036         -msoft-float.
6037         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
6038         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
6039         mhard-float and msoft-float.
6040         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
6041         mfloat-abi=soft in comments, not mhard-float and msoft-float.
6042         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
6043         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
6044         mhard-float.
6045         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
6046         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
6047         msoft-float.
6048         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
6049         not mhard-float.
6050         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
6051         not msoft-float.
6052
6053 2011-03-22  Richard Henderson  <rth@redhat.com>
6054
6055         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
6056         TARGET_ABI_WINDOWS_NT.
6057         (alpha_output_function_end_prologue): Likewise.
6058         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
6059         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
6060         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
6061         (trap, *movsi_nt_vms): Likewise.
6062         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
6063         (*tablejump_osf_nt_internal): Remove.
6064         * config/alpha/predicates.md (input_operand): Only test Pmode.
6065
6066 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6067
6068         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
6069         via opts pointer.  Use error_at.  Don't assert that global
6070         structures are in use.
6071
6072 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6073
6074         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
6075         (ix86_handle_option): Access ix86_isa_flags and
6076         ix86_isa_flags_explicit via opts pointer.  Don't assert that
6077         global structures are in use.
6078         (ix86_function_specific_save, ix86_function_specific_restore):
6079         Update ix86_isa_flags_explicit field name.
6080         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
6081         (ix86_isa_flags_explicit): Rename TargetSave entry to
6082         x_ix86_isa_flags_explicit.
6083
6084 2011-03-22  Richard Henderson  <rth@redhat.com>
6085
6086         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
6087         (alpha_option_override, direct_return): Likewise.
6088         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
6089         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
6090         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
6091         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
6092         (alpha_expand_epilogue, alpha_end_function): Likewise.
6093         (alpha_init_libfuncs): Likewise.
6094         (struct machine_function): Remove unicosmk members.
6095         (print_operand) ['t']: Remove.
6096         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
6097         unicosmk_output_module_name, unicosmk_output_common,
6098         current_section_align, unicosmk_output_text_section_asm_op,
6099         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
6100         unicosmk_section_type_flags, unicosmk_unique_section,
6101         unicosmk_asm_named_section, unicosmk_insert_attributes,
6102         unicosmk_output_align, unicosmk_defer_case_vector,
6103         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
6104         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
6105         unicosmk_output_ssib, unicosmk_add_call_info_word,
6106         unicosmk_extern_head, unicosmk_output_default_externs,
6107         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
6108         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
6109         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
6110         * config/alpha/alpha-protos.h: Update.
6111         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
6112         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
6113         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
6114         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
6115         (*mulsi_se, mulvsi3): Likewise.
6116         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
6117         (*divmodsi_internal, call, call_value, realign): Likewise.
6118         (moddi3, umoddi3): Likewise; remove duplicate expander.
6119         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
6120         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
6121         (*movdi_nofix): Remove r/U alternative.
6122         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
6123         * config/alpha/constraints.md ("U"): Remove.
6124         * config/alpha/predicates.md (call_operand"): Don't test
6125         TARGET_ABI_UNICOSMK.
6126
6127 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6128
6129         * target.def (handle_option): Take gcc_options and
6130         cl_decoded_option pointers and location_t.
6131         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
6132         * doc/tm.texi: Regenerate.
6133         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
6134         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
6135         * lto-opts.c (lto_reissue_options): Generate option structure for
6136         targetm.handle_option call.
6137         * opts.c (target_handle_option): Update call to
6138         targetm.handle_option.  Remove assertions about values now passed
6139         down to hook.
6140         * targhooks.c (default_target_handle_option): New.
6141         * targhooks.h (default_target_handle_option): Declare.
6142         * config/alpha/alpha.c: Include opts.h.
6143         (alpha_handle_option): Update to new hook interface.
6144         * config/arm/arm.c: Include opts.h.
6145         (arm_handle_option): Update to new hook interface.
6146         * config/arm/t-arm (arm.o): Update dependencies.
6147         * config/bfin/bfin.c: Include opts.h.
6148         (bfin_handle_option): Update to new hook interface.
6149         * config/cris/cris.c: Include opts.h.
6150         (cris_handle_option): Update to new hook interface.
6151         * config/frv/frv.c: Include opts.h.
6152         (frv_handle_option): Update to new hook interface.
6153         * config/i386/i386.c: Include opts.h.
6154         (ix86_handle_option): Update to new hook interface.
6155         (ix86_valid_target_attribute_inner_p): Generate option structure
6156         for call to ix86_handle_option.
6157         * config/i386/t-i386 (i386.o): Update dependencies.
6158         * config/ia64/ia64.c: Include opts.h.
6159         (ia64_handle_option): Update to new hook interface.
6160         * config/ia64/t-ia64 (ia64.o): Update dependencies.
6161         * config/iq2000/iq2000.c: Include opts.h.
6162         (iq2000_handle_option): Update to new hook interface.
6163         * config/m32c/m32c.c: Include opts.h.
6164         (m32c_handle_option): Update to new hook interface.
6165         * config/m32r/m32r.c: Include opts.h.
6166         (m32r_handle_option): Update to new hook interface.
6167         * config/m68k/m68k.c: Include opts.h.
6168         (m68k_handle_option): Update to new hook interface.
6169         * config/mep/mep.c: Include opts.h.
6170         (mep_handle_option): Update to new hook interface.
6171         * config/microblaze/microblaze.c: Include opts.h.
6172         (microblaze_handle_option): Update to new hook interface.
6173         * config/mips/mips.c: Include opts.h.
6174         (mips_handle_option): Update to new hook interface.
6175         * config/mn10300/mn10300.c: Include opts.h.
6176         (mn10300_handle_option): Update to new hook interface.
6177         * config/pa/pa.c: Include opts.h.
6178         (pa_handle_option): Update to new hook interface.
6179         * config/pdp11/pdp11.c: Include opts.h.
6180         (pdp11_handle_option): Update to new hook interface.
6181         * config/rs6000/rs6000.c: Include opts.h.
6182         (rs6000_handle_option): Update to new hook interface.
6183         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
6184         * config/rx/rx.c: Include opts.h.
6185         (rx_handle_option): Update to new hook interface.
6186         * config/s390/s390.c: Include opts.h.
6187         (s390_handle_option): Update to new hook interface.
6188         * config/score/score.c: Include opts.h.
6189         (score_handle_option): Update to new hook interface.
6190         * config/sh/sh.c: Include opts.h.
6191         (sh_handle_option): Update to new hook interface.
6192         * config/sparc/sparc.c: Include opts.h.
6193         (sparc_handle_option): Update to new hook interface.
6194         * config/v850/v850.c: Include opts.h.
6195         (v850_handle_option): Update to new hook interface.
6196
6197 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6198
6199         * gcc.c (driver_unknown_option_callback): Only permit and save
6200         unknown -Wno- options.
6201         (driver_wrong_lang_callback): Save options directly instead of via
6202         driver_unknown_option_callback.
6203
6204 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
6205
6206         * combine.c (simplify_set): Try harder to find the best CC mode when
6207         simplifying a nested COMPARE on the RHS.
6208
6209 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6210
6211         * config/alpha/gnu.h: Remove.
6212         * config/arc: Remove directory.
6213         * config/arm/netbsd.h: Remove.
6214         * config/arm/t-pe: Remove.
6215         * config/crx: Remove directory.
6216         * config/i386/netbsd.h: Remove.
6217         * config/m68hc11: Remove directory.
6218         * config/m68k/uclinux-oldabi.h: Remove.
6219         * config/mcore/mcore-pe.h: Remove.
6220         * config/mcore/t-mcore-pe: Remove.
6221         * config/netbsd-aout.h: Remove.
6222         * config/rs6000/gnu.h: Remove.
6223         * config/sh/sh-symbian.h: Remove.
6224         * config/sh/symbian-base.c: Remove.
6225         * config/sh/symbian-c.c: Remove.
6226         * config/sh/symbian-cxx.c: Remove.
6227         * config/sh/symbian-post.h: Remove.
6228         * config/sh/symbian-pre.h: Remove.
6229         * config/sh/t-symbian: Remove.
6230         * config/svr3.h: Remove.
6231         * config/vax/netbsd.h: Remove.
6232         * config.build: Don't handle i[34567]86-*-pe.
6233         * config.gcc: Remove handling of deprecations for most deprecated
6234         targets.
6235         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
6236         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
6237         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
6238         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
6239         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
6240         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
6241         Remove cases.
6242         * config.host: Don't handle i[34567]86-*-pe.
6243         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
6244         (ASM_SPEC32): Don't handle -mcall-gnu.
6245         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
6246         -mcall-gnu.
6247         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
6248         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
6249         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
6250         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
6251         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
6252         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
6253         conditional on SYMBIAN.
6254         * configure.ac: Don't handle powerpc*-*-gnu*.
6255         * configure: Regenerate.
6256         * doc/extend.texi (interrupt attribute): Don't mention CRX.
6257         * doc/install-old.texi (m6811, m6812): Don't mention.
6258         * doc/install.texi (arc-*-elf*): Don't document multilib option.
6259         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
6260         (m68k-uclinuxoldabi): Don't mention.
6261         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
6262         Remove.
6263         (-mcall-gnu): Remove.
6264         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
6265         families): Remove constraint documentation.
6266
6267 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
6268
6269         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
6270         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
6271         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
6272
6273 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
6274
6275         * config/avr/avr-protos.h (expand_epilogue): Change prototype
6276         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
6277         * config/avr/avr.c (init_cumulative_args)
6278         (avr_function_arg_advance): Use it.
6279         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
6280         sibcall epilogues.
6281         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
6282         (avr_function_ok_for_sibcall): ...this new function.
6283         (avr_lookup_function_attribute1): New static Function.
6284         (avr_naked_function_p, interrupt_function_p)
6285         (signal_function_p, avr_OS_task_function_p)
6286         (avr_OS_main_function_p): Use it.
6287         * config/avr/avr.md ("sibcall", "sibcall_value")
6288         ("sibcall_epilogue"): New expander.
6289         ("*call_insn", "*call_value_insn"): New insn.
6290         ("call_insn", "call_value_insn"): Remove
6291         ("call", "call_value", "epilogue"): Change expander to handle
6292         sibling calls.
6293
6294 2011-03-21  Nick Clifton  <nickc@redhat.com>
6295
6296         * doc/invoke.texi (Overall Options): Move closing brace to end of
6297         options list.
6298         (Optimization Options): Add missing @gol.
6299         (Directory Options): Likewise.
6300         (i386 and x86-64 Options): Likewise.
6301         (RS6000 and PowerPC Options): Likewise.
6302         (i386 and x86-64 Windows Options): Likewise.
6303         (V850 Options): Add text missing from descriptions.
6304
6305 2011-03-22  Richard Henderson  <rth@redhat.com>
6306
6307         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
6308         (avr_incoming_return_addr_rtx): New.
6309         (emit_push_byte): New.
6310         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
6311         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
6312         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
6313         (emit_pop_byte): New.
6314         (expand_epilogue): Use it.  Pop frame pointer by bytes.
6315         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
6316         (INCOMING_RETURN_ADDR_RTX): New.
6317         (INCOMING_FRAME_SP_OFFSET): New.
6318         (ARG_POINTER_CFA_OFFSET): New.
6319         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
6320         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
6321         (pophi): Remove.
6322
6323         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
6324
6325 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
6326
6327         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
6328         (FUNCTION_ARG_ADVANCE): Likewise.
6329         * tm.texi.in: Change references to them to hook references.
6330         * tm.texi: Regenerate.
6331         * targhooks.c (default_function_arg): Eliminate check for target
6332         macro.
6333         (default_function_incoming_arg): Likewise.
6334         (default_function_arg_advance): Likewise.
6335         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
6336         (function_arg_advance): Likewise.
6337         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
6338
6339 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
6340
6341         * tree.c (build_call_1): New function.
6342         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
6343
6344 2011-03-22  Richard Guenther  <rguenther@suse.de>
6345
6346         PR tree-optimization/48228
6347         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
6348         for single-arg PHIs.
6349
6350 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
6351
6352         PR rtl-optimization/48143
6353         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
6354         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
6355         sse2_cvtps2pd): Likewise.
6356
6357 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6358
6359         * recog.c (canonicalize_change_group): Use validate_unshare_change.
6360
6361 2011-03-22  Richard Guenther  <rguenther@suse.de>
6362
6363         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
6364         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
6365         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
6366         and REALIGN_LOAD_EXPR.
6367         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
6368         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
6369         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
6370         DOT_PROD_EXPR case ...
6371         (expand_expr_real_2): ... here.
6372         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
6373         and REALIGN_LOAD_EXPR.
6374         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
6375         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
6376         (vect_create_epilog_for_reduction): Likewise.
6377         (vectorizable_reduction): Likewise.
6378         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
6379         * tree-vect-stmts.c (vectorizable_load): Likewise.
6380
6381 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
6382
6383         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
6384
6385 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6386
6387         * config/s390/s390.c (s390_delegitimize_address): Fix offset
6388         handling for PLTOFF/GOTOFF.
6389
6390 2011-03-22  Nick Clifton  <nickc@redhat.com>
6391
6392         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
6393         trailing backslash from the end of the macro definition.
6394
6395 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6396
6397         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
6398         and PLT unspecs.
6399
6400 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
6401
6402         * expr.h (prepare_operand): Move to...
6403         * optabs.h (prepare_operand): ...here and change the insn code
6404         parameter from "int" to "enum insn_code".
6405         (insn_operand_matches): Declare.
6406         * expr.c (init_expr_target): Use insn_operand_matches.
6407         (compress_float_constant): Likewise.
6408         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
6409         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
6410         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
6411         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
6412         Likewise.
6413         (gen_cond_trap): Likewise.
6414         (prepare_operand): Likewise.  Change icode to an insn_code.
6415         (insn_operand_matches): New function.
6416         * reload.c (find_reloads_address_1): Use insn_operand_matches.
6417         * reload1.c (gen_reload): Likewise.
6418         * targhooks.c (default_secondary_reload): Likewise.
6419
6420 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
6421
6422         * config/alpha/alpha.md (unspec): New define_c_enum.
6423         (unspecv): Ditto.
6424
6425 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
6426
6427         PR debug/48214
6428         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
6429         between a call and its CALL_ARG_LOCATION note.
6430
6431 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
6432
6433         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
6434
6435 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
6436
6437         PR c/42544
6438         PR c/48197
6439         * c-common.c (shorten_compare): If primopN is first sign-extended
6440         to opN and then zero-extended to result type, set primopN to opN.
6441
6442 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
6443
6444         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
6445         for barrier handlers.
6446
6447 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
6448
6449         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
6450         UNSPEC constants to be in the unspec enumeration, and redefine
6451         all UNSPECV constants to be in the unspecv enumeration, so that
6452         dumps print which unspec/unspec_volatile this is.
6453         * config/rs6000/vector.md (UNSPEC_*): Ditto.
6454         * config/rs6000/paired.md (UNSPEC_*): Ditto.
6455         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
6456         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
6457         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
6458
6459         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
6460         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
6461         UNSPECV_LWSYNC, since these are used as unspec_volatile.
6462         * config/rs6000/sync.md (isync, lwsync): Ditto.
6463
6464 2011-03-21  Richard Guenther  <rguenther@suse.de>
6465
6466         * params.def (lto-min-partition): Fix typo.
6467
6468 2011-03-21  Richard Guenther  <rguenther@suse.de>
6469
6470         PR c/47939
6471         * c-decl.c (grokdeclarator): Drop to the main variant only
6472         for array types.  Drop flag_gen_aux_info check.
6473
6474 2011-03-21  Richard Guenther  <rguenther@suse.de>
6475
6476         PR translation/47911
6477         * params.def (lto-partitions): Fix typo.
6478         (lto-min-partition): Fix wording.
6479
6480 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
6481
6482         * config/rs6000/t-freebsd: Remove duplication from file.
6483
6484 2011-03-21  Richard Guenther  <rguenther@suse.de>
6485
6486         PR middle-end/47661
6487         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
6488
6489 2011-03-21  Richard Guenther  <rguenther@suse.de>
6490
6491         PR lto/48210
6492         * params.def (lto-partitions): Require at least 1 partition.
6493
6494 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6495
6496         * gthr-solaris.h: Remove.
6497         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
6498         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
6499         (LIB_SPEC): Likewise.
6500         * config/sol2.opt (threads): Remove.
6501         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
6502         (sparc*-*-solaris2*): Likewise.
6503         * configure.ac (enable_threads): Enable solaris support.
6504         * configure: Regenerate.
6505         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
6506         * doc/install.texi (Configuration, --enable-threads=lib): Remove
6507         solaris.
6508
6509 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6510
6511         * config.gcc: Obsolete *-*-solaris2.8*.
6512         * doc/install.texi (Specific, *-*-solaris2*): Document it.
6513
6514 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6515
6516         PR bootstrap/48135
6517         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
6518         reference.  Solaris 8 perl works.
6519
6520 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6521
6522         PR bootstrap/48135
6523         * doc/install.texi (Prerequisites): Move jar etc. up.
6524         Explain support library version requirements.
6525
6526 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6527
6528         PR bootstrap/48135
6529         * doc/install.texi (Prerequisites): Move Perl to build
6530         requirements.  Always necessary on Solaris 2 with Sun ld.
6531
6532 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6533
6534         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
6535         binutils 2.21.
6536         (Specific, i?86-*-solaris2.[89]): Likewise.
6537         (Specific, i?86-*-solaris2.10): Likewise.
6538         (Specific, mips-sgi-irix6): Likewise.
6539         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
6540         Update for binutils 2.21.
6541
6542 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6543
6544         * configure.ac (gcc_cv_lto_plugin): Fix typo.
6545         Allow -fuse-linker-plugin for non-default plugin linker.
6546         * configure: Regenerate.
6547
6548 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
6549
6550         PR bootstrap/48167
6551         * gengtype.c (files_rules): Added rule for cp/parser.h.
6552
6553 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
6554
6555         PR target/48213
6556         * config/s390/s390.c (s390_delegitimize_address): Don't call
6557         lowpart_subreg if orig_x has BLKmode.
6558
6559 2011-03-21  Kai Tietz  <ktietz@redhat.com>
6560
6561         PR target/12171
6562         * doc/plugins.texi: Adjust documentation for plugin register_callback.
6563         * tree.h (attribute_spec): Add new member affects_type_identity.
6564         * attribs.c (empty_attribute_table): Adjust attribute_spec
6565         initializers.
6566         * config/alpha/alpha.c: Likewise.
6567         * config/arc/arc.c: Likewise.
6568         * config/arm/arm.c: Likewise.
6569         * config/avr/avr.c: Likewise.
6570         * config/bfin/bfin.c: Likewise.
6571         * config/crx/crx.c: Likewise.
6572         * config/darwin.h: Likewise.
6573         * config/h8300/h8300.c: Likewise.
6574         * config/i386/cygming.h: Likewise.
6575         * config/i386/i386.c: Likewise.
6576         * config/ia64/ia64.c: Likewise.
6577         * config/m32c/m32c.c: Likewise.
6578         * config/m32r/m32r.c: Likewise.
6579         * config/m68hc11/m68hc11.c: Likewise.
6580         * config/m68k/m68k.c: Likewise.
6581         * config/mcore/mcore.c: Likewise.
6582         * config/mep/mep.c: Likewise.
6583         * config/microblaze/microblaze.c: Likewise.
6584         * config/mips/mips.c: Likewise.
6585         * config/rs6000/rs6000.c: Likewise.
6586         * config/rx/rx.c: Likewise.
6587         * config/sh/sh.c: Likewise.
6588         * config/sol2.h: Likewise.
6589         * config/sparc/sparc.c: Likewise.
6590         * config/spu/spu.c: Likewise.
6591         * config/stormy16/stormy16.c: Likewise.
6592         * config/v850/v850.c: Likewise.
6593
6594 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
6595
6596         * simplify-rtx.c (simplify_binary_operation_1): Handle
6597         (xor (and A B) C) case when B and C are both constants.
6598
6599 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
6600
6601         * tree-dfa.c (add_referenced_var): Fix typo in comment.
6602
6603 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
6604
6605         PR bootstrap/48168
6606         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
6607
6608 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
6609
6610         PR rtl-optimization/48156
6611         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
6612         assume df and df_lr are not NULL.
6613
6614 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6615
6616         PR debug/48023
6617         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
6618         between a call and its CALL_ARG_LOCATION note.
6619
6620 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
6621
6622         PR debug/48178
6623         * config/sh/sh.c (find_barrier): Don't emit a constant pool
6624         between a call and its corresponding CALL_ARG_LOCATION note.
6625
6626 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
6627
6628         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
6629         instead of loop. Use HARD_REGISTER_NUM_P predicate.
6630         * haifa-sched.c (setup_ref_regs): Ditto.
6631         * caller-save.c (add_used_regs_1): Ditto.
6632         * dse.c (look_for_hardregs): Ditto.
6633         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
6634         * sched-rgn.c (check_live_1): Ditto.
6635
6636 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
6637
6638         * c-decl.c (diagnose_mismatched_decls): Give an error for
6639         redefining a typedef with variably modified type.
6640
6641 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
6642
6643         * c-decl.c (grokfield): Don't allow typedefs for structures or
6644         unions with no tag by default.
6645         * doc/extend.texi (Unnamed Fields): Update.
6646
6647 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
6648
6649         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
6650         Rewrite using indirect functions.
6651         (lwp_slwpcb): Ditto.
6652         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
6653         (avx_vinsertf128<mode>): Ditto.
6654
6655 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6656
6657         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
6658         unspecs.
6659
6660 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6661
6662         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
6663         splitting between a call and its corresponding CALL_ARG_LOCATION note.
6664
6665 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6666
6667         PR rtl-optimization/48170
6668         * gcse.c (hoist_code): Remove bogus asserts.
6669
6670 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
6671
6672         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
6673         computation for prologue/epilogue.
6674
6675 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6676
6677         * Makefile.in (check-consistency): Remove.
6678
6679 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
6680
6681         PR debug/48176
6682         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
6683         arange_table_in_use is 0, but either text_section_used or
6684         cold_text_section_used is true.  Don't call it if
6685         !info_section_emitted.
6686
6687 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
6688
6689         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
6690         FUNCTION_VALUE_REGNO_P): Remove.
6691         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
6692         Remove.
6693         * config/avr/avr.c (avr_ret_register): Make static inline.
6694         (avr_function_value_regno_p): New function.
6695         (avr_libcall_value): Make static. Add 'func' argument.
6696         (avr_function_value): Make static. Rename 'func' argument to
6697         'fn_decl_or_type', forward it to avr_libcall_value. Call
6698         avr_ret_register function instead of RET_REGISTER macro.
6699         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
6700
6701 2011-03-18  Jason Merrill  <jason@redhat.com>
6702
6703         PR c++/23372
6704         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
6705
6706 2011-03-18  Richard Guenther  <rguenther@suse.de>
6707
6708         * doc/install.texi (--enable-gold): Remove.
6709         (--with-plugin-ld): Document.
6710         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
6711
6712 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
6713
6714         PR middle-end/47790
6715         * expr.c (optimize_bitfield_assignment_op): Revamp to work
6716         again after expansion changes.
6717
6718 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
6719
6720         * combine.c (try_combine): Do simplification only call of
6721         subst() on i2 even when i1 is present. Update comments.
6722
6723 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6724
6725         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
6726         and UNSPEC_PCREL_SYMOFF.
6727
6728 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6729
6730         * config/s390/s390.md: Use define_c_enum for the unspec constant
6731         definitions.
6732
6733 2011-03-18  Richard Henderson  <rth@redhat.com>
6734             Jakub Jelinek  <jakub@redhat.com>
6735
6736         PR bootstrap/48161
6737         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
6738         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
6739
6740 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6741
6742         PR middle-end/47725
6743         * combine.c (cant_combine_insn_p): Don't check zero/sign
6744         extended hard registers.
6745
6746 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6747
6748         PR middle-end/47725
6749         * combine.c (cant_combine_insn_p): Check zero/sign extended
6750         hard registers.
6751
6752 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
6753
6754         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
6755         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
6756         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
6757         Change return type to bool.
6758         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
6759
6760 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
6761
6762         PR debug/48163
6763         * var-tracking.c (prepare_call_arguments): If CALL target
6764         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
6765         pc instead of looking it up using cselib_lookup and use
6766         Pmode for it if x has VOIDmode.
6767         * dwarf2out.c (gen_subprogram_die): If also both first and
6768         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
6769
6770         PR debug/48163
6771         * function.c (assign_parms): For data.passed_pointer parms
6772         use MEM of data.entry_parm instead of data.entry_parm itself
6773         as DECL_INCOMING_RTL.
6774         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
6775         also when passed and declared mode is the same, DECL_RTL
6776         is a MEM with pseudo as address and DECL_INCOMING_RTL is
6777         a MEM too.
6778
6779 2011-03-16  Jeff Law  <law@redhat.com>
6780
6781         PR rtl-optimization/37273
6782         * ira-costs.c (scan_one_insn): Detect constants living in memory and
6783         handle them like argument loads from stack slots.  Do not double
6784         count memory for memory constants and argument loads from stack slots.
6785
6786 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6787
6788         PR debug/48160
6789         * var-tracking.c (prepare_call_arguments): Check SUBREG.
6790
6791 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6792
6793         PR target/48171
6794         * config/i386/i386.opt: Add Save to -mavx and -mfma.
6795
6796 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
6797
6798         PR bootstrap/48153
6799         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
6800         if dwarf_strict.
6801         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
6802         Clear call_arg_locations and call_arg_loc_last always.
6803
6804         PR middle-end/48152
6805         * var-tracking.c (prepare_call_arguments): If argument needs to be
6806         passed by reference, adjust argtype and mode.
6807
6808 2011-03-17  Richard Guenther  <rguenther@suse.de>
6809
6810         PR middle-end/48134
6811         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
6812         a value make sure to fold the statement.
6813
6814 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
6815
6816         PR target/43872
6817         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
6818         return condition with !cfun->calls_alloca.
6819
6820 2011-03-17  Richard Guenther  <rguenther@suse.de>
6821
6822         PR bootstrap/48148
6823         * lto-cgraph.c (input_overwrite_node): Clear the abstract
6824         origin for decls in other ltrans units.
6825         (input_varpool_node): Likewise.
6826
6827 2011-03-17  Richard Guenther  <rguenther@suse.de>
6828
6829         PR middle-end/48165
6830         * tree-object-size.c (compute_object_offset): Properly return
6831         the offset operand of MEM_REFs as sizetype.
6832
6833 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
6834
6835         PR rtl-optimization/48141
6836         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
6837         * dse.c: Include params.h.
6838         (active_local_stores_len): New variable.
6839         (add_wild_read, dse_step1): Clear it when setting active_local_stores
6840         to NULL.
6841         (record_store, check_mem_read_rtx): Decrease it when removing
6842         from the chain.
6843         (scan_insn): Likewise.  Increase it when adding to chain, if it
6844         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
6845         set active_local_stores to NULL before the addition.
6846         * Makefile.in (dse.o): Depend on $(PARAMS_H).
6847
6848         PR rtl-optimization/48141
6849         * dse.c (record_store): If no positions are needed in an insn
6850         that cannot be deleted, at least unchain it from active_local_stores.
6851
6852 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
6853
6854         PR debug/47510
6855         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
6856         (lookup_type_die_strip_naming_typedef): ... here.
6857         (get_context_die): Use it.
6858         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
6859         the anonymous struct named by the naming typedef.
6860
6861 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
6862
6863         PR target/48154
6864         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
6865         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
6866
6867 2011-03-16  Jeff Law  <law@redhat.com>
6868
6869         * tree-vrp.c (identify_jump_threads): Slightly simplify type
6870         check for operands of conditional.  Allow type to be a pointer.
6871
6872 2011-03-16  Richard Guenther  <rguenther@suse.de>
6873
6874         PR tree-optimization/48149
6875         * fold-const.c (fold_binary_loc): Fold
6876         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
6877
6878 2011-03-16  Richard Guenther  <rguenther@suse.de>
6879
6880         PR tree-optimization/26134
6881         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
6882         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
6883         (non_rewritable_mem_ref_base): Handle complex type component
6884         accesses, constrain offsets for vector and complex extracts
6885         more properly.
6886
6887 2011-03-16  Richard Guenther  <rguenther@suse.de>
6888
6889         PR tree-optimization/48146
6890         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
6891         operands avoiding the need for renaming.
6892
6893 2011-03-16  Richard Guenther  <rguenther@suse.de>
6894
6895         * gimple-fold.c (maybe_fold_reference): Open-code relevant
6896         constant folding.  Move MEM_REF canonicalization first.
6897         Rely on fold_const_aggregate_ref for initializer folding.
6898         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
6899
6900 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
6901
6902         PR middle-end/48136
6903         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
6904         arg0/arg1 or their arguments are always fold converted to matching
6905         types.
6906
6907         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
6908         to nargs.
6909
6910 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6911
6912         PR lto/46944
6913         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
6914         Handle in-tree gold.
6915         (ld_vers): Extract binutils version for gold.
6916         (gcc_cv_ld_hidden): Handle gold here.
6917         (gcc_cv_lto_plugin): Determine level of linker plugin support.
6918         * configure: Regenerate.
6919         * config.in: Regenerate.
6920         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
6921         -fuse-linker-plugin otherwise.
6922         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
6923         (LINK_COMMAND_SPEC): Use it.
6924         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
6925
6926 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
6927
6928         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
6929         * calls.c: Remove debug.h include.
6930         (emit_call_1): Don't call virtual_call_token debug hook.
6931         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
6932         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
6933         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
6934         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
6935         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
6936         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
6937         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
6938         dwarf2out_virtual_call): Remove.
6939         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
6940         copy_call_info and virtual_call hooks.
6941         (dwarf2out_init): Don't initialize vcall_insn_table,
6942         debug_dcall_section and debug_vcall_section.
6943         (prune_unused_types): Don't mark nodes from dcall_table.
6944         (dwarf2out_finish): Don't output dcall or vcall tables.
6945         * final.c (final_scan_insn): Don't call direct_call or
6946         virtual_call debug hooks.
6947         * debug.h (struct gcc_debug_hooks): Remove direct_call,
6948         virtual_call_token, copy_call_info and virtual_call hooks.
6949         (debug_nothing_uid): Remove prototype.
6950         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
6951         copy_call_info and virtual_call hooks.
6952         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
6953         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
6954         * debug.c (do_nothing_debug_hooks): Likewise.
6955         (debug_nothing_uid): Remove.
6956         * doc/invoke.texi (-fenable-icf-debug): Remove.
6957         * common.opt (-fenable-icf-debug): Likewise.
6958
6959         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
6960         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
6961         call's MEM.  Handle functions returning aggregate through a hidden
6962         first pointer.  For virtual calls add clobbered pc to call arguments
6963         chain.
6964         * dwarf2out.c (gen_subprogram_die): Emit
6965         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
6966         can't be emitted.
6967
6968         PR debug/45882
6969         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
6970         * rtl.h (ENTRY_VALUE_EXP): Define.
6971         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
6972         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
6973         * print-rtl.c (print_rtx): Likewise.
6974         * gengtype.c (adjust_field_rtx_def): Likewise.
6975         * var-tracking.c (vt_add_function_parameter): Adjust
6976         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
6977         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
6978         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
6979         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
6980         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
6981
6982         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
6983         Call var_location debug hook even on CALL_INSNs.
6984         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
6985         * rtl.def (ENTRY_VALUE): New.
6986         * dwarf2out.c: Include cfglayout.h.
6987         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
6988         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
6989         (struct call_arg_loc_node): New type.
6990         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
6991         tail_call_site_count): New variables.
6992         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
6993         DW_TAG_GNU_call_site_parameter.
6994         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
6995         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
6996         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
6997         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
6998         and DW_AT_GNU_all_source_call_sites.
6999         (mem_loc_descriptor): Handle ENTRY_VALUE.
7000         (add_src_coords_attributes): Don't add enything if
7001         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
7002         (dwarf2out_abstract_function): Save and clear call_arg_location,
7003         call_site_count and tail_call_site_count around dwarf2out_decl call.
7004         (gen_call_site_die): New function.
7005         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
7006         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
7007         (dwarf2out_function_decl): Clear call_arg_locations,
7008         call_arg_loc_last, set call_site_count and tail_call_site_count
7009         to -1 and free block_map.
7010         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
7011         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
7012         followed by any real instructions.
7013         (dwarf2out_begin_function): Set call_site_count and
7014         tail_call_site_count to 0.
7015         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
7016         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
7017         attempt to force a DIE for it and worst case remove the attribute.
7018         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
7019         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
7020         the decl itself.
7021         * var-tracking.c: Include tm_p.h.
7022         (vt_stack_adjustments): For calls call note_register_arguments.
7023         (argument_reg_set): New variable.
7024         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
7025         ensure the VALUE is resolved.
7026         (call_arguments): New variable.
7027         (prepare_call_arguments): New function.
7028         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
7029         (struct expand_loc_callback_data): Add ignore_cur_loc field.
7030         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
7031         always use the best expression.
7032         (vt_expand_loc): Add ignore_cur_loc argument.
7033         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
7034         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
7035         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
7036         note for all calls.
7037         (vt_add_function_parameter): Use cselib_lookup_from_insn.
7038         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
7039         argument.  Don't call cselib_preserve_only_values and
7040         cselib_reset_table.
7041         (note_register_arguments): New function.
7042         (vt_initialize): Compute argument_reg_set.  Call
7043         vt_add_function_parameters before processing basic blocks instead of
7044         afterwards.  For calls call prepare_call_arguments before calling
7045         cselib_process_insn.
7046         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
7047         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
7048         (var-tracking.o): Depend on $(TM_P_H).
7049         * cfglayout.h (insn_scope): New prototype.
7050         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
7051         * cfglayout.c (insn_scope): No longer static.
7052         * insn-notes.def (CALL_ARG_LOCATION): New.
7053         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
7054         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
7055         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
7056         nothing for DECL_EXTERNAL BLOCK_VARS.
7057
7058 2011-03-16  Alan Modra  <amodra@gmail.com>
7059
7060         PR target/45844
7061         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
7062         create invalid offset address for vsx splat insn.
7063         * config/rs6000/predicates.md (splat_input_operand): New.
7064         * config/rs6000/vsx.md (vsx_splat_*): Use it.
7065
7066 2011-03-15  Xinliang David Li  <davidxl@google.com>
7067
7068         PR c/47837
7069         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
7070         (normalize_preds): New function.
7071         (is_use_properly_guarded): Normalize def predicates.
7072
7073 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7074
7075         PR target/46788
7076         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
7077         in the output template.
7078
7079 2011-03-15  Richard Guenther  <rguenther@suse.de>
7080
7081         PR middle-end/47650
7082         * tree-pretty-print.c (dump_function_declaration): Properly
7083         dump unprototyped and varargs function types.
7084
7085 2011-03-15  Richard Guenther  <rguenther@suse.de>
7086
7087         PR tree-optimization/13954
7088         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
7089         and friends.
7090
7091 2011-03-15  Richard Guenther  <rguenther@suse.de>
7092
7093         PR tree-optimization/48037
7094         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
7095         selects into BIT_FIELD_REFs.
7096         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
7097         vector select.
7098
7099 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
7100
7101         PR tree-optimization/48129
7102         * builtins.c (fold_builtin_snprintf): Convert to type of
7103         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
7104         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
7105
7106 2011-03-15  Richard Guenther  <rguenther@suse.de>
7107
7108         PR tree-optimization/41490
7109         * tree-ssa-dce.c (propagate_necessity): Handle returns without
7110         value but with VUSE.
7111         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
7112         return statements.
7113         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
7114         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
7115         * tree-tailcall.c (find_tail_calls): Ignore returns.
7116
7117 2011-03-15  Richard Guenther  <rguenther@suse.de>
7118
7119         PR middle-end/48031
7120         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
7121         or variable-indexed array accesses when in gimple form.
7122
7123 2011-03-15  Richard Guenther  <rguenther@suse.de>
7124
7125         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
7126
7127 2011-03-15  Alan Modra  <amodra@gmail.com>
7128
7129         PR target/48032
7130         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
7131         presume symbol_refs without a symbol_ref_decl are suitably
7132         aligned, nor other trees we may see here.  Handle anchor symbols.
7133         (legitimate_constant_pool_address_p): Comment.  Add mode param.
7134         Check cmodel=medium addresses.  Adjust all calls.
7135         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
7136         creating cmodel=medium optimized access to locals.
7137         * config/rs6000/constraints.md (R): Pass QImode to
7138         legitimate_constant_pool_address_p.
7139         * config/rs6000/predicates.md (input_operand): Pass mode to
7140         legitimate_constant_pool_address_p.
7141         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
7142         Update prototype.
7143
7144 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7145
7146         PR target/48053
7147         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
7148         64-bit constants being loaded into registers other than GPRs such
7149         as loading 0 into a VSX register.
7150
7151 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7152
7153         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
7154
7155 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
7156
7157         PR middle-end/47917
7158         * builtins.c (fold_builtin_snprintf): New function.
7159         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
7160         (fold_builtin_4): Likewise.
7161
7162         PR middle-end/38878
7163         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
7164         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
7165         and C - X == X also strip nops from +/-/p+ operand.
7166         When optimizing -X == C, fold C to arg0's type.
7167
7168         PR debug/47946
7169         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
7170         emit it as add_AT_int instead of add_AT_unsigned.
7171
7172 2011-03-14  Tom Tromey  <tromey@redhat.com>
7173
7174         * unwind-dw2.c: Include sys/sdt.h if it exists.
7175         (_Unwind_DebugHook): Use STAP_PROBE2.
7176         * config.in, configure: Rebuild.
7177         * configure.ac: Check for sys/sdt.h.
7178
7179 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
7180
7181         * config/i386/i386.md (ROUND_FLOOR): New constant.
7182         (ROUND_CEIL): Ditto.
7183         (ROUND_TRUNC): Ditto.
7184         (ROUND_MXCSR): Ditto.
7185         (ROUND_NO_EXC): Ditto.
7186         (rint<mode>2): Use new defines instead of numerical constants.
7187         (floor<mode>2): Ditto.
7188         (ceil<mode>2): Ditto.
7189         (btrunc<mode>2): Ditto.
7190         * config/i386/i386-builtin-types.def: Define ROUND function type
7191         aliases.
7192         * config/i386/i386.c (enum ix86_builtins): Add
7193         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
7194         (struct builtin_description): Add
7195         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
7196         (ix86_expand_sse_round): New static function.
7197         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
7198         function types.
7199         (ix86_builtin_vectorized_function): Handle
7200         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
7201
7202 2011-03-14  Tom Tromey  <tromey@redhat.com>
7203
7204         * c-parser.c (c_parser_asm_string_literal): Clear
7205         warn_overlength_strings.
7206
7207 2011-03-14  Tom Tromey  <tromey@redhat.com>
7208
7209         * c-parser.c (disable_extension_diagnostics): Save
7210         warn_overlength_strings.
7211         (restore_extension_diagnostics): Restore warn_overlength_strings.
7212
7213 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
7214
7215         * BASE-VER: Change to 4.7.0.
7216
7217 2011-03-14  Richard Guenther  <rguenther@suse.de>
7218
7219         PR middle-end/48098
7220         * tree.c (build_vector_from_val): Adjust assert to requirements
7221         and reality.
7222
7223 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
7224
7225         PR bootstrap/48102
7226         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
7227
7228 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
7229
7230         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
7231         terms of target_flags_explicit. Adjust copyright year.
7232
7233         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
7234         * config/rs6000/t-freebsd: New file. Add override for
7235         LIB2FUNCS_EXTRA.
7236
7237 2011-03-13  Chris Demetriou  <cgd@google.com>
7238
7239         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
7240         (-fno-diagnostics-show-option): this, to reflect current default.
7241         (-Werror=): Update text about -fno-diagnostics-show-option.
7242
7243 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
7244
7245         PR target/48053
7246         * config/rs6000/predicates.md (easy_vector_constant_add_self,
7247         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
7248         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
7249         mode is not V2DImode or V2DFmode.
7250         (vspltis_constant): Do not handle V2DImode and V2DFmode.
7251         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
7252         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
7253         registers to 0.
7254         (movdi_internal64): Likewise.
7255
7256 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
7257
7258         PR tree-optimization/47127
7259         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
7260         parameter.
7261         (set_cloog_options): Same.
7262         (scop_to_clast): Same.
7263         (print_clast_stmt): Do not call cloog_state_malloc and
7264         cloog_state_free.
7265         (print_generated_program): Same.
7266         (gloog): Same.
7267         * graphite-clast-to-gimple.h (cloog_state): Declared.
7268         (scop_to_clast): Adjust declaration.
7269         * graphite.c (cloog_state): Defined here.
7270         (graphite_initialize): Call cloog_state_malloc.
7271         (graphite_finalize): Call cloog_state_free.
7272
7273 2011-03-11  Jason Merrill  <jason@redhat.com>
7274
7275         * attribs.c (lookup_attribute_spec): Take const_tree.
7276         * tree.h: Adjust.
7277
7278 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
7279
7280         * config/sparc/sparc.c (sparc_option_override): Use
7281         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
7282
7283 2011-03-11  Richard Guenther  <rguenther@suse.de>
7284
7285         PR tree-optimization/48067
7286         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
7287         multiplication result will be only used once on the target
7288         stmt.
7289
7290 2011-03-11  Richard Guenther  <rguenther@suse.de>
7291
7292         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
7293
7294 2011-03-11  Richard Guenther  <rguenther@suse.de>
7295
7296         PR lto/48073
7297         * tree.c (find_decls_types_r): Do not walk types only reachable
7298         from IDENTIFIER_NODEs.
7299
7300 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
7301
7302         PR middle-end/48044
7303         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
7304         all vnode->force_output nodes as needed.
7305
7306 2011-03-11  Jason Merrill  <jason@redhat.com>
7307
7308         PR c++/48069
7309         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
7310         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
7311
7312 2011-03-11  Martin Jambor  <mjambor@suse.cz>
7313
7314         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
7315         cgraph_node.
7316
7317 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
7318
7319         PR tree-optimization/48063
7320         * ipa-inline.c (cgraph_decide_inlining): Don't try to
7321         inline functions called once if !tree_can_inline_p (node->callers).
7322
7323 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
7324
7325         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
7326         extra_objs.
7327         * config/score/score3.c: Delete.
7328         * config/score/score3.h: Delete.
7329         * config/score/mul-div.S: Delete.
7330         * config/score/sfp-machine.h: Add new file.
7331         * config/score/constraints.md: Add new file.
7332         * config/score/t-score-softfp: Add new file.
7333         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
7334         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
7335         (score7_extra_constraint): Delete.
7336         (score7_option_override): Remove unused code.
7337         * config/score/score.c: Remove score3 and score5 define and code.
7338         * config/score/score.h: Remove score3 and score5 define and code.
7339         * config/score/score.md: Remove score3 template and unusual insn.
7340         * config/score/score.opt: Remove score3 and score5 options.
7341
7342 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7343
7344         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
7345         when _HPUX_SOURCE is defined.
7346         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
7347
7348 2011-03-10  Jason Merrill  <jason@redhat.com>
7349
7350         PR c++/48029
7351         * stor-layout.c (layout_type): Don't set structural equality
7352         on arrays of incomplete type.
7353         * tree.c (type_hash_eq): Handle comparing them properly.
7354
7355 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
7356
7357         PR debug/48043
7358         * config/s390/s390.c (s390_delegitimize_address): Make sure the
7359         result mode matches original rtl mode.
7360
7361 2011-03-10  Nick Clifton  <nickc@redhat.com>
7362
7363         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
7364         (andsi3, andsi3_flags): Fix timings for three operand alternative.
7365
7366 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
7367
7368         PR rtl-optimization/47866
7369         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
7370         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
7371         if target wasn't scalar.
7372         * function.c (assign_stack_temp_for_type): Assert that neither
7373         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
7374         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
7375         macro.
7376         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
7377
7378 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7379
7380         * config/s390/s390-protos.h (s390_label_align): New prototype.
7381         * config/s390/s390.c (s390_label_align): New function.
7382         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
7383
7384 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
7385
7386         PR target/47755
7387         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
7388         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
7389         (output_vec_const_move): Ditto.
7390
7391 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
7392
7393         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
7394         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
7395         * config/mips/mips.c (mips_preferred_reload_class): Make static.
7396         Change 'rclass' argument and result type to reg_class_t.
7397         (TARGET_PREFERRED_RELOAD_CLASS): Define.
7398
7399 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
7400
7401         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7402         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
7403         (TARGET_MEMORY_MOVE_COST): Define.
7404         (avr_register_move_cost, avr_memory_move_cost): New Functions.
7405
7406 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
7407
7408         PR debug/47881
7409         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
7410         removed anything.
7411
7412         PR tree-optimization/48022
7413         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
7414         for EQ/NE_EXPR.
7415
7416 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
7417
7418         PR debug/47991
7419         * var-tracking.c (find_use_val): Return NULL for
7420         cui->sets && cui->store_p BLKmode MEMs.
7421
7422 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
7423
7424         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
7425         Remove.
7426         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
7427         xstormy16_print_operand_address): Remove.
7428         * config/stormy16/stormy16.c (xstormy16_print_operand,
7429         xstormy16_print_operand_address): Make static.
7430         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
7431
7432 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
7433
7434         PR target/47862
7435         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
7436         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
7437         before definition.
7438
7439 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
7440
7441         PR bootstrap/48000
7442         * cfgloopmanip.c (fix_bb_placements): Return immediately
7443         if FROM is BASE_LOOP's header.
7444
7445 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
7446
7447         * gimplify.c (gimplify_function_tree): Fix building calls
7448         to __builtin_return_address.
7449
7450 2011-03-07  Alan Modra  <amodra@gmail.com>
7451
7452         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
7453         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
7454         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
7455         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
7456         return_mode args.
7457         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
7458         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
7459         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
7460         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
7461         * config/rs6000/rs6000.c
7462         (rs6000_elf_end_indicate_exec_stack): Rename to..
7463         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
7464         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
7465         (rs6000_file_start): ..here.
7466         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
7467         file scope variables.
7468         (call_ABI_of_interest): New function.
7469         (init_cumulative_args): Set above vars when function return value
7470         is a float, vector, or small struct.
7471         (rs6000_function_arg_advance_1): Likewise for function args.
7472         (rs6000_va_start): Set rs6000_passes_float if variable arg function
7473         references float args.
7474
7475 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
7476
7477         * doc/cfg.texi: Remove "See" before @ref.
7478         * doc/invoke.texi: Likewise.
7479
7480 2011-03-05  Jason Merrill  <jason@redhat.com>
7481
7482         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
7483
7484 2011-03-05  Anthony Green  <green@moxielogic.com>
7485
7486         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
7487
7488 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
7489
7490         PR rtl-optimization/47899
7491         * cfgloopmanip.c (fix_bb_placements): Fix first argument
7492         to flow_loop_nested_p when moving the loop upward.
7493
7494 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
7495
7496         PR target/47719
7497         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
7498
7499 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
7500
7501         PR tree-optimization/47967
7502         * ipa-cp.c (build_const_val): Return NULL instead of creating
7503         VIEW_CONVERT_EXPR for mismatching sizes.
7504         (ipcp_create_replace_map): Return NULL if build_const_val failed.
7505         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
7506         give up on versioning.
7507
7508 2011-03-05  Alan Modra  <amodra@gmail.com>
7509
7510         PR target/47986
7511         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
7512         full cmodel medium/large lo_sum + high addresses.
7513
7514 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7515
7516         * config/s390/s390.c (s390_decompose_address): Reject non-literal
7517         pool references in UNSPEC_LTREL_OFFSET.
7518
7519 2011-03-04  Jan Hubicka  <jh@suse.cz>
7520
7521         PR lto/47497
7522         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
7523         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
7524         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
7525         Add node pointers.
7526         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
7527         cgraph_add_thunk): Add node pointers.
7528         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
7529         associated to right node.
7530         (input_node): Update use of cgraph_same_body_alias
7531         and cgraph_add_thunk.
7532
7533 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
7534
7535         * config/i386/i386.opt (mprefer-avx128): New flag.
7536         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
7537         modes when the flag -mprefer-avx128 is on.
7538
7539 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
7540
7541         * dwarf2out.c (compare_loc_operands): Fix address handling.
7542
7543 2011-03-04  Alan Modra  <amodra@gmail.com>
7544
7545         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
7546
7547 2011-03-04  Richard Guenther  <rguenther@suse.de>
7548
7549         PR middle-end/47968
7550         * expmed.c (extract_bit_field_1): Prefer vector modes that
7551         vec_extract patterns can handle.
7552
7553 2011-03-04  Richard Guenther  <rguenther@suse.de>
7554
7555         PR middle-end/47975
7556         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
7557
7558 2011-03-04  Richard Henderson  <rth@redhat.com>
7559
7560         * explow.c (emit_stack_save): Remove 'after' parameter.
7561         (emit_stack_restore): Likewise.
7562         * expr.h: Update to match.
7563         * builtins.c, calls.c, stmt.c: Likewise.
7564         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
7565         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
7566         * function.c (expand_function_end): Insert the emit_stack_save
7567         sequence before parm_birth_insn instead of after.
7568
7569 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
7570
7571         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
7572         (ssse3_pmaddubsw128): Ditto.
7573         (ssse3_pmaddubsw): Ditto.
7574
7575 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
7576
7577         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
7578
7579 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
7580
7581         PR c/47963
7582         * gimplify.c (omp_add_variable): Only call omp_notice_variable
7583         on TYPE_SIZE_UNIT if it is a DECL.
7584
7585         PR debug/47283
7586         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
7587         first operand is not is_gimple_mem_ref_addr, try to fold it.
7588         If the operand still isn't is_gimple_mem_ref_addr, clear
7589         MEM_EXPR on op0.
7590
7591 2011-03-03  Richard Guenther  <rguenther@suse.de>
7592
7593         PR middle-end/47283
7594         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
7595         match comment.
7596         (refs_may_alias_p_1): For release branches return true if
7597         we are confused by our input.
7598
7599 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7600
7601         * config/s390/s390.c (s390_function_value): Rename to ...
7602         (s390_function_and_libcall_value): ... this.
7603         (s390_function_value): New function.
7604         (s390_libcall_value): New function.
7605         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
7606         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
7607         target macro definitions.
7608         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
7609
7610 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
7611
7612         * config/i386/freebsd64.h (CC1_SPEC): Define.
7613         * config/i386/linux64.h (CC1_SPEC): Define.
7614         * config/i386/x86-64.h (CC1_SPEC): Don't define.
7615
7616 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
7617
7618         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
7619         Remove.
7620         * config/stormy16/stormy16.c: Include reload.h.
7621         (xstormy16_memory_move_cost): New function.
7622         (TARGET_MEMORY_MOVE_COST): Define.
7623
7624 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
7625
7626         PR rtl-optimization/47925
7627         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
7628         with side effects.  Remove the more-specific check for volatile asms.
7629
7630 2011-03-02  Alan Modra  <amodra@gmail.com>
7631
7632         PR target/47935
7633         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
7634         toc relative addresses for valid offsets.
7635
7636 2011-03-01  Richard Guenther  <rguenther@suse.de>
7637
7638         PR tree-optimization/47890
7639         * tree-vect-loop.c (get_initial_def_for_induction): Set
7640         related stmt properly.
7641
7642 2011-03-01  Richard Guenther  <rguenther@suse.de>
7643
7644         PR lto/47924
7645         * lto-streamer.c (lto_record_common_node): Also register
7646         the canonical type.
7647
7648 2011-03-01  Richard Guenther  <rguenther@suse.de>
7649
7650         PR lto/46911
7651         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
7652         Do not stream DECL_ABSTRACT_ORIGIN.
7653         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
7654         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
7655         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
7656         Do not stream DECL_ABSTRACT_ORIGIN.
7657         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
7658         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
7659
7660 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
7661
7662         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
7663         FUNCTION_VALUE_REGNO_P): Remove.
7664         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
7665         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
7666         Add 'outgoing' argument.
7667         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
7668         function.
7669         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7670         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7671
7672 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
7673
7674         PR debug/28047
7675         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
7676         (lookup_filename): Likewise.
7677         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
7678
7679 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
7680             Jakub Jelinek  <jakub@redhat.com>
7681
7682         PR middle-end/47893
7683         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
7684         (assign_stack_local_1): Change last argument type to int.
7685         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
7686         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
7687         don't record padding space into frame_space_list nor use those areas.
7688         (assign_stack_local): Adjust caller.
7689         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
7690         of assign_stack_local, pass 0 as last argument.
7691         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
7692         callers.
7693
7694 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
7695
7696         PR debug/47283
7697         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
7698         Use target address_mode and pointer_mode hooks instead of hardcoded
7699         Pmode and ptr_mode.  Handle some simple cases of extending if
7700         POINTERS_EXTEND_UNSIGNED < 0.
7701         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
7702         Call convert_debug_memory_address.
7703         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
7704         convert_debug_memory_address.
7705
7706         PR middle-end/46790
7707         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
7708         * configure: Regenerated.
7709         * config.in: Regenerated.
7710         * varasm.c (default_function_section): Return NULL
7711         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
7712
7713 2011-02-28  Martin Jambor  <mjambor@suse.cz>
7714
7715         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
7716         the description to match the printed values.
7717
7718 2011-02-28  Richard Guenther  <rguenther@suse.de>
7719
7720         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
7721         of the copied scope tree.
7722
7723 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7724
7725         * doc/extend.texi (Function Attributes): Avoid deeply (and
7726         wrongly) nested tables.
7727
7728 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
7729
7730         PR middle-end/47903
7731         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
7732         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
7733         r isn't op0 nor op1.
7734
7735 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
7736
7737         * config/avr/avr.md: Remove magic comment for emacs.
7738
7739 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
7740
7741         PR target/45261
7742         * config/avr/avr.c (avr_option_override): Use error on bad options.
7743         (avr_help): New function.
7744         (TARGET_HELP): Define.
7745
7746 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
7747
7748         PR target/42240
7749         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
7750         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
7751
7752 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
7753
7754         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
7755         (ARM Options): Ditto.
7756         (i386 and x86-64 Options): Ditto.
7757         (RX Options): Ditto.
7758         (SPARC Options): Ditto.
7759
7760 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
7761
7762         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
7763         FreeBSD 6 and later.  Generally use cpu generic.
7764
7765 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
7766
7767         * doc/cpp.texi: Update copyright years.
7768
7769 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
7770
7771         PR target/46898
7772         * config/lm32/lm32.md (ashrsi3): Added needed variable.
7773
7774 2011-02-25  Jon Beniston  <jon@beniston.com>
7775
7776         PR target/46898
7777         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
7778         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
7779         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
7780         (lm32_block_move_inline): Add type cast to remove warning.
7781         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
7782         (gen_int_relational): Move declarations to start of function.
7783
7784 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
7785
7786         PR tree-optimization/45470
7787         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
7788         can throw internally only.
7789         * tree-vect-stmts.c (vectorizable_call): Likewise.
7790
7791 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
7792
7793         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
7794         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7795         * config/stormy16/stormy16-protos.h
7796         (xstormy16_preferred_reload_class): Remove.
7797         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
7798         static. Change 'rclass' argument and return type to reg_class_t.
7799         (TARGET_PREFERRED_RELOAD_CLASS,
7800         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7801
7802 2011-02-24  Richard Guenther  <rguenther@suse.de>
7803
7804         * lto-streamer-in.c (input_bb): Do not find referenced vars
7805         in debug statements.
7806
7807 2011-02-23  Jason Merrill  <jason@redhat.com>
7808
7809         * common.opt (fabi-version): Document v5 and v6.
7810
7811 2011-02-23  Richard Guenther  <rguenther@suse.de>
7812
7813         PR tree-optimization/47849
7814         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
7815
7816 2011-02-23  Jie Zhang  <jie@codesourcery.com>
7817
7818         * opts-common.c (decode_cmdline_option): Print empty string
7819         argument as "" in decoded->orig_option_with_args_text.
7820         * gcc.c (execute): Print empty string argument as ""
7821         in the verbose output.
7822         (do_spec_1): Keep empty string argument.
7823
7824 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
7825
7826         * config.gcc: Declare score-* and crx-* obsolete.
7827
7828 2011-02-23  Jie Zhang  <jie@codesourcery.com>
7829
7830         PR rtl-optimization/47763
7831         * web.c (web_main): Ignore naked clobber when replacing register.
7832
7833 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
7834
7835         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7836         Remove.
7837
7838 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
7839
7840         PR doc/47848
7841         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
7842
7843 2011-02-22  Mike Stump  <mikestump@comcast.net>
7844
7845         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
7846         assembler.
7847         * configure: Regenerate.
7848
7849 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
7850
7851         PR rtl-optimization/46002
7852         * ira-color.c (update_copy_costs): Change class intersection
7853         test to reg_class_contents[] test of 'hard_regno'.
7854
7855 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
7856
7857         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
7858         than Driver option.
7859         * config/hpux11.opt (mt): Likewise.
7860         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
7861         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
7862         * config/vax/elf.opt (mno-asm-pic): Likewise.
7863         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
7864
7865 2011-02-21  Mike Stump  <mikestump@comcast.net>
7866
7867         PR target/47822
7868         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
7869         tree so we can get save the type.
7870         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
7871         for CFString instead of trying to use past the end of the builtins.
7872         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
7873         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
7874         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
7875         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
7876         Rename to darwin_builtin_cfstring.
7877         (darwin_init_cfstring_builtins): Return the built type.
7878
7879 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
7880
7881         PR target/47840
7882         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
7883         (_mm256_insert_epi64): Use _mm_insert_epi64.
7884
7885 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
7886
7887         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
7888         * config/stormy16/stormy16-protos.h
7889         (xstormy16_mode_dependent_address_p): Remove.
7890         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
7891         Make static. Change return type to bool. Change argument type to
7892         const_rtx. Remove dead code.
7893         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7894
7895 2011-02-21  Richard Guenther  <rguenther@suse.de>
7896
7897         PR lto/47820
7898         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
7899         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
7900         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
7901         TUs context.
7902         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
7903         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
7904
7905 2011-02-20  Richard Guenther  <rguenther@suse.de>
7906
7907         PR lto/47822
7908         * tree.c (free_lang_data_in_decl): Clean builtins from
7909         the TU decl BLOCK_VARS.
7910
7911 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
7912
7913         PR debug/47620
7914         PR debug/47630
7915         * haifa-sched.c (fix_tick_ready): Skip tick computation
7916         for debug insns.
7917
7918 2011-02-19  Richard Guenther  <rguenther@suse.de>
7919
7920         PR lto/47647
7921         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
7922         Remove lazy BLOCK_VARS streaming.
7923         (lto_input_ts_block_tree_pointers): Likewise.
7924         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
7925
7926 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
7927
7928         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
7929
7930 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
7931
7932         * config/i386/biarch32.h, config/i386/mach.h,
7933         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
7934
7935 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
7936
7937         PR target/47800
7938         * config/i386/i386.md (peephole2 for shift and plus): Use
7939         operands[1] original mode in the first insn.
7940
7941 2011-02-18  Mike Stump  <mikestump@comcast.net>
7942
7943         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
7944
7945 2011-02-18  Jan Hubicka  <jh@suse.cz>
7946
7947         PR middle-end/47788
7948         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
7949         to zero when the function is not inlinable at all.
7950
7951 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7952
7953         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
7954         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
7955         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
7956         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
7957         * config/pa/t-pa64: Likewise.
7958         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
7959
7960 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
7961
7962         PR driver/47787
7963         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
7964
7965 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7966
7967         PR target/47792
7968         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
7969
7970 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
7971
7972         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
7973         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
7974         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
7975         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
7976         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
7977         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
7978         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
7979         m32r_load_postinc_p, m32r_store_preinc_predec_p,
7980         m32r_legitimate_address_p): New functions.
7981         * config/m32r/constraints.md (constraint "S"): Don't use
7982         STORE_PREINC_PREDEC_P.
7983         (constraint "U"): Don't use LOAD_POSTINC_P.
7984
7985 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
7986
7987         PR rtl-optimization/46178
7988         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
7989         compute ira_hard_regno_cover_class[].
7990
7991 2011-02-18  Richard Guenther  <rguenther@suse.de>
7992
7993         PR lto/47798
7994         * lto-streamer.h (lto_global_var_decls): Declare.
7995         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
7996         statics for global var processing.
7997
7998 2011-02-18  Richard Guenther  <rguenther@suse.de>
7999
8000         PR tree-optimization/47737
8001         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
8002         edge dominance check.
8003
8004 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
8005
8006         PR debug/47780
8007         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
8008         avoid invalid rtx sharing.
8009
8010 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
8011
8012         * doc/cpp.texi (Obsolete Features): Add background on the
8013         origin of assertions.
8014
8015 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
8016
8017         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
8018         objc_abi == 2.
8019         * config/darwin.c (output_objc_section_asm_op): Added support for
8020         ABI v1 and v2.
8021         (is_objc_metadata): New.
8022         (darwin_objc2_section): New.
8023         (darwin_objc1_section): New.
8024         (machopic_select_section): Added support for ABI v1 and v2.
8025         (darwin_emit_objc_zeroed): New.
8026         (darwin_output_aligned_bss): Detect objc metadata and treat it
8027         appropriately.
8028         (darwin_asm_output_aligned_decl_common): Same.
8029         (darwin_asm_output_aligned_decl_local): Same.
8030         * config/darwin-sections.def: Updated for ABI v1 and v2.
8031         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
8032         compiling Objective-C code for the NeXT runtime, default to using
8033         ABI version 0 for 32-bit, and version 2 for 64-bit.
8034
8035 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
8036
8037         * common.opt (optimize_fast): New Variable.
8038         * opts.c (default_options_optimization): Use opts->x_optimize_fast
8039         instead of local variable ofast.
8040
8041 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8042
8043         * doc/invoke.texi (fobjc-abi-version): Documented.
8044         (fobjc-nilcheck): Documented.
8045         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
8046         version.
8047
8048 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
8049
8050         PR driver/47390
8051         * common.opt (export-dynamic): New Driver option.
8052         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
8053
8054 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
8055
8056         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
8057
8058 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
8059             Jan Hubicka  <jh@suse.cz>
8060
8061         PR debug/47106
8062         PR debug/47402
8063         * cfgexpand.c (account_used_vars_for_block): Remove.
8064         (estimated_stack_frame_size): Use referenced vars.
8065         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
8066         that were referenced in the original function.  Test src_fn
8067         rather than cfun.  Drop redundant get_var_ann.
8068         (setup_one_parameter): Drop redundant get_var_ann.
8069         (declare_return_variable): Likewise.
8070         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
8071         (copy_arguments_for_versioning): Drop redundant get_var_ann.
8072         * ipa-inline.c (compute_inline_parameters): Do not compute
8073         disregard_inline_limits here.
8074         (compute_inlinable_for_current, pass_inlinable): New.
8075         (pass_inline_parameters): Require PROP_referenced_vars.
8076         * cgraphunit.c (cgraph_process_new_functions): Don't run
8077         compute_inline_parameters explicitly unless function is in SSA form.
8078         (cgraph_analyze_function): Set .disregard_inline_limits.
8079         * tree-sra.c (convert_callers): Compute inliner parameters
8080         only for functions already in SSA form.
8081
8082 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
8083
8084         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
8085         -mlittle-endian-data.
8086
8087 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
8088
8089         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
8090         -mno-fpu, not -fpu and -no-fpu.
8091         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
8092         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
8093
8094 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
8095
8096         PR target/43653
8097         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
8098         input reload with PLUS RTX.
8099
8100 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
8101
8102         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
8103         of InverseVar(MDMX).
8104
8105 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
8106
8107         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
8108         --m4-340.
8109
8110 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
8111
8112         * config/mn10300/mn10300.opt (mno-crt0): New.
8113
8114 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
8115
8116         * config/m68k/uclinux.opt (static-libc): New Driver option.
8117
8118 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
8119
8120         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
8121
8122 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
8123
8124         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
8125         %{muser-extend-enabled}.
8126
8127 2011-02-16  Richard Guenther  <rguenther@suse.de>
8128
8129         PR tree-optimization/47738
8130         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
8131         the TODO from tree_predictive_commoning.
8132
8133 2011-02-15  Jeff Law  <law@redhat.com>
8134
8135         Revert
8136         2011-01-25  Jeff Law  <law@redhat.com>
8137
8138         PR rtl-optimization/37273
8139         * ira-costs.c (scan_one_insn): Detect constants living in memory and
8140         handle them like argument loads from stack slots.  Do not double
8141         count memory for memory constants and argument loads from stack slots.
8142
8143 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
8144
8145         PR middle-end/47725
8146         * combine.c (cant_combine_insn_p): Revert the last change.
8147
8148 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
8149
8150         PR target/47755
8151         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
8152         mode for vector constants.  Remove code that checks for TImode.
8153
8154 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
8155
8156         PR debug/47106
8157         PR debug/47402
8158         * cgraph.h (compute_inline_parameters): Return void.
8159         * ipa-inline.c (compute_inline_parameters): Adjust.
8160
8161 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
8162
8163         PR debug/47106
8164         PR debug/47402
8165         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
8166         rather than decl.
8167         * cfgexpand.c (estimated_stack_frame_size): Likewise.
8168         * ipa-inline.c (compute_inline_parameters): Adjust.
8169
8170 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
8171
8172         PR debug/47106
8173         PR debug/47402
8174         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
8175         Adjust all users.  Pass FN to...
8176         * tree-flow-inline.h (first_referenced_var): ... this.  Add
8177         fn argument.
8178         * ipa-struct-reorg.c: Adjust.
8179         * tree-dfa.c: Adjust.
8180         * tree-into-ssa.c: Adjust.
8181         * tree-sra.c: Adjust.
8182         * tree-ssa-alias.c: Adjust.
8183         * tree-ssa-live.c: Adjust.
8184         * tree-ssa.c: Adjust.
8185         * tree-ssanames.c: Adjust.
8186         * tree-tailcall.c: Adjust.
8187
8188 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
8189
8190         PR debug/47106
8191         PR debug/47402
8192         * tree-flow.h (referenced_var_lookup): Add fn parameter.
8193         Adjust all callers.
8194         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
8195         * tree-flow-inline.h: Adjust.
8196         * gimple-pretty-print.c: Adjust.
8197         * tree-into-ssa.c: Adjust.
8198         * tree-ssa.c: Adjust.
8199         * cfgexpand.c: Adjust.
8200
8201 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
8202
8203         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
8204         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8205         (EXTRA_CONSTRAINT): Delete.
8206         * config/iq2000/constraints.md: New file.
8207         * config/iq2000/iq2000.md: Include it.
8208         (define_insn ""): Delete.
8209         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
8210         unsupported constraint letters from patterns.
8211         (call_value, call_value_internal1): Likewise.
8212         (call_value_multiple_internal1): Likewise.
8213
8214 2011-02-15  Nick Clifton  <nickc@redhat.com>
8215
8216         * config/mn10300/mn10300.c: Include tm-constrs.h.
8217         (struct liw_data): New data structure describing an LIW candidate
8218         instruction.
8219         (extract_bundle): Use struct liw_data.  Allow small integer
8220         operands for some instructions.
8221         (check_liw_constraints): Use struct liw_data.  Remove swapped
8222         parameter.  Add comments describing the checks.  Fix bug when
8223         assigning the source of liw1 to the source of liw2.
8224         (liw_candidate): Delete.  Code moved into extract_bundle.
8225         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
8226         before swapping.
8227         * config/mn10300/predicates.md (liw_operand): New predicate.
8228         Allows registers and small integer constants.
8229         * config/mn10300/constraints.md (O): New constraint.  Accetps
8230         integers in the range -8 to +7 inclusive.
8231         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
8232         for moving a small integer into a register.  Give this alternative
8233         LIW attributes.
8234         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
8235         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
8236         using the J,K,L and M constraints,
8237         (liw): Remove SI mode on second operands to allow for HI and QI
8238         mode values.
8239         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
8240         instruction.
8241
8242 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
8243
8244         PR middle-end/47725
8245         * combine.c (cant_combine_insn_p): Check zero/sign extended
8246         hard registers.
8247
8248 2011-02-15  Richard Guenther  <rguenther@suse.de>
8249
8250         PR tree-optimization/47743
8251         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
8252         for a non-type-compatible VN lookup bail out.
8253
8254 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
8255
8256         * config/fr30/constraints.md: New file.
8257         * config/fr30/fr30.md: Include it.
8258         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
8259         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8260         (EXTRA_CONSTRAINT): Delete.
8261
8262 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
8263
8264         * config/frv/constraints.md: New file.
8265         * config/frv/predicates.md: Include it.
8266         * config/frv/frv.c (reg_class_from_letter): Delete.
8267         (frv_option_override): Don't initialize it.
8268         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
8269         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
8270         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
8271         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
8272         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
8273         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8274         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
8275         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
8276         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
8277         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
8278         (REG_CLASS_FROM_CONSTRAINT): Delete.
8279
8280 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
8281
8282         PR middle-end/47581
8283         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
8284         if frame size is 0 in a leaf function.
8285
8286 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8287
8288         PR pch/14940
8289         * config/alpha/host-osf.c: New file.
8290         * config/alpha/x-osf: New file.
8291         * config.host (alpha*-dec-osf*): Use it.
8292
8293 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
8294
8295         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
8296         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
8297         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
8298         (rx_mode_dependent_address_p): ...this. Make static. Change argument
8299         type to const_rtx.
8300         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8301
8302 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
8303
8304         * config/stormy16/constraints.md: New file.
8305         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
8306         Use satisfies_constraint_Q and satisfies_constraint_R.
8307         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
8308         Delete.
8309         (xstormy16_legitiamte_address_p): Declare.
8310         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
8311         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8312         (EXTRA_CONSTRAINT): Delete.
8313         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
8314         Un-staticize.
8315         (xstormy16_extra_constraint_p): Delete.
8316
8317 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
8318
8319         PR tree-optimization/46494
8320         * loop-unroll.c (split_edge_and_insert): Adjust comment.
8321         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
8322         (pass_rtl_loop_done): Add TODO_verify_flow.
8323         * fwprop.c (pass_rtl_fwprop): Likewise.
8324         * modulo-sched.c (pass_sms): Likewise.
8325         * tree-ssa-dom.c (pass_dominator): Likewise.
8326         * tree-ssa-loop-ch.c (pass_ch): Likewise.
8327         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
8328         (pass_tree_loop_done): Likewise.
8329         * tree-ssa-pre.c (execute_pre): Likewise.
8330         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
8331         * tree-ssa-sink.c (pass_sink_code): Likewise.
8332         * tree-vrp.c (pass_vrp): Likewise.
8333
8334 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
8335
8336         * config/v850/constraints.md: New file.
8337         * config/v850/v850.md: Include it.
8338         * config/v850/predicates.md (reg_or_0_operand): Use
8339         satisfies_constraint_G.
8340         (special_symbolref_operand): Use satisfies_constraint_K.
8341         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
8342         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
8343         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
8344         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
8345         (EXTRA_CONSTRAINT): Delete.
8346         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
8347         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
8348         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
8349
8350 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
8351
8352         PR target/47696
8353         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
8354         description.
8355
8356 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
8357
8358         * config/mcore/constraints.md: New file.
8359         * config/mcore/mcore.md: Include it.
8360         * config/mcore/mcore.c (reg_class_from_letter): Delete.
8361         * config/mcore/mcore.h (reg_class_from_letter): Delete.
8362         (REG_CLASS_FROM_LETTER): Delete.
8363         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
8364         insn_const_int_ok_for_constraint.
8365         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
8366         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
8367         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8368         (EXTRA_CONSTRAINT): Delete.
8369
8370 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8371
8372         PR ada/41929
8373         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
8374         (IS_SIGHANDLER): Define.
8375         (sparc64_is_sighandler): New function, split off from
8376         sparc64_fallback_frame_state.
8377         (sparc_is_sighandler): New function, split off from
8378         sparc_fallback_frame_state.
8379         (sparc64_fallback_frame_state): Merge with ...
8380         (sparc_fallback_frame_state): ... this into ...
8381         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
8382         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
8383         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
8384         stack instead of hardcoded offsets.
8385
8386 2011-02-14  Andriy Gapon  <avg@freebsd.org>
8387
8388         PR target/45808
8389         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
8390
8391 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8392
8393         * configure: Regenerate.
8394
8395 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
8396
8397         PR driver/45731
8398         * gcc.c (asm_options): Correct spec matching --target-help.
8399
8400 2011-02-12  Martin Jambor  <mjambor@suse.cz>
8401
8402         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
8403         to gimple call error.
8404
8405 2011-02-12  Mike Stump  <mikestump@comcast.net>
8406
8407         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
8408         comments in backslash regions.
8409
8410 2011-02-12  Mike Stump  <mikestump@comcast.net>
8411             Jakub Jelinek  <jakub@redhat.com>
8412             Iain Sandoe  <iains@gcc.gnu.org>
8413
8414         PR target/47324
8415         * dwarf2out.c (output_cfa_loc): When required, apply the
8416         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
8417         (output_loc_sequence): Likewise.
8418         (output_loc_operands_raw): Likewise.
8419         (output_loc_sequence_raw): Likewise.
8420         (output_cfa_loc): Likewise.
8421         (output_loc_list): Suppress register number adjustment when
8422         calling output_loc_sequence()
8423         (output_die): Likewise.
8424
8425 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
8426
8427         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
8428         Remove macros.
8429         * config/xtensa/xtensa.c (xtensa_register_move_cost,
8430         xtensa_memory_move_cost): New functions.
8431         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
8432
8433 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
8434
8435         PR lto/47225
8436         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
8437         in the current directory.
8438         * configure: Rebuilt.
8439
8440 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
8441
8442         * config/darwin.c (darwin_override_options): Add a hunk missed
8443         from the commit of r168571.  Trim comment line lengths and
8444         correct indents of the preceding block.
8445
8446 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
8447
8448         * gcc.c (driver_handle_option): Concatenate the argument to -F with
8449         the switch.
8450
8451 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
8452
8453         * common.opt (nostartfiles): New Driver option.
8454
8455 2011-02-11  Xinliang David Li  <davidxl@google.com>
8456
8457         PR tree-optimization/47707
8458         * tree-chrec.c (convert_affine_scev): Keep type precision.
8459
8460 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
8461
8462         PR tree-optimization/47420
8463         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
8464
8465 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
8466
8467         PR rtl-optimization/47614
8468         * rtl.h (check_for_inc_dec): Declare.
8469         * dse.c (check_for_inc_dec): Externalize...
8470         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
8471         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
8472
8473 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
8474
8475         PR driver/47678
8476         * gcc.c (main): Do not compile inputs if there were errors in
8477         option handling.
8478         * opts-common.c (read_cmdline_option): Check for wrong language
8479         after other error checks.
8480
8481 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
8482
8483         * cgraph.c: Fix comment typos.
8484         * cgraph.h: Likewise.
8485         * cgraphunit.c: Likewise.
8486         * ipa-cp.c: Likewise.
8487         * ipa-inline.c: Likewise.
8488         * ipa-prop.c: Likewise.
8489         * ipa-pure-const.c: Likewise.
8490         * ipa-ref.c: Likewise.
8491         * ipa-reference.c: Likewise.
8492
8493 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
8494
8495         PR debug/47684
8496         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
8497
8498 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8499
8500         PR testsuite/47400
8501         * doc/sourcebuild.texi (Require Support): Document
8502         dg-require-ascii-locale.
8503
8504 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
8505
8506         * doc/lto.texi (Write summary): Fix missing parentheses.
8507
8508 2011-02-10  DJ Delorie  <dj@redhat.com>
8509
8510         * config/m32c/m32c.c (m32c_option_override): Disable
8511         -fcombine-stack-adjustments until flag value tracking and compare
8512         optimization can be rewritten.
8513
8514 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
8515
8516         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
8517         PROCESSOR_POWER7.
8518         (PROCESSOR_DEFAULT64): Likewise.
8519
8520 2011-02-10  Richard Henderson  <rth@redhat.com>
8521
8522         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
8523         change from 2011-02-03.
8524         * config/rx/rx.c (flags_from_code): Likewise.
8525         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
8526         is valid, n/pz otherwise.
8527         (rx_select_cc_mode): Return CCmode if Y is not zero.
8528
8529 2011-02-10  Richard Guenther  <rguenther@suse.de>
8530
8531         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
8532
8533 2011-02-10  Richard Guenther  <rguenther@suse.de>
8534
8535         PR tree-optimization/47677
8536         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
8537
8538 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
8539
8540         PR target/47665
8541         * combine.c (make_compound_operation): Only change shifts into
8542         multiplication for SCALAR_INT_MODE_P.
8543
8544 2011-02-10  Jie Zhang  <jie@codesourcery.com>
8545
8546         PR testsuite/47622
8547         Revert
8548         2011-02-05  Jie Zhang  <jie@codesourcery.com>
8549         PR debug/42631
8550         * web.c (entry_register): Don't clobber the number of the
8551         first uninitialized reference in used[].
8552
8553 2011-02-09  Richard Guenther  <rguenther@suse.de>
8554
8555         PR tree-optimization/47664
8556         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
8557         all edges again.
8558
8559 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
8560
8561         PR target/46481
8562         PR target/47032
8563         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
8564         PROCESSOR_POWER7.
8565         (PROCESSOR_DEFAULT64): Same.
8566         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
8567
8568 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8569
8570         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
8571
8572 2011-02-09  Martin Jambor  <mjambor@suse.cz>
8573
8574         PR middle-end/45505
8575         * tree-sra.c (struct access): New flags grp_scalar_read and
8576         grp_scalar_write.  Changed description of assignment read and write
8577         flags.
8578         (dump_access): Dump new flags, reorder all of them.
8579         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
8580         to detect multiple scalar reads.
8581         (analyze_access_subtree): Use the new scalar read write flags instead
8582         of the old flags.  Adjusted comments.
8583
8584 2011-02-08  DJ Delorie  <dj@redhat.com>
8585
8586         PR target/47548
8587         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
8588         patterns.
8589
8590 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8591
8592         * config/m68k/uclinux.opt: New.
8593         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
8594
8595 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8596
8597         * config/cris/elf.opt (sim): New Driver option.
8598
8599 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8600
8601         * config/xtensa/elf.opt: New.
8602         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
8603
8604 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8605
8606         * config/vax/elf.opt: New.
8607         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
8608
8609 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8610
8611         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
8612
8613 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8614
8615         * config/gnu-user.opt: New.
8616         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
8617         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
8618         *-*-uclinux*): Use gnu-user.opt.
8619
8620 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
8621
8622         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
8623         * config/i386/gnu.h (CPP_SPEC): Likewise.
8624
8625 2011-02-08  Ian Lance Taylor  <iant@google.com>
8626
8627         * common.opt (fcx-limited-range): Add SetByCombined flag.
8628         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
8629         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
8630         (fassociative-math, freciprocal-math): Likewise.
8631         (funsafe-math-optimizations): Likewise.
8632         * opth-gen.awk: Handle SetByCombined.
8633         * optc-gen.awk: Likewise.
8634         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
8635         (set_unsafe_math_optimizations_flags): Likewise.
8636         * doc/options.texi (Option properties): Document SetByCombined.
8637
8638 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8639
8640         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
8641         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
8642         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
8643         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
8644         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
8645
8646 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
8647
8648         PR tree-optimization/46834
8649         PR tree-optimization/46994
8650         PR tree-optimization/46995
8651         * graphite-sese-to-poly.c (used_outside_reduction): New.
8652         (detect_commutative_reduction): Call used_outside_reduction.
8653         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
8654         translate_scalar_reduction_to_array only when at least one
8655         loop-phi/close-phi tuple has been detected.
8656
8657 2011-02-08  Richard Guenther  <rguenther@suse.de>
8658
8659         PR middle-end/47639
8660         * tree-vect-generic.c (expand_vector_operations_1): Update
8661         stmts here ...
8662         (expand_vector_operations): ... not here.  Cleanup EH info
8663         and the CFG if required.
8664
8665 2011-02-08  Richard Guenther  <rguenther@suse.de>
8666
8667         PR tree-optimization/47641
8668         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
8669         require type compatibility.
8670
8671 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8672
8673         * gimple-low.c (lower_function_body): Don't remove the location of
8674         the return statement here.
8675         (lower_gimple_return): Do it here instead but only if the return
8676         statement is actually used twice.
8677
8678 2011-02-08  Richard Guenther  <rguenther@suse.de>
8679
8680         PR tree-optimization/47632
8681         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
8682         unused up_to_stmt parameter, return whether cfg-cleanup is
8683         necessary, remove EH info properly.
8684         (forward_propagate_into_gimple_cond): Adjust caller.
8685         (forward_propagate_into_cond): Likewise.
8686         (forward_propagate_comparison): Likewise.
8687         (tree_ssa_forward_propagate_single_use_vars): Make
8688         forward_propagate_comparison case similar to the two others.
8689
8690 2011-02-08  Nick Clifton  <nickc@redhat.com>
8691
8692         * config/mn10300/mn10300.opt (mliw): New command line option.
8693         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
8694         (liw_bundling): New automaton.
8695         (liw): New attribute.
8696         (liw_op): New attribute.
8697         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
8698         (movsi_internal): Add LIW attributes.
8699         (andsi3): Likewise.
8700         (iorsi3): Likewise.
8701         (xorsi3): Likewise.
8702         (addsi3): Separate register and immediate alternatives.
8703         Add LIW attributes.
8704         (subsi3): Likewise.
8705         (cmpsi): Likewise.
8706         (aslsi3): Likewise.
8707         (lshrsi3): Likewise.
8708         (ashrsi3): Likewise.
8709         (liw): New pattern.
8710         * config/mn10300/mn10300.c (liw_op_names): New
8711         (mn10300_print_operand): Handle 'W' operand descriptor.
8712         (extract_bundle): New function.
8713         (check_liw_constraints): New function.
8714         (liw_candidate): New function.
8715         (mn10300_bundle_liw): New function.
8716         (mn10300_reorg): New function.
8717         (TARGET_MACHINE_DEPENDENT_REORG): Define.
8718         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
8719         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
8720         __LIW__ or __NO_LIW__.
8721         * doc/invoke.texi: Describe the -mliw command line option.
8722
8723 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8724
8725         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
8726         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
8727         pthread_mutex_unlock): Remove.
8728         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
8729         * config/pa/t-pa64: Likewise.
8730         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
8731         shared libc if not linking against libpthread.
8732         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
8733
8734 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
8735
8736         PR target/47558
8737         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
8738         on 10.6 and later to ensure that we always use the unwinder from
8739         the system.  Only add -no_compact_unwind when tarteting darwin
8740         10.6 or later.
8741
8742 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
8743
8744         PR target/46997
8745         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
8746         (vec_interleave_lowv2sf): Ditto.
8747         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
8748         (vec_extract_oddv2sf): Ditto.
8749
8750 2011-02-07  Mike Stump  <mikestump@comcast.net>
8751
8752         PR target/42333
8753         Add __ieee_divdc3 entry point.
8754         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
8755         entry point.
8756         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
8757         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
8758         * config/darwin.c (darwin_rename_builtins): Add.
8759         * config/darwin-protos.h (darwin_rename_builtins): Add.
8760
8761 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
8762
8763         PR target/47636
8764         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
8765         for the condition.
8766
8767 2011-02-07  Mike Stump  <mikestump@comcast.net>
8768
8769         * config/darwin.opt (mmacosx-version-min): Update default OS version.
8770
8771 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
8772
8773         PR target/47534
8774         * config/avr/libgcc.S (exit): Move .endfunc
8775
8776 2011-02-07  Richard Guenther  <rguenther@suse.de>
8777
8778         PR tree-optimization/47615
8779         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
8780         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
8781         (run_scc_vn): Initialize it.
8782         (visit_reference_op_load): Use it.
8783         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
8784
8785 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8786
8787         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
8788         DImode trapping arithmetic libfuncs.
8789
8790 2011-02-07  Richard Guenther  <rguenther@suse.de>
8791
8792         PR tree-optimization/47621
8793         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
8794         two duplicates ...
8795         (execute_update_addresses_taken): ... here.  Make it more
8796         conservative in what we accept.
8797
8798 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
8799
8800         * config/sparc/freebsd.h (ASM_SPEC): Define.
8801         * config/sparc/vxworks.h (ASM_SPEC): Define.
8802
8803 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
8804
8805         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
8806
8807 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
8808
8809         * doc/invoke.texi: Remove reference to compiler internals from
8810         user documentation.
8811
8812         * reg-notes.def: Remove REG_VALUE_PROFILE.
8813         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
8814
8815 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
8816
8817         PR middle-end/47610
8818         * varasm.c (default_section_type_flags): If decl is NULL,
8819         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
8820
8821 2011-02-05  Jie Zhang  <jie@codesourcery.com>
8822
8823         PR debug/42631
8824         * web.c (entry_register): Don't clobber the number of the
8825         first uninitialized reference in used[].
8826
8827 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
8828
8829         PR tree-optimization/46194
8830         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
8831         (build_classic_dist_vector_1): Do not represent classic distance
8832         vectors when the access functions are variating in different loops.
8833
8834 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
8835
8836         * config/mips/iris6.opt: New.
8837         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
8838
8839 2011-02-04  Richard Henderson  <rth@redhat.com>
8840             Steve Ellcey  <sje@cup.hp.com>
8841
8842         PR target/46997
8843         * config/ia64/predicates.md (mux1_brcst_element): New.
8844         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
8845         * config/ia64/ia64.c (ia64_unpack_assemble): New.
8846         (ia64_unpack_sign): New.
8847         (ia64_expand_unpack): Rewrite using new routines.
8848         (ia64_expand_widen_sum): Ditto.
8849         (ia64_expand_dot_prod_v8qi): Ditto.
8850         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
8851         routines, add endian check.
8852         (pmpy2_even): Rename from pmpy2_r, add endian check.
8853         (pmpy2_odd): Rename from pmpy2_l, add endian check.
8854         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
8855         (vec_widen_smult_hi_v4hi): Ditto.
8856         (vec_widen_umult_lo_v4hi): Ditto.
8857         (vec_widen_umult_hi_v4hi): Ditto.
8858         (mulv2si3): Change endian checks.
8859         (sdot_prodv4hi): Rewrite with new calls.
8860         (udot_prodv4hi): New.
8861         (vec_pack_ssat_v4hi): Add endian check.
8862         (vec_pack_usat_v4hi): Ditto.
8863         (vec_pack_ssat_v2si): Ditto.
8864         (max1_even): Rename from max1_r, add endian check.
8865         (max1_odd): Rename from max1_l, add endian check.
8866         (*mux1_rev): Format change.
8867         (*mux1_mix): Ditto.
8868         (*mux1_shuf): Ditto.
8869         (*mux1_alt): Ditto.
8870         (*mux1_brcst_v8qi): Use new predicate.
8871         (vec_extract_evenv8qi): Remove endian check.
8872         (vec_extract_oddv8qi): Ditto.
8873         (vec_interleave_lowv4hi): Format change.
8874         (vec_interleave_highv4hi): Ditto.
8875         (mix2_even): Rename from mix2_r, add endian check.
8876         (mix2_odd): Rename from mux2_l, add endian check.
8877         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
8878         (vec_extract_evenodd_helper): Format change.
8879         (vec_extract_evenv4hi): Remove endian check.
8880         (vec_extract_oddv4hi): Remove endian check.
8881         (vec_interleave_lowv2si): Format change.
8882         (vec_interleave_highv2si): Format change.
8883         (vec_initv2si): Remove endian check.
8884         (vecinit_v2si): Add endian check.
8885         (reduc_splus_v2sf): Add endian check.
8886         (reduc_smax_v2sf): Ditto.
8887         (reduc_smin_v2sf): Ditto.
8888         (vec_initv2sf): Remove endian check.
8889         (fpack): Add endian check.
8890         (fswap): Add endian check.
8891         (vec_interleave_highv2sf): Add endian check.
8892         (vec_interleave_lowv2sf): Add endian check.
8893         (fmix_lr): Add endian check.
8894         (vec_setv2sf): Format change.
8895         (*vec_extractv2sf_0_be): Use shift to extract operand.
8896         (*vec_extractv2sf_1_be): New.
8897         (vec_pack_trunc_v4hi): Add endian check.
8898         (vec_pack_trunc_v2si): Format change.
8899
8900 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
8901
8902         PR inline-asm/23200
8903         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
8904         do bb, locus and block comparison and disallow loads if it is not set.
8905         (stmt_is_replaceable_p): New function.
8906         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
8907         callers.
8908         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
8909         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
8910         SSA_NAME_DEF_STMT.
8911         * tree-flow.h (stmt_is_replaceable_p): New prototype.
8912
8913 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
8914
8915         * config/rs6000/xilinx.opt: New.
8916         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
8917
8918 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
8919
8920         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
8921
8922 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
8923
8924         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
8925         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
8926         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
8927         secondary_reload_info, xtensa_secondary_reload): Remove.
8928         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
8929         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
8930         (xtensa_preferred_reload_class): Make static. Change return and
8931         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
8932         Use CONST_DOUBLE_P predicate.
8933         (xtensa_preferred_output_reload_class): New function.
8934         (xtensa_secondary_reload): Make static.
8935
8936 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
8937
8938         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
8939         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
8940         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
8941
8942 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
8943
8944         PR middle-end/31490
8945         * output.h (SECTION_RELRO): Define.
8946         (SECTION_MACH_DEP): Adjust.
8947         (get_variable_section): New prototype.
8948         * varpool.c (varpool_finalize_named_section_flags): New function.
8949         (varpool_assemble_pending_decls): Call it.
8950         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
8951         * cgraphunit.c (cgraph_output_in_order): Call
8952         varpool_finalize_named_section_flags.
8953         * varasm.c (get_section): Allow section flags conflicts between
8954         relro and read-only sections if the section hasn't been declared yet.
8955         Set SECTION_OVERRIDE after diagnosing section type conflict.
8956         (get_variable_section): No longer static.
8957         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
8958         readonly sections that need relocations.
8959         (decl_readonly_section_1): New function.
8960         (decl_readonly_section): Use it.
8961
8962         Revert:
8963         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
8964                     Steve Ellcey  <sje@cup.hp.com>
8965
8966         PR middle-end/31490
8967         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
8968         if section attribute used.
8969
8970 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
8971
8972         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
8973         * config/darwin.c (SECTION_NO_ANCHOR): Define.
8974         (darwin_init_sections): Remove assertion.
8975
8976 2011-02-03  Nick Clifton  <nickc@redhat.com>
8977
8978         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
8979         lt and ge.
8980         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
8981         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
8982         instead of "n" and "pz".
8983         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
8984         CC_FLAG_S.
8985
8986 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
8987
8988         PR target/47312
8989         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
8990         fma, expand FMA_EXPR as fma{,f,l} call.
8991
8992         PR lto/47274
8993         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
8994         copy them into a unsigned char variable and pass address of it to
8995         lto_output_data_stream.
8996
8997         PR target/47564
8998         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
8999         around backend_init_target and lang_dependent_init_target calls.
9000         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
9001         (verify_cgraph_node): Don't call set_cfun here.  Use
9002         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
9003         Set error_found for incorrectly represented calls to thunks.
9004
9005 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
9006
9007         PR debug/43092
9008         PR rtl-optimization/43494
9009         * rtl.h (for_each_inc_dec_fn): New type.
9010         (for_each_inc_dec): Declare.
9011         * rtlanal.c (struct for_each_inc_dec_ops): New type.
9012         (for_each_inc_dec_find_inc_dec): New fn.
9013         (for_each_inc_dec_find_mem): New fn.
9014         (for_each_inc_dec): New fn.
9015         * dse.c (struct insn_size): Remove.
9016         (replace_inc_dec, replace_inc_dec_mem): Remove.
9017         (emit_inc_dec_insn_before): New fn.
9018         (check_for_inc_dec): Use it, along with for_each_inc_dec.
9019         (canon_address): Pass mem modes to cselib_lookup.
9020         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
9021         (cselib_lookup_from_insn): Likewise.
9022         (cselib_subst_to_values): Likewise.
9023         * cselib.c (find_slot_memmode): New var.
9024         (cselib_find_slot): New fn.  Use it instead of
9025         htab_find_slot_with_hash everywhere.
9026         (entry_and_rtx_equal_p): Use find_slot_memmode.
9027         (autoinc_split): New fn.
9028         (rtx_equal_for_cselib_p): Rename and implement in terms of...
9029         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
9030         Deal with autoinc.  Special-case recursion into MEMs.
9031         (cselib_hash_rtx): Likewise.
9032         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
9033         address and MEM modes.
9034         (cselib_subst_to_values): Add memmode, pass it on.
9035         Deal with autoinc.
9036         (cselib_lookup): Add memmode argument, pass it on.
9037         (cselib_lookup_from_insn): Add memmode.
9038         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
9039         (struct cselib_record_autoinc_data): New.
9040         (cselib_record_autoinc_cb): New fn.
9041         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
9042         mode to cselib_lookup.  Reset autoinced REGs here instead of...
9043         (cselib_process_insn): ... here.
9044         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
9045         to cselib_lookup.
9046         (add_uses): Likewise, also to cselib_subst_to_values.
9047         (add_stores): Likewise.
9048         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
9049         cselib_subst_to_values.
9050         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
9051         * gcse.c (do_local_cprop): Adjusted.
9052         * postreload.c (reload_cse_simplify_set): Adjusted.
9053         (reload_cse_simplify_operands): Adjusted.
9054         * sel-sched-dump (debug_mem_addr_value): Pass mode.
9055
9056 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
9057
9058         PR tree-optimization/45122
9059         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
9060         unsafe assumptions when there's more than one loop exit.
9061
9062 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
9063
9064         PR target/47272
9065         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
9066         Document using vector double with the load/store builtins, and
9067         that the load/store builtins always use Altivec instructions.
9068
9069         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
9070         to use altivec memory instructions, even on VSX.
9071         (vector_altivec_store_<mode>): Ditto.
9072
9073         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
9074         function.
9075
9076         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9077         V2DF, V2DI support to load/store overloaded builtins.
9078
9079         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
9080         altivec load/store builtins for V2DF/V2DI types.
9081
9082         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
9083         set avoid indexed addresses on power6 if -maltivec.
9084         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
9085         vector_altivec_load/vector_altivec_store builtins.
9086         (altivec_expand_st_builtin): Ditto.
9087         (altivec_expand_builtin): Add VSX memory builtins.
9088         (rs6000_init_builtins): Add V2DI types to internal types.
9089         (altivec_init_builtins): Add support for V2DF/V2DI altivec
9090         load/store builtins.
9091         (rs6000_address_for_altivec): Insure memory address is appropriate
9092         for Altivec.
9093
9094         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
9095         vec_vsx_ld and vec_vsx_st.
9096         (vsx_store_<mode>): Ditto.
9097
9098         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
9099         variables to hold long long types for VSX vector memory builtins.
9100         (RS6000_BTI_unsigned_long_long): Ditto.
9101         (long_long_integer_type_internal_node): Ditti.
9102         (long_long_unsigned_type_internal_node): Ditti.
9103
9104         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
9105         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
9106         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
9107
9108         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
9109         short cuts.
9110         (vec_vsx_st): Ditto.
9111
9112 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
9113
9114         * config/pa/pa-hpux10.opt: New.
9115         * config/hpux11.opt (pthread): New Driver option.
9116         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
9117         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
9118
9119 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
9120
9121         * config/ia64/vms.opt: New.
9122         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
9123
9124 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
9125
9126         PR target/47580
9127         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
9128         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
9129         generator functions.
9130         (vsx_floatuns<VSi><mode>2): Ditto.
9131         (vsx_fix_trunc<mode><VSi>2): Ditto.
9132         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
9133
9134 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
9135
9136         * config/i386/djgpp.opt (posix): New Driver option.
9137
9138 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9139
9140         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
9141         Move to the unsupported targets list.
9142
9143 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
9144
9145         PR rtl-optimization/47525
9146         * df-scan.c: Update copyright years.
9147         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
9148         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
9149
9150 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9151
9152         * config/i386/sysv4.h (TARGET_VERSION): Remove.
9153         (SUBTARGET_RETURN_IN_MEMORY): Remove.
9154         (ASM_OUTPUT_ASCII): Remove.
9155         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
9156
9157 2011-02-02  Jeff Law  <law@redhat.com>
9158
9159         PR middle-end/47543
9160         * reload.c (find_reloads_address): Handle reg+d address where both
9161         components are invalid by reloading the entire address.
9162
9163 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
9164             Richard Guenther  <rguenther@suse.de>
9165
9166         PR tree-optimization/40979
9167         PR bootstrap/47044
9168         * passes.c (init_optimization_passes): After LIM call copy_prop
9169         and DCE to clean up.
9170         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
9171
9172 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
9173
9174         PR tree-optimization/47576
9175         PR tree-optimization/47555
9176         * doc/invoke.texi (scev-max-expr-complexity): Documented.
9177         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
9178         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
9179         * tree-scalar-evolution.c (follow_ssa_edge): Use
9180         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
9181
9182 2011-02-02  Richard Guenther  <rguenther@suse.de>
9183
9184         PR tree-optimization/47566
9185         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
9186
9187 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
9188
9189         PR debug/47106
9190         PR debug/47402
9191         * tree-inline.c (declare_return_variable): Remove unused caller
9192         variable.
9193
9194         PR debug/47106
9195         PR debug/47402
9196         * tree-flow-inline.h (clear_is_used, is_used_p): New.
9197         * cfgexpand.c (account_used_vars_for_block): Use them.
9198         * tree-nrv.c (tree_nrv): Likewise.
9199         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
9200         (dump_scope_block): Likewise.
9201         (remove_unused_locals): Likewise.
9202
9203         PR debug/47106
9204         PR debug/47402
9205         * tree-inline.c (declare_return_variable): Add result decl to
9206         local decls only once.
9207         * gimple-low.c (record_vars_into): Mark newly-created variables
9208         as referenced.
9209
9210 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
9211
9212         PR debug/47498
9213         PR debug/47501
9214         PR debug/45136
9215         PR debug/45130
9216         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
9217         debug insns.
9218         (no_real_insns_p, schedule_block, set_priorities): Drop special
9219         treatment of boundary debug insns.
9220         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9221         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
9222         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
9223         (BOUNDARY_DEBUG_INSN_P): Likewise.
9224         (SCHEDULE_DEBUG_INSN_P): Likewise.
9225         * sched-rgn.c (init_ready_list): Drop special treatment of
9226         boundary debug insns.
9227         * final.c (rest_of_clean_state): Clear notes' BB.
9228
9229 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9230
9231         * config/openbsd.opt (assert=): New Driver option.
9232
9233 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9234
9235         * config/i386/nto.opt: New.
9236         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
9237
9238 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9239
9240         * config/i386/netware.opt: New.
9241         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
9242
9243 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9244
9245         * config/interix.opt (posix): New Driver option.
9246
9247 2011-02-01  DJ Delorie  <dj@redhat.com>
9248
9249         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
9250
9251         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
9252         class for A0/A1.
9253
9254 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
9255
9256         PR tree-optimization/47561
9257         * toplev.c (process_options): Print the Graphite flags.  Add
9258         flag_loop_flatten to the list of options requiring Graphite.
9259
9260 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9261
9262         * config/i386/cygming.opt (posix): New Driver option.
9263
9264 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9265
9266         * config/arm/vxworks.opt: New.
9267         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
9268
9269 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9270
9271         * config/alpha/elf.opt: New.
9272         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
9273         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
9274
9275 2011-02-01  Richard Guenther  <rguenther@suse.de>
9276
9277         PR tree-optimization/47559
9278         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
9279         store-motion on references that can throw.
9280
9281 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
9282
9283         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
9284         * tree-pass.h (TDF_CSELIB): New macro.
9285         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
9286         cselib_lookup): Check for it rather than for TDF_DETAILS.
9287
9288 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
9289
9290         PR driver/47547
9291         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
9292         is HOST_BIT_BUCKET.
9293
9294         * opts.c (finish_options): Don't add x_aux_base_name if it is
9295         HOST_BIT_BUCKET.
9296
9297 2011-02-01  Richard Guenther  <rguenther@suse.de>
9298
9299         PR tree-optimization/47555
9300         Revert
9301         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
9302
9303         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
9304
9305 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
9306
9307         PR gcc/46692
9308         * config/lm32/t-lm32: Add multilib for all CPU options.
9309
9310 2011-02-01  Richard Guenther  <rguenther@suse.de>
9311
9312         PR tree-optimization/47541
9313         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
9314         sure to have a field at offset zero.
9315
9316 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
9317
9318         * config/arc/arc.opt (EB, EL): New Driver options.
9319
9320 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
9321
9322         * config/alpha/osf5.opt: New.
9323         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
9324
9325 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
9326
9327         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
9328
9329 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
9330
9331         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
9332         -floop-interchange.
9333         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
9334         is an alias of -floop-interchange and that it requires the
9335         Graphite infrastructure.
9336         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
9337         flag_loop_interchange based on the value of flag_tree_loop_linear.
9338
9339 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
9340             Richard Guenther  <rguenther@suse.de>
9341
9342         PR tree-optimization/47538
9343         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
9344         type instead of r1type, except for comparisons.  For right
9345         shifts and comparisons punt if there are mismatches in
9346         sizetype vs. non-sizetype types.
9347
9348 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9349
9350         * doc/sourcebuild.texi (Effective-Target Keywords): Document
9351         avx_runtime.
9352
9353 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9354
9355         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
9356         version number.
9357         * configure: Regenerate.
9358
9359 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9360
9361         * configure.ac (gcc_cv_ld_static_option): Define.
9362         (gcc_cv_ld_dynamic_option): Define.
9363         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
9364         instead.
9365         (HAVE_LD_STATIC_DYNAMIC): Update message.
9366         (LD_STATIC_OPTION): Define.
9367         (LD_DYNAMIC_OPTION): Define.
9368         * configure: Regenerate.
9369         * config.in: Regenerate.
9370         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
9371         HAVE_LD_STATIC_DYNAMIC]: Use them.
9372
9373 2011-01-31  Nick Clifton  <nickc@redhat.com>
9374
9375         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
9376         registers inside interrupt handlers if the handler is not a leaf
9377         function.
9378
9379 2011-01-31  Nick Clifton  <nickc@redhat.com>
9380
9381         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
9382         reg_renumber returning an INVALID_REGNUM.
9383
9384 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
9385
9386         PR libgcj/44341
9387         * doc/install.texi: Document host options discarded when cross
9388         configuring target libraries.
9389
9390 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
9391
9392         Reverted:
9393         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
9394         PR debug/45136
9395         PR debug/45130
9396         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
9397         debug insns.
9398         (no_real_insns_p, schedule_block, set_priorities): Drop special
9399         treatment of boundary debug insns.
9400         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9401         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
9402         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
9403         (BOUNDARY_DEBUG_INSN_P): Likewise.
9404         (SCHEDULE_DEBUG_INSN_P): Likewise.
9405         * sched-rgn.c (init_ready_list): Drop special treatment of
9406         boundary debug insns.
9407         * final.c (rest_of_clean-state): Clear notes' BB.
9408
9409 2011-01-31  Alan Modra  <amodra@gmail.com>
9410
9411         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
9412         toc relative expressions as we do in print_operand_address.
9413
9414 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
9415
9416         * doc/extend.texi: Follow spelling conventions.
9417         * doc/invoke.texi: Fix a typo.
9418
9419 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
9420
9421         * config/hpux11.opt: New.
9422         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
9423         ia64*-*-hpux*): Use hpux11.opt.
9424
9425 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
9426
9427         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
9428         to tmake_file.
9429
9430 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
9431
9432         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
9433         support sites.
9434
9435 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
9436
9437         * doc/install.texi (Binaries): Remove outdated reference for
9438         Motorola 68HC11/68HC12 downloads.
9439
9440 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
9441
9442         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
9443         Drepper's paper.
9444
9445 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
9446
9447         PR bootstrap/47147
9448         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
9449         used by NetBSD.
9450
9451 2011-01-28  Ahmad Sharif  <asharif@google.com>
9452
9453         * value-prof.c (check_counter): Corrected error message.
9454
9455 2011-01-29  Jie Zhang  <jie@codesourcery.com>
9456
9457         * config/arm/arm.c (arm_legitimize_reload_address): New.
9458         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
9459         arm_legitimize_reload_address.
9460         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
9461
9462 2011-01-28  Ian Lance Taylor  <iant@google.com>
9463
9464         * godump.c (go_define): Ignore macros whose definitions include
9465         two adjacent operands.
9466
9467 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
9468
9469         PR target/42894
9470         * varasm.c (force_const_mem): Store copy of x in desc->constant
9471         instead of x itself.
9472         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
9473         itself into REG_EQUAL note.
9474
9475 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
9476
9477         * config/freebsd.opt (posix, rdynamic): New Driver options.
9478
9479 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9480
9481         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
9482         -Bstatic/-Bdynamic.
9483         * configure: Regenerate.
9484
9485 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
9486
9487         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
9488         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
9489
9490 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
9491
9492         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
9493         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
9494         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
9495         (s390_preferred_reload_class): Make static. Change return and
9496         'rclass' argument type to reg_class_t.
9497
9498 2011-01-27  Jan Hubicka  <jh@suse.cz>
9499
9500         PR middle-end/46949
9501         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
9502         (process_function_and_variable_attributes): Check defined weakrefs.
9503
9504 2011-01-27  Martin Jambor  <mjambor@suse.cz>
9505
9506         PR tree-optimization/47228
9507         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
9508         build_ref_for_offset.
9509
9510 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9511
9512         * config/spu/spu-elf.h (ASM_SPEC): Remove.
9513
9514 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
9515
9516         PR rtl-optimization/46856
9517         * postreload.c (reload_combine_recognize_const_pattern): Do not
9518         separate cc0 setter and user on cc0 targets.
9519
9520 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
9521
9522         PR c/43082
9523         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
9524         passed a VOID_TYPE expression, immediately emit an error and
9525         return error_mark_node.
9526
9527 2011-01-26  Jeff Law  <law@redhat.com>
9528
9529         PR rtl-optimization/47464
9530         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
9531         rather than may_trap_p as needed.
9532
9533 2011-01-26  DJ Delorie  <dj@redhat.com>
9534
9535         PR rtl-optimization/46878
9536         * combine.c (insn_a_feeds_b): Check for the implicit cc0
9537         setter/user dependency as well.
9538
9539 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
9540
9541         PR rtl-optimization/44469
9542         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
9543         after removing trivially dead basic blocks.
9544
9545 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
9546
9547         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
9548         * config/frv/frv.h (LINK_SPEC): Likewise.
9549         * config/i386/netware.h (LINK_SPEC): Likewise.
9550         * config/m68k/linux.h (ASM_SPEC): Likewise.
9551         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
9552         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
9553         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
9554         * config/sparc/linux.h (ASM_SPEC): Likewise.
9555         * config/sparc/linux64.h (ASM_SPEC): Likewise.
9556         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
9557
9558 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
9559
9560         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
9561         * config/frv/frv.h (ASM_SPEC): Likewise.
9562         * config/m68k/linux.h (ASM_SPEC): Likewise.
9563         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
9564         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
9565         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
9566         * config/sparc/linux.h (ASM_SPEC): Likewise.
9567         * config/sparc/linux64.h (ASM_SPEC): Likewise.
9568         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
9569
9570 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
9571
9572         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
9573         * config/frv/frv.h (LINK_SPEC): Likewise.
9574         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
9575
9576 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
9577
9578         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
9579         * config/frv/frv.h (ASM_SPEC): Likewise.
9580         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
9581         * config/m68k/linux.h (ASM_SPEC): Likewise.
9582         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
9583         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
9584         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
9585         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
9586         * config/sparc/linux.h (ASM_SPEC): Likewise.
9587         * config/sparc/linux64.h (ASM_SPEC): Likewise.
9588         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
9589         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
9590
9591 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
9592
9593         PR target/46997
9594         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
9595         (*mux2): Ditto.
9596         (vec_extract_evenodd_help): Ditto.
9597         (vec_extract_evenv4hi): Ditto.
9598         (vec_extract_oddv4hi): Ditto.
9599         (vec_interleave_lowv2si): Ditto.
9600         (vec_interleave_highv2si): Ditto.
9601         (vec_extract_evenv2si): Ditto.
9602         (vec_extract_oddv2si: Ditto.
9603         (vec_pack_trunc_v2si): Ditto.
9604
9605 2011-01-22  Jan Hubicka  <jh@suse.cz>
9606
9607         PR target/47237
9608         * cgraph.h (cgraph_local_info): New field can_change_signature.
9609         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
9610         signature can change.
9611         (ipcp_estimate_growth): Call sequence simplify only if calle signature
9612         can change.
9613         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
9614         (cgraph_function_versioning): We can not change signature of functions
9615         that don't allow that.
9616         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
9617         (lto_input_node): Likewise.
9618         * ipa-inline.c (compute_inline_parameters): Compute
9619         local.can_change_signature.
9620         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
9621         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
9622         functions that can not change signature.
9623         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
9624         init_cumulative_args): Do not use local calling conventions
9625         for functions that can not change signature.
9626
9627 2011-01-22  Jan Hubicka  <jh@suse.cz>
9628
9629         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
9630
9631 2011-01-26  Richard Guenther  <rguenther@suse.de>
9632
9633         PR tree-optimization/47190
9634         * cgraphunit.c (process_common_attributes): New function.
9635         (process_function_and_variable_attributes): Use it.
9636
9637 2011-01-26  Richard Guenther  <rguenther@suse.de>
9638
9639         PR lto/47423
9640         * cgraphbuild.c (record_eh_tables): Record reference to personality
9641         function.
9642
9643 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
9644
9645         PR debug/45454
9646         * sel-sched.c (moveup_expr): Don't let debug insns prevent
9647         non-debug insns from moving up.
9648
9649 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
9650
9651         PR target/40125
9652         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
9653         t-dlldir{,-x} fragment for build and add it to tmake_file.
9654         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
9655         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
9656         * config/i386/t-dlldir: New file.
9657         (SHLIB_DLLDIR): Define.
9658         * config/i386/t-dlldir-x: New file.
9659         (SHLIB_DLLDIR): Define.
9660         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
9661         (SHLIB_INSTALL): Use it.
9662
9663 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
9664
9665         PR target/47246
9666         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
9667         lower bound of the allowed Thumb-2 coprocessor load/store
9668         index range to -256. Add explaining comment.
9669
9670 2011-01-25  Ian Lance Taylor  <iant@google.com>
9671
9672         * godump.c (go_define): Improve lexing of macro expansion to only
9673         accept expressions which match Go spec.
9674
9675 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
9676
9677         PR c++/43601
9678         * tree.c (handle_dll_attribute): Handle it.
9679         * doc/extend.texi (@item dllexport): Mention it.
9680         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
9681
9682 2011-01-25  Ian Lance Taylor  <iant@google.com>
9683
9684         PR tree-optimization/26854
9685         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
9686         (decl_jump_unsafe): Move higher in file, with no other change.
9687         (bind): Set has_jump_unsafe_decl if appropriate.
9688         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
9689         (check_earlier_gotos): Likewise.
9690         (c_check_switch_jump_warnings): Likewise.
9691
9692 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
9693
9694         * doc/invoke.texi (Warning Options): Add missing hyphen.
9695         (-fprofile-dir): Minor grammatical fixes.
9696         (-fbranch-probabilities): Likewise.
9697
9698 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
9699
9700         PR debug/45136
9701         PR debug/45130
9702         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
9703         debug insns.
9704         (no_real_insns_p, schedule_block, set_priorities): Drop special
9705         treatment of boundary debug insns.
9706         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9707         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
9708         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
9709         (BOUNDARY_DEBUG_INSN_P): Likewise.
9710         (SCHEDULE_DEBUG_INSN_P): Likewise.
9711         * sched-rgn.c (init_ready_list): Drop special treatment of
9712         boundary debug insns.
9713         * final.c (rest_of_clean-state): Clear notes' BB.
9714
9715 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9716
9717         * Makefile.in (LAMBDA_H): Removed.
9718         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
9719         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
9720         lambda-trans.o, and tree-loop-linear.o.
9721         (lto-symtab.o): Remove dependence on LAMBDA_H.
9722         (tree-loop-linear.o): Remove rule.
9723         (lambda-mat.o): Same.
9724         (lambda-trans.o): Same.
9725         (lambda-code.o): Same.
9726         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
9727         (tree-vect-slp.o): Same.
9728         * hwint.h (gcd): Moved here.
9729         (least_common_multiple): Same.
9730         * lambda-code.c: Removed.
9731         * lambda-mat.c: Removed.
9732         * lambda-trans.c: Removed.
9733         * lambda.h: Removed.
9734         * tree-loop-linear.c: Removed.
9735         * lto-symtab.c: Do not include lambda.h.
9736         * omega.c (gcd): Removed.
9737         * passes.c (init_optimization_passes): Remove pass_linear_transform.
9738         * tree-data-ref.c (print_lambda_vector): Moved here.
9739         (lambda_vector_copy): Same.
9740         (lambda_matrix_copy): Same.
9741         (lambda_matrix_id): Same.
9742         (lambda_vector_first_nz): Same.
9743         (lambda_matrix_row_add): Same.
9744         (lambda_matrix_row_exchange): Same.
9745         (lambda_vector_mult_const): Same.
9746         (lambda_vector_negate): Same.
9747         (lambda_matrix_row_negate): Same.
9748         (lambda_vector_equal): Same.
9749         (lambda_matrix_right_hermite): Same.
9750         * tree-data-ref.h: Do not include lambda.h.
9751         (lambda_vector): Moved here.
9752         (lambda_matrix): Same.
9753         (dependence_level): Same.
9754         (lambda_transform_legal_p): Removed declaration.
9755         (lambda_collect_parameters): Same.
9756         (lambda_compute_access_matrices): Same.
9757         (lambda_vector_gcd): Same.
9758         (lambda_vector_new): Same.
9759         (lambda_vector_clear): Same.
9760         (lambda_vector_lexico_pos): Same.
9761         (lambda_vector_zerop): Same.
9762         (lambda_matrix_new): Same.
9763         * tree-flow.h (least_common_multiple): Removed declaration.
9764         * tree-parloops.c (lambda_trans_matrix): Moved here.
9765         (LTM_MATRIX): Same.
9766         (LTM_ROWSIZE): Same.
9767         (LTM_COLSIZE): Same.
9768         (LTM_DENOMINATOR): Same.
9769         (lambda_trans_matrix_new): Same.
9770         (lambda_matrix_vector_mult): Same.
9771         (lambda_transform_legal_p): Same.
9772         * tree-pass.h (pass_linear_transform): Removed declaration.
9773         * tree-ssa-loop.c (tree_linear_transform): Removed.
9774         (gate_tree_linear_transform): Removed.
9775         (pass_linear_transform): Removed.
9776         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
9777         flag_loop_interchange.
9778
9779 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
9780
9781         PR tree-optimization/47265
9782         PR tree-optimization/47443
9783         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
9784         if name still has some uses.
9785
9786 2011-01-25  Martin Jambor  <mjambor@suse.cz>
9787
9788         PR tree-optimization/47382
9789         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
9790         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
9791
9792 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
9793
9794         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
9795         sjlj_except_unwind_info.
9796
9797 2011-01-25  Richard Guenther  <rguenther@suse.de>
9798
9799         PR tree-optimization/47426
9800         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
9801         visible functions results escape.
9802
9803 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
9804
9805         PR target/45701
9806         * config/arm/arm.c (any_sibcall_uses_r3): New function.
9807         (arm_get_frame_offsets): Use it.
9808
9809 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9810             Jakub Jelinek  <jakub@redhat.com>
9811
9812         PR tree-optimization/47271
9813         * tree-if-conv.c (bb_postdominates_preds): New.
9814         (if_convertible_bb_p): Call bb_postdominates_preds.
9815         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
9816         (predicate_scalar_phi): Call bb_postdominates_preds.
9817
9818 2011-01-25  Nick Clifton  <nickc@redhat.com>
9819
9820         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
9821         * config/rx/rx.c (rx_function_value): Likewise.
9822         (rx_promote_function_mode): Likewise.
9823         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
9824         in order to make it legitimate.
9825         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
9826         make sure that the first operand is the same as the result register.
9827         (addsi3_unspec): Delete.
9828         (subdi3): Do not accept immediate operands.
9829         (subdi3_internal): Likewise.
9830
9831 2011-01-25  Jeff Law  <law@redhat.com>
9832
9833         PR rtl-optimization/37273
9834         * ira-costs.c (scan_one_insn): Detect constants living in memory and
9835         handle them like argument loads from stack slots.  Do not double
9836         count memory for memory constants and argument loads from stack slots.
9837
9838 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
9839
9840         PR tree-optimization/47427
9841         PR tree-optimization/47428
9842         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9843         coalesce if the new root var would be TREE_READONLY.
9844
9845 2011-01-25  Richard Guenther  <rguenther@suse.de>
9846
9847         PR middle-end/47414
9848         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
9849         correct type for TBAA.
9850
9851 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9852
9853         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
9854         (close_phi_written_to_memory): Call for_each_index with
9855         dr_indices_valid_in_loop.
9856
9857 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9858
9859         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
9860         when it is initialized.
9861
9862 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9863
9864         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
9865         call to graphite_find_data_references_in_stmt.
9866         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
9867         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
9868         call to graphite_find_data_references_in_stmt.
9869         (analyze_drs_in_stmts): Same.
9870         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
9871         in which the scalar analysis of indices is performed.
9872         (create_data_ref): Same.  Update call to dr_analyze_indices.
9873         (find_data_references_in_stmt): Update call to create_data_ref.
9874         (graphite_find_data_references_in_stmt): Same.
9875         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
9876         declaration.
9877         (create_data_ref): Same.
9878         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
9879         call to create_data_ref.
9880
9881 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9882
9883         * graphite-sese-to-poly.c (build_poly_scop): Move
9884         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
9885
9886 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9887
9888         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
9889         VAR_DECL, PARM_DECL, and RESULT_DECL.
9890
9891 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9892
9893         * graphite-dependences.c (reduction_dr_1): Allow several reductions
9894         in a reduction PBB.
9895         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
9896         that have already been marked as PBB_IS_REDUCTION.
9897
9898 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9899
9900         * graphite-scop-detection.c (same_close_phi_node): New.
9901         (remove_duplicate_close_phi): New.
9902         (make_close_phi_nodes_unique): New.
9903         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
9904
9905 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9906
9907         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
9908         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
9909         of both data references to be the same.
9910
9911 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9912
9913         * graphite-dependences.c (build_lexicographical_constraint): Remove
9914         the gdim parameter.
9915         (build_lexicographical_constraint): Adjust call to
9916         ppl_powerset_is_empty.
9917         (dependence_polyhedron): Same.
9918         (graphite_legal_transform_dr): Same.
9919         (graphite_carried_dependence_level_k): Same.
9920         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
9921         parameter.
9922         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
9923
9924 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9925
9926         * graphite-sese-to-poly.c
9927         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
9928         (close_phi_written_to_memory): New.
9929         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
9930         and unshare_expr.
9931
9932 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9933
9934         * doc/install.texi: Update the expected version number of PPL to 0.11.
9935         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
9936         #if PPL_VERSION_MINOR < 11.
9937
9938 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9939
9940         * graphite-dependences.c: Include graphite-cloog-util.h.
9941         (new_poly_ddr): Inlined into dependence_polyhedron.
9942         (free_poly_ddr): Moved close by new_poly_ddr.
9943         (dependence_polyhedron_1): Renamed dependence_polyhedron.
9944         Early return NULL when ppl_powerset_is_empty returns true.
9945         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
9946         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
9947         (graphite_legal_transform_dr): Call new_poly_ddr.
9948         (graphite_carried_dependence_level_k): Same.
9949         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
9950         (dot_transformed_deps_stmt_1): Removed.
9951         (dot_deps_stmt_1): Call dot_deps_stmt_2.
9952         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
9953         (dot_deps_1): Call dot_deps_2.
9954         * Makefile.in (graphite-dependences.o): Add missing dependence on
9955         graphite-cloog-util.h.
9956
9957 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9958
9959         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
9960         (build_lexicographical_constraint): Same.
9961         (dependence_polyhedron_1): Same.
9962         (graphite_legal_transform_dr): Same.
9963         (graphite_carried_dependence_level_k): Same.
9964         * graphite-ppl.c (ppl_powerset_is_empty): New.
9965         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
9966         * tree-data-ref.c (dump_data_reference): Print the basic block index.
9967
9968 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9969
9970         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
9971         the "a followed by b" relation and document it.
9972
9973 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9974
9975         * graphite-dependences.c (build_lexicographical_constraint): Stop the
9976         iteration when the bag of constraints is empty.
9977
9978 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9979
9980         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
9981
9982 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9983
9984         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
9985         nest and two loop depths as parameters.
9986         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
9987         lst_perfect_nestify.
9988
9989 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9990
9991         * graphite-dependences.c (print_pddr): Call
9992         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
9993
9994 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9995
9996         * graphite-ppl.c (debug_gmp_value): New.
9997         * graphite-ppl.h (debug_gmp_value): Declared.
9998
9999 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
10000
10001         * doc/install.texi: Document availability of cloog-0.16.
10002
10003 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
10004
10005         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
10006         invalid postdominance info.
10007
10008 2011-01-24  Jan Hubicka  <jh@suse.cz>
10009
10010         PR c/21659
10011         * doc/extend.texi (weak pragma): Drop claim that it must
10012         appear before definition.
10013         * varasm.c (merge_weak, declare_weak): Only sanity check
10014         that DECL is not output at a time it is declared weak.
10015
10016 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
10017
10018         * machmode.def: Fixed comments.
10019
10020 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
10021
10022         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
10023
10024 2011-01-24  Paul Koning  <ni1d@arrl.net>
10025
10026         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
10027         WORDS_BIG_ENDIAN.
10028
10029 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10030
10031         PR target/46519
10032         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
10033         (block_info): Add scanned and prev.
10034         (move_or_delete_vzeroupper_2): Return if the basic block
10035         has been scanned and the upper 128bit state is unchanged
10036         from the last scan.
10037         (move_or_delete_vzeroupper_1): Return true if the exit
10038         state is changed.
10039         (move_or_delete_vzeroupper): Visit basic blocks using the
10040         work-list based algorithm based on vt_find_locations in
10041         var-tracking.c.
10042
10043         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
10044
10045 2011-01-24  Nick Clifton  <nickc@redhat.com>
10046
10047         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
10048         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
10049         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
10050         then define __v850e1__.
10051         * doc/invoke.texi: Document -mv850es.
10052
10053 2011-01-24  Richard Henderson  <rth@redhat.com>
10054
10055         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
10056         compound unordered comparisons.
10057         * config/rx/rx.c (rx_split_fp_compare): Remove.
10058         * config/rx/rx-protos.h: Update.
10059         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
10060         (cbranchsf4): Don't call rx_split_fp_compare.
10061         (*cbranchsf4): Use rx_split_cbranch.
10062         (*cmpsf): Don't accept "i" constraint.
10063         (*conditional_branch): Only valid after reload.
10064         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
10065
10066 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
10067
10068         PR target/47385
10069         * config/rs6000/altivec.md (vector constant splitters): Add
10070         support for creating vector single precision constants if -mvsx is
10071         used and we would create the constant using Altivec primitives.
10072
10073 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
10074             Richard Sandiford  <rdsandiford@googlemail.com>
10075
10076         PR rtl-optimization/47166
10077         * reload1.c (emit_reload_insns): Disable the spill_reg_store
10078         mechanism for PRE_MODIFY and POST_MODIFY.
10079         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
10080         reloadreg.
10081
10082 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
10083
10084         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
10085
10086 2011-01-22  Jan Hubicka  <jh@suse.cz>
10087
10088         PR lto/47333
10089         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
10090
10091 2011-01-22  Jan Hubicka  <jh@suse.cz>
10092
10093         PR tree-optimization/43884
10094         PR lto/44334
10095         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
10096         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
10097
10098 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
10099
10100         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10101         * config/s390/s390.c (s390_register_move_cost,
10102         s390_memory_move_cost): New.
10103         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
10104
10105 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10106
10107         PR middle-end/47401
10108         * except.c (sjlj_assign_call_site_values): Move setting the
10109         crtl->uses_eh_lsda flag to ...
10110         (sjlj_mark_call_sites): ... here.
10111         (sjlj_emit_function_enter): Support NULL dispatch label.
10112         (sjlj_build_landing_pads): In a function with no landing pads
10113         that still has must-not-throw regions, generate code to register
10114         a personality function with empty LSDA.
10115
10116 2011-01-21  Richard Henderson  <rth@redhat.com>
10117
10118         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
10119
10120         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
10121
10122         * compare-elim.c: New file.
10123         * Makefile.in (OBJS-common): Add it.
10124         (compare-elim.o): New.
10125         * common.opt (fcompare-elim): New.
10126         * opts.c (default_options_table): Add OPT_fcompare_elim.
10127         * tree-pass.h (pass_compare_elim_after_reload): New.
10128         * passes.c (init_optimization_passes): Add it.
10129         * recog.h: Protect against re-inclusion.
10130         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
10131         * doc/invoke.texi (-fcompare-elim): Document it.
10132         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
10133         * doc/tm.texi: Rebuild.
10134
10135 2011-01-22  Nick Clifton  <nickc@redhat.com>
10136
10137         * config/rx/rx.md (cstoresf4): Pass comparison operator to
10138         rx_split_fp_compare.
10139
10140 2011-01-22  Nick Clifton  <nickc@redhat.com>
10141
10142         * config/rx/rx.md (UNSPEC_CONST): New.
10143         (deallocate_and_return): Wrap the amount popped off the stack in
10144         an UNSPEC_CONST in order to stop it being rejected by
10145         -mmax-constant-size.
10146         (pop_and_return): Add a "(return)" rtx.
10147         (call): Drop the immediate operand.
10148         (call_internal): Likewise.
10149         (call_value): Likewise.
10150         (call_value_internal): Likewise.
10151         (sibcall_internal): Likewise.
10152         (sibcall_value_internal): Likewise.
10153         (sibcall): Likewise.  Generate an explicit call using
10154         sibcall_internal.
10155         (sibcall_value): Likewise.
10156         (mov<>): FAIL if a constant operand is not legitimate.
10157         (addsi3_unpsec): New pattern.
10158
10159         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
10160         (ok_for_max_constant): New function.
10161         (gen_safe_add): New function.
10162         (rx_expand_prologue): Use gen_safe_add.
10163         (rx_expand_epilogue): Likewise.
10164         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
10165         UNSPEC CONSTs.
10166
10167 2011-01-21  Jeff Law  <law@redhat.com>
10168
10169         PR tree-optimization/47053
10170         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
10171         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
10172         statements are deleted.
10173         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
10174         is nonempty, then purge dead edges and cleanup the CFG.
10175
10176 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
10177
10178         PR debug/47402
10179         Temporarily revert:
10180         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
10181         PR debug/47106
10182         * tree-dfa.c (create_var_ann): Mark variable as used.
10183
10184 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
10185
10186         PR middle-end/45566
10187         * except.c (convert_to_eh_region_ranges): Emit queued no-region
10188         notes from other section in hot/cold partitioning even if
10189         last_action is -3.  Increment call_site_base.
10190
10191         PR rtl-optimization/47366
10192         * fwprop.c (forward_propagate_into): Return bool.  If
10193         any changes are made, -fnon-call-exceptions is used and
10194         REG_EH_REGION note is present, call purge_dead_edges
10195         and return true if it purged anything.
10196         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
10197         any EH edges were purged.
10198
10199 2011-01-21  Jeff Law  <law@redhat.com>
10200
10201         PR rtl-optimization/41619
10202         * caller-save.c (setup_save_areas): Break out code to determine
10203         which hard regs are live across calls by examining the reload chains
10204         so that it is always used.
10205         Eliminate code which checked REG_N_CALLS_CROSSED.
10206
10207 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
10208
10209         PR tree-optimization/47355
10210         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
10211         NOP has non-debug uses beyond PHIs in new_bb.
10212
10213 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
10214
10215         PR debug/47106
10216         * cfgexpand.c (account_used_vars_for_block): Only account vars
10217         that are annotated as used.
10218         (estimated_stack_frame_size): Don't set TREE_USED.
10219         * tree-dfa.c (create_var_ann): Mark variable as used.
10220
10221 2011-01-21  Richard Guenther  <rguenther@suse.de>
10222
10223         PR middle-end/47395
10224         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
10225
10226 2011-01-21  Richard Guenther  <rguenther@suse.de>
10227
10228         PR tree-optimization/47365
10229         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
10230         (vn_reference_lookup_pieces): Adjust.
10231         (vn_reference_lookup): Likewise.
10232         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
10233         (vn_reference_lookup_3): Only look through kills if in
10234         VN_WALKREWRITE mode.
10235         (vn_reference_lookup_pieces): Adjust.
10236         (vn_reference_lookup): Likewise.
10237         (visit_reference_op_load): Likewise.
10238         (visit_reference_op_store): Likewise.
10239         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
10240         (compute_avail): Likewise.
10241         (eliminate): Likewise.
10242
10243 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
10244
10245         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
10246         DECL_IGNORED_P non-reg vars if they are used.
10247
10248         PR tree-optimization/47391
10249         * varpool.c (const_value_known_p): Return false if
10250         decl is volatile.
10251
10252 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
10253
10254         PR bootstrap/47215
10255         * config/i386/i386.c (ix86_local_alignment): Handle
10256         case for va_list_type_node is nil.
10257         (ix86_canonical_va_list_type): Likewise.
10258
10259 2011-01-21  Alan Modra  <amodra@gmail.com>
10260
10261         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
10262         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
10263
10264 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10265
10266         * config/arm/arm.md (define_attr type): Rename f_load
10267         and f_store to f_fpa_load and f_fpa_store. Update.
10268         (write_conflict): Deal with rename fallout.
10269         (*push_fp_multi): Likewise.
10270         * config/arm/fpa.md (f_load): Use f_fpa_load.
10271         (f_store): Use f_fpa_store.
10272         (*movsf_fpa): Likewise.
10273         (*movdf_fpa): Likewise.
10274         (*movxf_fpa): Likewise.
10275         (*thumb2_movsf_fpa): Likewise.
10276         (*thumb2_movdf_fpa): Likewise.
10277         (*thumb2_movxf_fpa): Likewise.
10278         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
10279         f_loadd and f_stored.
10280         (*thumb2_movdi_vfp): Likewise.
10281         (*thumb2_movsf_vfp): Fix attribute to f_loads.
10282         (*thumb2_movsi_vfp): Likewise.
10283         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
10284         Use f_loads instead of f_load.
10285         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
10286
10287 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
10288
10289         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10290         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
10291         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10292         (xtensa_mode_dependent_address_p): New function.
10293         (constantpool_address_p): Make static. Change return type to bool.
10294         Change argument type to const_rtx. Use CONST_INT_P predicate.
10295
10296 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
10297
10298         PR debug/46583
10299         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
10300
10301 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
10302
10303         PR debug/47283
10304         * cfgexpand.c (expand_debug_expr): Instead of generating
10305         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
10306         etc. handling.
10307
10308 2011-01-20  Richard Guenther  <rguenther@suse.de>
10309
10310         PR middle-end/47370
10311         * tree-inline.c (remap_gimple_op_r): Recurse manually for
10312         the pointer operand of MEM_REFs.
10313
10314 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
10315
10316         PR tree-optimization/46130
10317         * ipa-split.c (consider_split): If return_bb contains non-virtual
10318         PHIs other than for retval or if split_function would not adjust it,
10319         refuse to split.
10320
10321 2011-01-20  Richard Guenther  <rguenther@suse.de>
10322
10323         PR tree-optimization/47167
10324         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
10325         Revert previous change, only avoid enumeral type changes.
10326
10327 2011-01-19  Mike Stump  <mikestump@comcast.net>
10328
10329         * doc/tm.texi.in (BRANCH_COST): Englishify.
10330         * doc/tm.texi (BRANCH_COST): Likewise.
10331
10332 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
10333
10334         PR c++/47291
10335         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
10336         (gen_scheduled_generic_parms_dies): New functions.
10337         (gen_struct_or_union_type_die): Schedule template parameters DIEs
10338         generation for the end of CU compilation.
10339         (dwarf2out_finish): Generate template parameters DIEs here.
10340
10341 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
10342
10343         PR debug/46240
10344         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
10345         debug bind stmt on merge edges.
10346
10347 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
10348
10349         PR debug/47079
10350         PR debug/46724
10351         * function.c (instantiate_expr): Instantiate incoming rtl of
10352         implicit arguments, and recurse on VALUE_EXPRs.
10353         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
10354         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
10355
10356 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
10357
10358         * c-parser.c (c_parser_for_statement): Initialize
10359         collection_expression.
10360
10361 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
10362
10363         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
10364
10365 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
10366
10367         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
10368         (LINK_SHLIB_SPEC): Don't use %(link_path).
10369         (SUBTARGET_EXTRA_SPECS): Remove link_path.
10370
10371 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
10372
10373         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
10374         (NO_SHARED_LIB_SUPPORT): Remove.
10375         (LINK_SHLIB_SPEC): Remove one conditional definition.
10376
10377 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
10378
10379         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
10380         %{call_shared}.
10381         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
10382         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
10383         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
10384         %{call_shared} and conditionals on these options not being passed.
10385         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
10386         %{call_shared}.
10387
10388 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
10389
10390         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
10391         simplify.
10392
10393         * ipa-split.c: Spelling fixes.
10394
10395 2011-01-19  Richard Henderson  <rth@redhat.com>
10396
10397         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
10398         (*mulsi3): Likewise.
10399
10400         * longlong.h [__mn10300__] (count_leading_zeros): New.
10401         [__mn10300__] (umul_ppmm, smul_ppmm): New.
10402         [__mn10300__] (add_ssaaaa, subddmmss): New.
10403         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
10404         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
10405
10406 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10407
10408         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
10409
10410 2011-01-19  Richard Henderson  <rth@redhat.com>
10411
10412         * config/mn10300/mn10300.md (addsi3_flags): New.
10413         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
10414         (subsi3_flags, subc_internal, subdi3): New.
10415         (subdi3_internal, *subdi3_degenerate): New.
10416         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
10417
10418         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
10419         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
10420         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
10421         * config/mn10300/mn10300-protos.h: Update.
10422         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
10423         (return_ret): Likewise.  Rename from return_internal_regs.
10424         (return_internal): Remove.
10425
10426         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
10427         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
10428         (mn10300_legitimate_constant_p): Likewise.
10429         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
10430         (mn10300_frame_size): New.
10431         (mn10300_expand_prologue): Use it.
10432         (mn10300_expand_epilogue): Likewise.
10433         (mn10300_initial_offset): Likewise.
10434         * config/mn10300/mn10300-protos.h: Update.
10435         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
10436         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
10437         (prologue, epilogue, return_internal): Tidy output code.
10438         (mn10300_store_multiple_operation, return): Likewise.
10439         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
10440         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
10441         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
10442         (load_pic, am33_load_pic): New.
10443         (mn10300_load_pic0, mn10300_load_pic1): New.
10444
10445         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
10446         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
10447         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
10448         (cc_flags_for_mode, cc_flags_for_code): New.
10449         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
10450         overflow flag is not valid.  Validate that the flags we need
10451         for the comparison are valid.
10452         (mn10300_output_cmp): Remove.
10453         (mn10300_output_add): New.
10454         (mn10300_select_cc_mode): Use cc_flags_for_code.
10455         (mn10300_split_cbranch): New.
10456         (mn10300_match_ccmode): New.
10457         (mn10300_split_and_operand_count): New.
10458         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
10459         to the function.
10460         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
10461         (addsi3): ... here.  Use mn10300_output_add.
10462         (*addsi3_flags): New.
10463         (*am33_subsi3, *mn10300_subsi3): Merge...
10464         (subsi3): ... here.  Use attribute isa.
10465         (*subsi3_flags): New.
10466         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
10467         when possible.
10468         (*am33_andsi3, *mn10300_andsi3): Merge...
10469         (andsi3): ... here.
10470         (*andsi3_flags): New.
10471         (andsi3 splitters): New.
10472         (*am33_iorsi3, *mn10300_iorsi3): Merge...
10473         (iorsi3): ... here.
10474         (*iorsi3_flags): New.
10475         (*am33_xorsi3, *mn10300_xorsi3): Merge...
10476         (xorsi3): ... here.
10477         (*xorsi3_flags): New.
10478         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
10479         (one_cmplsi2): ... here.
10480         (*one_cmplsi2_flags): New.
10481         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
10482         instead of "dax" in constraints.  Use mn10300_split_cbranch.
10483         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
10484         use matching constraints to eliminate a self-comparison.
10485         (*integer_conditional_branch): Rename from integer_conditional_branch.
10486         Use int_mode_flags to match CC_REG.
10487         (*cbranchsi4_btst, *btstsi): New.
10488         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
10489         mn10300_split_cbranch.
10490         (*am33_cmpsf): Rename from am33_cmpsf.
10491         (*float_conditional_branch): Rename from float_conditional_branch.
10492         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
10493         (zero_extendqisi2): ... here.
10494         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
10495         (zero_extendhisi2): ... here.
10496         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
10497         (extendqisi2): ... here.
10498         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
10499         (extendhisi2): ... here.
10500         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
10501         (ashlsi3): ... here.
10502         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
10503         (lshrsi3): ... here.
10504         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
10505         (ashrsi3): ... here.
10506         (consecutive add peephole): Remove.
10507         * config/mn10300/predicates.md (label_ref_operand): New.
10508         (int_mode_flags): New.
10509         (CCZN_comparison_operator): New.
10510
10511         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
10512         (throughput_42_latency_43): New reservation.
10513         (mulsidi3, umulsidi3): New expanders.
10514         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
10515         the MDR register to allocation; separately allocate the low and
10516         high parts of the DImode result.
10517         (umulsidi3_internal): Similarly.
10518         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
10519         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
10520         (udivsi3, umodsi3): Remove.
10521         (udivmodsi4, divmodsi4): New expanders.
10522         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
10523         (*divmodsi4): Simiarly.
10524         (ext_internal): New.
10525
10526         * config/mn10300/constraints.md ("z"): New constraint.
10527         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
10528         (FIXED_REGISTERS): Don't fix MDR.
10529         (CALL_USED_REGSITERS): Reformat nicely.
10530         (REG_ALLOC_ORDER): Add MDR.
10531         (enum regclass): Add MDR_REGS.
10532         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
10533         (IRA_COVER_CLASSES): Add MDR_REGS.
10534         (REGNO_REG_CLASS): Handle MDR_REG.
10535         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
10536         (mn10300_register_move_cost): Likewise.
10537         * config/mn10300/mn10300.md (MDR_REG): New.
10538         (*movsi_internal): Handle moves to/from MDR_REGS.
10539
10540         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
10541         POST_MODIFY.
10542         (mn10300_secondary_reload): Tidy combination reload classes.
10543         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
10544         addresses for AM33.  Allow symbolic offsets for reg+imm.
10545         (mn10300_regno_in_class_p): New.
10546         (mn10300_legitimize_reload_address): New.
10547         * config/mn10300/mn10300.h (enum reg_class): Remove
10548         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
10549         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
10550         SP_OR_GENERAL_REGS.
10551         (REG_CLASS_NAMES): Update to match.
10552         (REG_CLASS_CONTENTS): Likewise.
10553         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
10554         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
10555         (REGNO_IN_RANGE_P): Remove.
10556         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
10557         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
10558         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
10559         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
10560         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
10561         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
10562         (REGNO_GENERAL_P): New.
10563         (HAVE_POST_MODIFY_DISP): New.
10564         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
10565         (LEGITIMIZE_RELOAD_ADDRESS): New.
10566         * config/mn10300/mn10300-protos.h: Update.
10567
10568         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
10569         DATA_REGS for AM33 stack-pointer destination.
10570         (mn10300_preferred_output_reload_class): Likewise.
10571         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
10572         into a form appropriate for ...
10573         (TARGET_SECONDARY_RELOAD): New.
10574         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
10575         * config/mn10300/mn10300-protos.h: Update.
10576         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
10577         reload_insi; use the "A" constraint for the scratch; handle AM33
10578         moves of sp to non-address registers.
10579
10580         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
10581         (*movqi_internal): ... here.
10582         (*am33_movhi, *mn10300_movhi): Merge into...
10583         (*movhi_internal): ... here.
10584         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
10585         as the source/destination of moves from/to SP.
10586         (movsf): Only allow for AM33-2.
10587         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
10588         any integer constant constraint.  Only allow for AM33-2.  Tidy
10589         all of the alternative outputs.
10590         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
10591         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
10592         for MN103.
10593         (udivsi3, umodsi3): New patterns for MN103 only.
10594
10595 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
10596
10597         * doc/tm.texi.in: Spell out that a lack of register class unions
10598         can lead to ICEs.
10599         * doc/tm.texi: Regenerate.
10600
10601 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
10602
10603         PR rtl-optimization/47337
10604         * dce.c (check_argument_store): New function.
10605         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
10606
10607         PR tree-optimization/47290
10608         * tree-eh.c (infinite_empty_loop_p): New function.
10609         (cleanup_empty_eh): Use it.
10610
10611 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
10612
10613         PR target/46997
10614         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
10615         (a64_expand_widen_sum): Ditto.
10616         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
10617         (vec_extract_evenodd_help): Ditto.
10618         (vec_extract_evenv4hi): Ditto.
10619         (vec_extract_oddv4hi): Ditto.
10620         (vec_extract_evenv2si): Ditto.
10621         (vec_extract_oddv2si): Ditto.
10622         (vec_extract_evenv2sf): Ditto.
10623         (vec_extract_oddv2sf): Ditto.
10624         (vec_pack_trunc_v4hi: Ditto.
10625         (vec_pack_trunc_v2si): Ditto.
10626         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
10627         (vec_interleave_highv8qi): Ditto.
10628         (mix1_r): Ditto.
10629         (vec_extract_oddv8qi): Ditto.
10630         (vec_interleave_lowv4hi): Ditto.
10631         (vec_interleave_highv4hi): Ditto.
10632         (vec_interleave_lowv2si): Ditto.
10633         (vec_interleave_highv2si): Ditto.
10634
10635 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10636
10637         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
10638         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
10639         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
10640         (pa_c_mode_for_suffix): New.
10641         (TARGET_EXPAND_BUILTIN): Define.
10642         (TARGET_C_MODE_FOR_SUFFIX): Define.
10643         (pa_builtins): Define.
10644         (pa_init_builtins): Register __float128 type and init new support
10645         builtins.
10646         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
10647         * config/pa/quadlib.c (_U_Qfcopysign): New.
10648
10649 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
10650
10651         PR middle-end/46894
10652         * explow.c (allocate_dynamic_stack_space): Do not assume more than
10653         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
10654         are defined.
10655
10656 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10657
10658         PR tree-optimization/47179
10659         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
10660         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
10661
10662 2011-01-18  Richard Guenther  <rguenther@suse.de>
10663
10664         PR rtl-optimization/47216
10665         * emit-rtl.c: Include tree-flow.h.
10666         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
10667         of replicating it with different semantics.
10668         * Makefile.in (emit-rtl.o): Adjust.
10669
10670 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10671
10672         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
10673         (cortex_a9_dp): Handle neon types correctly.
10674
10675 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
10676
10677         PR rtl-optimization/47299
10678         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
10679         subtarget.  Use normal multiplication if both operands are constants.
10680         * expmed.c (expand_widening_mult): Don't try to optimize constant
10681         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
10682         before using it.
10683
10684 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10685
10686         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
10687         spacing after 'e.g.', typos, comma, hyphenation.
10688
10689 2011-01-17  Richard Henderson  <rth@redhat.com>
10690
10691         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
10692         (rx_restricted_mem_operand): New.
10693         (rx_shift_operand): Use register_operand.
10694         (rx_source_operand, rx_compare_operand): Likewise.
10695         * config/rx/rx.md (addsi3_flags): New expander.
10696         (adddi3): Rewrite as expander.
10697         (adc_internal, *adc_flags, adddi3_internal): New patterns.
10698         (subsi3_flags): New expander.
10699         (subdi3): Rewrite as expander.
10700         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
10701
10702         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
10703         (rx_init_builtins): Remove sat builtin.
10704         (rx_expand_builtin): Likewise.
10705         * config/rx/rx.md (ssaddsi3): New.
10706         (*sat): Rename from sat.  Represent the CC_REG input.
10707
10708         * config/rx/predicates.md (rshift_operator): New.
10709         * config/rx/rx.c (rx_expand_insv): Remove.
10710         * config/rx/rx-protos.h: Update.
10711         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
10712         operand to the canonical position.
10713         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
10714         (*bitclr, *bitclr_in_memory): Similarly.
10715         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
10716         (insv): Retain the zero_extract in the expansion.
10717
10718         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
10719         (bswaphi2, bitinvert, revw): Likewise.
10720
10721         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
10722         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
10723         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
10724         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
10725         (bitset, bitset_in_memory): Likewise.
10726         (bitinvert, bitinvert_in_memory): Likewise.
10727         (bitclr, bitclr_in_memory): Likewise.
10728         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
10729         (rx_strend, rx_cmpstrn): Likewise.
10730         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
10731         (bitop peep2 patterns): Remove.
10732
10733         * config/rx/rx.c (rx_match_ccmode): New.
10734         * config/rx/rx-protos.h: Update.
10735         * config/rx/rx.md (abssi2): Clobber, don't set flags.
10736         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
10737         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
10738         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
10739         (fix_truncsfsi2, floatsisf2): Likewise.
10740         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
10741         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
10742         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
10743         (*subsi3_flags, *xorsi3_flags): New.
10744
10745         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
10746
10747         * config/rx/rx.c (rx_print_operand): Remove workaround for
10748         unsplit comparison operations.
10749
10750         * config/rx/rx.md (movsicc): Split after reload.
10751         (*movsicc): Merge *movsieq and *movsine via match_operator.
10752         (*stcc): New pattern.
10753
10754         * config/rx/rx.c (rx_float_compare_mode): Remove.
10755         * config/rx/rx.h (rx_float_compare_mode): Remove.
10756         * config/rx/rx.md (cstoresi4): Split after reload.
10757         (*sccc): New pattern.
10758
10759         * config/rx/predicates.md (label_ref_operand): New.
10760         (rx_z_comparison_operator): New.
10761         (rx_zs_comparison_operator): New.
10762         (rx_fp_comparison_operator): New.
10763         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
10764         Validate that the flags are set properly for the comparison.
10765         (rx_gen_cond_branch_template): Remove.
10766         (rx_cc_modes_compatible): Remove.
10767         (mode_from_flags): New.
10768         (flags_from_code): Rename from flags_needed_for_conditional.
10769         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
10770         (rx_select_cc_mode): Likewise.
10771         (rx_split_fp_compare): New.
10772         (rx_split_cbranch): New.
10773         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
10774         (*cbranchsi4): Use match_operator and rx_split_cbranch.
10775         (*cbranchsf4): Similarly.
10776         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
10777         match_operator and rx_split_cbranch.
10778         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
10779         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
10780         (*cmpsi): Rename from cmpsi.
10781         (*tstsi): Rename from tstsi.
10782         (*cmpsf): Rename from cmpsf; use CC_Fmode.
10783         (*conditional_branch): Rename from conditional_branch.
10784         (*reveresed_conditional_branch): Remove.
10785         (b<code>): Remove expander.
10786         * config/rx/rx-protos.h: Update.
10787
10788         * config/rx/rx.c (rx_compare_redundant): Remove.
10789         * config/rx/rx.md (cmpsi): Don't use it.
10790         * config/rx/rx-protos.h: Update.
10791
10792         * config/rx/rx-modes.def (CC_F): New mode.
10793         * config/rx/rx.c (rx_select_cc_mode): New.
10794         * config/rx/rx.h (SELECT_CC_MODE): Use it.
10795         * config/rx/rx-protos.h: Update.
10796
10797 2011-01-17  Richard Henderson  <rth@redhat.com>
10798
10799         * except.c (dump_eh_tree): Fix stray ; after for statement.
10800
10801 2011-01-17  Richard Guenther  <rguenther@suse.de>
10802
10803         PR tree-optimization/47313
10804         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
10805         handling before copying the body.  Properly deal with
10806         by-reference result in SSA form.
10807
10808 2011-01-17  Ian Lance Taylor  <iant@google.com>
10809
10810         PR target/47219
10811         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
10812         (struct_value_alias_set): Don't define.
10813         (sparc_option_override): Don't set sparc_sr_alias_set and
10814         struct_value_alias_set.
10815         (save_or_restore_regs): Use gen_frame_mem rather than calling
10816         set_mem_alias_set.
10817         (sparc_struct_value_rtx): Likewise.
10818
10819 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
10820
10821         PR target/47318
10822         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
10823         (_mm_maskstore_pd): Likewise.
10824         (_mm_maskload_ps): Likewise.
10825         (_mm_maskstore_ps): Likewise.
10826         (_mm256_maskload_pd): Change mask to __m256i.
10827         (_mm256_maskstore_pd): Likewise.
10828         (_mm256_maskload_ps): Likewise.
10829         (_mm256_maskstore_ps): Likewise.
10830
10831         * config/i386/i386-builtin-types.def: Updated.
10832         (ix86_expand_special_args_builtin): Likewise.
10833
10834         * config/i386/i386.c (bdesc_special_args): Update
10835         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
10836         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
10837         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
10838         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
10839
10840         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
10841         Use <avxpermvecmode> on mask register.
10842         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
10843
10844 2011-01-17  Olivier Hainque  <hainque@adacore.com>
10845             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
10846             Eric Botcazou  <ebotcazou@adacore.com>
10847
10848         PR target/46655
10849         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
10850         if <= USHRT_MAX in 32-bit mode.
10851
10852 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10853
10854         * doc/install.texi (Configuration, Specific): Wrap long
10855         lines in examples.  Allow line wrapping in long options
10856         and URLs where beneficial for PDF output.
10857
10858 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
10859
10860         * config/mips/mips.c (mips_classify_symbol): Don't return
10861         SYMBOL_PC_RELATIVE for nonlocal labels.
10862
10863 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10864
10865         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
10866
10867 2011-01-15  Jan Hubicka  <jh@suse.cz>
10868
10869         PR tree-optimization/47276
10870         * ipa.c (function_and_variable_visibility): Do not try to mark alias
10871         declarations as needed.
10872
10873 2011-01-15  Martin Jambor  <mjambor@suse.cz>
10874
10875         * common.opt (fdevirtualize): New flag.
10876         * doc/invoke.texi (Option Summary): Document it.
10877         * opts.c (default_options_table): Add devirtualize flag.
10878         * ipa-prop.c (detect_type_change): Return immediately if
10879         devirtualize flag is not set.
10880         (detect_type_change_ssa): Likewise.
10881         (compute_known_type_jump_func): Likewise.
10882         (ipa_analyze_virtual_call_uses): Likewise.
10883
10884 2011-01-14  Martin Jambor  <mjambor@suse.cz>
10885
10886         PR tree-optimization/45934
10887         PR tree-optimization/46302
10888         * ipa-prop.c (type_change_info): New type.
10889         (stmt_may_be_vtbl_ptr_store): New function.
10890         (check_stmt_for_type_change): Likewise.
10891         (detect_type_change): Likewise.
10892         (detect_type_change_ssa): Likewise.
10893         (compute_complex_assign_jump_func): Check for dynamic type change.
10894         (compute_complex_ancestor_jump_func): Likewise.
10895         (compute_known_type_jump_func): Likewise.
10896         (compute_scalar_jump_functions): Likewise.
10897         (ipa_analyze_virtual_call_uses): Likewise.
10898         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
10899
10900 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10901
10902         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
10903         * config/i386/i386.opt (msse5): New Alias.
10904
10905 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10906
10907         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
10908         * config/sparc/linux64.h (CC1_SPEC): Likewise.
10909         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
10910         * config/sparc/sparc.h (CC1_SPEC): Likewise.
10911
10912 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10913
10914         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
10915         -mcpu options.
10916         * config/sparc/linux64.h (CC1_SPEC): Likewise.
10917         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
10918         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
10919         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
10920         Likewise.
10921         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
10922
10923 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10924
10925         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
10926
10927 2011-01-14  Mike Stump  <mikestump@comcast.net>
10928
10929         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
10930         * config/fr30/fr30.md: Likweise
10931         (movsi_push): Likewise.
10932         (movsi_pop): Likewise.
10933         (enter_func): Likewise.
10934         * config/moxie/moxie.md (movsi_push): Likewise.
10935         (movsi_pop): Likewise.
10936
10937 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10938
10939         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
10940         %{no_archive} %{exact_version}.
10941         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
10942         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
10943         %{no_archive} %{exact_version}.
10944         * config/mips/openbsd.h (LINK_SPEC): Likewise.
10945         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
10946         * config/mips/vxworks.h: Likewise.
10947
10948 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10949
10950         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
10951
10952 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10953
10954         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
10955         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
10956
10957 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10958
10959         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
10960         -nodefaultlib.
10961
10962 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10963
10964         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
10965         for mcpu not cpu.
10966         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
10967         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
10968         not cpu.
10969         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
10970         Don't handle -shlib.
10971
10972 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10973
10974         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
10975         (CC1_SPEC): Don't handle -profile.
10976
10977 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10978
10979         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
10980         * config/mips/mips.h (CC1_SPEC): Likewise.
10981
10982 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10983
10984         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
10985         * config/mips/mips.h (CC1_SPEC): Likewise.
10986
10987 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10988
10989         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
10990         * config/m32r/linux.h (LINK_SPEC): Likewise.
10991         * config/mips/linux.h (LINK_SPEC): Likewise.
10992         * config/mips/linux64.h (LINK_SPEC): Likewise.
10993         * config/sparc/linux.h (LINK_SPEC): Likewise.
10994         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
10995         LINK_SPEC): Likewise.
10996         * config/xtensa/linux.h (LINK_SPEC): Likewise.
10997
10998 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10999
11000         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
11001         %{version:-v}.
11002         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
11003
11004 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11005
11006         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
11007         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
11008
11009 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11010
11011         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
11012
11013 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11014
11015         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
11016         supports -Bstatic/-Bdynamic.
11017         * configure: Regenerate.
11018
11019 2011-01-14  Jan Hubicka  <jh@suse.cz>
11020             Jack Howarth  <howarth@bromo.med.uc.edu>
11021
11022         PR target/46037
11023         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
11024         when checking debug_info_level. Test write_symbols instead of
11025         debug_hooks->var_location when setting flag_var_tracking_uninit.
11026
11027 2011-01-14  Richard Guenther  <rguenther@suse.de>
11028
11029         PR tree-optimization/47179
11030         * target.def (ref_may_alias_errno): New target hook.
11031         * targhooks.h (default_ref_may_alias_errno): Declare.
11032         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
11033         (default_ref_may_alias_errno): New function.
11034         * target.h (struct ao_ref_s): Declare.
11035         * tree-ssa-alias.c: Include target.h.
11036         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
11037         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
11038         (targhooks.o): Likewise.
11039         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
11040         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
11041
11042 2011-01-14  Richard Guenther  <rguenther@suse.de>
11043
11044         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
11045
11046 2011-01-14  Richard Guenther  <rguenther@suse.de>
11047
11048         PR tree-optimization/47280
11049         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
11050         return CFG changes.
11051         (tree_ssa_forward_propagate_single_use_vars): Deal with
11052         CFG changes from associate_plusminus.
11053
11054 2011-01-14  Richard Guenther  <rguenther@suse.de>
11055
11056         PR middle-end/47281
11057         Revert
11058         2011-01-11  Richard Guenther  <rguenther@suse.de>
11059
11060         PR tree-optimization/46076
11061         * tree-ssa.c (useless_type_conversion_p): Conversions from
11062         unprototyped to empty argument list function types are useless.
11063
11064 2011-01-14  Richard Guenther  <rguenther@suse.de>
11065
11066         PR tree-optimization/47286
11067         * tree-ssa-structalias.c (new_var_info): Register variables are global.
11068
11069 2011-01-14  Martin Jambor  <mjambor@suse.cz>
11070
11071         PR middle-end/46823
11072         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
11073
11074 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
11075
11076         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
11077         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11078         * config/xtensa/xtensa.c (xtensa_libcall_value,
11079         xtensa_function_value_regno_p): New functions.
11080         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11081
11082 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
11083
11084         PR c++/47213
11085         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
11086         PE specific hook.
11087         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
11088         New function prototype.
11089         * config/i386/winnt.c (i386_pe_assemble_visibility):
11090         Warn only if attribute was specified by user.
11091
11092 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
11093
11094         PR target/47251
11095         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
11096         floating point.
11097         (floatunsdidf2_fcfidu): Ditto.
11098
11099 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11100
11101         * config/s390/s390.c (print_operand_address): Replace 'error' with
11102         'output_operand_lossage'.
11103         (print_operand): Likewise.
11104
11105 2011-01-13  Jeff Law  <law@redhat.com>
11106
11107         PR rtl-optimization/39077
11108         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
11109         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
11110         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
11111         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
11112         * gcse.c (prune_insertions_deletions): New function.
11113         (compute_pre_data): Use it.
11114
11115 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
11116
11117         PR debug/PR46973
11118         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
11119         static function.
11120         (prune_unused_types_mark): Use it.
11121
11122 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
11123
11124         PR rtl-optimization/45352
11125         * sel-sched.c: Update copyright years.
11126         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
11127         in the advancing loop when we have issued issue_rate insns.
11128
11129 2011-01-12  Richard Henderson  <rth@redhat.com>
11130
11131         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
11132         (TARGET_MD_ASM_CLOBBERS): New.
11133
11134         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
11135         (TARGET_DELEGITIMIZE_ADDRESS): New.
11136
11137         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
11138         (clzsi2, *bsch): New patterns.
11139
11140         * config/mn10300/mn10300.md (INT): New mode iterator.
11141         (*mov<INT>_clr): New pattern, and peep2 to generate it.
11142
11143         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
11144         flag_split_wide_types.
11145
11146         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
11147         (mn10300_trampoline_init): Rewrite without a template, an immediate
11148         load and a direct branch.
11149         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
11150
11151 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
11152
11153         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11154         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
11155         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
11156         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11157
11158 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
11159
11160         PR debug/47209
11161         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
11162         of type.
11163
11164 2011-01-12  Jan Hubicka  <jh@suse.cz>
11165
11166         PR driver/47244
11167         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
11168         (PLUGIN_COND_CLOSE): New macro.
11169         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
11170
11171 2011-01-12  Richard Guenther  <rguenther@suse.de>
11172
11173         PR lto/47259
11174         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
11175         register variables in a MEM_REF.
11176
11177 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
11178
11179         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
11180         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
11181         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
11182         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
11183         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
11184         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
11185         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
11186         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
11187         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
11188         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
11189         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
11190         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
11191         * config/gnu-user.h: New.  Copied from linux.h.
11192         (LINUX_TARGET_STARTFILE_SPEC): Rename to
11193         GNU_USER_TARGET_STARTFILE_SPEC.
11194         (LINUX_TARGET_ENDFILE_SPEC): Rename to
11195         GNU_USER_TARGET_ENDFILE_SPEC.
11196         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
11197         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
11198         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
11199         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
11200         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
11201         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
11202         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
11203         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
11204         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
11205         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
11206         * config/arm/linux-eabi.h (CC1_SPEC): Use
11207         GNU_USER_TARGET_CC1_SPEC.
11208         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
11209         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
11210         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
11211         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
11212         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
11213         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
11214         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
11215         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
11216
11217 2011-01-12  Richard Guenther  <rguenther@suse.de>
11218
11219         PR other/46946
11220         * doc/invoke.texi (ffast-math): Document it is turned on
11221         with -Ofast.
11222
11223 2011-01-12  Jan Hubicka  <jh@suse.cz>
11224
11225         PR tree-optimization/47233
11226         * opts.c (common_handle_option): Disable ipa-reference with profile
11227         feedback.
11228
11229 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
11230
11231         * c-parser.c (c_parser_objc_at_property_declaration): Improved
11232         error message.
11233
11234 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
11235
11236         * c-parser.c (c_lex_one_token): Updated and reindented some
11237         comments.  No changes in code.
11238
11239 2011-01-11  Ian Lance Taylor  <iant@google.com>
11240
11241         * godump.c (go_output_var): Don't output the variable if there is
11242         already a type with the same name.
11243
11244 2011-01-11  Ian Lance Taylor  <iant@google.com>
11245
11246         * godump.c (go_format_type): Don't generate float80.
11247
11248 2011-01-11  Richard Henderson  <rth@redhat.com>
11249
11250         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
11251         declaration.  Rewrite for both speed and size.
11252         (mn10300_address_cost_1): Remove.
11253         (mn10300_register_move_cost): New.
11254         (mn10300_memory_move_cost): New.
11255         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
11256         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
11257         extensions, shifts, BSWAP, CLZ.
11258         (mn10300_wide_const_load_uses_clr): Remove.
11259         (TARGET_REGISTER_MOVE_COST): New.
11260         (TARGET_MEMORY_MOVE_COST): New.
11261         * config/mn10300/mn10300-protos.h: Update.
11262         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
11263
11264         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
11265         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
11266         * config/mn10300/mn10300-protos.h: Update.
11267         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
11268         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
11269         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
11270         (*test_int_bitfield, *test_byte_bitfield): Remove.
11271         (*bit_test, *subreg_bit_test): Remove.
11272         * config/mn10300/predicates.md (const_8bit_operand): Remove.
11273
11274         * config/mn10300/constraints.md ("c"): Rename from "A".
11275         ("A", "D"): New constraint letters.
11276         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
11277         (fmssf4, fnmasf4, fnmssf4): Likewise.
11278
11279         * config/mn10300/mn10300.md (isa): New attribute.
11280         (enabled): New attribute.
11281
11282         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
11283         (abssf2, negsf2): Define only for hardware fp.
11284         (sqrtsf2): Reformat.
11285         (addsf3, subsf3, mulsf3): Merge expander and insn.
11286
11287         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
11288         (DEBUGGER_AUTO_OFFSET): Remove.
11289         (DEBUGGER_ARG_OFFSET): Remove.
11290
11291         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
11292         Emit register stores with the same offsets as the hardware.
11293         (mn10300_store_multiple_operation): Don't check that the register
11294         save offsets are monotonic.
11295         * config/mn10300/mn10300-protos.h: Update.
11296
11297         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
11298
11299         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
11300         in terms of the value on the stack, not the MDR register.
11301
11302 2011-01-11  Jan Hubicka  <jh@suse.cz>
11303
11304         PR lto/45721
11305         PR lto/45375
11306         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
11307         (symbol_alias_set_destroy, symbol_alias_set_contains,
11308         propagate_aliases_backward): Declare.
11309         * lto-streamer-out.c (struct sets): New sturcture.
11310         (trivally_defined_alias): New function.
11311         (output_alias_pair_p): Rewrite.
11312         (output_unreferenced_globals): Fix output of alias pairs.
11313         (produce_symtab): Likewise.
11314         * ipa.c (function_and_variable_visibility): Set weak alias destination
11315         as needed in lto.
11316         * varasm.c (symbol_alias_set_t): Remove.
11317         (symbol_alias_set_destroy): Export.
11318         (propagate_aliases_forward, propagate_aliases_backward): New functions
11319         based on ...
11320         (compute_visible_aliases): ... this one; remove.
11321         (trivially_visible_alias): New
11322         (trivially_defined_alias): New.
11323         (remove_unreachable_alias_pairs): Rewrite.
11324         (finish_aliases_1): Reorganize code checking if alias is defined.
11325         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
11326         in LTO mode.
11327
11328 2011-01-11  Richard Guenther  <rguenther@suse.de>
11329
11330         PR tree-optimization/46076
11331         * tree-ssa.c (useless_type_conversion_p): Conversions from
11332         unprototyped to empty argument list function types are useless.
11333
11334 2011-01-11  Richard Guenther  <rguenther@suse.de>
11335
11336         PR middle-end/45235
11337         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
11338         volatile MEMs as MEM_READONLY_P.
11339
11340 2011-01-11  Richard Guenther  <rguenther@suse.de>
11341
11342         PR tree-optimization/47239
11343         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
11344
11345 2011-01-11  Jeff Law  <law@redhat.com>
11346
11347         PR tree-optimization/47086
11348         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
11349         IVs from statements that might throw.
11350
11351 2011-01-10  Jan Hubicka  <jh@suse.cz>
11352
11353         PR lto/45375
11354         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
11355
11356 2011-01-10  Jan Hubicka  <jh@suse.cz>
11357
11358         PR lto/45375
11359         * profile.c (read_profile_edge_counts): Ignore profile inconistency
11360         when correcting profile.
11361
11362 2011-01-10  Jan Hubicka  <jh@suse.cz>
11363
11364         PR lto/46083
11365         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
11366         DECL_FINI_PRIORITY.
11367         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
11368         Restore DECL_FINI_PRIORITY.
11369
11370 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11371
11372         * doc/gimple.texi: Fix quoting of multi-word return values in
11373         @deftypefn statements.  Ensure presence of return value.  Wrap
11374         overlong @deftypefn lines.
11375         (is_gimple_operand, is_gimple_min_invariant_address): Remove
11376         descriptions of removed functions.
11377         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
11378         of multi-word return value in @deftypefn statement.
11379
11380 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11381
11382         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
11383         (Conditional Expressions, Logical Operators)
11384         (Statement and operand traversals): Do not indent smallexample
11385         code.  Fix duplicate function argument in example.
11386
11387 2011-01-10  Jeff Law  <law@redhat.com>
11388
11389         PR tree-optimization/47141
11390         * ipa-split.c (split_function): Handle case where we are
11391         returning a value and the return block has a virtual operand phi.
11392
11393 2011-01-10  Jan Hubicka  <jh@suse.cz>
11394
11395         PR tree-optimization/47234
11396         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
11397         (pass_feedback_split_functions): Declare.
11398         * passes.c (init_optimization_passes): Add ipa-split as subpass of
11399         tree-profile.
11400         * ipa-split.c (gate_split_functions): Update comments; disable
11401         split-functions for profile_arc_flag and branch_probabilities.
11402         (gate_feedback_split_functions): New function.
11403         (execute_feedback_split_functions): New function.
11404         (pass_feedback_split_functions): New global var.
11405
11406 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
11407
11408         PR lto/46760
11409         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
11410         calling gimple_call_set_cannot_inline.
11411
11412 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
11413
11414         * config/darwin-sections.def: Remove unused section.
11415
11416 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
11417
11418         PR c++/47218
11419         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
11420
11421 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
11422
11423         PR objc/47232
11424         * c-parser.c (c_parser_declaration_or_fndef): Improved
11425         error message.
11426
11427 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
11428
11429         * config/i386/winnt.c (i386_pe_start_function): Make sure
11430         to switch back to function's section.
11431
11432 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
11433
11434         PR gcc/46902
11435         PR testsuite/46912
11436         * plugin.c: Move include of dlfcn.h from here...
11437         * system.h: ... to here.
11438
11439 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11440
11441         * doc/cpp.texi (C++ Named Operators): Fix markup for header
11442         file name.
11443         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
11444         two extra empty pages in PDF output.
11445
11446 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
11447
11448         PR objc/47078
11449         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
11450         for error recovery purposes behave as if it was not specified so
11451         that the default type is usd.
11452
11453 2011-01-07  Jan Hubicka  <jh@suse.cz>
11454
11455         PR tree-optmization/46469
11456         * ipa.c (function_and_variable_visibility): Clear needed flags on
11457         nodes with external decls; handle weakrefs merging correctly.
11458
11459 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
11460
11461         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
11462         not false.
11463
11464 2011-01-07  Jan Hubicka  <jh@suse.cz>
11465
11466         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
11467         and no longer claim that gold is required for linker plugin.
11468         * configure: Regenerate.
11469         * gcc.c (PLUGIN_COND): New macro.
11470         (LINK_COMMAND_SPEC): Use it.
11471         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
11472         * config.in (HAVE_LTO_PLUGIN): New.
11473         * configure.ac (--with-lto-plugin): New parameter; autodetect
11474         HAVE_LTO_PLUGIN.
11475
11476 2011-01-07  Jan Hubicka  <jh@suse.cz>
11477
11478         PR tree-optimization/46367
11479         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
11480         when we can update original.
11481         (cgraph_mark_inline_edge): Sanity check.
11482         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
11483
11484 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11485
11486         * config/spu/spu.h (ASM_COMMENT_START): Define.
11487
11488 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11489
11490         PR driver/42445
11491         * gcc.c (%>S): New.
11492         (SWITCH_KEEP_FOR_GCC): Likewise.
11493         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
11494         (do_spec_1): Handle "%>".
11495
11496         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
11497
11498 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
11499
11500         PR target/47201
11501         * config/i386/i386.c (ix86_delegitimize_address): If
11502         simplify_gen_subreg fails, return orig_x.
11503
11504         PR bootstrap/47187
11505         * value-prof.c (gimple_stringop_fixed_value): Handle
11506         lhs of the call properly.
11507
11508 2011-01-07  Jan Hubicka  <jh@suse.cz>
11509
11510         PR lto/45375
11511         * lto-opt.c (lto_reissue_options): Set flag_shlib.
11512
11513 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
11514
11515         * target.def (function_switched_text_sections): New hook.
11516         * doc/tm.texi: Regenerated.
11517         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
11518         * final.c (default_function_switched_text_sections): New.
11519         (final_scan_insn): Call function_switched_text_sections when a
11520         mid-function section change occurs.
11521         * output.h (default_function_switched_text_sections): Declare.
11522         * config/darwin-protos.h (darwin_function_switched_text_sections):
11523         Likewise.
11524         * config/darwin.c (darwin_function_switched_text_sections): New.
11525         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
11526
11527 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
11528
11529         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
11530         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
11531         the secondary code fragment when outputting for DWARF == 2.
11532
11533 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
11534
11535         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11536         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
11537         Remove.
11538         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
11539         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11540
11541 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
11542
11543         PR debug/46704
11544         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
11545         when it is not empty.
11546
11547 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
11548
11549         Bobcat Enablement
11550         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
11551         (case ${target}): Add btver1.
11552         * config/i386/driver-i386.c (host_detect_local_cpu): Let
11553         -march=native recognize btver1 processors.
11554         * config/i386/i386-c.c (ix86_target_macros_internal): Add
11555         btver1 def_and_undef
11556         * config/i386/i386.c (struct processor_costs btver1_cost): New
11557         btver1 cost table.
11558         (m_BTVER1): New definition.
11559         (m_AMD_MULTIPLE): Includes m_BTVER1.
11560         (initial_ix86_tune_features): Add btver1 tune.
11561         (processor_target_table): Add btver1 entry.
11562         (static const char *const cpu_names): Add btver1 entry.
11563         (software_prefetching_beneficial_p): Add btver1.
11564         (ix86_option_override_internal): Add btver1 instruction sets.
11565         (ix86_issue_rate): Add btver1.
11566         (ix86_adjust_cost): Add btver1.
11567         * config/i386/i386.h (TARGET_BTVER1): New definition.
11568         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
11569         (enum processor_type): Add PROCESSOR_BTVER1.
11570         * config/i386/i386.md (define_attr "cpu"): Add btver1.
11571
11572 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11573
11574         PR target/43309
11575         * config/i386/i386.c (legitimize_tls_address)
11576         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
11577         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
11578         (tls_initial_exec_64_sun): New pattern.
11579
11580 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
11581
11582         * doc/invoke.texi (Overall Options): Improve wording and markup
11583         of the description of -wrapper.
11584
11585 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
11586
11587         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
11588         rdynamic, threads): New Driver options.
11589
11590 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11591
11592         PR target/38118
11593         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
11594         if coming from .tdata.
11595         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
11596
11597 2011-01-06  Jan Hubicka  <jh@suse.cz>
11598
11599         PR lto/47188
11600         * collect2.c (main): Do not enable LTOmode when plugin is active.
11601
11602 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11603
11604         PR other/45915
11605         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
11606         --version output if supported.
11607         * configure: Regenerate.
11608
11609 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
11610
11611         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
11612         Driver options.
11613
11614 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
11615
11616         PR c/47150
11617         * c-convert.c (convert): When converting a complex expression
11618         other than COMPLEX_EXPR to a different complex type, ensure
11619         c_save_expr is called instead of save_expr, unless in_late_binary_op.
11620         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
11621         when converting COMPLEX_TYPE.
11622
11623 2011-01-06  Ira Rosen  <irar@il.ibm.com>
11624
11625         PR tree-optimization/47139
11626         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
11627         only the last reduction value is used outside the loop.  Update
11628         documentation.
11629
11630 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
11631
11632         * config/rtems.opt: New.
11633         * config.gcc (*-*-rtems*): Use rtems.opt.
11634
11635 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
11636
11637         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
11638         processors do not support 3DNow instructions.
11639
11640 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11641
11642         * config/spu/spu.c (spu_option_override): Set parameter
11643         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
11644
11645 2011-01-05  Jan Hubicka  <jh@suse.cz>
11646
11647         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
11648         at the command line.
11649
11650 2011-01-05  Martin Jambor  <mjambor@suse.cz>
11651
11652         PR lto/47162
11653         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
11654         deltas on streamed outgoing edges.
11655         (output_node_opt_summary): Output info for outgoing edges only when
11656         the node is in new parameter set.
11657         (output_cgraph_opt_summary): New parameter set, passed to the two
11658         aforementioned functions.  Update its forward declaration and its
11659         callee too.
11660
11661 2011-01-05  Tom Tromey  <tromey@redhat.com>
11662
11663         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
11664         operator to c_finish_omp_atomic.
11665         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
11666         (build_unary_op): Update.
11667         (build_modify_expr): Update.
11668         (build_asm_expr): Update.
11669
11670 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11671
11672         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
11673         newly inserted insns.
11674         (pad_bb): Likewise.
11675         (spu_emit_branch_hint): Likewise.
11676         (insert_hbrp_for_ilb_runout): Likewise.
11677         (spu_machine_dependent_reorg): Call df_finish_pass after
11678         schedule_insns returns.
11679
11680 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11681
11682         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
11683
11684 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11685
11686         PR tree-optimization/47005
11687         * tree-sra.c (struct access): Add 'non_addressable' bit.
11688         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
11689         (decide_one_param_reduction): Return 0 if the parameter is passed by
11690         reference and one of the accesses in the group is non_addressable.
11691
11692 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11693
11694         PR tree-optimization/47056
11695         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
11696         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
11697         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
11698
11699 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11700
11701         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
11702         initializer.  Skip view conversions from aggregate types.
11703
11704 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
11705
11706         PR bootstrap/47055
11707         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
11708
11709 2011-01-04  Philipp Thomas  <pth@suse.de>
11710
11711         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
11712         obvious typo.
11713
11714 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11715
11716         * function.c (thread_prologue_and_epilogue_insns): Do not crash
11717         on empty epilogue sequences.
11718
11719 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
11720
11721         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
11722         non-static): New Driver options.
11723
11724 2011-01-04  Jie Zhang  <jie@codesourcery.com>
11725
11726         PR driver/47137
11727         * gcc.c (default_compilers[]): Set combinable field to 0
11728         for all assembly languages.
11729
11730 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
11731
11732         * config/mips/loongson3a.md: New file.
11733         * config/mips/mips.md: Include loongson3a.md.
11734         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
11735         TUNE_LOONGSON_3A.
11736
11737 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11738
11739         PR middle-end/47017
11740         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
11741         instead of convert_memory_address_addr_space on the base expression.
11742
11743 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11744
11745         * config/spu/spu.c (spu_option_override): Update error text
11746         for bad -march= / -mtune= values.
11747
11748 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11749
11750         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
11751         if branch-hint optimization will be performed.
11752
11753 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
11754
11755         PR tree-optimization/47148
11756         * ipa-split.c (split_function): Convert arguments to
11757         DECL_ARG_TYPE if possible.
11758
11759         PR tree-optimization/47155
11760         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
11761         when computing uns.
11762
11763         PR rtl-optimization/47157
11764         * combine.c (try_combine): If undobuf.other_insn becomes
11765         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
11766         and set *new_direct_jump_p too.
11767
11768 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
11769
11770         PR tree-optimization/47021
11771         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
11772
11773 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
11774
11775         * gcc.c (process_command): Update copyright notice dates.
11776         * gcov.c (print_version): Likewise.
11777         * gcov-dump.c (print_version): Likewise.
11778         * mips-tfile.c (main): Likewise.
11779         * mips-tdump.c (main): Likewise.
11780
11781 2011-01-03  Martin Jambor  <mjambor@suse.cz>
11782
11783         PR tree-optimization/46801
11784         * tree-sra.c (type_internals_preclude_sra_p): Check whether
11785         aggregate fields start at byte boundary instead of the bit-field flag.
11786
11787 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11788
11789         PR driver/47137
11790         * gcc.c (main): Revert revision 168407.
11791
11792 2011-01-03  Martin Jambor  <mjambor@suse.cz>
11793
11794         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
11795
11796 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11797
11798         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
11799         vector optab to expand vector/scalar shift, update gimple to vector.
11800
11801 2011-01-03  Martin Jambor  <mjambor@suse.cz>
11802
11803         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
11804         a thunk.
11805
11806 2011-01-03  Martin Jambor  <mjambor@suse.cz>
11807
11808         PR tree-optimization/46984
11809         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
11810         HOST_WIDE_INT.
11811         (cgraph_create_indirect_edge): Fixed line length.
11812         (cgraph_indirect_call_info): Declare.
11813         (cgraph_make_edge_direct) Update declaration.
11814         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
11815         (cgraph_create_indirect_edge): Use it.
11816         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
11817         callees.
11818         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
11819         the new thunk_delta representation.
11820         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
11821         HOST_WIDE_INT.
11822         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
11823         (ipa_read_indirect_edge_info): Likewise.
11824         * lto-cgraph.c (output_edge_opt_summary): New function.
11825         (output_node_opt_summary): Call it on all outgoing edges.
11826         (input_edge_opt_summary): New function.
11827         (input_node_opt_summary): Call it on all outgoing edges.
11828
11829 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
11830
11831         PR driver/47137
11832         * gcc.c (main): Don't check have_o when settting combine_inputs.
11833
11834 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
11835
11836         * regrename.c: Add general comment describing the pass.
11837         (struct du_head): Remove 'length' field.
11838         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
11839         (regrename_optimize): Do not sort chains.  Rework comments, add others.
11840         Force renaming to the preferred class (if any) in the first pass and do
11841         not consider registers that belong to it in the second pass.
11842         (create_new_chain): Do not set 'length' field.
11843         (scan_rtx_reg): Likewise.
11844
11845 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
11846
11847         PR tree-optimization/47140
11848         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
11849         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
11850         to bit_value_binop.
11851
11852         PR rtl-optimization/47028
11853         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
11854         parm_birth_insn instead of at the beginning of first bb.
11855
11856 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
11857
11858         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
11859         Remove the word "see" before "@pxref".
11860         * doc/rtl.texi: Remove the word "see" before "@pxref".
11861
11862 2011-01-01  Jan Hubicka  <jh@suse.cz>
11863
11864         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
11865         memory.
11866
11867 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
11868
11869         PR target/38662
11870         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
11871
11872 \f
11873 Copyright (C) 2011 Free Software Foundation, Inc.
11874
11875 Copying and distribution of this file, with or without modification,
11876 are permitted in any medium without royalty provided the copyright
11877 notice and this notice are preserved.